SlideShare uma empresa Scribd logo
1 de 25
Engenharia Reversa e Reengenharia Software   Engenharia de Software Prof. Rodrigo Manoel Ricardo Vieira Edilson M Bortoletto Gabriel M Guerra Juliano Hideo
[object Object],Introdução
O que é Reengenharia de Software   ,[object Object]
Figura 1‑1 Relacionamentos no Ciclo de Desenvolvimento de Software.
Engenharia Reversa Definições     O processo inverso à engenharia progressiva, caracterizado pelas atividades retroativas do ciclo de vida, que partem de um baixo nível de abstração para um alto nível de abstração, é conhecido como engenharia reversa.
[object Object],[object Object],[object Object],[object Object],[object Object],Visões do Software
[object Object],Visões do Software
Visões do Software
Visões do Software ,[object Object],[object Object],[object Object]
Categorias ,[object Object],[object Object],[object Object]
Visualização do código ,[object Object],[object Object],[object Object],[object Object]
Entendimento do Programa ,[object Object],[object Object],[object Object],[object Object],[object Object]
Entendimento do Programa ,[object Object],[object Object]
Entendimento do Programa
Reengenharia ,[object Object],[object Object],[object Object],[object Object],[object Object]
Objetivo ,[object Object]
Categorias ,[object Object],[object Object],[object Object]
O Porque da Reengenharia ,[object Object],[object Object],[object Object],[object Object],[object Object]
Software Legado ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Emprego da Reengenharia A programação orientada a objetos tem muitas vantagens sobre  a programação procedimental, Sistemas flexíveis, adaptáveis e extensíveis. Possui uma coleção rica de  mecanismos composicionais para formação de classes, instanciação de  objetos, propriedades de heran₤a, polimorfismo e ocultamento de informa₤ões Reengenheriar consome tempo e dinheiro. Pode-se tornar uma  atividade que dura meses ou alguns anos.
[object Object],[object Object],[object Object],[object Object],Reengenharia = Engenharia Reversa +    Engenharia Progressiva    pode ser de dois tipos: -Alterações parciais de funcionalidade -Alterações de implementação
Considerações num processo de reengenharia : - Executado se existir um argumento aceitável de custo/benefício - Implica melhoria através de reprojeto; - Remover projetos ruins, e manter projetos bons e simples - Problemas, os quais necessitam ser identificados; - Ferramentas adequadas aos processos de reengenharia e não  os processos adequados às ferramentas.
[object Object],- Realizar a engenharia reversa e identificar  os componentes do sistema - Decidir sobre alterações na funcionalidade - Reprojetar o sistema progressiva reimplementando   o sistema
[object Object],O modelo do processo de Reengenharia de Software define seis atividades: -Análise de inventário: -Reestruturação de Documentação -Engenharia Reversa -Reestruturação de código -Reestruturação de dados -Forward Engineering: também chamada de renovação
Aplica₤ões da Reengenharia de Software -  documentar os softwares atuais;  -  melhorar a leitura do código ;  -  redesenhar as bases de dados ;  -  alterar a plataforma de hardware ;  -  converter linguagens ;  -  adicionar novas funcionalidades e/ou capacidades;  -  facilitar os processos de manutenção;  -  evoluir os softwares num ambiente CASE.  Desire / Decode / Art / Docket / Macs / Newcomb Muito tem que se desenvolver sobre as  Ferramentas de Auxílio à Reengenharia

Mais conteúdo relacionado

Mais procurados

Saa s software como serviço (slides)
Saa s   software como serviço (slides)Saa s   software como serviço (slides)
Saa s software como serviço (slides)
Daniela Nunes
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
Abnel Junior
 
Sistemas operativos 10º
Sistemas operativos 10ºSistemas operativos 10º
Sistemas operativos 10º
teacherpereira
 

Mais procurados (20)

Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introdução
 
Java modulo 01 - Introdução
Java modulo 01 - IntroduçãoJava modulo 01 - Introdução
Java modulo 01 - Introdução
 
Sistemas Computacionais - Aula 01 - Apresentação
Sistemas Computacionais - Aula 01 - ApresentaçãoSistemas Computacionais - Aula 01 - Apresentação
Sistemas Computacionais - Aula 01 - Apresentação
 
Segurança em sistemas de informação
Segurança em sistemas de informaçãoSegurança em sistemas de informação
Segurança em sistemas de informação
 
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoBanco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
 
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
 
Saa s software como serviço (slides)
Saa s   software como serviço (slides)Saa s   software como serviço (slides)
Saa s software como serviço (slides)
 
Processadores
Processadores Processadores
Processadores
 
