13
Processo de Reengenharia Processo de Reengenharia Prático Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva

Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva

Embed Size (px)

Citation preview

Page 1: Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva

Processo de Reengenharia Prático Processo de Reengenharia Prático

Pós- GraduaçãoPós- Graduação

Karolyne Almeida Siqueira

Michael Caldas da Silva

Page 2: Processo de Reengenharia Prático Pós- Graduação Pó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

Page 3: Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva

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

Page 4: Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva

• 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

Page 5: Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva

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

Page 6: Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva

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

Page 7: Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva

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

Page 8: Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva

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

Page 9: Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva

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.

Page 10: Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva

É 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

Page 11: Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva

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

Page 12: Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva

Plug-in do ambiente EclipsePlug-in do ambiente Eclipse

Page 13: Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva

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