MODELOS DE ANÁLISE PARA UM EDITOR DE REQUISITOS PARA
SUPORTE A LINGUAGEM RELAX
Gabriel Bronzatti Moro
Universidade Federal do Pampa - Campus Alegrete
gabrielmoro@alunos.unipampa.edu.br
João Pablo Silva da Silva
Universidade Federal do Pampa - Campus Alegrete
joaosilva@unipampa.edu.br
Resumo. Este trabalho tem por objetivo
apresentar os modelos de análise gerados
nas primeiras fases de desenvolvimento de
um editor de requisitos que ofereça suporte
a linguagem Relax. Primeiramente foi
realizado um estudo aprofundado sobre
Engenharia de Requisitos, Sistemas
Autoadaptativos e Linguagem RELAX, após
isso foi realizado uma revisão sistemática
para explorar os trabalhos relacionados e
por fim foi desenvolvido os artefatos de
análise: estórias e o modelo de domínio.
Palavras-chave: Sistemas Autoadaptativo.
Engenharia de Requisitos. Linguagem
RELAX.
1.
INTRODUÇÃO
O desenvolvimento de Sistemas
Autoadaptativos (SAs) requer soluções
diferentes da Engenharia de Requisitos (ER)
tradicional, pois, esses sistemas tratam de
aspectos de incerteza nos requisitos e a
contínua troca de contexto. Esses fatores,
muitas vezes não podem ser previstos na
fase de projeto (QURESHI; PERINI, 2010a).
Whittle et al. (2010) propõe uma solução
para auxiliar o processo de ER para SAs,
uma linguagem estruturada para a
especificação de requisitos que envolvem
aspectos de incerteza. Diferentemente da
especificação de requisitos clássica, a qual
determina os possíveis requisitos, essa
linguagem permite a representação das
fontes geradoras de incerteza nos requisitos.
Além disso, Whittle et al. (2010) destacam a
falta de suporte para a criação e
especificação real de requisitos em SA.
Percebe-se que, os tópicos mais pesquisados
estão relacionados com as técnicas de apoio
a análise de requisitos (SAWYER et al.,
2010;
QURESHI;
PERINI,
2010b;
QURESHI;
PERINI,
2009),
o
monitoramento de contexto (QURESHI;
PERINI, 2010a; BENCOMO et al., 2010) e
as abordagens arquiteturais e de projeto
(BENCOMO et al., 2012; WELSH;
SAWYER, 2010). Nesse sentido, identificase a carência de ferramentas para apoiarem o
processo de ER para SAs.
O problema abordado no presente
trabalho é a falta de suporte para a
linguagem RELAX criada por Whittle et al.
(2010). Vale salientar que, esse trabalho faz
parte de um projeto maior, o qual é
destinado ao desenvolvimento (análise,
projeto, codificação e testes) de uma
ferramenta de suporte a linguagem RELAX.
O presente trabalho está organizado da
seguinte maneira: na seção 2 serão
abordados os conceitos da fundamentação
teórica como ER, SA e a linguagem
RELAX; quanto a seção 3 será apresentado
os trabalhos relacionados; já na seção 4 será
apresentado os modelos de análise; e o
trabalho é finalizado com as conclusão
(seção 5) e as referências utilizadas.
2.
FUNDAMENTAÇÃO
Nessa seção será apresentado os
principais conceitos relacionados a ER, SAs
e sobre a linguagem RELAX.
XXVI CONGRESSO REGIONAL DE INICIAÇÃO CIENTÍFICA E TECNOLÓGICA
EM ENGENHARIA – CRICTE 2014
8 a 10 de outubro de 2014 – Alegrete – RS – Brasil
2.1 Engenharia de Requisitos
Sommerville (2011) define a ER
como o processo de investigação, análise,
especificação e validação de serviços ou
restrições que um sistema deve oferecer.
Pressman
(2011)
complementa
essa
definição destacando que a utilização da ER
permite o entendimento do desenvolvimento
de software a ser realizado, ou seja, o quanto
deve ser projetado, codificado e validado,
quais as regras de negócio que o projeto
deve atender, a definição das prioridades de
trabalho e quais são os requisitos mais
relevantes e necessários. Pfleeger e Atlee
(2010) acrescentam que o objetivo do
processo é entender o problema do cliente e
quais são suas necessidades.
Na Figura 1 é possível visualizar as
principais fases de um processo de ER. Na
fase de investigação o problema do cliente é
conhecido, nessa fase pode ser utilizado
técnicas para o levantamento de requisitos
(etnografia, questionários, entrevistas e
assim por diante), o conjunto de entrada
dessa fase é o universo de informações que
compreende diversas fontes de requisitos. Já
na fase de análise, as informações obtidas na
investigação serão categorizadas em
requisitos funcionais, não funcionais, entre
outros (SOMMERVILLE, 2011).
Figura 1. Processo de ER.
requisitos especificados ou categorizados são
revisados afim de identificar inconsistências,
pode ser utilizado nessa fase técnicas como
revisões, casos de teste e protótipos
(SOMMERVILLE, 2011).
2.2 Sistemas Autoadaptativos
Diferentemente
dos
sistemas
tradicionais que são baseados no princípio
da
menor
surpresa1,
os
sistemas
autoadaptativos são capazes de surpreender
seus usuários com ações inesperadas afim de
suprir suas necessidades. Esses sistemas
podem ser definidos como sistemas que
correspondem as mudanças do ambiente
podendo alterar o seu estado ou
comportamento de acordo com elas
(WHITTLE et al., 2010).
Na Figura 2 pode-se visualizar
diversas propriedades que podem representar
um
comportamento
autoadaptativo
(JUNIOR, 2013). A autogestão é uma
propriedade essencial em um sistema
autoadaptativo, pois, através dela o software
é ciente das suas funcionalidades, possíveis
combinações para adaptar um novo
componente que pode pertencer a outra
tecnologia.
Já
a
propriedade
de
autoconfiguração permite que o sistema
adicione ou remova componentes em tempo
de execução (SURI; CABRI, 2014). Quanto
a propriedade de autorecuperação permite
identificar falhas de software ou hardware.
Figura 2. Propriedades de um Sistema Autoadaptativo.
Soma-se a essas fases a fase de
Especificação, nela os requisitos serão
convertidos em um formato padrão, nessa
fase pode ser utilizado dois tipos de
documentos, o documento de definição de
requisitos que é destinado ao cliente, através
desse o cliente terá acesso aos serviços e
restrições que o sistema implementará e o
documento de especificação que servirá
como base de conhecimento para a equipe de
projeto, pois, conterá todos os detalhes sobre
os requisitos (PFLEEGER; ATLEE, 2010).
Quanto a fase de validação, é nela que os
Acrescenta-se a essas propriedades a
autoexplicação, através dela é possível que o
sistema justifique ao usuários suas ações e
1
O princípio da menor surpresa é derivado da
engenharia humana, o qual diz que um software
deve condizer com as experiências, expectativas e
modelos mentais dos usuários
(SALTZER;
KAASHOEK, 2009).
XXVI CONGRESSO REGIONAL DE INICIAÇÃO CIENTÍFICA E TECNOLÓGICA
EM ENGENHARIA – CRICTE 2014
8 a 10 de outubro de 2014 – Alegrete – RS – Brasil
resultados. Já a propriedade de autoproteção
permite que o software evite ataques que
ameaçam suas funcionalidades ou seus
dados.
2.3 Linguagem Relax
A linguagem RELAX foi proposta
por Whittle et al.(2010) para apoiar os
desenvolvedores na especificação de
requisitos para SAs. Essa linguagem fornece
recursos de sua sintáxe para representar
aspectos ambientais, temporais e de
incerteza nos requisitos (WHITTLE et
al.,2010). Nas Figuras 3 e 4, pode-se
visualizar um exemplo de aplicação da
linguagem RELAX em um requisito textual.
Figura 3. Requisito especificado textualmente (modo
informal) utilizando operadores RELAX (WHITTLE et
al.,2010).
A Figura 3 apresenta um requisito
textual que utiliza operadores RELAX, os
quais representam diferentes aspectos
(ambientais, temporais e de incerteza) no
requisito 1, o qual é definido que o
frigorífico deve detectar e comunicar como
muitos os alimentos com embalagens
quando possível. Já na Figura 4 o mesmo
requisito é apresentado utilizando expressão
gramática e também a figura apresenta o
expressão formal da linguagem, nela
encontra-se um quantificador 'AGF' o qual
define que o sistema deve usar todos seus
recursos, já o delta representa as ocorrências
de pacotes de alimentos embalados ('p').
Figura 4. Requisito especificado de duas maneiras,
utilizando a gramática da linguagem e outro a sintáxe
formal (WHITTLE et al.,2010).
3.
TRABALHOS RELACIONADOS
As ferramentas de apoio à ER
estudadas foram: diagramação de modelos,
verificação e validação de requisitos,
geração de modelos, especificação de
requisitos e apoio a metodologias. Na
diagramação de modelos temos as
ferramentas: STS-Tool que é proposta por
Butler et al. (2011), essa ferramenta apoia a
linguagem STS de mapeamento de requisitos
de segurança; CLSD que é proposta por
Azevedo et al. (2011), essa ferramenta apoia
a criação de diagramas Braistorm e Beckers
et al.(2013) apresenta uma ferramenta
gráfica para representar cenários de nuvem
(CSAP). Quanto o grupo de verificação e
validação de requisitos, esse é representado
pela ferramenta FSER que auxilia na
validação automatizada de especificações de
requisitos, tal ferramenta é proposta por Ito
et al. (2011).
Além disso, na categoria de geração de
modelos tem-se a ferramenta PLAORA que
gera automaticamente modelos de feature,
tal ferramenta é proposta por Varela et al.
(2011). Na categoria de especificação de
requisitos tem-se a ferramenta FGD-Relicit,
a qual apoia tal técnica e seus autores são
MK et al. (2009). Acrescenta-se a essas
ferramentas o grupo de apoio a técnicas
desenvolvidas.
Nesse
grupo
temos:
REFINTO proposta por Umoh et al. (2011),
atua como solução de apoio ao
desenvolvimento de aplicativos financeiros;
DODT tool apresentada por Daramola et al.
(2012), a qual gerencia requisitos de
segurança de maneira automatizada e
KROSA tool que analiza requisitos afim de
identificar/previnir erros ou problemas, tal
ferramenta é apresentada por Daramola et al.
(2011).
Quanto as ferramentas que oferecem suporte
a ER para SA temos: RE-Context, CAAS
Requirements Elicitation and System Design
e a AutoRelax. A RE-Context fornece
recursos para a detecção automatizada de
erros em modelos meta-contextuais, através
da análise de inconscistências e de requisitos
conflitantes, tal ferramenta é proposta por
Ali et al. (2014). Já a CAAS proposta por
Hussein et al. (2013), é uma ferramenta que
apoia a especificação de variantes de
requisitos. Acrescenta-se essas ferramentas a
AutoRelax, apresentada por Fredericks et al.
(2014), essa ferramenta automatiza o
processo de análise de modelos orientados a
metas, gerando possíveis soluções em
modelos objetivos RELAX.
4. MODELOS DE ANÁLISE
XXVI CONGRESSO REGIONAL DE INICIAÇÃO CIENTÍFICA E TECNOLÓGICA
EM ENGENHARIA – CRICTE 2014
8 a 10 de outubro de 2014 – Alegrete – RS – Brasil
Essa seção aborda os modelos
desenvolvidos nas fases preliminares do
desenvolvimento da ferramenta.
Primeiramente foi desenvolvido
estórias de usuário para visualizar as
principais necessidades que o desenvolvedor
e quais os recursos que o sistema deverá
implementar. Na Tabela 1 é possível
visualizar tal abordagem.
Tabela 1. Estórias de Usuário.
ID
DESCRIÇÃO
1
Como desenvolvedor, quero escrever requisitos utilizando a
linguagem RELAX, para que eu possa expressar os aspectos
ambientais e de incerteza nos requisitos de SAs.
2
Como desenvolvedor, quero salvar minha especificação de
requisitos, para que eu possa editá-la em outro momento.
3
Como desenvolvedor, quero gerar a especificação de
requisitos em diferentes formatos, afim de que eu possa
utilizá-los para diferentes finalidades.
4
Como desenvolvedor, quero converter minha especificação
RELAX em um modelo semântico, para que nas fases
posteriores do projeto seja possível a compreensão dos
requisitos por diferentes papéis da equipe de
desenvolvimento como analistas, projetistas, codificadores,
testadores e assim por diante.
5
Como desenvolvedor, quero verificar os erros sintáticos da
minha especificação, para que eu possa construí-la e mantéla com mais qualidade.
6
Como desenvolvedor, quero verificar o log do sistema, para
que seja possível identificar erros de interpretação e
processamento da especificação de requisitos de entrada.
Além das estórias foi desenvolvido
um modelo de domínio, o qual apresenta os
principais conceitos derivados do contexto
do problema. Na Figura 4. é possível
visualizar tal modelagem.
Figura 4. Modelo de domínio.
Dentre os conceitos apresentados na
modelagem de domínio, vale salientar que o
mesmo centraliza a maior parte das
responsabilidades no interpretador. A partir
desse todas as ações necessárias serão
realizadas,
como
compreensão
da
especificação de entrada, acesso ao
dicionário de dados, conversão (que utilizará
termos do dicionário, providos pelo
interpretador) e verificação de erros na
especificação.
5. CONCLUSÃO
Esse estudo faz parte de um trabalho
maior,
o
qual
é
destinado
ao
desenvolvimento da ferramenta (análise,
projeto e implementação) que ofereça
suporte a linguagem RELAX e apoie a
especificação de requisitos para SAs.
Por meio desse estudo foi possível
conhecer
ferramentas
propostas
por
diferentes autores, as quais serviu como base
de conhecimento para a construção dos
artefatos de análise.
REFERÊNCIAS
WHITTLE, J. et al. Relax: a language to address uncertainty in
self-adaptive systems requirement. Requirements Engineering,
Springer, 2010.
SAWYER, P. et al. Requirements-aware systems: A research
agenda for re for self-adaptive systems. IEEE, 2010.
QURESHI, N. A.; PERINI, A. Engineering adaptive requirements.
IEEE, 2009, 2010.
QURESHI, N. A.; PERINI, A. Continuous adaptive requirements
engineering: An architecture for self-adaptive service-based
applications. IEEE, 2010.
BENCOMO, N. et al. Requirements reflection: requirements as
runtime entities. ACM, 2010, 2012.
WELSH, K.; SAWYER, P. Understanding the scope of uncertainty
in dynamically adaptive systems. Springer, 2010.
SOMMERVILLE, I. Engenharia de Software. Pearson, 2011.
PRESSMAN, R. Engenharia de Software. McGraw Hill, 2011.
PFLEEGER, S.; ATLEE, J. Software Engineering: Theory and
Practice. Prentice Hall, 2010.
BUTLER, B.; TSSG, A. B. Secure and trustworthy composite
services. 2011.
AZEVEDO, D. et al. An integrative approach to diagram-based
collaborative brainstorming: a case study. 2011.
ALI, R.; DALPIAZ, F.; GIORGINI, P. Reasoning about contextual
requirements for mobile information systems. University of Trento,
2011, 2013 and 2014
ITO, M. et al. Support tool to the validation process of functional
requirements. IEEE, 2011.
UMOH, E.; SAMPAIO, P. R. F.; THEODOULIDIS, B. Refinto:
An ontology-based requirements engineering framework for
business-it alignment in financial services organizations. IEEE,
2011.
MK, Z. M. Z.; S, S. Supporting collaborative requirements
elicitation using focus group discussion technique. IEEE, 2009.
BECKERS, K. et al. Structured pattern-based security
requirements elicitation for clouds. IEEE, 2013.
DARAMOLA, G. S. O.; STALHANE, T. Pattern-based security
requirements specification using ontologies and boilerplates. 2011,
2012.
HUSSEIN, M. et al. Scenario-based validation of requirements for
context-aware adaptive services. In: IEEE, 2013.
FREDERICKS, E. M.; DEVRIES, B.; CHENG, B. H. Autorelax:
automatically relaxing a goal model to address uncertainty.
Springer, 2014.
XXVI CONGRESSO REGIONAL DE INICIAÇÃO CIENTÍFICA E TECNOLÓGICA
EM ENGENHARIA – CRICTE 2014
8 a 10 de outubro de 2014 – Alegrete – RS – Brasil
Download

MODELOS DE ANÁLISE PARA UM EDITOR DE