Áreas da reengenharia engenharia reversa É o processo de derivar as especificações lógicas dos...

27
Áreas da Reengenharia Engenharia Reversa Engenharia Reversa É o processo de derivar as É o processo de derivar as especificações lógicas dos especificações lógicas dos componentes do sistema a partir componentes do sistema a partir de sua descrição física com de sua descrição física com auxílio de ferramentas auxílio de ferramentas automatizadas. automatizadas.

Upload: internet

Post on 17-Apr-2015

112 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Engenharia ReversaEngenharia Reversa

É o processo de derivar as especificações É o processo de derivar as especificações

lógicas dos componentes do sistema a partir lógicas dos componentes do sistema a partir

de sua descrição física com auxílio de de sua descrição física com auxílio de

ferramentas automatizadas. ferramentas automatizadas.

Page 2: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Alcance da Engenharia ReversaAlcance da Engenharia Reversa

Construção Projeto Análise

Engenharia Reversa

Planejamento Projeto

Engenharia Tradicional

Análise Projeto

Page 3: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Passos da Engenharia Passos da Engenharia ReversaReversa

Código Fonte

Arquitetura do Sistema

Especificação Fisica

Engenharia Tradicional

Ferramenta CASE

EspecificaçãoLógica

Page 4: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Engenharia ReversaEngenharia Reversa

EntradasEntradas

Código-FonteCódigo-Fonte

Dicionário de dadosDicionário de dados

DDLDDL

Page 5: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Engenharia ReversaEngenharia Reversa SaídasSaídas

Desenho do banco de dadosDesenho do banco de dados

Estrutura física dos dadosEstrutura física dos dados

Diagrama Entidade-RelacionamentoDiagrama Entidade-Relacionamento

Modelo de dados normalizadoModelo de dados normalizado

Especificação do projetoEspecificação do projeto

Page 6: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

BenefíciosBenefíciosa) Melhor compreensão dos sistemas a) Melhor compreensão dos sistemas

atuaisatuais

b) Aceleração do processo de manutenção b) Aceleração do processo de manutenção

de Sistemas de Sistemas

c) Recuperação do conhecimento sobre os c) Recuperação do conhecimento sobre os

sistemassistemas

Page 7: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

BenefíciosBenefíciosd) Agilização da conversão e migração de d) Agilização da conversão e migração de

sistemassistemas

e) Incentivo a adoção de repositórioe) Incentivo a adoção de repositório

Manutenção de Software

Page 8: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

ReestruturaçãoReestruturação

É o processo de padronização de nomes É o processo de padronização de nomes

de dados, definições e estrutura lógica de de dados, definições e estrutura lógica de

programas para melhorar a manutenção programas para melhorar a manutenção

e produtividade do softwaree produtividade do software

Page 9: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Objetivos da Reestruturação Objetivos da Reestruturação Melhorar o programaMelhorar o programa Diminuir tempo de testeDiminuir tempo de teste Forçar os padrões de programaçãoForçar os padrões de programação Simplificar alterações de programasSimplificar alterações de programas Reduzir os custos de manutenção Reduzir os custos de manutenção Reduzir a dependência dos mantenedoresReduzir a dependência dos mantenedores

Page 10: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Tipos de Reestruturação Tipos de Reestruturação

Código-Fonte / LógicaCódigo-Fonte / Lógica

DadosDados

Page 11: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Reestruturação de Código-Reestruturação de Código-FonteFonte

É o processo de análise dos fluxos de É o processo de análise dos fluxos de controle e lógica de programação com controle e lógica de programação com geraçào de uma versão estruturada do geraçào de uma versão estruturada do código-fonte original sem alteração de código-fonte original sem alteração de

sua funcionalidadesua funcionalidade

Page 12: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Programa Bem-EstruturadoPrograma Bem-Estruturado

Dividido em conjunto de módulosDividido em conjunto de módulos Cada módulo representa uma funçãoCada módulo representa uma função Fluxo de execução é organizadoFluxo de execução é organizado

Page 13: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Programa Mal EstruturadoPrograma Mal Estruturado

Uso excessivo de Uso excessivo de loopsloops iterativo iterativo Uso excessivo de ninhos de IFUso excessivo de ninhos de IF Módulos muito grandesMódulos muito grandes Vários módulos executando a mesma tarefaVários módulos executando a mesma tarefa

Page 14: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Sistemas Candidatos a Sistemas Candidatos a Reestruturação Reestruturação

Código de baixa qualidadeCódigo de baixa qualidade Dificuldade (impossibilidade) para ler, alterar e testar o Dificuldade (impossibilidade) para ler, alterar e testar o

códigocódigo Taxa de erros, tempo de correção e custos altosTaxa de erros, tempo de correção e custos altos Sistemas estratégicos/importantes caros e e Sistemas estratégicos/importantes caros e e

frequentemente alteradosfrequentemente alterados

Page 15: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Funções dos programas de Funções dos programas de reestruturação reestruturação

Análise de lógica e MétricaAnálise de lógica e Métrica

Análise de dadosAnálise de dados

Limpeza da linguagem, visando eliminar comandos Limpeza da linguagem, visando eliminar comandos

não recomendados ou utilizados fora dos padrõesnão recomendados ou utilizados fora dos padrões

