Dentro do contexto da Engenharia de Software, a questão da evolução do software tem sido uma preocupação válida há aproximadamente meio século. Esta questão é importante em Engenharia de Software porque sistemas de software, assim como a economia, o jornalismo, o meio-ambiente e outras áreas, também sofrem os efeitos da globalização. O ambiente operacional de um número cada vez maior de sistemas de software é global, aberto, parcialmente desconhecido e imprevisível. Software, portanto, deve evoluir para conseguir lidar com estas questões (em termos evolutivos, sobreviver). Tal evolução pode ocorrer apenas no nível de código ou de projeto de arquitetura, porém o tipo mais importante de evolução é a que acontece no nível dos requisitos e do ambiente, para garantir que o sistema continua a atender às necessidades de seus stakeholders e às restrições (físicas, econômicas, legais, etc.) do seu ambiente operacional.
Uma instância particular de evolução de software é aquela que se dá de forma (semi-)autônoma, ou seja, no contexto de sistemas autonômicos ou adaptativos. Sistemas Adaptativos são aqueles que avaliam seu próprio comportamento e o modificam quando há indícios de que este não está satisfazendo as intenções para as quais o software foi construído ou quando funcionalidade ou desempenho melhores são possíveis. Tal avaliação é feita, necessariamente, por meio de um ciclo de retroalimentação (feedback loop) como, por exemplo, o ciclo MAPE (monitoring, analyze, plan, execute), proposto para os sistemas autonômicos. Neste caso, as evoluções possíveis já encontram-se programadas neste ciclo de retroalimentação.
Tanto no caso de evolução não-antecipada quanto no caso de sistemas adaptativos, em que a evolução já está programada, requisitos possuem papel central na Evolução de Software, ou seja, é importante que se discuta o suporte a evolução e adaptação no contexto da Engenharia de Requisitos. Frequentemente, são mudanças nos requisitos dos stakeholders que disparam atividades de evolução de software. Sem levar em consideração os requisitos, não é possível garantir que as necessidades dos stakeholders estejam sendo atendidas ou que as escolhas no contexto da evolução do software sejam as mais adequadas. Isto não impede, claro, que soluções sejam estudadas e aplicadas também em outros âmbitos como, por exemplo, nos componentes da arquitetura do software.
ROSE – Requirements, Ontologies and Software Evolution – é um projeto de pesquisa contemplado na Chamada MCTIC/CNPq Nº 28/2018 – Universal do CNPq e coordenado pelo prof. Vítor E. Silva Souza. Neste projeto, nos concentramos no domínio da Engenharia de Requisitos (Requirements Engineering ou RE) e, em particular, na Engenharia de Requisitos Orientada a Objetivos (Goal-Oriented Requirements Engineering ou GORE). Ao analisar a questão da Evolução de Software sob a perspectiva da Engenharia de Requisitos, nos deparamos com a necessidade de criar representações (modelos) de requisitos e demais conceitos relacionados para que tais representações guiem a evolução do software. Dada a existência de inúmeras abordagens para representação de modelos de requisitos e o fato de representarmos requisitos desde as fases iniciais do levantamento até a execução do software, incorremos, inevitavelmente, em problemas de modelagem conceitual como sobrecarga, excesso, redundância e incompletude de construtos. Como exemplo de sobrecarga, o construto requisito pode significar uma intenção de um stakeholder em uma fase inicial de levantamento, um artefato documental que representa uma possível solução em uma fase subsequente, ou até mesmo um artefato de código em tempo de execução que permita a um sistema adaptativo raciocinar em cima de seu modelo de requisitos.
Neste projeto, utilizamos ontologias como ferramentas conceituais para tratar estes e outros problemas de modelagem conceitual no domínio de GORE e com foco em questões relacionadas à Evolução de Software. Uma ontologia como artefato computacional, i.e., uma especificação explícita e formal de uma conceituação compartilhada, pode auxiliar na mitigação destes problemas e já vem atraindo interesse na comunidade de RE. Ao explicitar e definir formalmente os conceitos, relações e restrições em um domínio de interesse, uma ontologia pode ser usada para facilitar a integração de dados, modelos e sistemas desenvolvidos de forma independente, para apoiar a comunicação entre pessoas trabalhando nesse universo de discurso e como uma especificação reutilizável para a construção de sistemas no domínio. Em outras palavras, ontologias são amplamente aceitas na literatura como ferramentas para prover semântica e interoperabilidade entre entidades com naturezas distintas.
Objetivos
O objetivo geral deste projeto é utilizar ontologias como ferramentas conceituais no domínio da Engenharia de Requisitos de Software, particularmente no contexto da Engenharia de Requisitos Orientada a Objetivos (GORE) e com foco em questões relacionadas à Evolução de Software. Este objetivo geral pode ser desmembrado nos seguintes objetivos específicos:
- O1. Realizar análise ontológica das principais linguagens de modelagem GORE, visando propor uma linguagem unificada, ontologicamente bem fundamentada, para Engenharia de Requisitos Orientada a Objetivos;
- O2. Desenvolver métodos e ferramentas baseados em ontologias para auxiliar na integração de artefatos produzidos durante todo o ciclo de vida de um software, visando propor abordagens de gerência de configuração e evolução de software centradas neste arcabouço semântico;
- O3. Desenvolver métodos e ferramentas baseados em ontologias para o desenvolvimento de sistemas adaptativos centrados em requisitos, como um aspecto particular no domínio de evolução de software, i.e., softwares que se adaptam/evoluem de maneira (semi-)autônoma.
Recursos relacionados ao projeto
Ao final da página são listadas as publicações relacionadas ao projeto (publicadas durante o projeto e também anteriormente, dentro do mesmo contexto de pesquisa). Listamos abaixo outros recursos relacionados às publicações do projeto:
Artefatos relacionados ao artigo “GORO 2.0: Evolving an Ontology for Goal-Oriented Requirements Engineering”:
- GORO 2.0 CQs: o conjunto completo de questões de competência da GORO 2.0;
- GORO 2.0 Mapping: o mapeamento completo dos conceitos da GORO 2.0 para os construtos de GBRAM, GRL, GSN, i*, iStar, KAOS, NFR, Techne e Tropos;
- nemo-ufes/gorotool: repositório de código-fonte da ferramenta de conversão de modelos GORE baseada na GORO 2.0;
- nemo-ufes/gorotool/wiki: wiki da ferramenta de conversão de modelos GORE baseada na GORO 2.0, com instruções em como utilizá-la.
Artefatos relacionados à dissertação de mestrado “GORO: uma ontologia sobre requisitos orientados a objetivos”:
- GORO 2019 Experiment Results: arquivos relacionados ao experimento ao qual membros do NEMO foram convidados a participar, produzindo modelos de diferentes linguagens GORE para uma comparação entre os modelos usando GORO para interoperar as linguagens.
Publicações relacionadas ao projeto
2019
- C. H. Bernabé, V. S. E. Souza, R. A. de Falbo, R. S. S. Guizzardi, and C. Silva, “GORO 2.0: Evolving an Ontology for Goal-Oriented Requirements Engineering,” in Proc. of the 2019 International Workshop on Ontologies and Conceptual Modelling (Onto.com 2019), Salvador, BA, Brazil, 2019, p. 169–179.
- C. H. Bernabé, P. P. Negri, V. S. E. Souza, R. S. S. Guizzardi, and C. Silva, “Using GORO to Provide Ontological Interpretations of iStar Constructs,” in Proc. of the 12th International i* Workshop (iStar 2019), Salvador, BA, Brazil, 2019, p. 1–7.
- C. Almendra, C. Silva, V. S. E. Souza, R. S. S. Guizzardi, and C. H. Bernabé, “iStar2.0-OWL: an Operational Ontology for iStar,” in Proc. of the 12th International i* Workshop (iStar 2019), Salvador, BA, Brazil, 2019, p. 1–7.
2018
- C. C. Peçanha, B. B. Duarte, R. A. Falbo, and V. E. S. Souza, “RASO: an Ontology on Requirements for the Development of Adaptive Systems,” Cadernos do IME – Série Informática, vol. 41, iss. 1, p. 57–76, 2018.
- C. C. Peçanha, B. B. Duarte, and V. E. S. Souza, “RASO: an Ontology on Requirements for the Development of Adaptive Systems,” in Proc. of the 21st Workshop on Requirements Engineering (WER 2018), Rio de Janeiro, RJ, Brasil, 2018, p. 1–14.
- B. B. Duarte, R. A. Falbo, G. Guizzardi, R. S. S. Guizzardi, and V. E. S. Souza, “Towards an Ontology of Software Defects, Errors and Failures,” in Proc. of the 37th International Conference on Conceptual Modeling (ER 2018), Xi’an, China, 2018, p. 349–362.
- B. B. Duarte, A. L. C. Leal, R. A. de Falbo, G. Guizzardi, R. S. S. Guizzardi, and V. E. S. Souza, “Ontological foundations for software requirements with a focus on requirements at runtime,” Applied Ontology, vol. 13, iss. 2, p. 73–105, 2018.
- K. Angelopoulos, A. V. Papadopoulos, V. E. S. Souza, and J. Mylopoulos, “Engineering Self-Adaptive Software Systems: From Requirements to Model Predictive Control,” ACM Transactions on Autonomous and Adaptive Systems, vol. 13, iss. 1, p. 1:1–1:27, 2018.
2017
- C. H. Bernabé, P. P. Negri, B. B. Duarte, A. L. C. de Leal, R. S. S. Guizzardi, and V. E. S. Souza, “Unagi: Uma ferramenta para suporte à Modelagem de Requisitos de Sistemas Adaptativos,” in Anais da Sessão de Ferramentas do 8º Congresso Brasileiro de Software: Teoria e Prática (CBSoft 2017), Fortaleza, CE, Brazil, 2017, p. 1–8.
- P. P. Negri, V. E. S. Souza, A. L. C. de Leal, R. A. Falbo, and G. Guizzardi, “Towards an Ontology of Goal-Oriented Requirements,” in Proc. of the 20th Ibero-American Conference on Software Engineering (CIbSE 2017), Requirements Engineering track, Buenos Aires, Argentina, 2017.
2016
- B. B. Duarte, V. E. S. Souza, A. L. C. de Leal, R. A. Falbo, G. Guizzardi, and R. S. S. Guizzardi, “Towards an Ontology of Requirements at Runtime,” in Proc. of the 9th International Conference on Formal Ontology in Information Systems (FOIS 2016), Annecy, France, 2016, p. 255–268.
- K. Angelopoulos, A. V. Papadopoulos, V. E. S. Souza, and J. Mylopoulos, “Model predictive control for software systems with CobRA,” in Proc. of the 11th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2016), Austin, TX, USA, 2016, p. 35–46.
2015
- K. Angelopoulos, V. E. S. Souza, and J. Mylopoulos, “Capturing Variability in Adaptation Spaces: A Three-Peaks Approach,” in Proc. of the 34th International Conference on Conceptual Modeling (ER 2015), Stockholm, Sweden, 2015, p. 384–398.
2014
- J. Pimentel, J. F. B. Castro, J. Mylopoulos, K. Angelopoulos, and V. E. S. Souza, “From requirements to statecharts via design refinement,” in Proc. of the 29th Annual ACM Symposium on Applied Computing (ACM SAC 2014), 2014, p. 995–1000.
- K. Angelopoulos, V. E. S. Souza, and J. Mylopoulos, “Dealing with multiple failures in Zanshin: a control-theoretic approach,” in Proc. of the 9th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2014), 2014, p. 165–174.
- F. Dalpiaz, V. E. S. Souza, and J. Mylopoulos, “The many faces of operationalization in goal-oriented requirements engineering,” in Proc. of the 10th Asia-Pacific Conference on Conceptual Modelling (APCCM 2014), 2014, p. 3–7.
2013
- V. E. S. Souza and J. Mylopoulos, “Designing an adaptive computer-aided ambulance dispatch system with Zanshin: an experience report,” Software: Practice and Experience, vol. 45, iss. 5, p. 689–725, 2013.
- V. E. S. Souza, A. Lapouchnian, K. Angelopoulos, and J. Mylopoulos, “Requirements-driven software evolution,” Computer Science – Research and Development, vol. 28, iss. 4, p. 311–329, 2013.
- J. Pimentel, K. Angelopoulos, V. E. S. Souza, J. Mylopoulos, and J. F. B. Castro, “From Requirements to Architectures for Better Adaptive Software Systems,” in Proc. of the 6th International i* Workshop (iStar 2013), 2013, p. 91–96.
- V. E. S. Souza and R. S. S. Guizzardi, “Usando Modelos de Requisito em Tempo de Execução: Potencial e Desafios,” in Proc. of Requirements Engineering@Brazil 2013 (ER@BR 2013), 2013, p. 1–6.
- S. Ingolfo and V. E. S. Souza, “Law and Adaptivity in Requirements Engineering,” in Proc. of the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2013), 2013, p. 163–168.
- G. Tallabaci and V. E. S. Souza, “Engineering Adaptation with Zanshin: an Experience Report,” in Proc. of the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2013), 2013, p. 93–102.
- K. Angelopoulos, V. E. S. Souza, and J. Pimentel, “Requirements and Architectural Approaches to Adaptive Software Systems: A Comparative Study,” in Proc. of the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2013), 2013, p. 23–32.
- V. E. S. Souza, A. Lapouchnian, W. N. Robinson, and J. Mylopoulos, “Awareness Requirements,” in Software Engineering for Self-Adaptive Systems II, R. Lemos, H. Giese, H. A. Müller, and M. Shaw, Eds., Springer, 2013, vol. 7475, p. 133–161.
2012
- V. E. S. Souza, A. Lapouchnian, and J. Mylopoulos, “Requirements-Driven Qualitative Adaptation,” in Proc. of the 20th International Conference on Cooperative Information Systems (CoopIS 2012), Rome, Italy, 2012, p. 342–361.
- V. E. S. Souza, “Requirements-based Software System Adaptation,” PhD Thesis, University of Trento, Italy, 2012.
- V. E. S. Souza, “A requirements-based approach for the design of adaptive systems,” in Proc. of the 34th International Conference on Software Engineering (ACM Student Research Competition), 2012, p. 1635–1637.
- V. E. S. Souza, A. Lapouchnian, and J. Mylopoulos, “(Requirement) Evolution Requirements for Adaptive Systems,” in Proc. of the 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2012), 2012, p. 155–164.
- V. E. S. Souza, J. Mazón, I. Garrigós, J. Trujillo, and J. Mylopoulos, “Monitoring Strategic Goals in Data Warehouses with Awareness Requirements,” in Proc. of the 2012 ACM Symposium on Applied Computing (ACM SAC 2012), 2012, p. 1075–1082.
2011
- V. E. S. Souza, A. Lapouchnian, and J. Mylopoulos, “System Identification for Adaptive Software Systems: a Requirements Engineering Perspective,” in Proc. of the 30th International Conference on Conceptual Modeling (ER 2011), Brussels, Belgium, 2011, p. 346–361.
- V. E. S. Souza and J. Mylopoulos, “From Awareness Requirements to Adaptive Systems: a Control-Theoretic Approach,” in Proc. of the 2nd International Workshop on Requirements@Run.Time (RRT 2011), 2011, p. 9–15.
- R. Ali, F. Dalpiaz, P. Giorgini, and V. E. S. Souza, “Requirements Evolution: From Assumptions to Reality,” in Proc. of the 12th International Conference on Enterprise, Business-Process and Information Systems Modeling, London, UK, 2011, p. 372–382.
- V. E. S. Souza, A. Lapouchnian, W. N. Robinson, and J. Mylopoulos, “Awareness Requirements for Adaptive Systems,” in Proc. of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2011), 2011, p. 60–69.
2010
- R. Ali, A. K. Chopra, F. Dalpiaz, P. Giorgini, J. Mylopoulos, and V. E. S. Souza, “The Evolution of Tropos: Contexts, Commitments and Adaptivity,” in Proc. of the 4th International i* Workshop (iStar 2010), 2010, p. 15–19.
2009
- V. E. S. Souza and J. Mylopoulos, “Monitoring and Diagnosing Malicious Attacks with Autonomic Software,” in Proc. of the 28th International Conference on Conceptual Modeling (ER 2009), Gramado, RS, Brazil, 2009, p. 84–98.
Contato
Para mais informações sobre ROSE, entre em contato com o prof. Vítor E. Silva Souza, coordenador do projeto de pesquisa.