A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Diogo Krejci Frederico Argolo Renato Kalman

Apresentações semelhantes


Apresentação em tema: "Diogo Krejci Frederico Argolo Renato Kalman"— Transcrição da apresentação:

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.


Carregar ppt "Diogo Krejci Frederico Argolo Renato Kalman"

Apresentações semelhantes


Anúncios Google