Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Diogo Krejci Frederico Argolo Renato Kalman
Engenharia Reversa Diogo Krejci Frederico Argolo Renato Kalman
2
Introdução Engenharia Reversa -> termo original do mundo do hardware Engenharia Reversa de software Contexto diferente Problema do Software legado
3
Eng. Reversa no mundo da Engenharia
... Reengenharia Engenharia reversa
4
Reengenharia “É a implementação de mudanças radicais que, ao redesenhar os processos de trabalho, visam melhorar (...) a eficácia da empresa (...)” Deve ser implementada no topo da hierarquia de uma empresa
5
Reengenharia (cont) Feita basicamente em 4 fases
Posicionamento para a mudança Identificação dos processos existentes Recriação dos processos Transição para o novo sistema
6
Reengenharia de software
Bons motivos para fazê-la: Manutenção do software (60% do esforço) Apenas 20% na correção! Controle das informções
7
Modelo de reengenharia de processos
Engenharia para frente Inventário de sistemas Reestruturação de documentos Reestruturação dos dados Engenharia reversa Reestruturação do código
8
Engenharia Reversa Engenharia "ao contrário"
Tenta entender como um produto existente funciona. Bastante utilizada quando é necessário substituir ou modificar uma “peça” mas não se tem todas as informações necessárias sobre a mesma.
9
Engenharia Reversa de Software
Processo de construção de um software é longo. Aproveitamento de código já escrito assume importância vital. Engenharia Reversa traduz o o código fonte (ou até mesmo compilado) com o objetivo de obter uma documentação “Crackers” utilizam técnicas de Engenharia Reversa
10
Etapas da Engenharia Reversa de Software
Extração de fatos de um sistema Tratamento de fatos Avaliação dos resultados Visualização dos resultados
11
Extração de fatos de um sistema
As atividades de reengenharia de software se fazem mais sobre os fatos do sistema do que dele próprio. Fontes: o código fonte, a execução dos programas, os dados, a documentação, etc.
12
Extração de fatos de um sistema
Medidas da extração de fatos: a) Análise estática de código b) Análise dinâmica de código ("Debugging") c) Obtenção de dados d) Obtenção da documentação e) Outras fontes de informação
13
Tratamento de fatos Reconhecimento de anomalias de código
Encapsulamento Modularização. Reconhecimento de Clichés "Slicing" (fatiar)
14
Avaliação dos resultados
Essa avaliação é feita baseando-se nas seguintes medidas: a) Avaliação Manual b) Coesão e Acoplamento c) Precisão e Cobertura
15
Visualização dos resultados
Navegação Quantidade de informação
16
Ferramentas de apoio à Engenharia Reversa
As ferramentas de apoio se apresentam basicamente em dois tipos: 1)Ferramentas de visualização de código 2)Ferramentas para entendimento de programa
17
Conclusão É muito comum ver as pessoas se preocupando apenas na geração de código quando se fala no desenvolvimento de um sistema
18
Conclusão As pessoas costumam achar que reconstruir um software é uma tarefa trivial, se esquecendo de que o sistema existente deve ser levado em conta.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.