Engenharia Direta

19
ENGENHARIA DIRETA MANUTENÇÃO E REENGENHARIA

Transcript of Engenharia Direta

Page 1: Engenharia Direta

ENGENHARIA DIRETAMANUTENÇÃO E REENGENHARIA

Page 2: Engenharia Direta

MANUTENÇÃO E REENGENHARIA

O QUE É ENGENHARIA DIRETA?

▸O processo de engenharia direta aplica os princípios, conceitos e métodos de engenharia de software, para recriar um aplicativo.

Page 3: Engenharia Direta

É O PROCESSO DE DESCOBRIR OS PRINCÍPIOS TECNOLÓGICOS E O FUNCIONAMENTO DE UM DISPOSITIVO, OBJETO OU SISTEMA, ATRAVÉS DA ANÁLISE DE SUA ESTRUTURA, FUNÇÃO E OPERAÇÃO. OBJETIVAMENTE A ENGENHARIA REVERSA CONSISTE EM, POR EXEMPLO, DESMONTAR UMA MÁQUINA PARA DESCOBRIR COMO ELA FUNCIONA.

ENGENHARIA REVERSA

ENTENDENDO O QUE É ENGENHARIA REVERSA

Page 4: Engenharia Direta

MANUTENÇÃO E REENGENHARIA

ENGENHARIA REVERSA + ENGENHARIA DIRETA

▸O processo de engenharia reversa seguido de engenharia direta é chamando de reengenharia.

Page 5: Engenharia Direta

ESTÁ NA HORA DE PARAR DE SEGUIR AS TRILHAS DAS VACAS. EM VEZ DE ACRESCENTAR PROCESSOS ULTRAPASSADOS EM HARDWARE E SOFTWARE, DEVEMOS REJEITÁ-LOS E COMEÇAR DE NOVO. DEVEMOS FAZER UMA "REENGENHARIA" EM NOSSOS NEGÓCIOS.

Michael Hammer

ENTENDENDO O QUE É ENGENHARIA REVERSA

Page 6: Engenharia Direta

MANUTENÇÃO E REENGENHARIA

SISTEMA ANTIGO

▸Um programa com um fluxo de controle, que graficamente equivale a um emaranhado, com módulos de 2 mil instruções, algumas poucas linhas de comentário em 290 mil instruções de c ó d i g o - f o n t e e n e n h u m a o u t ra documentação.

Page 7: Engenharia Direta

MANUTENÇÃO E REENGENHARIA

PROBLEMA

▸Deve ser modificado para acomodar alterações e requisitos de usuário.

Page 8: Engenharia Direta

MANUTENÇÃO E REENGENHARIA

OPÇÕES PARA ENGENHARIA DIRETA

▸1. Fazendo modificação após modificação, enfrentando os problemas do projeto ad hoc e do código-fonte confuso.

▸2. Entender os detalhes internos do programa em um esforço para tornar as modificações mais eficazes.

Page 9: Engenharia Direta

MANUTENÇÃO E REENGENHARIA

OPÇÕES PARA ENGENHARIA DIRETA

▸3. Reprojetar, recodificar e testar as partes do software que requerem m o d i fi c a ç ã o , a p l i c a n d o u m a abordagem de engenharia de software a todos os segmentos revisados.

Page 10: Engenharia Direta

MANUTENÇÃO E REENGENHARIA

OPÇÕES PARA ENGENHARIA DIRETA

▸4 . R e p ro j e t a r c o m p l e t a m e n t e , recodificar e testar o programa usando ferramentas de reengenharia para ajudar a entendermos o projeto atual.

Page 11: Engenharia Direta

MANUTENÇÃO E REENGENHARIA

OPÇÕES PARA ENGENHARIA DIRETA

▸Em uma primeira opção, a sugestão para que você redesenvolva um grande programa quando uma versão que ainda funcione pode ser bastante extravagante. Mas antes de fazer um julgamento, considere alguns pontos:

Page 12: Engenharia Direta

MANUTENÇÃO E REENGENHARIA

OPÇÕES PARA ENGENHARIA DIRETA

▸O custo para manter uma linha de codigo pode ser 20 a 40 vezes a do desenvolvimento inicial de cada linha

▸O reprojeto da arquitetura de software, usando conceitos modernos de projeto, pode facilitar muito a manutenção futura.

Page 13: Engenharia Direta

MANUTENÇÃO E REENGENHARIA

OPÇÕES PARA ENGENHARIA DIRETA

▸Como já existe um protótipo do software, a produtividade do desenvolvimento deverá ser muito mais alta que a média.

▸O usuário agora tem experiência com o software. Portanto, novos requisitos e a direção das mudanças podem ser definidos com grande facilidade.

Page 14: Engenharia Direta

MANUTENÇÃO E REENGENHARIA

OPÇÕES PARA ENGENHARIA DIRETA

▸Ferramentas automatizadas para reengenharia facilitarão algumas partes do trabalho.

▸Existirá uma configuração de software completa(documentos, programa e dados).

Page 15: Engenharia Direta

MANUTENÇÃO E REENGENHARIA

OPÇÕES PARA ENGENHARIA DIRETA

▸As opções 2, 3 e 4 se aplicam em engenharia direta.

Page 16: Engenharia Direta

MANUTENÇÃO E REENGENHARIA

CUSTO X BENEFÍCIO

▸O custo associado ao suporte e manutenção continuados de um aplicativo existente, é comparado aos custos projetados da reengenharia e a redução resultante nos custos de manutenção e suporte.

Page 17: Engenharia Direta

MANUTENÇÃO E REENGENHARIA

CUSTO X BENEFÍCIO

▸Em quase todos os casos nos quais um programa tem uma vida longa e a p r e s e n t a n o m o m e n t o u m a manutenibilidade ou suportabilidade ruim, a reengenharia representa uma estratégia de negócio eficiente em termos de custo.

Page 18: Engenharia Direta

MANUTENÇÃO E REENGENHARIA

CONCLUSÃO

▸Na maioria das vezes a engenharia direta não cria apenas um programa equivalente moderno de um programa antigo. Em vez disso o programa redesenvolvido amplia a capacidade do aplicativo antigo.

Page 19: Engenharia Direta

MANUTENÇÃO E REENGENHARIA

BIBLIOGRAFIA

▸Engenharia de Software - 7.ed.: Os Paradigmas Clássico e Orientado a Objetos. Por Stephen R. Schach

▸Engenharia de Software. Por Roger S. Pressman.