Engenharia Reversa
Reengenharia
SCE 186 – Engenharia de Software
Profa Rosana T. Vaccare Braga
(material adaptado a partir do concedido pela
Profa.: Rosângela Penteado, DC - UFSCar)
Fases Genéricas do Ciclo de Vida
Engenharia
Sistemas
Sistema
Análise
Projeto
Requisitos
•Sistema
•Requisitos
•Desenvolvimento
Codificação
Testes
Desenvolvimento
porque? o que? como? Manutenção
Abstração
• Definição de Abstração: habilidade de se ignorar os aspectos de assuntos não relevantes para o propósito em questão
• Nível de Abstração: Cada passo no processo de desenvolvimento de software é um refinamento do nível de abstração do software. Nos estágios iniciais do ciclo de vida as informações possuem alto nível de abstração e nos estágios finais baixo nível de abstração
•Grau de Abstração: Está relacionado a uma mesma atividade no ciclo de vida do software. Informações numa forma mais global possuem alto grau de abstração, numa forma mais detalhada possuem baixo grau de abstração alto Sistema
Requisitos
Desenvolvimento
Grau de
Abstração
baixo alto Nível de Abstração
baixo
Engenharia Progressiva x Engenharia Reversa
• Engenharia Progressiva: Processo tradicional de engenharia de software, caracterizado pelas atividades progressivas do ciclo de vida, que partem de um alto nível de abstração, para um baixo nível de abstração.
•Engenharia Reversa: O processo inverso a 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. alto Sistema
Requisitos
Eng.
Progressiva
Grau de
Abstração
Eng. Reversa
Desenvolvimento
Eng.
Progressiva
Eng. Reversa
baixo alto Nível de Abstração
baixo
Software Produzido
•Análise - o quê o sistema deve fazer.
Documento de Especificação
•Projeto - Utiliza o documento de especificação e define como o comportamento especificado será obtido
Documento de Arquitetura
•Implementação - Utiliza uma linguagem de programação Código
Mas