180 likes | 468 Vues
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 situaes se aplica?
Quais as principais atividades?
2. Sistemas legados Para entender a reengenharia, necessrio entender o que so sistemas legados:
Antigos 10 a 15 anos de uso
Grandes
Essenciais para o negcio da empresa
Passaram por sucessivas manutenes
3. Sistemas legados Problemas?
Dificuldade crescente na manuteno
Dificuldade em serem substitudos
4. Sistemas legados O que fazer com um sistema legado?
Mais comum: continuar a dar manuteno
Mais radical: substituir
Alternativa: aplicar reengenharia para prolongar a vida destes sistemas
5. Sistemas legados Por que difcil substituir?
A especificao no existe ou pode estar desatualizada
Regras corporativas ou legais esto incorporadas no software mas no esto documentadas em nenhum lugar
Riscos naturais do desenvolvimento de um novo software
6. Sistemas legados Quanto mais antigo, mais difcil a manuteno
Por que difcil dar manuteno?
Diferentes equipes trabalharam no sistema
A linguagem pode ser obsoleta
Documentao desatualizada ou inexistente
Estrutura difcil de ser compreendida
Sistemas antigos foram escritos para otimizar desempenho, e no para facilitar a manuteno
Dados podem estar em diferentes arquivos
7. Reengenharia Em algumas situaes, algumas empresas investem em reengenharia de sistemas legados
Definio: Reengenharia a atividade de reimplementar um software, sem alterar a funcionalidade
Objetivo: tornar a manuteno de sistemas legados mais fcil.
8. Reengenharia Diferena entre reengenharia e manuteno:
Manuteno:
Adio ou alterao de funcionalidade
Correo de erros
Reengenharia
A funcionalidade permanece a mesma
A estrutura, porm, melhorada
9. Reengenharia e desenvolvimento
A diferena o ponto de partida
10. Atividades de reengenharia: Traduo de cdigo fonte:
Engenharia reversa:
Melhoria da estrutura do programa:
Modularizao:
Reengenharia de dados:
11. Atividades de reengenharia: Traduo de cdigo fonte:
Converso do cdigo fonte para uma verso mais nova da mesma linguagem ou para uma linguagem diferente
Ex: de Cobol 77 para Cobol 85, de C para Java
pode ser necessrio por alguma atualizao de hardware (pode no mais haver compilador para o novo hardware)
ausncia de pessoal habilitado (pode ser difcil encontrar profissionais que conheam a velha linguagem)
12. Atividades de reengenharia: Engenharia reversa:
Analisar o cdigo fonte e recriar a documentao
A partir do executvel, recuperar a especificao
Necessria para melhorar o entendimento do software antes de se aplicar reengenharia
13. Atividades de reengenharia: Melhoria da estrutura:
Sistemas legados otimizavam o uso da memria e do processador (variveis de 2 caracteres)
Antes NE, depois nomeEmpregado
Ex.: transformar uma sequncia de if-else em uma estrutura case
Refactoring
Modularizao:
Reunir partes dispersas em mdulos coesos
14. Atividades de reengenharia Reengenharia de dados:
Sistemas antigos (Cobol, Clipper) muitas vezes no utilizavam SGBDs
Cada programa mantinha suas prprias tabelas, indexava, etc
Dados redundantes, inconsistentes, ...
(o mesmo dado em mais de uma tabela, sem relacionamento)
16. Outras situaes: Fuses de empresas:
As empresas fundidas precisam integrar sistemas diferentes
Ex.: Compra do Submarino pelas Americanas
Criao da UENP
Compra do Banco Real pelo Santander
17. Resumo: Reengenharia: atividade de reimplementar um sistema legado (melhorando sua estrutura, recriando a documentao, mudando a linguagem de programao, melhorando o gerenciamento de dados).
Objetivo: tornar o sistema legado mais fcil de ser mantido e prolongar sua vida til
Aplica-se a situaes em que a organizao usuria do software no pode substituir o sistema legado e sua manuteno complexa (cara, demorada, sujeita a riscos)