Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouStéphanie Carreiro de Abreu Alterado mais de 7 anos atrás
1
Instituto Federal de São Paulo Câmpus Presidente Epitácio Tópicos Avançados: Engenharia Reversa e Reengenharia Professora: Andrea Padovan Jubileu. Alunos: Josimar Pereira de Lima; Wesley Novaes Fiorese.
2
ENGENHARIA REVERSA - INTRODUÇÃO O termo “engenharia reversa” tem sua origem na análise do hardware, onde a prática de extrair projetos de produtos já finalizados é comum. Em hardwares, a engenharia reversa é aplicada para melhorar os produtos da própria empresa e também analisar os produtos de concorrentes em situações militares ou de segurança (Rekoff, 1985).
3
ENGENHARIA REVERSA - INTRODUÇÃO O conceito de engenharia reversa de software é similar. Porém, o objetivo da engenharia reversa de hardware é, tradicionalmente, fazer um clone do sistema. Já o objetivo da engenharia reversa de software é obter compreensão do sistema em um nível de mais alta abstração. Segundo Pressman (1985) a engenharia reversa é o processo de analisar um software e criar uma representação do mesmo, em um nível de abstração mais alto que o código fonte.
4
ENGENHARIA REVERSA - ABSTRAÇÃO Abstração é a habilidade de se ignorar os aspectos de assuntos não relevantes para o propósito em questão, tornando possível uma maior concentração nos assuntos principais (Oxford, 1986).
5
ENGENHARIA REVERSA - ABSTRAÇÃO Nível de abstração: É a medida que se avança nas fases do processo de desenvolvimento de software, tem-se um refinamento do nível de abstração. Assim, nos estágios iniciais do ciclo de vida, as informações possuem alto nível de abstração – são representados poucos detalhes – e nos estágios finais, baixo nível abstração (Chikosky & Cross II, 1990) Grau de abstração: Considerando-se o mesmo nível de abstração, as informações apresentadas de forma mais global possuem alto grau de abstração, enquanto as apresentadas de forma mais detalhada, baixo grau de abstração (Chikofsky).
6
NÍVEL DE ABSTRAÇÃO X GRAU DE ABSTRAÇÃO
7
ATIVIDADES FUNDAMENTAIS NO CICLO DE VIDA
8
ENGENHARIA REVERSA - ABSTRAÇÃO Níveis de abstração no ciclo de vida Envolve o contexto em que o sistema está operando, ou seja, o porquê do sistema ser desenvolvido. 1 - Sistema (engenharia de sistemas) São definidos os serviços a serem estabelecidos pelo sistema e as restrições sob as quais ela deve operar, ou seja, o que o sistema deve fazer e sob quais circunstâncias. 2- Requisitos (análise) Cria-se um planejamento da solução, ou seja, como o sistema cumprirá o que foi estabelecido e a implementação dessa solução. 3 - Desenvolvimento (codificação e testes)
9
ENGENHARIA REVERSA - ABSTRAÇÃO
10
A ENGENHARIA PROGRESSIVA é o processo tradicional de engenharia de software, e se inicia num alto nível de abstração que vai diminuindo até chegar na implementação física do sistema. ENGENHARIA REVERSA é o processo inverso à engenharia progressiva caracterizado pelas atividades do ciclo de vida aplicadas em ordem inversa, partindo de um baixo nível de abstração para um alto nível de abstração. ENGENHARIA REVERSA x ENGENHARIA PROGRESSIVA
11
Assim, o objetivo da engenharia reversa é a produção de informações que possam aumentar o conhecimento geral de sistemas de software. Informações essas que poderão ser utilizadas em atividades como reuso, testes, e controle de qualidade do software.
12
Nos últimos anos, há um crescente reconhecimento da importância da Engenharia Reversa tanto no campo acadêmico como no ambiente de produção. Nesse escopo, procura-se identificar ferramentas já existentes ou até mesmo especificar novas ferramentas que possam servir de apoio aos passos mais trabalhosos da abordagem. ENGENHARIA REVERSA – MÉTODOS E FERRAMENTAS
13
São definidas duas categorias de Engenharia Reversa Visualização de Código ou Redocumentação : é a forma mais simples e mais antiga da Engenharia Reversa. A intenção é recuperar a documentação que já existiu, ou que deveria ter existido, sobre o sistema. A ênfase é a criação de visões adicionais, especialmente visões gráficas, que não foram criadas durante o processo original de Engenharia Progressiva. Entendimento do Programa ou Recuperação de Projeto : é o conhecimento do domínio das informações externas. As deduções são adicionadas às observações feitas sobre o sistema através do exame do mesmo de modo a obter informações com nível mais alto de abstrações. ENGENHARIA REVERSA – MÉTODOS E FERRAMENTAS
16
Para Warden [1992], a reengenharia de software tem o objetivo de proporcionar alguma melhoria em um sistema, com alterações significantes, mas conservando-se suas funcionalidades principais. Segundo Pressman [1995], a reengenharia é considerada uma reconstrução de um sistema, a partir de sua documentação e exame do mesmo, sem alterar suas funcionalidades, apenas adicionando o que se julga necessário, no sentido de devolve-lo ao usuário, com uma melhor qualidade. REENGENHARIA
17
Chikofsky e Cross definem reengenharia da seguinte forma: “o exame e a alteração de um sistema para reconstituí-lo de uma nova forma, seguida pela sua implementação “ Sinônimos de Reengenharia: melhoramento, renovação, modernização, engenharia de re-desenvolvimento, engenharia de reuso. REENGENHARIA
18
Tem-se que a segunda é um subconjunto da primeira, visto que ela é feita a partir do exame minucioso do código do produto, e será de grande valia no contexto total da reengenharia, que é considerada mais abrangente. No próximo slide são apresentadas todas as etapas da reengenharia com o intuito de fornecer um nível de abstração maior que o software antigo. QUAL A DIFERENÇA ENTRE REENGENHARIA e ENGENHARIA REVERSA ?
20
PRESSMAN, Roger S. Engenharia de Software: Uma Abordagem Profissional. 7 ed. Porto Alegre. AMGH Editora Ltda, 2011. JUBILEU, A. P. Aquisição de Conhecimento como Apoio ao Método de Engenharia Reversa. 1999. 140 f. Dissertação (Mestrado em Ciências de Computação e Matemática Computacional) – Instituto de Ciências Matemáticas e de Computação, Universidade de São Paulo, 1999. BRAGA, R. T. Engenharia de Software: Reuso de Software. Universidade Federal de São Carlos, 2002. STEFANELLI, E. J; INFANTOZZI, R; VARGAS, M. M. Engenharia Reversa: Discussão sobre a validade e legalidade desta prática. IFSP. Disponível em:. Acesso em: 06 set. 2015. CAVALCANTI, M. C. R. Engenharia Reversa na Engenharia de Software. UFRJ, 1994. Disponível em:. Acesso em: 06 set. 2015. BIBLIOGRAFIA
21
CHIKOFSKY, E, J; CROSS II, J. H. Reverse Engineering and Design Recovery: A taxonomy. IEEE Software, v. 7, p. 13-17, 1990. BIGGERSTAFF, T. J. Design Recovery for Maintenance and Reuse. IEEE Computer, v.22, p. 36-49, 1989. COSTA, R. M; SANCHES, R. Ferramentas de Engenharia Reversa no Apoio à Qualidade de Software. 1996. 135 f. Relatório Técnico– Instituto de Ciências Matemáticas e de Computação, Universidade de São Carlos, 1996. BIBLIOGRAFIA
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.