A constante evolução tecnológica, com as mudanças nas plataformas de hardware e software,
faz com que muitos sistemas, apesar de atenderem a seus requisitos e serem completamente es-
táveis, tornem-se obsoletos. A reengenharia de software, integrada com técnicas modernas de
engenharia reversa e avante, pode ser a solução para reconstruir esses sistemas reutilizando os co-
nhecimentos embutidos no seu código e nas documentações disponíveis. Mesmo usando as técni-
cas atuais de reengenharia, alguns problemas em relação à legibilidade do código são encontrados
nos sistemas reconstruídos. Até mesmo os sistemas desenvolvidos recentemente, usando técnicas
modernas de análise, projeto e implementação orientada a objetos e com a utilização de padrões de
software, também padecem desses problemas. Assim, motivados pelas idéias de uma melhor so-
lução para melhorar a legibilidade do código de sistemas já construídos, propõe-se investigar uma
abordagem para reconstruir tais sistemas, obtendo seu projeto e código reestruturados de forma
mais legível e organizado. A Abordagem combina técnicas de engenharia reversa, modelagem,
transformação de software e Programação Orientada a Aspectos para reconstruir um sistema de
software a partir do seu código legado e das suas informações disponíveis. O sistema reconstruído
tem sua documentação e código reestruturados segundo a Orientação a Aspectos, facilitando, as-
sim, a sua manutenção e evolução contínua, conforme as novas tecnologias de hardware e software.
Os principais mecanismos para execução da abordagem são um Sistema Transformacional e uma
ferramenta CASE, que automatizam grande parte das tarefas do engenheiro de software.
Título original
Phoenix: Uma Abordagem para Reengenharia de Software Orientada a Aspectos
A constante evolução tecnológica, com as mudanças nas plataformas de hardware e software,
faz com que muitos sistemas, apesar de atenderem a seus requisitos e serem completamente es-
távei…