Projeto Arquitetural de Software
Orientado a Aspectos
Alessandra Guaracy de Oliveira
Patrick Henrique da Silva Brito
Sumário
Introdução
Motivação
Ferramentas
Arquitetura de Software Orientada a Aspectos
Conceito de Orientação a Aspectos no projeto
de Arquitetura
Extensão de UML
Estudo de caso (elevador)
Considerações Finais
Referências Bibliográficas
Kandé, Kienzle, Strohmeier. From AOP to UML:
Towards na Aspect-Oriented Architetural Modeling
Approach. Agosto, 2002.
Mens, Kim. Architectural Aspects. Fevereiro, 2002.
Kishi, Tomoji. Studies on Software Architectural Design.
Junho, 2002.
Kishi, Tomoji; Noda, Natsuko. Aspect-Oriented Analysis
for Architectural Design. 2002.
Piveta, Eduardo. Aspect-Oriented Principles Applied to
Architectural Styles. Junho 2003.
Introdução
“Quando analisamos, é importante considerar
não somente os requisitos funcionais do
sistema, mas também atributos de qualidade,
porque a arquitetura de software pode ser
alterada se houver mudança dos requisitos
não funcionais.” [Tomoji Kishi & Natsuko Noda, 2002]
Motivação
Conseqüências do entrelaçamento de código:


Aumento da complexidade dos componentes
funcionais do sistema.
Pouca modularidade (entrelaçamento de código)
É uma abordagem que permite a separação dos
requisitos funcionais e não funcionais do
sistema de uma forma natural e concisa.

Porque não também usar esse conceito na etapa de
projeto do software (inclusive arquitetural)?
Orientação a Aspectos
Pelo não entrelaçamento de código, proporciona:




Maior legibilidade;
Maior modularidade
Maior manutenibilidade;
Maior flexibilidade;
Divide o sistema em dois níveis


Componentes funcionais – Requisitos funcionais
Aspectos – Requisitos não-funcionais ou “entrelaçados”
Orientação a Aspectos
O requisito não-funcional fica
espalhado porque é tratado na
dimensão errada!
Tracing
O requisito não-funcional é ortogonal à
decomposição funcional!
Join Point – Pontos onde aspectos podem interceptar componentes
funcionais

Before, around , after
Ferramentas
AspectJ:
Before
After returning
After throwing
After
Around
Arquitetura de Software
Orientada a Aspectos
O conceito de Orientação a Aspectos pode ser
incorporado em estilos arquiteturais já conhecidos
(ou estilos combinados):

Crosscuting (atalho), evitando o entrelaçamento de
código
Aspectos são visões das funções ou dos atributos
de qualidade
Arquitetura de Software
Orientada a Aspectos
É importante tratar os requisitos do
software de uma maneira particular:




Tratamento dos requisitos de cada aspecto
separadamente;
Categorização desses requisitos;
Análise geral dos requisitos (todos);
Os requisitos não-funcionais são
desmembrados em fatores;
Conceito de Orientação a Aspectos no
projeto de Arquitetura
“Estes aspectos podem ser modelados/implementados
usando filtros de composição, onde cada filtro afeta um ou
mais sub-sistemas ou componentes, em um alto nível de
granularidade.” [Piveta, 2003]
Os filtros podem ser mudados dinamicamente, flexibilizando
a adequação do sistema aos requisitos representados por
aspectos. (normalmente não-funcionais)
Extensão de UML
Implementar o conceito de pontos de conexão
(connection points)
Detecção dos pontos de conexão:
Extensão de UML
Aspectos

Pontos de conexão
Tipos:


Entrada (passivo)  Mapeado para uma chamada pointcut em
AspectJ
Saída (ativo)  Mapeado para interface ou classe abstrata
Características:





Semelhantes a Interface
Podem ser instanciados
Podem ter atributos e implementação de métodos
Necessidade de elementos de interface entre componentes
(“porta”) – Expansibilidade
Representação dos “advices”
before, around, after
Extensão de UML
Conectores


“Conectores de software ... Interação intermediária entre
componentes; que estabelece regras que governam interações e
mecanismos auxiliares necessários” [Shaw e Garlan]
Assim como conectores, aspectos são intermediários entre
componentes que se interceptam e são modularizados nessa
abstração.
Estudo de caso (elevador)
Considerações Finais
Ideal para sistemas que tenham muitos
requisitos não-funcionais ou funções
“espalhadas” no código.
Pontos Fracos:



Falta de padronização em UML.
Falta de padronização da arquitetura.
Inexistência de ferramentas específicas para suporte
ao projeto arquitetural.
Considerações Finais
“Como a arquitetura de software é a base para o projeto e algumas
decisões dependem da arquitetura, mudanças arquiteturais podem
ser muito caras” [Tomoji Kishi & Natsuko Noda, 2002]
“O conceito de ‘crosscutting’ (atalho) não afeta a análise tanto
quanto o projeto, porque na análise, requisitos não funcionais
normalmente não são modelados. No desenvolvimento de software
orientado a aspectos (AOSD), o projeto pode ser modificado para
atualizar apenas o local do atalho.” [Piveta, 2003]
“A arquitetura orientada a aspectos mostra a estrutura estática do
aspecto e especifica pontos de conexão bem definidos, que são a
base da ligação entre componentes. Como essa abordagem utiliza
o conceito de porta, a expansibilidade da conexão se torna possível
graças a esses ‘pontos de extensão’.” [Kandé & Kienzle &
Strohmeier, 2002]
Download

Projeto Arquitetural de Software Orientado a Aspectos