STREAM: a systematic process to derive architectural models from requirements models - Lucena, Márcia Jacyntha Nunes Rodrigues (2010)
Engenharia de Requisitos (ER) e Projeto de Arquitetura de Software (PAS) são atividades iniciais de um processo de desenvolvimento de software. Desde que sistemas de software atuais apresentam uma crescente complexidade, diversidade e longevidade, o desenvolvimento destes sistemas deve considerar o uso de apropriados métodos e linguagens de modelagens para ER e PAS. Um grande desafio, neste contexto, é o desenvolvimento de métodos sistemáticos para projetar arquiteturas que satisfaçam especificações de requisitos. Além disso, com o uso de processos iterativos e incrementais de desenvolvimento de software considerados como um padrão de fato, uma forte integração entre atividades de ER e PAS podem facilitar a rastreabilidade e a propagação de mudanças entre os modelos produzidos nestas atividades. No entanto, muitos passos para gerar modelos de arquitetura a partir de modelos de requisitos são feitos por intuição ou conhecimento na arquitetura. Esta tese apresenta STREAM (Strategy for Transition between Requirements models and Architectural Models – Estratégia para Transição entre modelos de requisitos e modelos arquiteturais) que é um processo sistemático baseado em transformações de modelos para gerar modelos arquiteturais a partir de modelos de requisitos incluindo regras de transformações horizontais e verticais. As regras horizontais são aplicadas nos modelos de requisitos resultando em modelos intermediários próximos de modelos arquiteturais. Transformações verticais mapeam estes modelos intermediários em modelos arquiteturais. As atividades relacionadas ao projeto arquitetural envolvem seleção e aplicação de padrões arquiteturais que melhor satisfaçam aos requisitos não funcionais. Em nosso trabalho, modelos de requisitos são descritos usando i* (iStar), uma linguagem de modelagem orientada a objetivos definida em termos de atores estratégicos e dependências sociais entre eles. Enquanto que modelos arquiteturais são descritos usando linguagem de descrição arquitetural Acme que fornece um framework estrutural simples para representar arquitetura. Requisitos não funcionais são usados para selecionar entre soluções arquiteturais e determinar os padrões arquiteturais que são aplicados. Dois casos de estudos são usados para mostrar a viabilidade da nossa abordagem: sistema de recomendação Web e um sistema de informação Web.