Introdução
No entanto, na maioria das vezes a documentação é inexistente, incompleta e/ou desatualizada devido à fatores como o software ser muito antigo ou à falta de documentação de atualizações nas modificações do software.
Nesse sentido, a Engenharia Reversa tem por objetivo principal contribuir, primeiramente, no entendimento e, posteriormente, na modificação e revalidação do software, aumentando assim a manutenibilidade do mesmo. Isto é feito através de um processo de análise que procura criar representações dos programas em uma forma mais clara ou em um nível mais alto de abstração que o código fonte.
Nos últimos anos, há um crescente reconhecimento da importância de Engenharia Reversa em ambos os campos, acadêmicos e ambientes de produção e tem resultado na apresentação de diversas pesquisas abordando diferentes métodos e técnicas.