PCF-3

Questões comentadas, artigos e notícias

Engenharia Reversa

Posted by papacharliefox3 em 17/04/2009

btSalve, caboco!

Tive a idéia de escrever este pequeno texto, apenas como um prelúdio as próximas questões que iremos comentar neste blog. Algumas dessas questões, envolvem análise de código, normalização (Banco de Dados) e alguns conceitos de reengenharia de sistemas. Um dos assuntos correlatos é a engenharia reversa.

O que é engenharia reversa, afinal? Antes de ir direto ao ponto, cabe aqui alguns comentários sobre a reengenharia, processo pelo qual é submetido qualquer tipo de sistema baseado em regras (negócio) que podem mudar. Mas, tudo pode mudar, não? Afinal, o usuário, os gerentes, as pessoas sempre exigirão mais rapidez, eficiência, etc. Até que ponto isso implica na construção de um novo sistema? É (pelo menos, era) pra que isso que algumas pessoas são muito bem pagas por aí! Enfim, esse tema engloba qualquer tipo de reengenharia, não somente de software.

Neste contexto, a abordagem está diretamente ligada à tecnologia empregada, ao tempo disponível, e sobretudo, à manutenabilidade do código. Lembrando que, não estamos falando somente de corrigir falhas ou bugs, mas de novas funcionalidades, da otimização de processos. O que acontece quando nenhuma das características de um bom software existe? Supõe-se que hoje, o mundo ainda depende de sistemas escritos há mais de 10 anos atrás, escritos sem seguir o mínimo procedimento ou prática. Aí é que pode entrar a famosa engenharia reversa.

Do mesmo modo que os chineses ‘falsificam’ um belo smartphone da SONY, transformando-o em um MP9 (última versão que tenho conhecimento), os engenheiros de software também o fazem com seus frankensteins sistemas. O que seria do Samba (não é o do crioulo!) sem ferramentas como um sniffer, um debugger, um disassembly? Ele não seria. Só teríamos o CIFS da Microsoft! Ou você acha que o Bill publicou RFC e o código-fonte documentado do Windows? Na verdade, ele é um expert em engenharia reversa, não? O produto desta se revela tão bom quanto a origem, principalmente, quando falamos de Active Directory, LDAP, Kerberos e afins, concordam? (melhor parar com este exemplo por aqui, os comments são liberados e podem ser anônimos!)

O processo de engenharia reversa busca atingir um nível de abstração de tal maneira que, a partir das informações extraídas, tem-se conhecimento suficiente a fim de especificar o fluxo de dados de um sistema, de onde o dado vem, onde é armazenado, de que tipo ele é, etc. Lógico que, o resultado desse proceso depende do nível de abstração alcançado ou pretendido. Enfim, entender o que o software faz, sua estrutura, seu modo de operação e comportamento; isso tudo é parte do processo de engenharia reversa.

O que esperar de futuras questões sobre este tema? Um cenário ou somente teoria? Deixe seus comentários. Até a próxima!

Uma resposta to “Engenharia Reversa”

  1. […] 70 O que é engenharia reversa, afinal? Para obter um conceito mais amplo, dá uma lida aqui. Neste contexto (BD), resumidamente, estamos a falar do processo de extração do modelo conceitual […]

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: