Berlatto reengenharia por exemplos uma proposta para evolucao de sistemas legados baseada em comportamento
1. i
Reengenharia por Exemplos: Uma proposta para
evolução de sistemas legados baseada em
comportamento
Laís Berlatto, Duncan Dubugras A. Ruiz, Sabrina Marczak
Faculdade de Informática – Pontifícia Universidade Católica do Rio Grande do Sul
lais.berlatto@acad.pucrs.br, duncan.ruiz@pucrs.br, sabrina.marczak@pucrs.br
Resumo. Sistemas legados representam um grande problema para empresas no que
tange à mantenabilidade e integração de novas soluções, pois possuem um alto risco
associado, principalmente ao processo de reengenharia. Exemplificando, incluir uma
nova funcionalidade no sistema pode gerar erros pela falta de conhecimento da de-
pendência entre funcionalidades. Essa falta, poderia ser minimizada se existisse docu-
mentação, o que raramente ocorre, visto que o conhecimento em geral está centralizado
em poucas pessoas. Sendo assim, este trabalho tem por objetivo construir uma propos-
ta que por meio de especificações executáveis escritas colaborativamente, as quais ex-
pressam os requisitos do sistema através de exemplificações do comportamento espe-
rados deste, sejam capazes de envolver e guiar todo o projeto de reengenharia em um
processo de validação contínua. Este processo será suportado por um sistema de métri-
cas de controle, garantindo assim a consistência e o conhecimento agregado ao softwa-
re legado também à sua evolução. Estas especificações são escritas em linguagem natu-
ral possibilitando redução na lacuna de comunicação entre membros da equipe e au-
mentando a concisão do desenvolvimento, formalizando uma única fonte de verdade,
construindo em conjunto uma documentação viva, que quando executada, é capaz de
garantir a integração de um novo módulo ao sistema e que este possuirá o comporta-
mento equivalente ao substituído. Para realizar este processo, propõe-se uma análise
modular, tendo em vista o acoplamento de módulos para focar o redesenvolvimento
produzindo o mínimo produto viável, derivando-se os exemplos do comportamento
do sistema através da análise de satisfatibilidade dos requisitos do negócio, provendo
assim uma otimização da arquitetura do sistema em relação ao anterior e, também, o
alinhamento entre especificações e esta nova arquitetura. A validação contínua verifica
de maneira eficiente se o sistema realiza o que as especificações delimitam. As especifi-
cações representam um meio de manter a documentação relevante e confiável com um
custo menor, pois a informação do trabalho a ser executado é produzida sob demanda,
refletindo positivamente no processo futuro de evolução evitando problemas causados
pela falta de conhecimento compartilhado sobre o sistema. Para verificar a viabilidade
da proposta, visa-se conduzir um estudo de caso empírico, que implantará no(s) proje-
to(s) selecionado(s), compreendido(s) dentro de categorias que eliminam parcialmente
possíveis limitações para a aplicação da proposta, um método que representa a propos-
ta teórica apresentada. Neste estudo, pretende-se verificar se os passos definidos pelo
método são viáveis em um cenário real. Os resultados serão avaliados com base nas
métricas especificadas visando identificar se o comportamento mensurado da nova
aplicação é equivalente ao do antigo sistema. Espera-se que este método seja capaz de
otimizar o tempo para a compreensão dos reais requisitos, garantindo um alinhamento
com a arquitetura, propiciando que a migração do sistema ocorra com sucesso e com
um menor risco e custo agregado.
Palavras-chave: sistemas legados, reengenharia, especificações executáveis, desenvol-
vimento guiado por exemplos, métricas.