Buscar

2021-FelipeBritoAyres-tcc

Prévia do material em texto

Universidade de Brasília
Instituto de Ciências Exatas
Departamento de Ciência da Computação
Técnicas para Realizar a Validação de Requisitos no
Contexto de Internet das Coisas (IoT)
Felipe Brito Ayres
Monografia apresentada como requisito parcial
para conclusão do Curso de Engenharia da Computação
Orientadora
Prof.a Dr.a Edna Dias Canedo
Brasília
2021
Universidade de Brasília
Instituto de Ciências Exatas
Departamento de Ciência da Computação
Técnicas para Realizar a Validação de Requisitos no
Contexto de Internet das Coisas (IoT)
Felipe Brito Ayres
Monografia apresentada como requisito parcial
para conclusão do Curso de Engenharia da Computação
Prof.a Dr.a Edna Dias Canedo (Orientadora)
CIC/UnB
Prof.a Dr.a Roberta Barbosa Oliveira Prof.a Dr.a Letícia Lopes Leite
CIC/UnB CIC/UnB
Prof. Dr. João José Costa Gondim
Coordenador do Curso de Engenharia da Computação
Brasília, 21 de outubro de 2021
Dedicatória
Dedico este trabalho a minha família que sempre me apoiou, tanto na minha vida pessoal
quanto acadêmica. Foram 5 anos de muito esforço, dedicação e a presença deles tornou
esse tempo mais tranquilo para que pudesse me formar. Minha mãe por sempre estar
presente, receptível e paciente e a meu pai que, por ser da área de engenharia, foi um
norte e que pude me espelhar para seguir firme durante o curso.
iii
Agradecimentos
Aos meus pais Elana e Florêncio, que estiveram comigo durante toda minha jornada e
fizeram o possível para me incentivar e ajudar.
Á minha família, em especial, aos meus avós maternos, Deijayme e Maria José, e aos
meus falecidos avós paternos, Florêncio e Amanda, pela garra que tiveram durante a vida
e que possibilitaram o crescimento de uma família grande e próspera.
Agradeço ao Lucas, parceiro durante a pesquisa exploratória para este trabalho e que
facilitou muito o desenvolvimento das atividades.
Á minha orientadora, Edna Dias Canedo, que sanou minhas dúvidas durante o processo
do trabalho de graduação e esteve sempre disponível.
Por fim, agradeço aos meus amigos dos ensinos primário, médio e universitário, par-
ceiros de minha jornada estudantil, que somaram experiências e vivências durante este
período especial e de muitos aprendizados.
O presente trabalho foi realizado com apoio da Coordenação de Aperfeiçoamento de
Pessoal de Nível Superior - Brasil (CAPES), por meio do Acesso ao Portal de Periódicos.
iv
Resumo
A internet das coisas vem ocupando um espaço cada vez maior em equipes de desenvolvi-
mento de software e na sociedade. O nível de aplicação da IoT é abrangente. Tráfego
de pessoas, casas inteligentes, ambientes otimizados e gestão de água/energia são alguns
dos exemplos da sua aplicabilidade. Nesse universo de possibilidades, desenvolvedores e
empresas de tecnologia devem estar preparados para adaptar seus projetos e absorver essa
tecnologia em expansão. Como essa tecnologia é recente, falhas de projeto e retrabalho
acontecem com frequência e dificultam o desenvolvimento de produtos de alta qualidade
atualmente. O objetivo deste trabalho é identificar por meio de uma pesquisa explo-
ratória, processos e técnicas de validação, voltadas ao contexto da internet das coisas.
Além disso, investigamos a percepção dos desenvolvedores de software IoT sobre as suas
atividades relacionadas a Engenharia de Requisitos em seus projetos. A percepção dos
profissionais foi coletada através de entrevistas onde eles relataram as dificuldades e de-
safios que enfrentam durante suas atividades diárias. Foram encontrados 22 processos e
9 técnicas de validação para o contexto de IoT na literatura. A partir das entrevistas, foi
possível perceber que stakeholders de projetos IoT não utilizam um processo formal de
engenharia de requisitos. Normalmente, são utilizadas técnicas distintas como reuniões
e diagramas, sempre com base na demanda e na necessidade do projeto. Apesar dos
profissionais e stakeholders acharem importante a Engenharia de Requisitos, a adesão à
processos e técnicas voltadas a IoT não é unânime devido a curva de aprendizado para
adotar novos métodos e a falta de maleabilidade nos processos durante o desenvolvimento
de software.
Palavras-chave: Requisitos, IoT, internet das coisas, técnicas de validação, validação,
entrevistas, pesquisa exploratória.
v
Abstract
Internet of things occupies more and more space in development teams and in society in
general. The applicability that IoT covers is huge. Smart houses, water/energy consup-
tion, traffic management and smart buildings are some examples of what has been made
in this context. In this vast universe of possibilities, developers and tech companies need
to be prepared and adapt their projects to cover it.
With that in mind, failures/reworks in projects happens more easily and makes it more
difficult to produce high standards products. The objective of this paper is to identify,
based on a exploratory research, processes and validation techniques in IoT context.
Furthermore, this work investigates the professionals‘ perception in their activities with
requirenment engineering in IoT projects. Their reports were collected through interviews
so they could explain the difficulties and problems that arise in their daily work.
In total, 22 processes and 9 validation techniques has been found in literature. From
the interviews, it had been realized that stakeholders don´t use formal processes in their
IoT projects. Usually, single techniques are used, like reunions and diagramans, to handle
the requirements engineering.The stakeholders implement these methods based on the
demand and size of the project. Although stakeholders thinks that RE is a important
part inside a project, the use of processes and techniques for IoT development isn´t
unanimous due to the learning curve to adopt such methods and the lack of flexibility in
these processes during the development phase.
Keywords: requirements, IoT , internet of things, techniques of validation, interviews,
exploratory research
vi
Sumário
1 Introdução 1
1.1 Problema de pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Resultados Esperados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Metodologia de Pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.6 Estrutura do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Embasamento Teórico 5
2.1 Engenharia de Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 Classificação de Requisitos . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.2 Processos em Engenharia de Software . . . . . . . . . . . . . . . . . . 7
2.1.3 Etapas do Processo em RE . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.4 Técnicas para Realizar a Validação e Verificação de Requisitos . . . . 11
2.1.5 Aplicações da IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Processos de Engenharia de Requisitos no Contexto de IoT . . . . . . . . . . 15
2.2.1 A Requirements Engineering Process for IoT Systems . . . . . . . . . 16
2.2.2 A UML-based Proposal for IoT System Requirements Specification . . 18
2.2.3 TrUStAPIS: A Trust Requirements Elicitation Method for IoT . . . . 19
2.2.4 REM4DSPL: A Requirements Engineering Method for Dynamic Soft-
ware Product Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.5 Modeling IoT Aplications with SysML4IoT . . . . . . . . . . . . . . . 21
2.2.6 Specifying Functional Requirements and QoS Parameters for IoT Sys-
tems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.7 Design Science and ThinkLets as an Holistic Approach to Design
IoT/IoS Systems . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 23
vii
2.2.8 An Improved RE Framework for IoT-Oriented Smart Applications
using Integrated Approach . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.9 Detecting IoT Applications Opportunities and Requirements Elicita-
tion: A Design Thinking Based Approach . . . . . . . . . . . . . . . . 27
2.2.10 An Evidence-Based Framework for Supporting the Engineering of IoT
Software Systems Mid-stage Research . . . . . . . . . . . . . . . . . . 28
2.2.11 Non Functional Requirement Analysis in IoT based smart traffic ma-
nagement system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2.12 Horizontal Requirement Engineering in Integration of Multiple IoT
Use Cases of City Platform as a Service . . . . . . . . . . . . . . . . . 31
2.2.13 Towards Modelling and Analysis of Spatial and Temporal Requirements 32
2.2.14 Uma Tecnologia para Apoiar a Engenharia de Requisitos de Sistemas
de Software IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.15 IoT Composer: Composition and Deployment of IoT Applications . . 34
2.2.16 Conversion Method for User Experience Design Information and Soft-
ware Requirement Specification . . . . . . . . . . . . . . . . . . . . . 35
2.2.17 Key Abstractions for IoT-Oriented Software Engineering . . . . . . . 35
2.2.18 Towards a catalog of conflicts for HCI quality characteristics in Ubi-
Comp and IoT applications: Process and first results . . . . . . . . . 37
2.2.19 Emotion-oriented requirements engineering: A case study in develo-
ping a smart home system for the elderly . . . . . . . . . . . . . . . . 38
2.2.20 IoT System Development Methods . . . . . . . . . . . . . . . . . . . . 42
2.2.21 Stakeholder Identification and Use Case Representation for Internet-
of-Things Applications in Healthcare . . . . . . . . . . . . . . . . . . 47
2.2.22 Intelligent Parking Management by Means of Capability Oriented Re-
quirements Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.3 Síntese dos Processos de Engenharia de Requisitos no contexto da IoT . . . . 49
2.4 Técnicas de Validação de Requisitos no Contexto de IoT . . . . . . . . . . . 52
2.4.1 SCENARIoT: Support for scenario specification of internet of things-
based software systems . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.4.2 SCENARIoTCHECK: Uma Técnica de Leitura Baseada em Checklist
para Verificação de Cenários IoT . . . . . . . . . . . . . . . . . . . . . 55
2.4.3 Towards the Description and Representation of Smartness in IoT Sce-
narios Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.4.4 Requirement Engineering Technique for Smart Spaces . . . . . . . . . 59
2.4.5 Requirements for Testing and Validating the Industrial Internet of
Things . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
viii
2.4.6 IoT Roadmap: Support for Internet of Things Software Systems En-
gineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.5 Síntese das técnicas de validação em Engenharia de Requisitos no contexto
da IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.6 Síntese do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3 Entrevistas 64
3.1 Seleção dos participantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.2 Processo das entrevistas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.3 Perfil dos entrevistados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4 Resultados 68
4.1 Pesquisa exploratória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.1.1 Processos no contexto IoT . . . . . . . . . . . . . . . . . . . . . . . . 68
4.1.2 Técnicas de validação . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.2 Entrevistas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.1 Ameaças a Validação . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5 Conclusão e Trabalhos Futuros 76
Referências 78
ix
Lista de Figuras
1.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1 Modelo linear [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Modelo linear Iterativo [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Modelo Iterativo não linear [1] . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Modelo em Espiral [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.5 Modelo de processo em RE voltado a IoT [2]. . . . . . . . . . . . . . . . . . 16
2.6 Sub-processo 1: Definição de escopo [2]. . . . . . . . . . . . . . . . . . . . . 17
2.7 Sub-processo 2: Definição do sistema IoT [2]. . . . . . . . . . . . . . . . . . 18
2.8 Sub-processo 3: Definição dos requisitos para o sistema IoT [2]. . . . . . . 18
2.9 Visão geral sobre o funcionamento da ferramenta ThinkLets [3]. . . . . . . 25
2.10 Funcionamento da ferramenta IoT Composer [4]. . . . . . . . . . . . . . . . 34
2.11 Passos do processo proposto por Carvalho et al. no contexto da UbiComp
[5]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.12 Modelo de Objetivos do SofiHub . . . . . . . . . . . . . . . . . . . . . . . . 42
2.13 Processo de estruturação de uma IIA segundo Silva [6]. . . . . . . . . . . . 53
2.14 Processo da SCENARIoTCHECK com base na melhoria do processo SCE-
NARIoT proposto por Silva [6]. . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.1 Resultado dos métodos utilizados em processos . . . . . . . . . . . . . . . . 69
4.2 Relato dos entrevistados a respeito da importância da etapa de engenharia
de requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.3 Relato dos entrevistados sobre as dificuldades em desenvolvimento de pro-
jetos IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
x
Lista de Tabelas
2.1 Três fases do processo envolvendo a DSR [3]. . . . . . . . . . . . . . . . . . 24
2.2 Questões chave levantadas por Zambonelli para a elaboração de um sistema
utilizando IoT [7]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.3 Visão geral dos Processos de Engenharia de Requisitos no contexto da IoT . 52
2.4 Checklist utilizada por Souza [8] para esclarecer possíveis inconsistências na
SCENARIoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.5 Elaboração de um cenário baseado em smartness (inteligência), segundo
Souza [9]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.6 Análise do cenário produzido pela técnica [9]. . . . . . . . . . . . . . . . . . 59
2.7 Visão geral das técnicas de validação de requisitos existentes em Internet
das Coisas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.1 Informações demográficas dos participantes da entrevista . . . . . . . . . . . 67
4.1 Fases abordadas em cada processo . . . . . . . . . . . . . . . . . . . . . . . 70
xi
Lista de Abreviaturas e Siglas
5W1H O que, Como, Quem, Quando e Por quê.
ADL Linguagem de Descrição de Arquitetura.
AIIs Arranjos de Interação IoT.
AIOTI Aliança para a Inovação em Internet das Coisas.
BPMN Notação para Modelagem de Processos de Negócio.
CADP Construção e Análises de Processos Distribuídos.
CORE Engenharia de Requisitos Orientada a Capacidade.
CPPS Sistemas Cibernéticos de Produção Física.
CSS Sistema de Software Contemporâneo.
DE Expositores de Dados.
DSPL Linha de Produto de Software Dinâmico.
DSR Design Science Research.
EoI Entidade de Interesse.
GIS Sistema de Informação Geográfica.
GORE Engenharia de Requisitos Orientada por Objetivos.
GSEM-IoT Metodologia Geral de Engenharia de Software para a Internet das Coisas.
HID Dispositivo de Interface Humana.
IIA Arranjos de Interação em IoT.
xii
IoT Internet das Coisas.
IoT-AD Desenvolvimento de Aplicativos IoT.
IoT-RML Linguagemde Modelagem de Requisitos em IoT.
KAOS Manter Todos os Objetivos Satisfeitos.
LNT Nova Tecnologia LOTOS.
M2M Máquina para Máquina.
MBD Design Baseado em Modelo.
RE Engenharia de Requisitos.
REM4DSPL Método para Engenharia de Requisitos para Linhas de Produtos de Soft-
ware Dinâmicos.
RR Revisão Rápida.
SAL Linguagem de Arquitetura Srijan.
SDL Linguagem de Implantação Srijan.
SDM Métodos de Desenvolvimento do Sistema.
SRS Especificação de Requisitos de Software.
SVL Linguagem de Vocabulário Srijan.
UbiComp Computação Ubíqua.
UFRJ Universidade do Rio de Janeiro.
UXD Design de Experiência do Usuário.
WoT Rede das Coisas.
xiii
Capítulo 1
Introdução
De acordo com Filho [10], a Engenharia de Requisitos (RE) possui como responsabilidade
principal a identificação e análise de requisitos, com o objetivo de minimizar erros e
economizar custos ao simplificar e corrigir eventuais falhas nos requisitos elicitados, antes
de ser repassado para as fases seguintes do processo de desenvolvimento de software,
incluindo a validação de requisitos. Para Schwab [11], um dos desafios da RE no contexto
da Internet das Coisas (IoT) é a necessidade de realizar uma constante validação de dados,
motivando a análise das técnicas existentes na RE para obter informações mais precisas.
A Internet das Coisas proporciona que objetos do dia-a-dia se comuniquem com a
Internet, desde que seus recursos eletrônicos permitam esta tarefa [12]. A comunicação
com a Internet é realizada através de um dispositivo eletrônico com módulo integrado de
conexão à rede. Desde sua criação, a Internet das Coisas propõe o compartilhamento de
informações em objetos, fornecendo dados e permitindo que os dispositivos controlem a
si mesmos e a outros [13].
A Internet das Coisas ganhou um destaque significativo nos últimos anos para pessoas
e empresas, cujos interesses se convergem em ter maior praticidade e economia em suas
atividades cotidianas [12], uma vez que equipamentos interligados podem proporcionar
redução no consumo elétrico e maior conforto para os usuários. No entanto, a RE enfrenta
um desafio com a IoT [11] uma vez que a definição e escolha das técnicas para validar
os requisitos dos dispositivos da IoT se mostra importante para que seu funcionamento
possa ser garantido, pois os dispositivos são meros coletores de dados, porém os mesmos
tendem a ter mais inteligência e necessidades [14].
Os sistemas no contexto da IoT são complexos e heterogêneos e as pesquisas na área de
Requisitos de Software para IoT são limitados e muitas vezes específicos a um determinado
tipo de projeto [15], [16].
1
1.1 Problema de pesquisa
A engenharia de requisitos no contexto de internet das coisas é marcada pela falta de
uma abordagem sistemática para o desenvolvimento de aplicações IoT [2], bem como não
possui técnicas específicas para validar os requisitos funcionais e não funcionais dessas
aplicações [2].
1.2 Justificativa
Com o crescimento da internet das coisas, diversas aplicações foram surgindo [2], fazendo
com que a engenharia de requisitos passasse a ter um papel fundamental nas fases iniciais
do projeto, garantindo uma melhor qualidade no desenvolvimento dos sistemas. Propor
processos e técnicas específicas para IoT permite um melhor produto e um menor re-
trabalho por parte das equipes de desenvolvimento de sistemas. Além disso, mapear as
dificuldades e as percepções dos desenvolvedores a respeito da área permite a criação de
processos que se adaptem melhor aos utilizadores.
1.3 Objetivos
Essa seção destina-se a descrever o objetivo central do trabalho e os objetivos secundários
a serem alcançados.
1.3.1 Objetivo Geral
Este trabalho tem como objetivo fazer a conexão entre a literatura da engenharia de
requisitos no contexto de IoT com o desenvolvimento em situações reais de produtos IoT
por empresas e desenvolvedores.
1.3.2 Objetivos Específicos
Para atingir o Objetivo Geral, os seguintes objetivos específicos foram definidos:
1. Realizar uma pesquisa exploratória para identificar na literatura os processos de RE
existentes no contexto IoT;
2. Realizar uma pesquisa exploratória para identificar na literatura técnicas de valida-
ção de requisitos no contexto IoT;
3. Avaliar como as empresas de IoT utilizam os processos da engenharia de requisitos
e as técnicas de validação de requisitos no desenvolvimento de seus projetos;
2
4. Levantar as dificuldades encontradas por desenvolvedores e equipes para desenvol-
verem projetos IoT;
5. Analisar as percepções dos stakeholders em IoT a respeito da engenharia de requi-
sitos;
1.4 Resultados Esperados
Espera-se com esse trabalho identificar as propostas de processos e técnicas de validação
da RE na literatura e que possam ser utilizadas pela IoT, obter das equipes de desenvol-
vimento de software a utilidade desses processos e técnicas para lidar com a validação dos
requisitos.
1.5 Metodologia de Pesquisa
A metodologia utilizada neste trabalho consiste das seguintes etapas:
1. Pesquisa Exploratória: Revisão da literatura para identificar as técnicas de vali-
dação de requisitos e os processos da engenharia de requisitos no contexto da IoT.
2. Entrevista semi-estruturada com profissionais de IoT: Etapa responsável
por obter a percepção dos profissionais da área de desenvolvimento de software IoT
sobre a aplicabilidade/dificuldade da implantação dos processos da RE além de uma
explanação sobre a realidade da área e suas dificuldades.
3. Análise e descrição dos resultados: A partir das entrevistas e da revisão de
literatura descreveremos os resultados obtidos.
Figura 1.1: Metodologia
3
1.6 Estrutura do Trabalho
O Capítulo 2 apresenta o referencial teórico com a finalidade de aprofundar os conhecimen-
tos gerais sobre Engenharia de Requisitos e Internet das Coisas e a pesquisa exploratória
para identificar os processos e técnicas de validação de requisitos no contexto da IoT.
O Capítulo 3 é destinado a parte metodológica das entrevistas realizadas. Nele des-
crevemos a estrutura utilizada para as conversas, além dos participantes envolvidos e
objetivos a serem alcançados pelas entrevistas.
O Capítulo 4 descreve os resultados obtidos a partir da pesquisa exploratória e a partir
das entrevistas e questões de pesquisa propostas no capítulo 3.
O Capítulo 5 conclui este trabalho e descreve os próximos passos ou melhorias que
poderão ser incorporadas a este trabalho.
4
Capítulo 2
Embasamento Teórico
Este Capítulo apresenta os conceitos necessários para o entendimento deste trabalho. Na
Seção 2.1 é apresentando os conceitos gerais relativos a Engenharia de Requisitos. A
Seção 2.2 apresenta os processos existentes para validação de requisitos em dispositivos
IoT. A Seção 2.3 realiza uma síntese dos processos existentes na validação de requisitos
IoT. Já na Seção 2.4 são apresentadas as técnicas propostas para a validação de requisitos
no contexto da IoT. Com base nisso, a Seção 2.5 destaca uma visão geral das técnicas de
validação de requisitos em IoT.
2.1 Engenharia de Requisitos
Engenharia de Requisitos (RE), uma subárea da Engenharia de Software, possui relevân-
cia para a elaboração de um software por possuir a responsabilidade de levantar todas
as solicitações requeridas pelo stakeholder, elaborar uma documentação e repassar to-
dos estes requisitos para todas as partes interessadas de maneira clara, concisa e sem
ambiguidades [10].
Outra principal responsabilidade desta área é a redução dos custos ao longo do pro-
cesso. Este processo, chamado de Validação de Software, possui como objetivo identificar
informações conflitantes (seja por ambiguidade ou conflitos com a legislação) e solucioná-
las antes de ser iniciada a construção do software. De acordo com Kalinowski e Spínola
[17], os custos para reparar um eventual erro cometido por falha na análise de requisitos
pode variar de acordo com o nível de evolução do desenvolvimento, sendo bastante caro
caso alguma inconsistência seja encontrada na fase final do produto de software.
Todas estas questõesocorrem através de um ponto de partida mutualmente relacio-
nado, os stakeholders. Bourque e Fairley [18] afirmam que, em todo projeto relacionado
a RE, é necessário definir os atores, escutar suas necessidades, para que posteriormente
5
possa ser feito a validação destes requisitos, seguida pela compilação e verificação com os
usuários. Os atores são:
• Usuário: pessoa que irá utilizar o produto final, sem nenhuma relação com o desen-
volvimento de um software;
• Clientes: parte principal do projeto de software, são as pessoas que encomendam o
software para proporcionar uma boa experiência de seus serviços para os clientes da
companhia;
• Analistas de mercado: ator que tem o papel de sondar novas tecnologias e tendências
no meio externo, podendo adicionar algumas ideias para o projeto;
• Reguladores: tipo de ator que deve possuir domínio na área de atuação para projetos
de software que envolvam portarias e outras normas, como bancos, mineração e
logística;
• Engenheiros de Software: primordial para todo o projeto de elaboração do software,
possui a responsabilidade de ouvir os clientes, validar seus requisitos (isto é, verifi-
car inconsistências), compilar e verificar o sistema junto com os clientes enquanto
aguarda um feedback. Todas estas funções devem ser executadas de modo a propor-
cionar uma redução nos custos do projeto, mesmo que possa ser difícil para softwares
cujo funcionamento dependa de autorizações alheias às partes interessadas.
Avila e Spínola [19] definem a Engenharia de Requisitos (RE) como um conjunto de
atividades que coordenam a produção e gerência de um projeto de software. As atividades
são:
• Produção de Requisitos: construção do projeto de software, em que os requisitos,
uma vez categorizados, são registrados através de uma documentação detalhada,
para que possam ser verificados (com a finalidade de eliminar possíveis inconsistên-
cias, como ambiguidades e outros tipos de problemas) e validados com os stakehol-
ders.
• Gerência de Requisitos: é a parte sensível da RE em decorrência de mudanças
alheias ao projeto - mudanças na legislação ou mercado - e por eventuais falhas
que passaram despercebidas pela fase de verificação de requisitos. Neste contexto,
possui a responsabilidade de coordenar mudanças, gerenciar configurações (permite
realizar as mudanças necessárias sem ferir a integridade do software), realizar a
rastreabilidade (isto é, criar e manter um escopo para as funções) e gerenciar a
qualidade dos requisitos, esta última, análoga à Produção de Requisitos.
6
2.1.1 Classificação de Requisitos
Vazques e Simões [20] definem requisitos como as informações dadas pelos stakeholders de
uma organização, informando suas particularidades, descrevendo permissões, restrições e
todas as condições necessárias para que um sistema satisfaça suas necessidades. Segundo
Bourque e Fairley [18], existem duas categorias de requisitos vigentes na RE:
• Requisitos funcionais: descreve as funções principais que um software deve executar
a cada comando de usuário, como o ato de informar credenciais;
• Requisitos não funcionais: ferramentas que envolvem o escopo dos requisitos funcio-
nais, com a finalidade de proporcionar maior controle sobre um sistema, concedendo
ou restringindo permissões para usuários.
Segundo Sommerville [21], os requisitos não funcionais, por realizar restrições, são
categorizados em três modos, de acordo com as políticas internas da companhia ou por
fatores externos:
• Requisitos de produto: concedem permissões ou negam acesso para alguns tipos de
usuário;
• Requisitos organizacionais: são regras impostas pelo cliente (de acordo com as po-
líticas internas da empresa) para acesso a certas funcionalidades do software;
• Requisitos externos: sistemas cujo funcionamento dependem de permissões con-
cedidas por fatores alheios aos stakeholders, como certificações de segurança para
bancos.
2.1.2 Processos em Engenharia de Software
Engenharia de requisitos é uma parte fundamental do desenvolvimento de um software
como um todo. O procedimento de coletar, analisar e documentar os requisitos é funda-
mental para o produto final ter a qualidade desejada [1]. Processos em RE podem ser
desenvolvidos de algumas maneiras distintas que, apesar de não haver o modelo de ideal
de fazer o processo, todos esses procedimentos podem resultar em um ótimo modelo de
engenharia de requisitos. São quatro modelos de processos de RE [22]:
1. Modelo de processo de RE linear
Um dos processos mais simples na literatura de engenharia de requisitos e é des-
tinado para projetos pequenos e com pouca escalabilidade. O desenvolvimento é
composto por cinco etapas, conforme apresentado na Figura 2.1.
7
Figura 2.1: Modelo linear [1]
2. Modelo de processo de RE linear iterativo
Este modelo é parecido em questão de etapas com o processo linear, porém, conforme
apresentado na Figura 2.2, determina uma maior precisão nas especificações e na
validação de requisitos, pelo fato de que essa etapa no processo é efetuada até os
stakeholders ficarem satisfeitos [1].
Figura 2.2: Modelo linear Iterativo [1]
3. Modelo de processo de RE iterativo
Este modelo é composto de três fases principais: elicitação, especificação e validação
dos requisitos. De acordo com o apresentado na Figura 2.3, segue um caminho não
linear e retira os requisitos se baseando nos stakeholders e problemas do domínio.
[1].
8
Figura 2.3: Modelo Iterativo não linear [1]
4. Modelo de processo de RE espiral
Modela o processo de RE em uma espiral, em que cada volta na espiral significa
passar por todos os processos envolvidos para os requisitos. A espiral é divida
em quatro quadrantes em que cada um possui uma tarefa na RE, como pode ser
observado na Figura 2.4 [1].
Figura 2.4: Modelo em Espiral [1]
2.1.3 Etapas do Processo em RE
Os modelos de processo em RE tem como principal diferença entre si a ordem e o meio de
execução das fases do processo. Contudo, apresentam etapas semelhantes durante todo
seu processo. No processo de desenvolvimento do sistema, a engenharia de requisitos deve
fazer a elicitação de requisitos com os interessados do projeto, documenta-los de forma
9
correta, validar e verificar se esses requisitos estão em conforme com o projeto como um
todo, além de geri-los por todo o ciclo de vida do sistema [23].
• Elicitação
A elicitação de requisitos é executada pelo conhecimento do contexto do sistema
a partir das diversas fontes de requisitos. Os requisitos podem vir a partir de
três fontes diferentes. Elas são divididas em stakeholders, documentos e algumas
vezes sistemas antigos em operação. Durante essa etapa, uma boa organização e
comunicação com os stakeholders são essenciais para que o processo seja feito de
uma maneira completa e bem feita [23].
• Documentação
Por muitas vezes, o projeto apresenta uma quantidade muito vasta de requisitos,
essa etapa se mantêm importante para que o pessoal envolvido e não envolvido com
o projeto consigam compreender todos os requisitos. Além disso, a localização e
modificação de requisitos conforme o andamento do projeto é muito facilitada [23].
• Validação e verificação
Os requisitos elicitados e documentados precisam sofrer uma validação para que se
garanta que as ideias dos stakeholders estejam sendo respeitadas e se os critérios
de qualidade previamente definidos estão sendo compridos. Com isso, o objetivo da
validação e verificação é descobrir erros nos requisitos documentados. Incompletude,
contradições e ambiguidade são problemas que podem ser encontrados e solucionados
nessa etapa do processo [23]. Apesar de serem similares, a etapa de verificação pode
ser diferenciada com a de validação por meio dessa análise [24]:
– Validação: "Estou fazendo o produto correto?"
– Verificação: "Estou fazendo corretamente o produto?"
• Gerência
Gerenciar os requisitos também é uma das principais etapas e garante a disponibi-
lidade dos requisitos por todo o ciclo de vida do sistema. Essa manutenção ocorre
tanto em requisitos individuais como em uma documentaçãode requisitos completa.
Versionamento, rastreabilidade e designar atributos aos requisitos são algumas das
técnicas utilizadas para gerir-los [23].
10
2.1.4 Técnicas para Realizar a Validação e Verificação de Re-
quisitos
O processo de validação e verificação de requisitos é composto de atividades menores como
revisar, analisar e testar para que se tenha certeza que o sistema desenhado é compatível
com seus requerimentos [24].
Para esses passos serem bem estruturados foram criadas e aprimoradas diversas técni-
cas na literatura que permitem um melhor uso de tempo e recursos pelas pessoas envolvi-
das no sistema. Técnicas de validação de manuais ou documentação de requisitos,também
conhecidas como revisões, são muito utilizadas nesse processo [23]. Elas podem ser clas-
sificadas principalmente por seis tipos de revisões:
1. Revisão de um especialista
Esta técnica se baseia em utilizar os conhecimentos de outra pessoa, um especialista,
para fazer um julgamento a respeito da qualidade dos requisitos. O especialista
revê todos os requisitos e busca por problemas como inconsistência ou ambiguidade.
Quando é encontrado algum problema, o revisor comenta na documentação os erros
e possíveis soluções para consertá-los.
2. Inspeção dos requisitos
Esse método normalmente é constituído de múltiplas fases e pessoas, portanto, é
um processo detalhado e minucioso para verificar presença de erros nos requisitos.
A equipe de uma inspeção é formada de seis funções distintas, sendo elas [23]:
• Organizador: Planeja e controla o processo de inspeção;
• Moderador: Lidera as sessões, mantendo sempre o seguimento da inspeção
conforme combinado nas etapas iniciais;
• Autor: Responsável para explicar os requisitos para os inspetores nas fases ini-
ciais do projeto. O autor é responsável também por corrigir os erros levantados
pelas últimas etapas do processo;
• Leitor: Membro da equipe que guiará os inspetores diante dos diversos re-
quisitos a serem inspecionados. A função dele é tirar a responsabilidade do
inspetor de interpretar o que o autor quis dizer, e eles poderem se concentrar
no requisito em si;
• Inspetores: Responsáveis por detectar as falhas e reporta-las para os outros
membros do projeto;
• Secretário: Responsável por pegar o resultado da sessão e compila-los, além
de preparar a ata para a sessão;
11
A inspeção dentro do contexto de validação de requisitos pode ser dividida nas
etapas de planejamento, visão geral, detecção de falhas e coleta de falhas [23]:
(a) Planejamento: É o começo de tudo, nesta etapa é traçado o objetivo da
inspeção, o desenvolver do processo e as funções de cada participante;
(b) Visão geral: Nesta fase o autor detalha todos os requisitos a sua equipe para
que todos estejam cientes do sistema em questão e possam esclarecer eventuais
dúvidas;
(c) Detecção de falhas: Os requisitos são efetivamente examinados pelos inspe-
tores nesta fase e documentadas para a próxima etapa. A busca de falhas pode
ser feita tanto em equipe quanto individualmente. A busca em grupo possui a
vantagem de comunicação e consequente sinergia entre os inspetores enquanto
a busca individual faz com que todos fiquem focados no trabalho;
(d) Coleta de falhas: A última fase dessa técnica é para a coleta e consolidação
de todas as falhas apresentadas pela etapa de detecção. Nesta etapa é feita
a checagem em todos os erros em busca de erros duplicados ou erros que na
verdade não são erros, mas foram detectados como tal por má interpretação
dos requisitos.
3. Walkthrough
O Walkthrough é uma técnica parecida com a inspeção, porém é uma versão mais
simples e menos rígida [23]. A divisão da equipe é mais simplificada, tendo várias
funções podendo ser desempenhadas pela mesma pessoa. Nessa técnica, são usadas
as funções de pelo menos um revisor, autor, secretário e moderador. Esse método é
feito para identificar falhas nos requisitos e compartilhar o entendimento do projeto
entre as pessoas envolvidas no projeto.
4. Verificação em diferentes perspectivas
Essa técnica faz a validação dos requisitos através uma interpretação do sistema
levando em conta diversas perspectivas distintas [23]. Com diversos pontos de vista
únicos, o foco e resultados obtidos na validação de requisitos tem uma melhora
significativa. As perspectivas normalmente variam de sistema para sistema, mas é
possível ao menos elicitar alguns tipos que ocorrem geralmente em todo projeto e
que podem ser adaptados:
Perspectivas dos stakeholders
12
• Perspectiva do cliente: O cliente ou usuário checa os requisitos a partir de
sua perspectiva e verifica se condiz com a realidade e qualidade esperadas;
• Perspectiva do desenvolvedor: O desenvolvedor verifica se os requisitos
contêm todas as informações e propriedades necessárias para que o projeto
consiga ser feito;
• Perspectiva de teste: O testador verifica se com os requisitos presentes é
possível fazer casos de teste que satisfazem todo o projeto.
Perspectivas de qualidade do sistema
• Perspectiva de documentação: Nessa perspectiva é assegurado que a do-
cumentação envolvendo os requisitos atenda todas os critérios anteriormente
discutidos;
• Perspectiva de conteúdo: Perspectiva que trata do conteúdo dos requisitos
em si, e foca na qualidade desse conteúdo;
• Perspectiva de acordo: Nesta perspectiva, o foco é assegurar que todos os
envolvidos no projeto estejam de acordo com os requisitos levantados e se não
há nenhum conflito a ser solucionado.
A técnica de validação usando diferentes perspectivas pode ser usada independente-
mente ou em conjunto com alguma outra técnica de revisão vista anteriormente. É
importante, nesta técnica, detalhar o que será abordado em cada perspectiva para
que todos estejam entendendo o que irá ser focado em cada uma visão, para que
não haja retrabalho posteriormente.
5. Validação por prototipagem
Protótipo é um modelo preliminar de um sistema completo. Com isso, o que essa
técnica faz é usar esse modelo a favor da validação de requisitos. A partir de um
protótipo do projeto, requisitos podem ser testados e validados de forma prática
pelos stakeholders e é verificado se atendem ao objetivo originalmente traçado. Os
protótipos podem ser divididos dependendo da destinação deles em protótipos des-
cartáveis ou protótipos evolutivos [23]. Os descartáveis servem somente para o teste
atual e não irá ser colocado em produção novamente, já o evolutivo é um protótipo
que fica em constante evolução conforme o projeto se desenvolve e, por isso, requer
um maior trabalho para ser feito. Para que um protótipo seja feito, é preciso fazer a
seleção dos requisitos que ele ira contemplar. Esse conjunto normalmente não cobre
todos os requisitos documentos já que traria custos e complexidades muito elevados.
13
Por isso, é preciso fazer um critério de seleção entre os requisitos e determinar quais
são os mais adequados a serem utilizados no protótipo.
Junto com o protótipo em si, são necessários mais três documentos para que seja
feita a validação dos requisitos [23], sendo:
• Um manual para os integrantes que vão utilizar o protótipo que conste todas
as informações de uso e aplicação;
• Um documento que conste vários cenários para a validação dos requisitos e uma
lista de verificações com todas os requisitos que estão querendo ser validados.
Cenários que não constam nos documentos podem e devem ser testados depois
de todo o processo para que se verifique o sistema em diversas situações e
circunstâncias que não foram planejadas de início.
Após a finalização da validação, os resultados são compilados e discutidos. Altera-
ção, remoção ou adição de requisitos são consequências durante essa etapa. Se as
alterações forem muito grandes ou impactantes, é aconselhável a remodelação do
protótipo para que abrange essas mudanças e seja possível de ser feito uma nova
validação [23].
6. Validação por checklist
A técnica de checklist é utilizada em projetos complexos e quando o sistema possui
diversas questões que precisam ser levados em conta. As checklists podem seruti-
lizadas em conjunto com diversas outras técnicas e ela é composta de perguntas ou
afirmações para identificar os erros contidos nos requisitos. A fonte para a monta-
gem da checklist pode vir tanto dos stakeholders quanto de critérios de qualidade
de requisitos que a literatura dispõe. A lista pode sempre estar sendo atualizada
conforme o projeto avança e novas funcionalidades e requisitos surgem, por isso,
remoção de perguntas ambíguas, edição e adição de informações são sempre bem
vindas conforme o projeto vai se desenvolvendo. O sucesso da técnica vai depender
da extensão e complexidade da checklist. Uma lista muito longa e cheia de detalhes
pode fazer o processo ficar mais lento e inviável para o auditor. A mesma coisa pode
acontecer se a lista for muito subjetiva, tornando o processo de validação lento e
suscetível a falhas.
2.1.5 Aplicações da IoT
De desktops a smartphones, todos os dispositivos eletrônicos com capacidade de enviar ou
receber dados através da Internet ou outros meios de conexão, proporciona a indústria e
ao consumidor uma melhor automação em processos, redução de custos e maior controle
14
sobre dispositivos, todos estes atrelados a IoT. Todos os recursos com uma variedade
de sensores embutidos permitem diversas aplicações em potencial [25]. Neste quesito,
Lacerda [26] destaca cinco utilidades para a IoT.
A Internet das Coisas evoluiu de maneira significativa neste aspecto graças a capa-
cidade dos dispositivos interligados em realizar um monitoramento efetivo de atividades
físicas e condições de saúde do usuário [25]. Dispositivos vestíveis como smartwatch (reló-
gio com funções e monitoramento integrado a um smartphone) são recomendados para o
monitoramento de atividades físicas, bem como pode ser utilizado para monitorar doenças
crônicas, como por exemplo o mal de Parkinson [27].
Para Souza [8], este monitoramento dos pacientes através da IoT torna mais rápido
o processo de diagnóstico, de identificação e da análise das condições de saúde do pa-
ciente. Além destes, dispositivos IoT ligados a área de saúde também podem coletar
dados e rastrear os locais onde a pessoa frequentou, embora este assunto afete questões
de privacidade previstas por legislações de cada país [25].
Santos et al. [12] definiu esta categoria da IoT como Smart Home (casas inteligentes)
devido ao fato dos dispositivos interligados poderem controlar, por si mesmos ou por ação
humana, todos os equipamentos elétricos e eletrônicos dentro da residência do usuário.
Em casas e apartamentos, a IoT se mostra bastante eficiente em vários aspectos. Para
Milenkovic [25], a Internet das Coisas dentro de um ambiente residencial pode propor-
cionar: 1. Conforto: controle de luz, de temperatura ou ligar/desligar dispositivos; 2.
Segurança: abrir/fechar portões a uma certa distância ou avisar sobre janelas e portas
abertas; 3. Redução de custos: desligamento automático de luzes e equipamentos que não
estão sendo utilizados por um tempo determinado.
Milenkovic [25] destacou que os recursos propostos na IoT no conceito das smartci-
ties (cidades inteligentes) necessita de uma ampla rede de conexão capaz de transmitir
dados para controle, gerar estatísticas e propor maior segurança a sua população, como
antecipação às previsões do clima em um determinado dia. Apesar deste crescimento ser
promissor, estas tecnologias ligadas a IoT ainda dividem espaço com dispositivos ana-
lógicos, que embora não seja recomendável, conseguem atender as necessidades de cada
usuário de um produto ou serviço [26].
2.2 Processos de Engenharia de Requisitos no Con-
texto de IoT
A evolução significativa da Internet das Coisas e sua complexidade se tornou um desafio
para a área de Engenharia de Requisitos, principalmente para a indústria 4.0 cujo en-
foque é o uso de biotecnologia, energias renováveis e nanotecnologia [11]. Para Lim et
15
al. [28], atualmente, existem estudos e aplicações voltadas ao uso da IoT como recurso
para validação de requisitos, possuindo como características individuais as vantagens e
desvantagens.
Os processos encontrados por meio da pesquisa exploratória foram evidenciados nas
subseções abaixo e intituladas com o nome do artigo publicado que contem o processo ou
o nome que os autores deram ao processo.
2.2.1 A Requirements Engineering Process for IoT Systems
Devido a falta de procedimentos sistemáticos a respeito de RE em IoT, Silva et al. [2]
descreveu um processo voltado para o desenvolvimento de sistemas em Internet das coisas
utilizando Notação para Modelagem de Processos de Negócio (BPMN). O processo é
composto por três sub-processos, em que cada um é feito de acordo com a ISO/IEC/IEEE
122071, ou seja, a norma que define processos em engenharia de software. Cada sub-
processo e o processo em si possui entradas e saídas:
Figura 2.5: Modelo de processo em RE voltado a IoT [2].
1. Definição do escopo do projeto:
Como primeiro sub-processo, descrito na Figura 2.6, a definição do escopo desem-
penha o papel importante de determinar o esquemático do projeto. O sub-processo
determina primeiramente qual é o problema e o que o sistema irá abranger. Em
seguida, determina quais são os stakeholders em potencial e, por consequência, quais
são suas vontades e desejos a respeito do projeto a ser feito. Com todas essas in-
formações agrupadas, é feita uma análise a respeito da viabilidade do sistema, se é
possível fazer o sistema e se ele está de acordo com o plano. No passo seguinte, as
necessidades dos stakeholders são transformadas em requisitos para o projeto. Esse
processo inclui todas a identificação,controle de qualidade e análise dos requisitos.
Por fim, o projeto precisa passar pela aprovação explícita de todos os envolvidos.
1https://www.iso.org/standard/63712.html
16
https://www.iso.org/standard/63712.html
Este sub-processo tem como objetivo final que as necessidades dos stakeholders se-
jam transformadas em requisitos e que todas as pessoas envolvidas estejam cientes
deles.
Figura 2.6: Sub-processo 1: Definição de escopo [2].
2. Definição do sistema IoT:
Na segunda parte do processo, o aspecto IoT do projeto é levado muito em consi-
deração em seu desenvolvimento. Seguindo o fluxograma proposto na Figura 2.7, o
propósito dessa etapa é definir os cenários IoT, identificar os componentes presentes
no sistema e identificar diversas soluções para que se possa escolher uma preferida.
Esse sub-processo determina começa propondo uma solução em IoT para o sistema,
se baseando nos requisitos dos stakeholders e do detalhamento do projeto,todos eles
feitos no sub-processo anterior. Logo , se constrói cenários IoT em alto nível, nor-
malmente em forma de narrativa ou esquemas, para o fácil entendimento de todas
as pessoas envolvidas no projeto.
Com o cenário definido, são feitas a identificação dos componentes do sistema IoT
e suas ações. Dispositivos, sensores e outros são identificados e descritos de acordo
com o cenário proposto e quais são suas ações dentro do sistema. Dessa etapa podem
surgir diversos arranjos diferentes de componentes e ações diferentes, por isso cabe
a equipe se reunir e decidir se as soluções encontradas atendem ao projeto e qual
delas escolher para serem as mais viáveis.
No final desse sub-processo os cenários IoT devem estar definidos e os componentes
e ações do sistema IoT identificados. É preciso apresentar diversas composições
para o sistema IoT além daqueles que são os mais propensos a se desenvolverem
para realmente serem implementados.
3. Definição de requisitos para o sistema IoT:
Última etapa do processo, e tem como objetivo a especificação dos componentes
IoT e verificar toda a especificação do projeto. No final desta etapa, os componen-
tes precisam estar especificados e verificados, casos de uso precisam estar criados
17
Figura 2.7: Sub-processo 2: Definição do sistema IoT [2].
e verificados. Além do vinculo dos requisitos dos stakeholders com o sistema IoT.
O sub-processo inicia uma especificação dos componentes a fim de criar uma do-
cumentaçãodetalhada sobre os dispositivos que compõem o sistema IoT. Logo em
seguida a validação dessa especificação para que não haja nenhuma inconformidade.
Com isso, é feito a especificação e a verificação dos componentes de software para
que seja possível o desenvolvimento do projeto de acordo com o planejado.
Tendo por concluído a especificação e a verificação, são feitos e verificados os casos de
uso se baseando em cada cenário criado em etapas anteriores. Estes casos abrangem
o uso dos componentes, as exceções que podem ocorrer no software. Os casos de
uso também devem abranger as regras de negócio que o sistema irá conter. Por fim,
é feito um acompanhamento para saber se todos os desejos dos stakeholders foram
atendidos nos requisitos e nas documentações. Além de verificar se os requisitos
do sistema IoT atendem aos requisitos dos stakeholders. No final do processo,
todos os componentes de software e de dispositivos devem estar especificados e
verificados,casos de uso devem ter sido feitos e o acompanhamento de requisitos IoT
e dos stakeholders deverão ter sido desempenhados.
Figura 2.8: Sub-processo 3: Definição dos requisitos para o sistema IoT [2].
2.2.2 A UML-based Proposal for IoT System Requirements Spe-
cification
Tendo como motivo a falta de processos da engenharia de requisitos voltada para IoT,
Reggio [15] apresentou o IoTReq, um processo para elicitação e especificação de requisitos
em sistemas IoT. O processo tem como diferencial sua construção em UML para toda a
construção do modelo. O IotReq primeiramente faz a modelagem em que o sistema
IoT será inserido, tendo o seu domínio extenso e possuindo várias entidades e interações
18
entre elas. Ele é feito seguindo um paradigma orientado a serviços, e usando diagramas
UML. Depois dessa fase inicial, o processo faz a descrição de diversos tipos de objetivos
que o sistema tera como projeto. Esses objetivos são propriedades ou requisitos que os
stakeholders anunciaram que o sistema deveria abranger, podendo ser divididos em:
1. Objetivos estratégicos: Primeiro requisito elicitado pelos stakeholders, normal-
mente são requisitos de alto nível e normalmente são as razões básicas que o projeto
está sendo feito. Por isso, muitas vezes são genéricos/subjetivos e deles são criados
outros requisitos;
2. Objetivos operacionais: Requisitos feitos a partir dos objetivos estratégicos, esses
objetivos são propriedades e funções que o sistema IoT apresentará. Eles represen-
tam os requisitos funcionais do projeto, são essenciais para uma boa elicitação dos
requisitos;
3. Objetivos tecnológicos: São os requisitos não funcionais do projeto, esses obje-
tivos entram no detalhe da implementação e citam quais e como certas tecnologias
serão usadas. São derivados dos objetivos operacionais e eles serão os requisitos de
mais baixo nível levantados.
Ao final, o IotReq é feito a partir de três passos, a construção de um modelo para o
domínio IoT, um esquemático para a visualização dos objetivos/relações do sistema e, por
último, a especificação desses objetivos a partir de um diagrama UML. Esse processo foi
colocado em prática com um caso de estudo realístico e conseguiu especificar os requisitos
de forma precisa e com até certa facilidade de leitura [15].
2.2.3 TrUStAPIS: A Trust Requirements Elicitation Method for
IoT
TruUStAPIS [29] é um método para elicitação de requisitos para um cenário IoT. Este
método é feito a partir da criação de domínios e dividi-los em sete tipos diferentes (usa-
bilidade, identidade, segurança, disponibilidade, privacidade, proteção e confiabilidade).
Considerando a necessidade de haver confiança entre as entidades que atuam com IoT, o
método proposto pelos autores é composto pelos seguintes elementos para a elicitação do
requisito:
1. Ator: Humano ou entidade IoT que realiza o objetivo descrito;
2. Ação: Atividade que o Ator desempenha no sistema;
3. Objetivo: Objetivo que o requisito quer alcançar no sistema;
19
4. Contexto: Faz parte do domínio do requisito, envolve as circunstancias do projeto
e os objetivos do requisito.
Para a documentação, os autores propuseram o uso de um JSON como template,
tanto por ser suportável em várias linguagens como por ser uma linguagem fácil de ser
entendida tanto por computadores como por humanos. Esse tipo de organização também
é defendida pelos autores por ter capacidade de alta rastreabilidade entre seus requisitos,
sendo possível ter um controle sobre as versões dos requisitos. Além disto, é adotado os
diagramas UML para auxiliar nas fases de elicitação e especificação de requisitos em IoT.
O TrUStAPIS é dividido em quatro etapas [29]. Na primeira etapa foi expandido o
sistema IoT para um esquemático envolvendo as entidades. Essa etapa torna mais simples
a elicitação dos requisitos por facilitar a interpretação do sistema e das necessidades do
stakeholders. A segunda parte já é a composição dos parâmetros nos JSONs baseando-
se no modelo construído na fase anterior. A terceira parte é destinada a documentação
escrita dos requisitos levantados pelo JSONs em tabelas, essa etapa tem como saída os
próprios requisitos elicitados. A quarta e última etapa é manter a rastreabilidade dos
requisitos, construindo-se novas tabelas para a associação de requisitos.
2.2.4 REM4DSPL: A Requirements Engineering Method for
Dynamic Software Product Lines
O Método para Engenharia de Requisitos para Linhas de Produtos de Software Dinâmicos
(REM4DSPL), criado por Sousa et al. [30], tem a finalidade de organizar um produto de
software com o intuito de ser adaptativos às necessidades existentes em uma companhia,
definido pelo Linha de Produto de Software Dinâmico (DSPL). O REM4DSPL é um
método para a engenharia de requisitos voltada a produtos Linha de Produto de Software
Dinâmico (DSPL). DSPL são linhas de produtos que possuem sensibilidade ao contexto
que estão inseridos e precisam estar sempre se adaptando em tempo de execução para que
suas finalidades possam ser feitas.
Sistemas IoT entram nessa categoria pois sempre são influenciadas pelo contexto pre-
sente no sistema, além da alta capacidade de adaptação necessária para poder executar
corretamente as constantes mudanças. Tendo isso em mente o Método para Engenharia
de Requisitos para Linhas de Produtos de Software Dinâmicos (REM4DSPL) pode ser um
método utilizado em IoT, onde seu processo utiliza BPMN [30]. Esse método é composto
de três fases no seu processo.
1. Elicitação dos requisitos: Colhe as características dos requisitos e identifica o
contexto e as características que o sistema e o contexto em que ele está inserido
20
deve conter. O método propõe utilizar cenários e técnicas narrativas envolvendo o
usuário e o sistema para detecta-los;
2. Especificação dos requisitos: Com base no que fora realizado na etapa anterior e
utilizando uma documentação dos cenários levantados, é realizada uma identificação
das regras de negócio e especificar as características de um Linha de Produto de
Software Dinâmico (DSPL). Sendo a etapa mais complexa deste processo, é dividido
em objetivos, sendo eles:
• Especificar os requisitos; Identificar o modelo de negócio do sistema;
• Especificar as funcionalidades do produto;
• Associar as funcionalidades com os requisitos;
• Identificar e especificar o contexto e suas características;
• Identificar as variações do contexto e modela-las.
3. Gerenciamento da mutabilidade do sistema: Como etapa final, esta fase tem
como objetivo de modelar todas as características da Linha de Produto de Software
Dinâmico (DSPL) que serão implementadas e fazer a gerencia da mutabilidade e
relação entre características e requisitos. Além disso, esta etapa faz uma verificação
nos modelos criados em busca de inconsistências presentes.
2.2.5 Modeling IoT Aplications with SysML4IoT
Costa et al. [31] propuseram uma metodologia para o desenvolvimento inicial das aplica-
ções IoT, desde a especificação dos requisitos a montagem de esquemáticos. Esse método
é baseado em diagramas UML e foca na resolução de três problemascruciais na fase de
design de um sistema IoT, como a diversidade de componentes de hardware e software
disponíveis para IoT, bem como a escassez de técnicas para a elicitação de requisitos
e seu posterior planejamento por cenários. Como resolução ao primeiro problema, o
SysML4IoT, usa um modelo que abstrai o sistema para especificar claramente os diversos
componentes e softwares que um sistema IoT apresenta, facilitando assim o entendimento
como um todo. Neste modelo o sistema é composto por dispositivos e serviços interagindo
com outros sistemas ou usuários.
Para esclarecer melhor as necessidades dos stakeholders, Costa et al. [31] usaram
tabelas para a separação dos stakeholders por habilidades e responsabilidades. Com
isso, foi criado um outro modelo contendo vários pontos de vista diferentes a respeito da
aplicação: visão funcional, de informação, operacional e outros, são citados como possíveis
entradas para essa modelagem. Por último, o método IoT DevProcess foi proposto para
21
resolver o caso do terceiro problema, a falta de métodos de design das aplicações. Esse
método utiliza da SO/IEC/IEEE 15288:2015 e da OOSEM (Object-Oriented SE Method)
para a criação de um método para aplicações IoT em desenvolvimento.
O IoT DevProcess inicia por meio da análise dos requisitos do sistema. Os requisitos
dos dispositivos são especificados, incluindo protocolos e formatos dos dados. Após essa
etapa, é feita a modelagem das entidades, são especificados os dispositivos, serviços e
recursos que o sistema terá quando estiver pronto. Nessa etapa também é criado um
modelo para o formato dos dados que os serviços dentro do sistema irá conter. O próximo
passo do método é decompor o sistema em diversos componentes que interagem entre
si baseados nos requisitos levantados, e com esses componentes criar modelos para a
visualização tanto em alto nível como com mais detalhes da composição.
2.2.6 Specifying Functional Requirements and QoS Parameters
for IoT Systems
Costa et al. [32] descreveram sobre a não trivialidade de fazer uma especificação de requi-
sitos em projetos IoT e propuseram um método para ajudar na especificação de requisitos
em sistemas IoT. O processo é chamado de Linguagem de Modelagem de Requisitos em
IoT (IoT-RML) e tem como objetivo especificar e modelar requisitos de diversos stakehol-
ders de maneira precisa e resolver os conflitos que diversos requisitos possam possuir. O
IoT-RML especifica tanto requisitos funcionais como não funcionais (Quality of Service) e
utiliza a linguagem SysML para representar os modelos utilizados no processo, com base
em diagramas UML.
O processo tem como base um modelo do domínio dos requisitos gerado quando re-
quisitos são elicitados pelos stakeholders e modelados conforme estrutura contida [32].
Nele são descritos os conflitos entre requisitos, a sua categoria e suas características. Re-
quisitos não funcionais são tratados como parâmetros QoS e considerados diferentemente
conforme a camada da arquitetura do sistema. Vale destacar que o artigo descreve os
conflitos de requisitos como de quatro tipos distintos, são eles:
1. Oposto: Conflito causado quando requisitos fazem ações opostas um do outro;
2. Numérico: Conflito em relação a unidade de medida entre um requisito e outro;
3. Duração: Aplicações requisitando o mesmo recurso mas com quantidade de tempo
de uso diferente;
4. Completude: Uma aplicação não conseguir efetuar algum requisito por causa do
uso do recurso por outra aplicação
22
Com os requisitos sendo abstraídos pelo modelo do domínio e baseado na SysML, é
criado o IoT-RML SysML Profile, que efetua todo o gerenciamento de múltiplos stakehol-
ders e conflitos entre requisitos. A partir dessas duas ferramentas, o processo entra na
etapa de resolver os conflitos e o desenvolvimento propriamente do sistema IoT proposto.
2.2.7 Design Science and ThinkLets as an Holistic Approach to
Design IoT/IoS Systems
O processo criado por Bernsteiner e Schlögl [33] utilizou dois parâmetros para a elabora-
ção de um design de sistema IoT: o Design Science e a ferramenta ThinkLets. O primeiro
parâmetro, o Design Science, é oriunda do termo Design Science Research (DSR), tendo
consigo um papel fundamental para a resolução de problemas, criando artefatos que pos-
sam atender as necessidades e aos problemas de uma companhia [34].
Apiola e Sutinen [35] destacaram a imponência do DSR em relação a outros projetos
de desenvolvimento de software, pela capacidade do DSR em utilizar um amplo e absoluto
repertório de metodologias de pesquisa ao longo das fases do processo. Ainda, para os
autores, estes processos são divididos em fases de explicação do problema, definição dos
requisitos (funcionalidades e permissões), design, desenvolvimento e validação.
Segundo Bernsteiner e Schlögl [33], é importante destacar alguns fatores que influen-
ciam o processo:
1. Construtores: Utilizados para definir um contexto geral sobre requisitos, proble-
mas de domínio e realização de artefatos;
2. Modelos: Cria uma relação entre os construtores a fim de compartilhar informações
em comum e, consequentemente, realizar configurações específicas para solução de
problemas;
3. Métodos: Ferramentas que podem ser utilizadas para verificar se os construtores
e modelos estão de acordo com o projeto de software, como exemplo, o uso de
diagramas UML.
Hevner [3] destacou as três fases que envolvem a DSR, descritas na Tabela 2.1. O
autor pondera a existência de pontes que interligam estas fases. Por exemplo, existe um
Ciclo de Relevância - que prevalece entre as fases de Meio ambiente e DSR - e possui
a responsabilidade de realizar testes de campo; o Ciclo de Design, que executa em loop
apenas dentro do contexto da DSR; por fim, o Rigor do Ciclo, atuando entre a Base de
conhecimento e o DSR na troca de informações.
ThinkLets, por outro lado, é definida como um padrão de construção genérica de
blocos capaz de atender as especificações do projeto. O seu desenvolvimento se baseia nos
23
Fases Propriedades
Ambiente do contexto
Aplicação de Domínio:
•Pessoas
•Sistemas de uma organização
•Sistemas técnicos
•Problemas e Oportunidades
Construção de um artefato de design e processosDSR Avaliação
Base de Conhecimento
Fundamentos:
•Teorias científicas
•Métodos científicos
•Experiência
•Produtos e processos do design
Tabela 2.1: Três fases do processo envolvendo a DSR [3].
processos colaborativos, designando padrões genéricos de colaboração, que deixa claro as
atividades para cada membro do projeto [33]. Consistindo de cinco fases, Kolfschoten e
de Vreede [36] descreveram a visão geral sobre o ThinkLets na Figura 2.9. Cada item
pode enviar e receber dados através das interações, as quais são:
• Diagnóstico da tarefa: através de uma conversa com os stakeholders, é discutido
questões relevantes em relação a requisitos. Para a equipe de RE, os requisitos
apresentados podem ser ajustados, negociados ou questionados;
• Decomposição da atividade: nesta fase, as atividades são divididas entre o grupo de
desenvolvimento através do ThinkLets, onde todos devem possuir uma visão ampla
do produto de software;
• Escolha da tarefa ThinkLets: após a conclusão da decomposição, o ThinkLets atua
como responsável por atribuir as atividades separadas na fase de decomposição, fase
esta que pode ser delicada;
• Construção de agenda: uma vez concluídas, as fases anteriores servem como parâ-
metro para esclarecer questionamentos, definições, objetivos, tempo que será gasto
e estimativas;
• Validação do design: na última fase do processo, todos os requisitos propostos nas
etapas anteriores são validados. Também é verificado questões acerca dos custos,
tempo gasto e outras informações complementares;
• Satisfeita as cinco etapas deste processo colaborativo, uma documentação é elabo-
rada.
24
Figura 2.9: Visão geral sobre o funcionamento da ferramenta ThinkLets [3].
Levando em consideração os dois conceitos sobre DSR e ThinkLets vistos nesta seção,
estas questões servem como base para a elaboração deuma ferramenta de design para
IoT. Utilizando a técnica de brainstorming - chamada por Bernsteiner e Schlögl [33] como
DirectedBrainstorming (Brainstorming Dirigido) - com o auxílio da ferramenta ThinkLets,
utiliza cinco parâmetros seguindo os padrões colaborativos, os quais são:
1. Distribuição de papéis: consiste nos participantes do projeto realizarem um caso
de uso em folha de papel, entregar a um moderador e, caso necessário, pode ser
elaborado mais cenários;
2. Análise dos papéis: nesta fase, através de uma discussão e da ferramenta FastFocus
(foco rápido) presente no ThinkLets, os participantes podem expressar uma visão
geral dos casos de uso feitos na fase anterior, definindo portanto um caso de uso que
não prejudique as fases seguintes;
3. Organização dos conceitos: por meio da ferramenta ThinkLet PopCornSort, tem
o intuito de estabelecer relações e dependências nos casos de uso, feito por fases
anteriores;
4. Descrição e desenvolvimento: ainda permanecendo nos termos de definição da fase
anterior, nesta etapa os casos de uso passam por uma descrição acerca dos termos
existentes na IoT - como sensoriamento, identificação e atuação - bem como meio
de comunicação, interface de usuário e outros;
25
5. Avaliação: nesta última fase, os casos de uso trabalhados ao longo do processo de
brainstorming passam por uma validação, que tem o objetivo de analisar as funções,
situações que podem ser relevantes e eventuais falhas que podem ocorrer. Esta etapa
conta com a ajuda da ferramenta BucketWalk.
Uma vez concluído as cinco etapas e atingido os objetivos em comum de cada fase
(isto é, a conclusão de um caso de uso), é utilizado ainda no processo de avaliação uma
ferramenta denominada StrawPoll, que permite a cada participante votar nos casos de
uso que forem mais relevantes ao processo. Finalizando esta questão, todo o processo é
dado como encerrado [33].
2.2.8 An Improved RE Framework for IoT-Oriented Smart Ap-
plications using Integrated Approach
Kaleem et al. [37] apresentaram um estudo para a criação de uma ferramenta de aborda-
gem integrada utilizando o conceito de smartness (inteligência) - voltada para a Internet
das Coisas - com base nos processos e técnicas de validação existentes na Engenharia de
Requisitos. Os autores destacam a utilização de frameworks para definir os processos
nesta proposta [37], adotando o uso de diagramas UML. Seu primeiro processo destaca o
ponto de partida para o estudo dos processos, seguindo uma metodologia similar à pro-
posta do processo linear elaborada por Rehman et al. [1], com foco em satisfazer as cinco
etapas:.
1. Identificação dos Stakeholders: nesta etapa, as partes interessadas entram em
uma conversa para debater o propósito do sistema, suas funcionalidades, permissões,
bem como a definição de responsabilidades acerca das áreas da Engenharia de Soft-
ware. Esta fase do processo é baseada no método Goal-Question-Metric, conceito
criado pela Universidade de Maryland para unir objetivos, questões operacionais e
métricas [38];
2. Elicitação de Requisitos: fase responsável por colher as necessidades dos sta-
keholders utilizando fatores socio-técnicos para mesclar fatores humanos, organiza-
cionais e aspectos técnicos do sistema [39];
3. Análise de Requisitos: ocorre a checagem de todas as necessidades descritas
pelos stakeholders com auxílio do Design Baseado em Modelo (MBD), ferramenta
primordial para a análise, também incluindo aspectos de verificação e validação dos
requisitos [40];
26
4. Especificação dos Requisitos: nesta fase, um workshop interativo se mostra pre-
sente dentro do framework da Engenharia de Requisitos para documentar, através
da Especificação de Requisitos de Software (SRS), todos os processos e requisitos
voltados a smartness envolvendo a IoT [37];
5. Métodos: ferramentas que podem ser utilizadas para verificar se os construtores
e modelos estão de acordo com o projeto de software, como exemplo, o uso de
diagramas UML. na última fase deste processo principal, é utilizado técnicas para
design de casos de teste - podendo ser um template ou um protótipo - para validação
e verificação do produto de software, envolvendo os stakeholders e a equipe de
desenvolvimento. Caso receba um feedback positivo, este processo é declarado como
encerrado.
2.2.9 Detecting IoT Applications Opportunities and Require-
ments Elicitation: A Design Thinking Based Approach
Dantas et al. [41] descreveram um processo de RE para IoT por meio da abordagem
Design Thinking. Este processo tenta entender os objetivos dos usuários e stakeholders
enquanto detecta os desafios e propõe soluções que não estavam sendo pensadas a primeira
vista. O processo de Design Thinking descrito pelos autores [41] é iterativo, não linear e
consta com cinco etapas principais, divididas em:
• Compreensão: Fase inicial e crucial para o sucesso no processo, nesta fase é feita a
compreensão do ponto de vista dos stakeholders. São citadas técnicas como bodys-
torming e entrevistas;
• Definição: Define qual será as características que o design do sistema terá como
foco. A Interaction Design Foundation é uma abordagem centralizada no ser hu-
mano, ampla para a criatividade e focada para que seja possível de ser concretizada;
• Idealização: Fase para se pensar em outras ideias além da qual já foi arquitetada.
Essa etapa visa ampliar a visão do time para soluções inovadoras;
• Prototipação: Criação de protótipos de alta e baixa fidelidade para que se possa
validar as ideias levantadas e adquirir mais feedbacks dos stakeholders;
• Testagem: Agrupamento dos feedbacks dos stakeholders e dos protótipos criados
ao longo do desenvolvimento do sistema. A equipe pode analisa-los e deles surgirem
uma nova ideia.
Dantas et al. [41] utilizaram três técnicas:
27
• How Might We Questions (HMW): Técnica de brainstorming que se baseia em
perguntas de "Como pode ser feito?". Os times do projeto se reúnem para analisar
os fatos e requisitos já conhecidos junto com as diversas perspectivas que cada time
deve ter a respeito do projeto. Rescrever todos essas informações em perguntas
HMW e verificar se com elas dá para se fazer outras soluções a partir de uma sessão
de brainstorming;
• Jornada do usuário: Técnica utilizada para documentar o comportamento do
usuário utilizando o produto. Cada passo que o usuário fizer no sistema é docu-
mentado, assim como o pensamento e sentimento do usuário a respeito do uso da
plataforma. Essa técnica constrói uma perspectiva do usuário e pode ser essencial
para a descoberta de algum problema ou inconsistência;
• Diagrama de afinidade: Agrupamento por setores de dados e resultados obti-
dos anteriormente a partir de um critério antes definido. Essa técnica facilita a
organização e a fluidez das ideias conforme o projeto é desenvolvido.
Dantas et al. [41] descreveram algumas ferramentas feitas para IoT que podem ser
utilizadas para o entendimento dos requisitos do sistema IoT e aplicação das técnicas
mencionadas, são elas:
• IoT Design Deck: Utilizado para fazer a integração de times para a produção de
um sistema IoT. Utiliza um deck de cartas para ajudar os times a utilizarem uma
linguagem em comum e focar na experiencia do usuário. Por meio de várias técnicas
e ferramentas, esse método garante a comunicação e entendimento do projeto IoT
que normalmente contém uma grande multidisciplinaridade;
• Tiles IoT ToolKit: Projeto em open source também baseado em cartas para
ajudar na elaboração de ideias, storyboards e explorar o cenário IoT por completo;
• IoT Service Kit: Ferramenta para IoT que baseia-se em cartões, onde existe
a interação com o design e tokens para esquematizar interações de entidades no
projeto.
2.2.10 An Evidence-Based Framework for Supporting the Engi-
neering of IoT Software Systems Mid-stage Research
Motta [42] propôs um framework composto por três etapas, a fim de evitar soluções
limitadas (considerando a coleta e processamento de dados), deixando lacunas em aberto
no quesito de validação dos requisitos em Internet das Coisas,bem como visa reforçar a
28
qualidade de desenvolvimento baseando-se nos estudos de viabilidade do projeto. Com
base na metodologia O que, Como, Quem, Quando e Por quê (5W1H), Motta apresentou
um framework composto por três fases, cada uma destas possuindo sub-rotinas.
1. Concepção: nesta etapa, é feita uma análise detalhada sobre os requisitos solici-
tados para um dispositivo IoT.
(a) Caracterização: primeira etapa do processo, é consultado na literatura as téc-
nicas existentes, com suas definições, aplicações e características, a fim de
encontrar possíveis inconsistências;
(b) Preocupações: nesta etapa, é vista as questões legais e sociais que podem
afetar um projeto em Internet das Coisas de forma negativa, como invasão
a privacidade ou coleta de dados sem a devida precaução na segurança dos
mesmos;
(c) Investigação de facetas: visa a revisão de questões que podem envolver a IoT,
como áreas de conhecimento e tópicos, etapa esta que pode ter um contexto
amplo;
(d) Proposta de um framework: com base nos dados colhidos nas etapas anterio-
res, é construído um Conjunto de Conhecimentos em IoT (BoK), baseando-se
em questões como coisas, inteligência, interatividade, meio ambiente, conecti-
vidade e comportamento, aliando um panorama dos stakeholders com desafios
e questionamentos.
2. Desenvolvimento: nesta etapa, é colocado em prática os conceitos vistos anteri-
ormente. Existem três etapas:
(a) Construção da base de conhecimento: fundamentado na criação da BoK na fase
de constituição do framework, uma segunda revisão literária se torna necessária
para analisar aspectos técnicos;
(b) Definição do projeto: nesta fase, é vista as caracterizações dos artefatos vistos
ao longo do projeto e do BoK;
(c) Definição de orientações de engenharia: nesta fase, os desenvolvedores podem
fazer algumas pontuações sobre o projeto, tais como definições, recursos e
outras questões.
3. Avaliação: na última fase do projeto, a autora destaca dois tópicos cujo estudo é
necessário para a aprovação final do projeto.
29
(a) Viabilidade: é feito um estudo para verificar se a estrutura realizada corres-
ponde aos anseios propostos na etapa de concepção do processo e se a cons-
trução do mesmo é realizável. Em consonância, pode ser agregado também a
opinião da equipe de desenvolvimento. Todas estas variáveis podem colaborar
para uma melhoria do framework.
(b) Observações: sendo a última etapa, é visto a possibilidade do projeto em si pos-
suir uma interpretação prática coerente com sua revisão teórica, questão esta
que depende da aplicação do recurso IoT (por exemplo, automação residencial
ou mobilidade urbana).
2.2.11 Non Functional Requirement Analysis in IoT based smart
traffic management system
Mahalank et al. [43] levantaram a importância do estudo e entendimento dos requisitos
não funcionais para o desenvolvimento de um sistema de software em IoT. Uma detecção
no início do processo de desenvolvimento desses requisitos levam o desenvolvimento do
sistema a ter um melhor gerenciamento de suas limitações já no começo do seu desenvol-
vimento, evitando assim um retrabalho no final do projeto. Os autores afirmaram que o
conceito de requisitos não funcionais não é muito bem definido entre os desenvolvedores
de software. Por isso, descreveram um método para analisar e especificar os requisitos não
funcionais para sistemas IoT. O método conta com três características em que os requisi-
tos não funcionais deverão ser analisados: performance, capacidade de armazenamento e
limitações para manutenção.
Mahalank et al. [43] utilizaram um sistema de tráfego inteligente como exemplo para
seu método, e para isso, cada elemento do sistema IoT a ser desenvolvido é analisado e
descrito a partir dessas características principais. Com essa análise, o nível de funciona-
mento do sistema IoT é identificado e descrito. O desenvolvimento dessas três caracte-
rísticas principais ainda pode se desdobrar em outras características menores conforme a
necessidade do projeto.
Por fim, o método proposto pelos autores [43] resumem a análise dos requisitos não
funcionais em três templates e uma checklist em que contém as informações necessárias
sobre o requisito especificado.
30
2.2.12 Horizontal Requirement Engineering in Integration of
Multiple IoT Use Cases of City Platform as a Service
Yamakami [44] descreveu a falta de metodologias para o design de sistemas IoT e propôs
um framework para ajudar a unir diferentes casos de uso dentro de sistemas IoT. Este
framework destaca os desafios que compõem a união de casos de uso e cria formas de
levá-los para os times envolvidos com o projeto, utilizando diagramas UML para fins de
ilustração. Além disso, faz uma análise sobre a associação da engenharia de requisitos
vertical com a horizontal, e o impacto de cada uma dentro da estrutura do IoT.
O framework é sucintamente composto de 3 etapas:
1. Identificação da interação entre casos de uso: Responsável por identificar a
relação que os casos de uso possuem antes de se fazer a união. Essa interação pode
ser de:
• Inclusão: Um caso de uso é incluso em outro caso de uso;
• Sobreposição: Há somente uma parte de um caso de uso que é compartilhada
com outro;
• Diferenciais ocultos: Existem aspectos ocultos no desenvolvimento,implantação
ou no operacional entre esses casos de uso;
• Requisitos conflitantes: Requisitos de diferentes casos de uso possuem con-
flitos entre si;
2. Identificação de coordenação: Essa fase, é responsável por fazer a coordenação
entre as diferentes fases de arquitetura do sistema a ser construído. Muitas vezes,
o projeto possui diversas equipes trabalhando de forma independente, por isso, é
importante garantir que que os times tenham em mente o que cada parte tem
como arquitetura planejada.Se o projeto estiver bem definido, essa fase irá somente
confirmar os requisitos da arquitetura projetada.
3. Identificação de impacto: Essa etapa lida com os impactos que a união de casos
de uso podem efetuar no sistema IoT. Os autores ainda quantificam a gravidade do
impacto, e se não houve nenhum impacto nessas uniões que levaram a revisões e
criação de novos requisitos e, com isso, impactando diversas partes [44].
Checklists e tabelas também são utilizadas para auxiliar as etapas do framework. Elas
tem objetivo de tornar mais claro o processo para o utilizador. O framework proposto por
Yamakami et al. [44] apesar de estar em estágios iniciais, tem como função guiar os times
de desenvolvedores que trabalham no mesmo projeto mas em áreas diferentes, a identificar
31
e verificar com mais facilidades os aspectos do projeto, minimizando retrabalhos e conflitos
de requisitos.
2.2.13 Towards Modelling and Analysis of Spatial and Temporal
Requirements
Touzani e Ponsand [45] descreveram um modelo para integração e análise de requisitos de
espaço-tempo no desenvolvimento de sistemas com contexto de IoT a partir da Engenharia
de Requisitos e do Sistema de Informação Geográfica (GIS). Características temporais são
estudadas e analisadas com muito mais ênfase do que características espaciais, estas só
vistas em sistemas mais específicos. Apesar disso, Touzani e Ponsand [45] destacaram
a importância que a união das características de tempo e espaço podem ter em revelar
problemas antes não vistos e tornar mais claro o sistema a ser construído.
A modelagem e integração desses requisitos é feita a partir de um método baseado
em Engenharia de Requisitos Orientada por Objetivos (GORE), o conceito de Manter
Todos os Objetivos Satisfeitos (KAOS) e a representação dos modelos por um diagrama
UML. Com isso, são feitas as integrações dos modelos de domínio e de objetivos com
características especiais e temporais. A integração de requisitos espaço temporais gera
um refinamento nos requisitos gerados baseando no fato das condições serem mais preci-
samente representadas. Outro ponto positivo é na checagem de requisitos, pois conforme
as restrições são colocadas, mais pontos de validação são criados.
A proposta realizada pelos autores

Continue navegando