SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
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.

Mais conteúdo relacionado

Mais procurados

Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Sérgio Souza Costa
 
Database Design Slide 1
Database Design Slide 1Database Design Slide 1
Database Design Slide 1
ahfiki
 
Segurança em Banco de Dados
Segurança em Banco de DadosSegurança em Banco de Dados
Segurança em Banco de Dados
Iorgama Porcely
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
Sudarshan Dhondaley
 

Mais procurados (20)

Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
 
BD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra RelacionalBD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra Relacional
 
Desenvolvimento de sistemas embarcados
Desenvolvimento de sistemas embarcadosDesenvolvimento de sistemas embarcados
Desenvolvimento de sistemas embarcados
 
Domain specific Software Architecture
Domain specific Software Architecture Domain specific Software Architecture
Domain specific Software Architecture
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and views
 
High/Low Level Design
High/Low Level DesignHigh/Low Level Design
High/Low Level Design
 
Desired properties of a big data system
Desired properties of a big data systemDesired properties of a big data system
Desired properties of a big data system
 
Slide 3 data abstraction & 3 schema
Slide 3 data abstraction & 3 schemaSlide 3 data abstraction & 3 schema
Slide 3 data abstraction & 3 schema
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
 
Database Design Slide 1
Database Design Slide 1Database Design Slide 1
Database Design Slide 1
 
Aprendendo Git
Aprendendo GitAprendendo Git
Aprendendo Git
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
Modelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDSModelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDS
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introdução
 
Segurança em Banco de Dados
Segurança em Banco de DadosSegurança em Banco de Dados
Segurança em Banco de Dados
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
Distributed DBMS - Unit 3 - Distributed DBMS Architecture
Distributed DBMS - Unit 3 - Distributed DBMS ArchitectureDistributed DBMS - Unit 3 - Distributed DBMS Architecture
Distributed DBMS - Unit 3 - Distributed DBMS Architecture
 
Modern database management system chapter 1
Modern database management system chapter 1Modern database management system chapter 1
Modern database management system chapter 1
 

Destaque

Responsive Design - Campus Web Developers
Responsive Design - Campus Web DevelopersResponsive Design - Campus Web Developers
Responsive Design - Campus Web Developers
Cristian Horta
 
Learn micro training for coas
Learn   micro training for coasLearn   micro training for coas
Learn micro training for coas
Chad Kealey
 
Asuntonäyttö
AsuntonäyttöAsuntonäyttö
Asuntonäyttö
aaltsir
 
Alimentación y Nutrición Familiar
Alimentación y Nutrición FamiliarAlimentación y Nutrición Familiar
Alimentación y Nutrición Familiar
irsyango
 
Faktorfaktoryangmempengaruhikehamilan
FaktorfaktoryangmempengaruhikehamilanFaktorfaktoryangmempengaruhikehamilan
Faktorfaktoryangmempengaruhikehamilan
anita sriwaty
 

Destaque (20)

Responsive Design - Campus Web Developers
Responsive Design - Campus Web DevelopersResponsive Design - Campus Web Developers
Responsive Design - Campus Web Developers
 
Learn micro training for coas
Learn   micro training for coasLearn   micro training for coas
Learn micro training for coas
 
365 lifestyle
365 lifestyle365 lifestyle
365 lifestyle
 
¿Que es sisu?
¿Que es sisu? ¿Que es sisu?
¿Que es sisu?
 
Asuntonäyttö
AsuntonäyttöAsuntonäyttö
Asuntonäyttö
 
Animales
AnimalesAnimales
Animales
 
Exploring the future of work
Exploring the future of workExploring the future of work
Exploring the future of work
 
Colorines
ColorinesColorines
Colorines
 
NHRDN VLS on Use of Various Tools for Employee Benefit
NHRDN VLS on Use of Various Tools for Employee BenefitNHRDN VLS on Use of Various Tools for Employee Benefit
NHRDN VLS on Use of Various Tools for Employee Benefit
 
Alimentación y Nutrición Familiar
Alimentación y Nutrición FamiliarAlimentación y Nutrición Familiar
Alimentación y Nutrición Familiar
 
Rusiñol i l'Auca del senyor Esteve
Rusiñol i l'Auca del senyor EsteveRusiñol i l'Auca del senyor Esteve
Rusiñol i l'Auca del senyor Esteve
 
Embedded Platform Architecture - I
Embedded Platform Architecture - IEmbedded Platform Architecture - I
Embedded Platform Architecture - I
 
Peace education in schools
Peace education in schoolsPeace education in schools
Peace education in schools
 
Reengenharia de Software
Reengenharia de SoftwareReengenharia de Software
Reengenharia de Software
 
Sptite
SptiteSptite
Sptite
 
Consecuencias do cambio climático no medio terrestre.
Consecuencias do cambio climático no medio terrestre.Consecuencias do cambio climático no medio terrestre.
Consecuencias do cambio climático no medio terrestre.
 
Technical composition 1 sample
Technical composition 1 sampleTechnical composition 1 sample
Technical composition 1 sample
 
E marketing personal assignment
E marketing personal assignmentE marketing personal assignment
E marketing personal assignment
 
