Escolar Documentos
Profissional Documentos
Cultura Documentos
Setembro 2002
Tpicos Tpicos
Converso de cdigo Engenharia Reversa Re-estruturao de cdigo Modularizao de cdigo Re-estruturao dos dados Recuperao da documentao
Referncias Referncias
I.Sommerville. Sw Engineering, 6a. Edio, 2001, c. 28. R.S.Pressman. Sw Engineering: a Practitioner Approach. McGraws Hill, 3 ed, 1992.
Sobre refatorao:
http://c2.com/cgi/wiki
apesar de muitos desses programas j terem sido substitudos, ainda restam muitos em uso ... ... e novos programas so desenvolvidos, usando processos rpidos de desenvolvimento, nos quais estruturao e documentao no soa principal preocupao (ex.: XP)
Vantagens Vantagens
Melhora a estrutura do sistema Cria ou atualiza a documentao Facilita o entendimento do sistema Melhora a motivao da equipe de manuteno
Reengenharia
Sistema Antigo Compreenso e Transformao Sistema Melhorado
11
O processo O processo
Sistema Original Documentao Cdigo Remodularizado Dados originais
Converso de Cdigo
Engenharia Reversa
Remodularizao do Cdigo
Reestruturao do Cdigo
Cdigo Reestruturado
Dados reestruturados
12
Disponibilidade de ferramentas:
sem ferramentas os custos so muito elevados
O volume de dados a serem convertidos A disponibilidade de equipe treinada e com conhecimento sobre o sistema
Eliane Martins - Instituto de Computao - UNICAMP 13
Tpicos Tpicos
Converso de cdigo Engenharia Reversa Re-estruturao de cdigo Modularizao de cdigo Re-estruturao dos dados Recuperao da documentao
14
15
O processo O processo
Projetar um tradutor
Converter automaticamente
Ajustar manualmente
16
Tpicos Tpicos
Converso de cdigo Engenharia Reversa Re-estruturao de cdigo Modularizao de cdigo Re-estruturao dos dados Recuperao da documentao
17
Cria banco de dados com informaes sobre o si stema mais eficaz quando feita com auxlio de ferramentas: engenharia reversa, anlise esttica, referncias cruzadas, navegadores de programas (program browsers) ...
18
O processo O processo
Anlise esttica (automtica) Sistema original Anotao manual
Complementa informao contida nos grafos Mostra onde entidades do sistema so definidas e referenciadas
19
Elaborao da documentao
Matrizes de rastreabilidade
20
Tpicos Tpicos
Converso de cdigo Engenharia Reversa Re-estruturao de cdigo Modularizao de cdigo Re-estruturao dos dados Recuperao da documentao
21
23
25
O processo O processo
Cdigo desestruturado Cdigo estruturado Gerao de Cdigo a partir do grafo
26
Dificuldades Dificuldades
A reestruturao automtica apresenta algumas dificuldades:
perda de comentrios, em especial, os que esto na linha de comando (in-line) perda da correspondncia entre o cdigo e a documentao associada complexidade dos algoritmos de reestruturao ? procedimento longo, mesmo em hw mais velozes as ferramentas podem no reconhecer dialetos (construes no padronizadas) cdigos contendo mdulos altamente acoplados, com estruturadas de dados compartilhadas ? a reestruturao no traz grandes melhorias
Eliane Martins - Instituto de Computao - UNICAMP 27
Exerccio Exerccio
Reestruturar o cdigo a seguir: begin k := 0; l := 0; t := 0; L1: read (A); if A = 0 then goto L3; if A > 0 then goto L2; l := l + 1; goto L1; L2: k := k + 1; t := t + A; if t <= 1000 then goto L1; L3: write (k, l, t); end. Sugira nomes mais adequados para as variveis. Construa um dicionrio de dados descrevendo as variveis.
29
Tpicos Tpicos
Converso de cdigo Engenharia Reversa Re-estruturao de cdigo Modularizao de cdigo Re-estruturao dos dados Recuperao da documentao
30
Porqu?
Componentes relacionados ficam dispersos pelo programa
Como?
Geralmente manual: inspeo e re-edio do cdigo, mas j existem ferramentas que apoiam partes do processo
31
Controle do hardware
mdulos que agrupam funes de acesso a um dispositivo de hw
Mdulos funcionais
mdulos que contm funes que realizam tarefas similares ou que esto altamente relacionadas. Usados quando impraticvel recuperar tipos abstrato de dados.
Ex.: mdulo que agrupa funes de leitura e validao dos dados de entrada
32
Dados compartilhados podem ser convertidos em tipos abstratos de dados (TAD) ou objetos:
TADs ocultam a representao dos dados: criao, acesso e modificao dos mesmos so feitos atravs de funes impacto de mudanas diminui: se a interface de acesso mantida, mudanas na representao dos dados no afetam outras partes do programa
Eliane Martins - Instituto de Computao - UNICAMP 33
? Substitua todas as referncias a esses dados por chamadas s funes de atualizao e acesso
use um navegador de programas ou um gerador de referncias cruzadas para encontrar essas referncias
Eliane Martins - Instituto de Computao - UNICAMP 34
Tpicos Tpicos
Converso de cdigo Engenharia Reversa Re-estruturao de cdigo Modularizao de cdigo Re-estruturao dos dados Recuperao da documentao
35
Objetivo
melhorar compreenso dos dados usados pelo programa facilitar o controle dos dados
36
Evoluo da arquitetura
na migrao de arquitetura centralizada para distribuda, o acesso aos dados pode ser feito remotamente, por vrios usurios
Eliane Martins - Instituto de Computao - UNICAMP 37
Abordagens Abordagens
Reorganizao dos dados
eliminar duplicaes e redundncias estabelecer um formato consistente para os registros
Tamanho de campos
o mesmo item pode ter tamanhos diferentes em diferentes partes do sistema
Unidades inconsistentes
a mesma informao representada usando unidades diferentes (ex.: peso em libras ou kg)
40
O processo O processo
Sistema legado Modificao de nomes de entidades Anlise dos dados Substituio de literais por constantes Reordenao das definies dos dados Reformatao dos dados Converso de valores default Modificao das regras de validao Dados reestruturados Converso dos dados Ferramentas de anlise de dados
41
42
Tpicos Tpicos
Converso de cdigo Engenharia Reversa Re-estruturao de cdigo Modularizao de cdigo Re-estruturao dos dados Recuperao da documentao
43
Porqu:
documentao inexistente ou desatualizada
44
Sumrio Sumrio
Reengenharia o processo de reorganizao de um si stema para torn-lo mais fcil de manter A reengenharia compreende as seguintes atividades: converso de cdigo; engenharia reversa; reestruturao da documentao, do cdigo e dos dados; remodularizao do cdigo complete, levantando os principais pontos estudados:
Eliane Martins - Instituto de Computao - UNICAMP 45