Reengenharia de software e engenharia reversa
Reengenharia em si não se restringe somente ao conceito de software. Ela pode ser aplicada em uma empresa com o intuito de enxerga-la como uma grande rede de processos, onde cada processo seria entendido e reestruturado de forma a ser executado da melhor forma possível. A forma como o processo é executado atualmente é abandonada e a forma considerada ideal é adotada. Bem como uma reestruturação da empresa.
Essa é uma visão diferente da estrutura funcional rígida ainda existente em algumas empresas mais antigas. O da (TI) surge como um viabilizador desse tipo de visão processual interativa, se tornando por isso o alavancador da reengenharia. O fato de se usar a TI por si só não indica que haja essa visão de processo. Muitas empresas já estão informatizadas apesar de possuírem uma estrutura ainda baseadas em modelos funcionais arcaicos.
A Reengenharia de software é a parte mais ampla da engenharia de software. Nela se abrange a engenharia reversa e a engenharia progressiva, ou seja, Reengenharia = Engenharia Reversa + Engenharia Progressiva. Ela é qualquer atividade que melhore o entendimento do software, da preparação ou aumento das suas capacidades, como reuso e manutenção.
1.1 Motivações
Existem varias motivações para que a reengenharia de software seja aplicada, entre elas estão:
- A redução de custos do sistema,
- Migração de sistemas legados e antigos para sistemas mais atuais,
- Melhoria da estrutura do software para futuras manutenções,
- Reutilização de softwares,
1.2 Como aplicar reengenharia de software em um sistema obsoleto legado
Para que seja aplicada a reengenharia de software em um sistema obsoleto legado, é necessário que seja feita a engenharia reversa (ER), para que possa se conhecer o sistema, e detectar (caso tenha) alguma falha. Após a ER ser feita, entendida e visto o que já está ultrapassado e prejudicando o sistema que se deve aplicar a Reengenharia de software.
Sem a engenharia reversa para detectar se