A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Instituto Federal de São Paulo Câmpus Presidente Epitácio Tópicos Avançados: Engenharia Reversa e Reengenharia Professora: Andrea Padovan Jubileu. Alunos:

Apresentações semelhantes


Apresentação em tema: "Instituto Federal de São Paulo Câmpus Presidente Epitácio Tópicos Avançados: Engenharia Reversa e Reengenharia Professora: Andrea Padovan Jubileu. Alunos:"— Transcrição da apresentação:

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

14

15

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 ?

19

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


Carregar ppt "Instituto Federal de São Paulo Câmpus Presidente Epitácio Tópicos Avançados: Engenharia Reversa e Reengenharia Professora: Andrea Padovan Jubileu. Alunos:"

Apresentações semelhantes


Anúncios Google