Faktorfaktoryangmempengaruhikehamilan
FaktorfaktoryangmempengaruhikehamilanFaktorfaktoryangmempengaruhikehamilan
Faktorfaktoryangmempengaruhikehamilan
 
MAD_Power Point_
MAD_Power Point_MAD_Power Point_
MAD_Power Point_
 

Semelhante a Engenharia Direta

Engenharia Reversa e Reengenharia Software
Engenharia Reversa e Reengenharia SoftwareEngenharia Reversa e Reengenharia Software
Engenharia Reversa e Reengenharia Software
elliando dias
 
Es17 predicao de defeitos em software
Es17   predicao de defeitos em softwareEs17   predicao de defeitos em software
Es17 predicao de defeitos em software
Victor Hugo
 

Semelhante a Engenharia Direta (20)

Reengenharia Reversa
Reengenharia ReversaReengenharia Reversa
Reengenharia Reversa
 
SIC_201_VRSJ
SIC_201_VRSJSIC_201_VRSJ
SIC_201_VRSJ
 
Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
 
Tutorial Ansys Workbench
Tutorial Ansys WorkbenchTutorial Ansys Workbench
Tutorial Ansys Workbench
 
Manuscrito Rejuvenescimento De Software
Manuscrito   Rejuvenescimento De SoftwareManuscrito   Rejuvenescimento De Software
Manuscrito Rejuvenescimento De Software
 
Engenharia Reversa e Reengenharia Software
Engenharia Reversa e Reengenharia SoftwareEngenharia Reversa e Reengenharia Software
Engenharia Reversa e Reengenharia Software
 
Conexão entre a engenharia de manufatura e o chão de fábrica
Conexão entre a engenharia de manufatura e o chão de fábricaConexão entre a engenharia de manufatura e o chão de fábrica
Conexão entre a engenharia de manufatura e o chão de fábrica
 
Aula 02
Aula 02Aula 02
Aula 02
 
Processo de Software
Processo de SoftwareProcesso de Software
Processo de Software
 
Programacao Extrema
Programacao ExtremaProgramacao Extrema
Programacao Extrema
 
Monitoramento do Ambiente Computacional da Universidade Estadual de Campinas.
Monitoramento do Ambiente Computacional da Universidade Estadual de Campinas.Monitoramento do Ambiente Computacional da Universidade Estadual de Campinas.
Monitoramento do Ambiente Computacional da Universidade Estadual de Campinas.
 
C poli c definitivo
C poli c definitivoC poli c definitivo
C poli c definitivo
 
Professional Brief
Professional BriefProfessional Brief
Professional Brief
 
Engenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - IntroEngenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - Intro
 
ProIndústria 2018 - dia 23 - H201 - A06
ProIndústria 2018 - dia 23 - H201 - A06ProIndústria 2018 - dia 23 - H201 - A06
ProIndústria 2018 - dia 23 - H201 - A06
 
Planejamento projeto masiero
Planejamento projeto masieroPlanejamento projeto masiero
Planejamento projeto masiero
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de Software
 
Apresentação TCC - Braço Robótico para fins didáticos
Apresentação TCC - Braço Robótico para fins didáticosApresentação TCC - Braço Robótico para fins didáticos
Apresentação TCC - Braço Robótico para fins didáticos
 
Nagios
NagiosNagios
Nagios
 
Es17 predicao de defeitos em software
Es17   predicao de defeitos em softwareEs17   predicao de defeitos em software
Es17 predicao de defeitos em software
 

Mais de Kelvin Campelo

Mais de Kelvin Campelo (6)

Lander Eventos
Lander EventosLander Eventos
Lander Eventos
 
Hackathon Strans Inthegra - Teresina
Hackathon Strans Inthegra - TeresinaHackathon Strans Inthegra - Teresina
Hackathon Strans Inthegra - Teresina
 
THE WebSec
THE WebSecTHE WebSec
THE WebSec
 
Avaliação do Google Docs utilizando critérios ergonômicos de Batien & Scapin
Avaliação do Google Docs utilizando critérios ergonômicos de Batien & ScapinAvaliação do Google Docs utilizando critérios ergonômicos de Batien & Scapin
Avaliação do Google Docs utilizando critérios ergonômicos de Batien & Scapin
 
Pitch
PitchPitch
Pitch
 
Pitch
PitchPitch
Pitch
 

Engenharia Direta

  • 2. 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.
  • 3. É 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
  • 4. MANUTENÇÃO E REENGENHARIA ENGENHARIA REVERSA + ENGENHARIA DIRETA ▸O processo de engenharia reversa seguido de engenharia direta é chamando de reengenharia.
  • 5. 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
  • 6. 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.
  • 7. MANUTENÇÃO E REENGENHARIA PROBLEMA ▸Deve ser modificado para acomodar alterações e requisitos de usuário.
  • 8. 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.
  • 9. 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.
  • 10. 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.
  • 11. 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:
  • 12. 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.
  • 13. 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.
  • 14. 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).
  • 15. MANUTENÇÃO E REENGENHARIA OPÇÕES PARA ENGENHARIA DIRETA ▸As opções 2, 3 e 4 se aplicam em engenharia direta.
  • 16. 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.
  • 17. 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.
  • 18. 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.
  • 19. 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.