MODELOS DE ANÁLISE PARA UM EDITOR DE REQUISITOS PARA SUPORTE A LINGUAGEM RELAX Gabriel Bronzatti Moro Universidade Federal do Pampa - Campus Alegrete [email protected] João Pablo Silva da Silva Universidade Federal do Pampa - Campus Alegrete [email protected] 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