Mecanismos de Composição para Conceitos Transversais no Nível Arquitetural
projeto arquitetural de software, conceitos transversais, AO-ADLs, mecanismos de composição
O aumento da complexidade e o tamanho dos sistemas ocasionam problemas envolvendo o desenvolvimento de software que extrapolam o projeto das estruturas de dados e algoritmos. Nesse contexto, o projeto arquitetural do software emerge como uma atividade de grande importância. A descrição do projeto arquitetural consiste no agrupamento de estruturas dos múltiplos modelos que representam o domínio da aplicação. Tradicionalmente, nesses modelos existem vários conceitos que estão relacionados, entrelaçados, ou sobrepostos, influenciando ou restringindo uns a outros. Esses conceitos são denominados de conceitos transversais. As Linguagens de Descrição Arquiteturais Orientadas a Aspectos (AO-ADLs) são usadas para especificação da arquitetura e oferecem suporte para modularização de conceitos transversais. As AO-ADLs apresentam limitações relacionadas às composições de diferentes visões e modelos arquiteturais. Nas AO-ADLs a composição tipicamente é centrada em Conectores, Attachments e Bindings. Esses elementos não suportam definição mais complexa, tais como, mecanismos mais elaborados para composição de modelos distintos. Existem várias abordagens de composição de modelos (heurísticas e não-heurísticas) que fornecem operadores de composição para a construção de modelos integrados, porém, tais operadores não estão presentes na maioria das ADLs. Além disso, tais abordagens de composição possuem limitações e deficiências, como falta de expressividade para representar a composição dos modelos arquiteturais com seus bindings e conectores sem que haja perda de informação presentes nesses elementos. De forma a suprir limitações dos tradicionais mecanismos de composição das ADLs e também dos operadores de composição propostos em outros contextos, este trabalho propõe-se a: (i) instanciar, na AO-ADL AspectualACME, os mecanismos de composição heurísticas e não-heuristicas existentes entre modelos arquiteturais; (ii) propor novos mecanismos para dar suporte a modularização de conceitos transversais entre modelos arquiteturais; visões arquiteturais concisas que reutilizem modelos provenientes de outros sistemas quaisquer, incluindo também modelos pertencentes a outros domínios (iii) avaliar os modelos gerados através de indicadores, tais como métricas, padrões transversais (Crosscutting Patterns) e fator de Spearman Correlation e (iv) construir a ferramenta Composer AspectualACMEStudio para automatizar as descrições arquiteturais em AspectualACME e composição utilizando os operadores de composição.