ENGENHARIA DIRETA
MANUTENÇÃO E REENGENHARIA
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.
É 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
MANUTENÇÃO E REENGENHARIA
ENGENHARIA REVERSA + ENGENHARIA DIRETA
▸O processo de engenharia reversa
seguido de engenharia direta é
chamando de reengenharia.
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
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ódigo-fonte e nenhuma outra
documentação.
MANUTENÇÃO E REENGENHARIA
PROBLEMA
▸Deve ser modificado para acomodar
alterações e requisitos de usuário.
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.
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.
MANUTENÇÃO E REENGENHARIA
OPÇÕES PARA ENGENHARIA DIRETA
▸4. Reprojetar completamente,
recodificar e testar o programa
usando ferramentas de reengenharia
para ajudar a entendermos o projeto
atual.
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:
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.
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.
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).
MANUTENÇÃO E REENGENHARIA
OPÇÕES PARA ENGENHARIA DIRETA
▸As opções 2, 3 e 4 se aplicam em
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.
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.
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.
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.

Engenharia Direta

  • 1.
  • 2.
    MANUTENÇÃO E REENGENHARIA OQUE É ENGENHARIA DIRETA? ▸O processo de engenharia direta aplica os princípios, conceitos e métodos de engenharia de software, para recriar um aplicativo.
  • 3.
    É O PROCESSODE 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
  • 4.
    MANUTENÇÃO E REENGENHARIA ENGENHARIAREVERSA + ENGENHARIA DIRETA ▸O processo de engenharia reversa seguido de engenharia direta é chamando de reengenharia.
  • 5.
    ESTÁ NA HORADE 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
  • 6.
    MANUTENÇÃO E REENGENHARIA SISTEMAANTIGO ▸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ódigo-fonte e nenhuma outra documentação.
  • 7.
    MANUTENÇÃO E REENGENHARIA PROBLEMA ▸Deveser modificado para acomodar alterações e requisitos de usuário.
  • 8.
    MANUTENÇÃO E REENGENHARIA OPÇÕESPARA 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.
  • 9.
    MANUTENÇÃO E REENGENHARIA OPÇÕESPARA 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.
  • 10.
    MANUTENÇÃO E REENGENHARIA OPÇÕESPARA ENGENHARIA DIRETA ▸4. Reprojetar completamente, recodificar e testar o programa usando ferramentas de reengenharia para ajudar a entendermos o projeto atual.
  • 11.
    MANUTENÇÃO E REENGENHARIA OPÇÕESPARA 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:
  • 12.
    MANUTENÇÃO E REENGENHARIA OPÇÕESPARA 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.
  • 13.
    MANUTENÇÃO E REENGENHARIA OPÇÕESPARA 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.
  • 14.
    MANUTENÇÃO E REENGENHARIA OPÇÕESPARA ENGENHARIA DIRETA ▸Ferramentas automatizadas para reengenharia facilitarão algumas partes do trabalho. ▸Existirá uma configuração de software completa(documentos, programa e dados).
  • 15.
    MANUTENÇÃO E REENGENHARIA OPÇÕESPARA ENGENHARIA DIRETA ▸As opções 2, 3 e 4 se aplicam em engenharia direta.
  • 16.
    MANUTENÇÃO E REENGENHARIA CUSTOX 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.
  • 17.
    MANUTENÇÃO E REENGENHARIA CUSTOX 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.
  • 18.
    MANUTENÇÃO E REENGENHARIA CONCLUSÃO ▸Namaioria 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.
  • 19.
    MANUTENÇÃO E REENGENHARIA BIBLIOGRAFIA ▸Engenhariade Software - 7.ed.: Os Paradigmas Clássico e Orientado a Objetos. Por Stephen R. Schach ▸Engenharia de Software. Por Roger S. Pressman.