Upload
internet
View
110
Download
5
Embed Size (px)
Citation preview
Processo de Reengenharia Prático Processo de Reengenharia Prático
Pós- GraduaçãoPós- Graduação
Karolyne Almeida Siqueira
Michael Caldas da Silva
Uma Abordagem para Reengenharia de Uma Abordagem para Reengenharia de Sistemas implementados em Java para Sistemas implementados em Java para
AspectJAspectJ
Para viabilizar a reengenharia dos Para viabilizar a reengenharia dos sistemas OO e OA é necessária a sistemas OO e OA é necessária a existência de métodos e ferramentas que existência de métodos e ferramentas que o apóiem. o apóiem.
Temos como entrada um sistema escrito Temos como entrada um sistema escrito em Java, gerando outro equivalente em Java, gerando outro equivalente implementado na linguagem AspectJ.implementado na linguagem AspectJ.
IntroduçãoIntrodução
• POO (Programação Orientada a Objetos)POO (Programação Orientada a Objetos)
XX
• POA (Programação Orientada a Aspectos)POA (Programação Orientada a Aspectos)
IntroduçãoIntrodução
A Orientação a Objetos permite a A Orientação a Objetos permite a separação clara de interesses primários. separação clara de interesses primários. Entretanto, alguns problemas ainda Entretanto, alguns problemas ainda persistem como, por exemplo, a não persistem como, por exemplo, a não separação de interesses transversais que separação de interesses transversais que se apresentam espalhados e misturados se apresentam espalhados e misturados por diversos módulos do sistema. por diversos módulos do sistema.
POOPOO
Já a Orientação a Aspectos é uma Já a Orientação a Aspectos é uma forma de tratar os interesses transversais forma de tratar os interesses transversais por meio da especificação de aspetos, isto por meio da especificação de aspetos, isto é, mecanismos para localização de é, mecanismos para localização de expressões que contêm interesses expressões que contêm interesses transversais e a separação desses dos transversais e a separação desses dos interesses primários.interesses primários.
POAPOA
Reengenharia de software pode ser Reengenharia de software pode ser aplicada para realizar manutenção aplicada para realizar manutenção preventiva de sistemas.[Pressman]preventiva de sistemas.[Pressman]
Reengenharia de SoftwareReengenharia de Software
A migração é feita através da Aspecting.A migração é feita através da Aspecting.
Migração de Sistemas OO para OAMigração de Sistemas OO para OA
AspectingAspecting
A Aspecting tem 3 passos:A Aspecting tem 3 passos:
1) A criação de diagrama de casos de uso e de diagrama 1) A criação de diagrama de casos de uso e de diagrama de classes de projeto, caso não exista, para representar de classes de projeto, caso não exista, para representar a funcionalidade do sistema legado;a funcionalidade do sistema legado;
2) O tratamento dos interesses que pesquisa, em cada 2) O tratamento dos interesses que pesquisa, em cada classe implementada no código legado, a existência de classe implementada no código legado, a existência de possíveis indícios de interesses transversais;possíveis indícios de interesses transversais;
3) A comparação do sistema OO com o OA é realizada 3) A comparação do sistema OO com o OA é realizada utilizando os casos de uso inicialmente construídos para utilizando os casos de uso inicialmente construídos para garantir que a funcionalidade original do sistema foi garantir que a funcionalidade original do sistema foi preservada. preservada.
É interativa e consiste na identificação É interativa e consiste na identificação de interesses transversais e posterior de interesses transversais e posterior implementação do sistema legado para implementação do sistema legado para uma linguagem que permita especificar uma linguagem que permita especificar aspetos, neste caso AspectJ.aspetos, neste caso AspectJ.
Abordagem de Reengenharia de Java para Abordagem de Reengenharia de Java para AspectJAspectJ
Na tentativa de minimizar os esforços e Na tentativa de minimizar os esforços e os erros inseridos pelo próprio engenheiro os erros inseridos pelo próprio engenheiro de software, um apoio computacional foi de software, um apoio computacional foi idealizado: ReJAsp(Reengenharia de idealizado: ReJAsp(Reengenharia de sistemas Java para Aspect). Desenvolvido sistemas Java para Aspect). Desenvolvido com o modelo de processo de com o modelo de processo de prototipação, com duas interações, sendo prototipação, com duas interações, sendo esta segunda implementada como plug-in esta segunda implementada como plug-in do ambiente Eclipse. do ambiente Eclipse.
Apoio Computacional para a Reengenharia Apoio Computacional para a Reengenharia PropostaProposta
Plug-in do ambiente EclipsePlug-in do ambiente Eclipse
http://www.univasf.edu.br/http://www.univasf.edu.br/,, acessado em 11/05/2010. acessado em 11/05/2010.
Referências BibliográficasReferências Bibliográficas