Вы находитесь на странице: 1из 8

Projeto de Software Orientado a Aspectos

Resumo: Este
artigo aborda os principais conceitos da programação orientada a aspectos,
descrevendo sua proposta de separação de interesses. Aqui são apresentadas as
etapas do desenvolvimento de software orientado a aspectos e a modelagem
orientada a aspectos através da UML com suas respectivas adaptações. A migração
de sistema orientado a objetos para sistema orientado a aspectos é tratada com
base no processo Aspecting.

Palavras-chave: Programação Orientada a Aspectos (POA),


Programação Orientada a Objetos (POO), Desenvolvimento de Sistemas Orientado a
Analise (DSOA), software, Aspecting.

1 - Introdução

O paradigma de programação orientada à aspectos (POA) é uma


técnica nova, que surgiu como uma evolução do paradigma orientado à objetos
(POO) e da busca constante por melhorias no desenvolvimento de software.

O software é composto pelos seus requisitos funcionais, a


parte do sistema que trata das necessidades do cliente, e não funcionais
(aspectos), que tratam o comportamento e as restrições do sistema. Esses
interesses não funcionais podem ser 1

A programação orientada a objetos mistura os requisitos


funcionais e os requisitos não funcionais do sistema, esse entrelaçamento
dificulta a reutilização do código. Uma das soluções para minimizar esse
problema é a utilização de padrões de projeto, contudo, o uso dessa técnica
também deixa o código que o implementa espalhado e entrelaçado com o código
funcional do sistema 2.

A programação orientada a aspecto, busca separar os requisitos


funcionais e não funcionais, ou seja, dividir os interesses (concernes), para
depois uni-los (weaving), formando um sistema completo. A POA da assistência a
POO para tratar da decomposição funcional da classe.

O desenvolvimento de software orientado a aspecto (DSOA) propõe


softwares ainda mais modulares, consequentemente mais fáceis de alterar e
simples de manter. A modularidade promove a reusabilidade, sempre proposta
pelas técnicas de engenharia de software.

As vantagens oferecidas pela POA têm levado a reengenharia


de muitos sistemas orientados a objetos (OO) para orientados a aspectos (AO).
Esse processo de migração é apresentado na seção 3 desse artigo.

2 – Desenvolvimento
de Software Orientado a Aspecto
O Desenvolvimento de Software Orientado a Aspecto (DSOA) é
realizado em três fases: a decomposição, a implementação e a recomposição de
requisitos 3.

A decomposição consiste na identificação dos requisitos


funcionais e não funcionais e sua devida separação. A implementação codifica
esses requisitos separadamente. Recomposição é a junção dos códigos dos
requisitos funcionais e não funcionais formando o sistema através de weaving.

A modelagem orientada a aspecto pode ser feita com apoio da


UML (Linguagem de Modelagem Unificada). A primeira etapa da modelagem se da
com
o levantamento de requisitos. Com os requisitos levantados, é feita a definição
dos casos de uso aspectual. A representação dos aspectos no diagrama de caso de
uso se da por losangos e seu relacionamento com os demais casos de uso são
identificados pelo estereótipo <<crosscut>>>.

Figura 1:
Ilustração o diagrama de caso de uso aspectual para um sistema de Internet
Banking.

Fonte: RAMOS, R.
, A; PAZIN, A.; PENTEADO, R. A. D. Reengenharia
de Sistemas Orientados a Objetos para Sistemas Orientados a Aspectos.

O próximo passo é a elaboração do diagrama de 4. Os


aspectos são demonstrados no diagrama de classe com o estereótipo de <<aspect>>.
O relacionamento de um aspecto com uma classe também é identificado pelo
estereótipo <<crosscut>>.
Figura 2: Ilustração
do diagrama de classe de aspecto

Fonte: TIRELO,
F., et al. Desenvolvimento de Software
Orientado por Aspectos.

A relação temporal entre classes e aspectos pode ser


demonstrada ainda pelo diagrama de seqüência da UML.

Figura 3: Ilustração
do diagrama de seqüência com aspectos.
Fonte: TIRELO,
F., et al. Desenvolvimento de Software
Orientado por Aspectos.

3 – Migração de
software

O processo de reengenharia de software OO para OA será


apresentado aqui com base na abordagem Aspecting.
Essa abordagem se divide em três etapas: entender a funcionalidade do
sistema, tratar os interesses e comparar os sistemas.

Figura 4: Ilustração
das etapas da abordagem Aspecting.

Fonte: RAMOS, R.,


A; PAZIN, A.; PENTEADO, R. A. D. Reengenharia
de Sistemas Orientados a Objetos para Sistemas Orientados a Aspectos.

As etapas da abordagem Aspecting


fornecem suporte ao engenheiro de software para a migração 5.
A tabela 1 apresenta as etapas e os passos dessa abordagem.
Tabela 1: Etapas e
passos da abordagem Aspecting.

Fonte: RAMOS, R.,


