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.



Autor: Leandro Crysostomo


Artigos Relacionados


Sorrir é Ser Feliz

About Me

Bonita MoÇa Triste, Sorria!

Poluição Ambiental

Mais Uma Canção

Sem Perdão

Mãos