180 likes | 481 Views
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
E N D
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)