A; PAZIN, A.; PENTEADO, R. A. D. Reengenharia
de Sistemas Orientados a Objetos para Sistemas Orientados a Aspectos.

Os requisitos não funcionais do sistema encontram-se


espalhado pelo código fonte das 6.

O resultado esperado pelo processo Aspecting é a “limpeza” do código original OO. A


separação dos
interesses modulariza ainda mais o sistema OO. Essa modularização facilita o
trabalho do desenvolvedor, que passa a ter um sistema mais legível.

Figura 5: Ilustração
do processo realizado pela abordagem Aspecting.
Fonte: RAMOS, R.,
A; PENTEADO, R; MASIERO, P. C. Um
Processo de Reestruturação de Código Baseado em Aspectos.

Um dos problemas encontrados pelo processo Aspecting é que nem para todos os
aspectos existem indícios 7. Com
isso os requisitos não funcionais ainda podem aparecer entrelaçados e
espalhados no sistema OA.

Figura 6: Ilustração
do conjunto de aspectos tratados pelo processo Aspecting.

Fonte: HUGO, G.,


GROTT, C. M. Estudo de Caso Aplicado a
Programação Orientada a Aspecto.

4 - Conclusão

A POA é uma proposta relativamente nova, mas que tem se


mostrado promissora na área de engenharia de software. A sua intenção não é
substituir nenhum dos paradigmas existentes, mas oferecer suporte a para uma
melhor modularização 8.

O apoio da UML facilita muito o processo de DSOA. A modelagem de aspectos é


bastante parecida
com a modelagem OO, apenas foi adaptado alguns conceitos a linguagem UML. A
modelagem proporciona uma visualização do sistema, o que simplifica o seu
entendimento, melhorando as chances do sistema ser desenvolvido com sucesso.

A abordagem aspecting
trata de forma segura o processo de migração de sistemas OO para sistemas OA. Os
benefícios da migração são evidentes
e com o tempo deve se tornar mais difundido.

Referências:
DA SILVA, L. F.; LEITE, J.C. Uma Linguagem de Modelagem de Requisitos
Orientada a Aspectos. Disponível
em: http://gnomo.fe.up.pt/~wer2005/docs/papers/LyreneFernandes.pdf.
Ultimo acesso: 07 de maio de 2006.

HUGO, G., GROTT, C. M. Estudo


de Caso Aplicado a Programação Orientada a Aspecto. Disponível em:
http://www.inf.furb.br/seminco/2005/artigos/108-vf.pdf.
Ultimo acesso: 04 de maio de 2006

RAMOS, R., A; PAZIN, A.; PENTEADO, R. A. D. Reengenharia de Sistemas


Orientados a
Objetos para Sistemas Orientados a Aspectos. Disponível em:
http://www.dc.ufscar.br/~rar/Ramos_Pazin_Clei2004.pdf.
Ultimo acesso: 04 de maio de 2006.

RAMOS, R. , A; CASTRO, J. F.B Avaliação de uma Metodologia de Medição da


Qualidade em um Documento de
Requisitos Orientados a Aspectos. Disponível em: http://wer.inf.puc-
rio.br/WERpapers/artigos/artigos_WER05/ricardo_ramos.pdf
. Ultimo acesso: 04 de maio de 2006.

RAMOS, R., A; PENTEADO, R; MASIERO, P. C. Um Processo de Reestruturação de


Código
Baseado em
Aspectos. Disponível em: http://www.dc.ufscar.br/~rar/RAR_SBES2004.pdf.
Ultimo acesso: 04 de maio de 2006.

TIRELO, F., et al. Desenvolvimento


de Software Orientado por Aspectos. Disponível em:
http://www.inf.pucminas.br/prof/mtov/pub/jai2004.pdf.
Ultimo acesso: 04 de maio de 2006.

<!--[endif]-->

1
RAMOS, R. , A; CASTRO, J. F.B Avaliação
de uma Metodologia de Medição da Qualidade em um Documento de
Requisitos Orientados a Aspectos.

2 RAMOS, R. , A; PAZIN, A.; PENTEADO, R. A. D. Reengenharia de Sistemas


Orientados a Objetos para Sistemas Orientados
a Aspectos.

3 TIRELO, F., et al. Desenvolvimento de


Software Orientado por Aspectos. Salvador, Ba, 200

4 HUGO, G., GROTT, C. M. Estudo de Caso


Aplicado a Programação Orientada a Aspecto.
5 RAMOS, R., A; PAZIN, A.; PENTEADO, R. A. D. Reengenharia de Sistemas
Orientados a Objetos para Sistemas Orientados
a Aspectos.

6 RAMOS, R., A; PENTEADO, R; MASIERO, P. C. Um


Processo de Reestruturação de Código Baseado em Aspectos.

7 RAMOS, R., A; PENTEADO, R; MASIERO, P. C. Um


Processo de Reestruturação de Código Baseado em Aspectos.

8 HUGO, G., GROTT, C. M. Estudo de Caso


Aplicado a Programação Orientada a Aspecto