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

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

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

Apresentações semelhantes


Apresentação em tema: "Engenharia Reversa e Reengenharia Software Engenharia de Software Prof. Rodrigo Manoel Ricardo Vieira Edilson M Bortoletto Gabriel M Guerra Juliano Hideo."— 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 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. Introdução

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 A representação extraída do código pode diferir de uma representação similar Visões do Software

8

9 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 " Migrar software de plataformas centralizadas para ambientes distribuído 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 herana, polimorfismo e ocultamento de informaões Reengenheriar consome tempo e dinheiro. Pode-se tornar uma atividade que dura meses ou alguns anos.

21 Como Realizar a Reengenharia " Constituído de duas fases distintas / Desmontado - visando seu entendimento / Reconstruído - na forma desejada Reengenharia = Engenharia Reversa + Engenharia Progressiva 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. Desire / Decode / Art / Docket / Macs / Newcomb Muito tem que se desenvolver sobre as Ferramentas de Auxílio à Reengenharia


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

Apresentações semelhantes


Anúncios Google