1 / 17

Reengenharia de Software

Sistemas legados. Para entender a reengenharia, necessrio entender o que so sistemas legados:Antigos" 10 a 15 anos de usoGrandesEssenciais para o negcio da empresaPassaram por sucessivas manutenes. Sistemas legados. Problemas?Dificuldade crescente na manutenoDificuldade em serem

britain
Download Presentation

Reengenharia de Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. Reengenharia de Software O que é? Para que serve? Em que situações se aplica? Quais as principais atividades?

    2. Sistemas legados Para entender a reengenharia, é necessário entender o que são sistemas legados: “Antigos” – 10 a 15 anos de uso Grandes Essenciais para o negócio da empresa Passaram por sucessivas manutenções

    3. Sistemas legados Problemas? Dificuldade crescente na manutenção Dificuldade em serem substituídos

    4. Sistemas legados O que fazer com um sistema legado? Mais comum: continuar a dar manutenção Mais radical: substituir Alternativa: aplicar reengenharia para prolongar a vida destes sistemas

    5. Sistemas legados Por que é difícil substituir? A especificação não existe ou pode estar desatualizada Regras corporativas ou legais estão incorporadas no software mas não estão documentadas em nenhum lugar Riscos naturais do desenvolvimento de um novo software

    6. Sistemas legados Quanto mais antigo, mais difícil a manutenção Por que é difícil dar manutenção? Diferentes equipes trabalharam no sistema A linguagem pode ser obsoleta Documentação desatualizada ou inexistente Estrutura difícil de ser compreendida Sistemas antigos foram escritos para otimizar desempenho, e não para facilitar a manutenção Dados podem estar em diferentes arquivos

    7. Reengenharia Em algumas situações, algumas empresas investem em reengenharia de sistemas legados Definição: Reengenharia é a atividade de reimplementar um software, sem alterar a funcionalidade Objetivo: tornar a manutenção de sistemas legados mais fácil.

    8. Reengenharia Diferença entre reengenharia e manutenção: Manutenção: Adição ou alteração de funcionalidade Correção de erros Reengenharia A funcionalidade permanece a mesma A estrutura, porém, é melhorada

    9. Reengenharia e desenvolvimento A diferença é o ponto de partida

    10. Atividades de reengenharia: Tradução de código fonte: Engenharia reversa: Melhoria da estrutura do programa: Modularização: Reengenharia de dados:

    11. Atividades de reengenharia: Tradução de código fonte: Conversão do código fonte para uma versão mais nova da mesma linguagem ou para uma linguagem diferente Ex: de Cobol 77 para Cobol 85, de C para Java pode ser necessário por alguma atualização de hardware (pode não mais haver compilador para o novo hardware) ausência de pessoal habilitado (pode ser difícil encontrar profissionais que conheçam a “velha” linguagem)

    12. Atividades de reengenharia: Engenharia reversa: Analisar o código fonte e recriar a documentação A partir do executável, recuperar a especificação Necessária para melhorar o entendimento do software antes de se aplicar reengenharia

    13. Atividades de reengenharia: Melhoria da estrutura: Sistemas legados otimizavam o uso da memória e do processador (variáveis de 2 caracteres) Antes NE, depois nomeEmpregado Ex.: transformar uma sequência de if-else em uma estrutura case Refactoring Modularização: Reunir partes dispersas em módulos coesos

    14. Atividades de reengenharia Reengenharia de dados: Sistemas antigos (Cobol, Clipper) muitas vezes não utilizavam SGBDs Cada programa mantinha suas próprias tabelas, indexava, etc Dados redundantes, inconsistentes, ... (o mesmo dado em mais de uma tabela, sem relacionamento)

    16. Outras situações: Fusões de empresas: As empresas fundidas precisam integrar sistemas diferentes Ex.: Compra do Submarino pelas Americanas Criação da UENP Compra do Banco Real pelo Santander

    17. Resumo: Reengenharia: atividade de reimplementar um sistema legado (melhorando sua estrutura, recriando a documentação, mudando a linguagem de programação, melhorando o gerenciamento de dados). Objetivo: tornar o sistema legado mais fácil de ser mantido e prolongar sua vida útil Aplica-se a situações em que a organização usuária do software não pode substituir o sistema legado e sua manutenção é complexa (cara, demorada, sujeita a riscos)

More Related