Áreas da reengenharia engenharia reversa É o processo de derivar as especificações lógicas dos...
TRANSCRIPT
Á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.
Áreas da Reengenharia
Alcance da Engenharia ReversaAlcance da Engenharia Reversa
Construção Projeto Análise
Engenharia Reversa
Planejamento Projeto
Engenharia Tradicional
Análise Projeto
Á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
Áreas da Reengenharia
Engenharia ReversaEngenharia Reversa
EntradasEntradas
Código-FonteCódigo-Fonte
Dicionário de dadosDicionário de dados
DDLDDL
Á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
Á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
Á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
Á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
Á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
Áreas da Reengenharia
Tipos de Reestruturação Tipos de Reestruturação
Código-Fonte / LógicaCódigo-Fonte / Lógica
DadosDados
Á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
Á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
Á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
Á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
Á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
Á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
Á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
Á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
Á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
Á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
Á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
Á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
Á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
Á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
Á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
Á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
Á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