Limpeza do código, eliminando código morto, loops Limpeza do código, eliminando código morto, loops

infinitos e lógica confusainfinitos e lógica confusa

Melhoria da apresentação e padronização Melhoria da apresentação e padronização

Page 16: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Reestruturação de Dados Reestruturação de Dados

É o processo de eliminação de redundância É o processo de eliminação de redundância

de nomes de dados e de adoção de padrõesde nomes de dados e de adoção de padrões

Page 17: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Benefícios com Benefícios com Reestruturação de Dados Reestruturação de Dados

Criação de uma base de dados normalizada e Criação de uma base de dados normalizada e

estável estável

Melhoria da compreensão da interface de dados Melhoria da compreensão da interface de dados

entre sistemasentre sistemas

Utilização de nomes de dados padronizadosUtilização de nomes de dados padronizados

Melhoria da consistência e do significado dos Melhoria da consistência e do significado dos

dadosdados

Integração dos sistemas de informaçõesIntegração dos sistemas de informações

Page 18: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Sistemas candidatos a Sistemas candidatos a reestruturação de dadosreestruturação de dados

Definições de dados inconsistentesDefinições de dados inconsistentes Nomes de dados não padronizados Dificuldades de compreensão Dificuldades de compreensão

Page 19: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Funções dos programas de Funções dos programas de Reestruturação de dadosReestruturação de dados

Análise de dadosAnálise de dados

Verificação de normalizaçãoVerificação de normalização

Preservação dos dados atuaisPreservação dos dados atuais

Padronização de nomes semi-automáticaPadronização de nomes semi-automática

Page 20: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Migração Migração

É o processo de mudança de É o processo de mudança de plataforma tecnológica a partir plataforma tecnológica a partir

de um ativo de sistemas de um ativo de sistemas existenteexistente

Page 21: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

BenefíciosBenefícios

Preservar esforços de desenvolvimentoPreservar esforços de desenvolvimento

Preservar integração de sistemasPreservar integração de sistemas

Garantir atualização tecnológicaGarantir atualização tecnológica

Facilitar a manutenção de softwareFacilitar a manutenção de software

Page 22: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Por Que é difícil a migração Por Que é difícil a migração de sistemas legados ? de sistemas legados ?

Projetos grandes são difíceis de Projetos grandes são difíceis de

gerenciargerenciar

Não existem especificaçõesNão existem especificações

Não existem ferramentas e métodos Não existem ferramentas e métodos

adequadosadequados

Insegurança quanto a mudançaInsegurança quanto a mudança

Page 23: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Passos para correta Passos para correta migraçãomigração

Acessar de forma adequada os sistemas Acessar de forma adequada os sistemas

legadoslegados

Organizar os dados do sistema atualOrganizar os dados do sistema atual

Migrar somente os dadosMigrar somente os dados

Migrar outros componentes do sistemaMigrar outros componentes do sistema

Evoluir com ainclusão de extensões nas Evoluir com ainclusão de extensões nas

funções do sistema atualfunções do sistema atual

Page 24: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Principais motivos de Principais motivos de mudançamudança

Onda de ... sizingOnda de ... sizing

Promessas de fornecedoresPromessas de fornecedores

Mídia abusivaMídia abusiva

Insatisfação dos usuáriosInsatisfação dos usuários

Crescimento da concorrênciaCrescimento da concorrência

Múltiplas opções de tecnologias Múltiplas opções de tecnologias

Page 25: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Algumas Tecnologias em Algumas Tecnologias em evidênciaevidência

Orientação a objetosOrientação a objetos

Ambientes gráficosAmbientes gráficos

Arquitetura cliente / servidorArquitetura cliente / servidor

InternetInternet

Page 26: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Mandamentos da computação Mandamentos da computação Cliente / ServidorCliente / Servidor

1. Não negligenciarás o gerenciamento de tua rede1. Não negligenciarás o gerenciamento de tua rede 2. Não castigarás teus usuários com computadores 2. Não castigarás teus usuários com computadores

de baixa potênciade baixa potência 3. Treinarás tua equipe de sistemas 3. Treinarás tua equipe de sistemas

adequadamenteadequadamente 4. Lembrarás de fazer backup regularmente de teus 4. Lembrarás de fazer backup regularmente de teus

dadosdados 5. Adotarás padrões e irás segui-los5. Adotarás padrões e irás segui-los

Page 27: Áreas da Reengenharia Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física

Áreas da Reengenharia

Continuação dos Continuação dos MandamentosMandamentos

6. Não cairás na tentação de desligar o mainframe6. Não cairás na tentação de desligar o mainframe 7. Não prometerás mundos e fundos7. Não prometerás mundos e fundos 8. Lembrarás de teus dados para mantê-los puros8. Lembrarás de teus dados para mantê-los puros 9. Não serás mesquinho ao escolher as 9. Não serás mesquinho ao escolher as

ferramentas de desenvolvimentoferramentas de desenvolvimento 10. Protegerás teus usuários de si mesmos10. Protegerás teus usuários de si mesmos

Fonte: Cliente Servidor para LeigosFonte: Cliente Servidor para LeigosDoug Lowe / Editora BerkeleyDoug Lowe / Editora Berkeley