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

Slides:



Advertisements
Apresentações semelhantes
Manutenção em software Conceitos básicos
Advertisements

Engenharia de Software Qualidade de Software Uma abordagem conceitual André Luis Zanon São Carlos SP – UFSCAR 2010 Engenharia de Software – UFSCAR.
Entendendo a Manutenção
Engenharia de Software
ISO Processos do Ciclo de Vida do Software
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 32 Departamento de Informática Centro.
Tipos de sistemas de Lehman
Engenharia de Software
Tópicos Motivação para teste Por que algumas empresas não testam
Maurício Edgar Stivanello
INTRODUÇÃO A INFORMÁTICA
Mitos e Problemas Relacionados ao Software
Prof. Aruanda Simões - Análise e Projeto OO Processo de Desenvolvimento n As grandes fases: –Planejamento e elaboração –Construção –Implantação Sistema.
Computer Aided Software Engineering
André Rangel de Matos Raquel Pereira Crespo PÓS-GRADUAÇÃO LATO SENSU EM ANÁLISE, PROJETO E GERÊNCIA DE SISTEMAS DE INFORMAÇÃO Especificação e Manutenção.
Processo Desenvolvimento de Software Tradicional
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Análise e Projeto de Sistemas
FERRAMENTAS PARA O CONTROLE E A MELHORIA DA QUALIDADE
Engenharia Reversa e Reengenharia Software
TSDD Teste de segurança durante o desenvolvimento.
Metodologia Versão 2 FSRS.
ENTERPRISE RESOURSE PLANNING
ERP - Enterprise Resource Planning
MANUTENÇÃO DE SOFTWARE
BANCO DE DADOS - CONCEITOS
REDUNDÂNCIA POR SOFTWARE
Tecnologias de Linguagens para Banco de Dados
Banco de Dados Aplicado ao Desenvolvimento de Software
O Fluxo de Implementação
Análise de Sistemas de Software Prof. Rodrigo Ribeiro.
Fase de Elaboração: Fluxo de Requisitos
BANCO DE DADOS - CONCEITOS
Arquitetura Cliente /Servidor
Arquitetura do Software
Fabíola Guerra Nakamura Vitor Alcântara Batista
Engenharia de Software
Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís Franco 2009
Professor: Márcio Amador
Analises de sistemas ESTRUTURADA Analise de sistema estruturada.
Marcio de Carvalho Victorino Processo Unificado. Unidade VI: Teste.
Contexto da disciplina
A abordagem de banco de dados para gerenciamento de dados
Documentação de Software
Análise e Projeto Orientados a Objetos
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Objetivos do Capítulo Explicar a importância da implementação de processos e tecnologias de gerenciamento de dados numa organização. Explicar as vantagens.
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Introdução a Banco de Dados Aula 04
METODOLOGIA, MÉTODOS E FERRAMENTAS
Aula 1 – Profª Danielle Costa
Processos de Software.
WDM Web Data Modeling UCB – Universidade Católica de Brasília
Integração de Ferramentas CASE
Engenharia de Software
Engenharia de Requisitos
Os projetos.
Banco de Dados Representa o arquivo físico de dados, armazenado em dispositivos periféricos, para consulta e atualização pelo usuário. Possui uma série.
Sistemas de Informação
Profa. Reane Franco Goulart. É uma representação de engenharia de algo que vai ser construído. Para a engenharia de software o projeto foca em quatro.
Engenharia de Software
Implantação de Sistema ERP em Pequenas Empresas
Gerenciamento de Configuração de Software
SOFTWARE DE ESTATÍSTICAS PARA BASQUETE EM CADEIRA RODAS ESTUDO DE CASO ADFP - FÊNIX Acadêmicos: Elisangela Fernandes Duarte Sandro Colaço de Lima Orientador:
MVP Virtual Conference 2013 Desktop Seguro Luciano Lima CISSP / MVP Enterprise
1 Projeto Piloto Conclusão em Agenda Projeto Piloto –Descrição –Execução da aplicação –Implementação de requisitos funcionais e não- funcionais.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
 Trabalho realizado por:  Francisco de Assis Marinho Lanza;  Simone Martins Rodrigues;  Tânia Moraes Nascimento da Fonseca.
