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

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

Engenharia Reversa e Reengenharia Software

Apresentações semelhantes


Apresentação em tema: "Engenharia Reversa e Reengenharia Software"— Transcrição da apresentação:

1 Engenharia Reversa e Reengenharia Software
Engenharia de Software Prof. Rodrigo Manoel Ricardo Vieira Edilson M Bortoletto Gabriel M Guerra Juliano Hideo

2 Introdução A manutenção software está cercada de dificuldades, sendo q as soluções não acompanham essa evolução. O código fonte e documentação mal elaborada, além da falta de compreensão do sistema são problemas constantes. A partir do momento em que um sistema começa a ser utilizado, ele entra em um estado contínuo de mudança. Mesmo que tenha sido construído aplicando as melhores técnicas de projeto e codificação existentes, os sistemas vão se tornando obsoletos em vista das novas tecnologias que são disponibilizadas.

3 O que é Reengenharia de Software
Primeiramente devemos considerar três conceitos dependentes: a existência de um processo de desenvolvimento de software, a presença de um sistema a ser analisado e a identificação de níveis de abstração.

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 Visões do Software Software visualizado de diferentes maneiras
Visão a nível implementacional: caracteristicas da linguagem; Visão a nível estrutural: detalhes da linguagem Visão a nível funcional: função de um componente Visão a nível domínio: contexto de operação do sistema

7 Visões do Software A representação extraída do código pode diferir de uma representação similar

8 Visões do Software

9 Visões do Software As vezes é nescessário acrescentar:
Informações do código Informações provenientes de conhecimento humano

10 Categorias As categorias são divididas em: Visualização do código
Entendimento do programa

11 Visualização do código
Fase de redocumentação Representação a partir do código fonte Inteção de recuperar documentação Visualização do código, não transcende a visão em nível estrutural

12 Entendimento do Programa
Recuperação do projeto: a partir da compbinação entre: Código Documentação existente Experiências pessoais Conhecimentos gerais sobre o problema e o domínio de aplicação

13 Entendimento do Programa
Um completo entendimento de programa busca reconstruir não somente a função do sistema, mas também o processo pelo qual o sistema foi desenvolvido. A categoria de entendimento de programa é a forma mais crítica de engenharia reversa, pois tenta aproximar-se do raciocínio humano na busca do entendimento.

14 Entendimento do Programa

15 Reengenharia Definições:
Chiskofsky (1990) – alteração de um sistema de software; Wander (1992) – melhoramento do sistema, sem alterações de suas funções; Premerlani e Blaha (1994) – reduzir custos de manutenção e melhoria na flexibilidade do software; Pressman (1995) – reconstrução do sistema preservando as funções existentes, ao mesmo tempo que se adiciona novas funções;

16 Objetivo Construir um sistema novo com maior facilidade de manutenção e a engenharia reversa é usada como parte do processo re reengenharia, pois fornece o atendimento do sistema a ser reconstruido.

17 Categorias Reengenharia de Processos Administrativos
Reengenharia de Processos Produtivos Reengenharia de Sistemas de Software ou Produtos

18 O Porque da Reengenharia
Necessidade de melhoria nos serviços e produtos oferecidos; Compressão na margem de lucro; Redução do clico de vida dos produtos; Explosão tecnológica; Desgaste de Software

19 Software Legado Software antigos, onde nenhuma pessoa que participou da sua elaboração esta mais na equipe Falta de Documentação Desestruturação e dificuldade de entendimento do código, muitas vezes porque o software foi desenvolvido antes da introdução dos métodos de programação estruturada; Programadores que não participaram do desenvolvimento de um produto de software sentem dificuldade em entender e mapear a funcionalidade para o código fonte; Documentação desatualizada, não auxiliando em nada a equipe de manutenção; Dificuldade de predizer as conseqüências de efeitos colaterais; Dificuldade de administrar múltiplas alterações concorrentes.

20 mecanismos composicionais para formação de classes, instanciação de
Emprego da Reengenharia Migrar software de plataformas centralizadas para ambientes distribuído 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.

21 Reengenharia = Engenharia Reversa + D Engenharia Progressiva
Como Realizar a Reengenharia Constituído de duas fases distintas “Desmontado” - visando seu entendimento Reconstruído - na forma desejada Reengenharia = Engenharia Reversa + D Engenharia Progressiva D pode ser de dois tipos: -Alterações parciais de funcionalidade -Alterações de implementação

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 Processo de Reengenharia
-Realizar a engenharia reversa e identificar os componentes do sistema -Decidir sobre alterações na funcionalidade -Reprojetar o sistema progressiva reimplementando o sistema

24 Modelo de Reengenharia de Processos
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

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. Muito tem que se desenvolver sobre as Ferramentas de Auxílio à Reengenharia Desire / Decode / Art / Docket / Macs / Newcomb


Carregar ppt "Engenharia Reversa e Reengenharia Software"

Apresentações semelhantes


Anúncios Google