Aula4 levantamento requisitos
Aula4 levantamento requisitosAula4 levantamento requisitos
Aula4 levantamento requisitos
 
Aula 04 coneitos de auditoria de sistemas
Aula 04   coneitos de auditoria de sistemasAula 04   coneitos de auditoria de sistemas
Aula 04 coneitos de auditoria de sistemas
 
Exemplo de documento de requisitos
Exemplo de documento de requisitosExemplo de documento de requisitos
Exemplo de documento de requisitos
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
engenharia-de-requisitos
engenharia-de-requisitosengenharia-de-requisitos
engenharia-de-requisitos
 
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaFundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Comandos DML
Comandos DMLComandos DML
Comandos DML
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
sistemas operativos.ppt
sistemas operativos.pptsistemas operativos.ppt
sistemas operativos.ppt
 
Sistemas operativos 10º
Sistemas operativos 10ºSistemas operativos 10º
Sistemas operativos 10º
 

Semelhante a Engenharia Reversa e Reengenharia Software

Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1
Erivelton Silva Rocha
 
Aula 22 --reengenharia_de_software
Aula 22 --reengenharia_de_softwareAula 22 --reengenharia_de_software
Aula 22 --reengenharia_de_software
Hannibalking King
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
wilsonguns
 
Engenharia de Software introdução
Engenharia de Software    introduçãoEngenharia de Software    introdução
Engenharia de Software introdução
miroslayer
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
Nécio de Lima Veras
 
T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascata
wilsonguns
 

Semelhante a Engenharia Reversa e Reengenharia Software (20)

Rejuvenescimento Software
Rejuvenescimento SoftwareRejuvenescimento Software
Rejuvenescimento Software
 
Tees Final
Tees FinalTees Final
Tees Final
 
Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1
 
Aula 22 --reengenharia_de_software
Aula 22 --reengenharia_de_softwareAula 22 --reengenharia_de_software
Aula 22 --reengenharia_de_software
 
Es capítulo 2 - processos de software
Es   capítulo 2  - processos de softwareEs   capítulo 2  - processos de software
Es capítulo 2 - processos de software
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
 
Reengenharia Reversa
Reengenharia ReversaReengenharia Reversa
Reengenharia Reversa
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
Aula 01 e 02 - Engenharia de Software.pdf
Aula 01 e 02 - Engenharia de Software.pdfAula 01 e 02 - Engenharia de Software.pdf
Aula 01 e 02 - Engenharia de Software.pdf
 
ES4.ppt
ES4.pptES4.ppt
ES4.ppt
 
Engenharia de Software introdução
Engenharia de Software    introduçãoEngenharia de Software    introdução
Engenharia de Software introdução
 
Ciclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareCiclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de Software
 
Analise aula2
Analise aula2Analise aula2
Analise aula2
 
Á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
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascata
 
152191 11993
152191 11993152191 11993
152191 11993
 
Aula1 introducao engsw
Aula1 introducao engswAula1 introducao engsw
Aula1 introducao engsw
 

Mais de elliando dias

Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
elliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
elliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
elliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
elliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
elliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
elliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
elliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 

Mais de elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Engenharia Reversa e Reengenharia Software

  • 1. Engenharia Reversa e Reengenharia Software Engenharia de Software Prof. Rodrigo Manoel Ricardo Vieira Edilson M Bortoletto Gabriel M Guerra Juliano Hideo
  • 2.
  • 3.
  • 4. Figura 1‑1 Relacionamentos no Ciclo de Desenvolvimento de Software.
  • 5. Engenharia Reversa Definições   O processo inverso à engenharia progressiva, caracterizado pelas atividades retroativas do ciclo de vida, que partem de um baixo nível de abstração para um alto nível de abstração, é conhecido como engenharia reversa.
  • 6.
  • 7.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22. Considerações num processo de reengenharia : - Executado se existir um argumento aceitável de custo/benefício - Implica melhoria através de reprojeto; - Remover projetos ruins, e manter projetos bons e simples - Problemas, os quais necessitam ser identificados; - Ferramentas adequadas aos processos de reengenharia e não os processos adequados às ferramentas.
  • 23.
  • 24.
  • 25. Aplica₤ões da Reengenharia de Software - documentar os softwares atuais; - melhorar a leitura do código ; - redesenhar as bases de dados ; - alterar a plataforma de hardware ; - converter linguagens ; - adicionar novas funcionalidades e/ou capacidades; - facilitar os processos de manutenção; - evoluir os softwares num ambiente CASE. Desire / Decode / Art / Docket / Macs / Newcomb Muito tem que se desenvolver sobre as Ferramentas de Auxílio à Reengenharia