Aplicativos para Web MVC Prof. Odair Indena Jr.
Modelagem de Banco de Dados: Conceitos
Transcrição da apresentação:

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

Alcance da Engenharia Reversa Construção Projeto Análise Engenharia Reversa Planejamento Análise Projeto Projeto Engenharia Tradicional

Passos da Engenharia Reversa Código Fonte Arquitetura do Sistema Especificação Fisica Especificação Lógica Ferramenta CASE Engenharia Tradicional

Engenharia Reversa Entradas Código-Fonte Dicionário de dados DDL

Engenharia Reversa Saídas Desenho do banco de dados Estrutura física dos dados Diagrama Entidade-Relacionamento Modelo de dados normalizado Especificação do projeto

Benefícios a) Melhor compreensão dos sistemas atuais b) Aceleração do processo de manutenção de Sistemas c) Recuperação do conhecimento sobre os sistemas

Benefícios d) Agilização da conversão e migração de sistemas e) Incentivo a adoção de repositório Manutenção de Software

Reestruturação É o processo de padronização de nomes de dados, definições e estrutura lógica de programas para melhorar a manutenção e produtividade do software

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

Tipos de Reestruturação Código-Fonte / Lógica Dados

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

Programa Bem-Estruturado Dividido em conjunto de módulos Cada módulo representa uma função Fluxo de execução é organizado

Programa Mal Estruturado Uso excessivo de loops iterativo Uso excessivo de ninhos de IF Módulos muito grandes Vários módulos executando a mesma tarefa

Sistemas Candidatos a Reestruturação Código de baixa qualidade Dificuldade (impossibilidade) para ler, alterar e testar o código Taxa de erros, tempo de correção e custos altos Sistemas estratégicos/importantes caros e e frequentemente alterados

Funções dos programas de reestruturação Análise de lógica e Métrica Análise de dados Limpeza da linguagem, visando eliminar comandos não recomendados ou utilizados fora dos padrões Limpeza do código, eliminando código morto, loops infinitos e lógica confusa Melhoria da apresentação e padronização

Reestruturação de Dados É o processo de eliminação de redundância de nomes de dados e de adoção de padrões

Benefícios com Reestruturação de Dados Criação de uma base de dados normalizada e estável Melhoria da compreensão da interface de dados entre sistemas Utilização de nomes de dados padronizados Melhoria da consistência e do significado dos dados Integração dos sistemas de informações

Sistemas candidatos a reestruturação de dados Definições de dados inconsistentes Nomes de dados não padronizados Dificuldades de compreensão

Funções dos programas de Reestruturação de dados Análise de dados Verificação de normalização Preservação dos dados atuais Padronização de nomes semi-automática

Migração É o processo de mudança de plataforma tecnológica a partir de um ativo de sistemas existente

Benefícios Preservar esforços de desenvolvimento Preservar integração de sistemas Garantir atualização tecnológica Facilitar a manutenção de software

Por Que é difícil a migração de sistemas legados ? Projetos grandes são difíceis de gerenciar Não existem especificações Não existem ferramentas e métodos adequados Insegurança quanto a mudança

Passos para correta migração Acessar de forma adequada os sistemas legados Organizar os dados do sistema atual Migrar somente os dados Migrar outros componentes do sistema Evoluir com ainclusão de extensões nas funções do sistema atual

Principais motivos de mudança Onda de ... sizing Promessas de fornecedores Mídia abusiva Insatisfação dos usuários Crescimento da concorrência Múltiplas opções de tecnologias

Algumas Tecnologias em evidência Orientação a objetos Ambientes gráficos Arquitetura cliente / servidor Internet

Mandamentos da computação Cliente / Servidor 1. Não negligenciarás o gerenciamento de tua rede 2. Não castigarás teus usuários com computadores de baixa potência 3. Treinarás tua equipe de sistemas adequadamente 4. Lembrarás de fazer backup regularmente de teus dados 5. Adotarás padrões e irás segui-los

Continuação dos Mandamentos 6. Não cairás na tentação de desligar o mainframe 7. Não prometerás mundos e fundos 8. Lembrarás de teus dados para mantê-los puros 9. Não serás mesquinho ao escolher as ferramentas de desenvolvimento 10. Protegerás teus usuários de si mesmos Fonte: Cliente Servidor para Leigos Doug Lowe / Editora Berkeley