Reestruturação de Software

   Um software pode sofrer várias mudanças durante sua vida útil, e essas mudanças contínuas geralmente fazem com que ele tenda a ficar menos estruturado. Isso manifesta-se em documentação incorreta, código sem padrão e tempo maior para os programadores entendê-lo, aumentando os custos com a manutenção de software.
   Reestruturação é o processo de transformação de um software de uma forma de representação não -estruturada em uma forma estruturada preservando sua funcionalidade. Sua finalidade é fazer o software mais fácil de se entender e mudar, ou ficar menos suscetível a erros quando mudanças futuras fores feitas.
   "O conceito de Reestruturação foi usado por Bohm e Jacopini como a base para a prova original de que qualquer programa pode ser escrito em uma forma estruturada, usando apenas 3 construções: sequência, condição e repetição. Em 1971, Ashcroff e Manna demonstraram que programas desestruturados contendo comandos de desvio de fluxo, como o comando GOTO, poderiam ser traduzidos facilmente em uma forma estruturada equivalente" Yourdon.
   O uso da Reestruturação não transforma código ruim em código bom, mas tende a reduzir a complexidade do programa ao reorganizar o fluxo lógico, de forma que o programador possa ler a listagem do programa em linha reta. O termo possui um significado maior, pois reconhece a aplicação de transformações similares em modelos de dados, projetos, e estrutura de requisitos. Normalização é um exemplo de Reestruturação de um banco de dados para melhorar seu modelo lógico.
   Um pequeno exemplo de reestruturação:
   O código a seguir feito na liguagem x incialmente estava assim:

... 
1500 IF salb> valis then calimp else goto 2000 end-if
...

  Suponha que referido trecho faça parte de uma grande aplicação e alguém vá dar manutenção no mesmo. Fica complicado entender o significado do código apenas olhando, sem comentário e com nomes de variáveis estranhos.
   Alguém teve pena dos mantenedores e resolveu reestruturar o código, que ficou assim:
   ...
   1500 IF salarioBruto > limiteIsencao then
   1600   calculaImposto();
   1700 else
   1800  isento := true;
   ....
   O que foi feito? Apenas colocou-se nome mais claros para as variáveis e funções, identou-se o código e tirou-se o desvio de fluxo (GO TO).
   Alguns ambiente de desenvolvimento já vem com ferramentas que facilitam a reestruturação, com funções de auto-identação, ferramentas de refatoração, etc.
   Vantagens da Reestruturação:

  • Código reestruturado é funcionalmente equivalente ao programa original;
  • Torna o software mais fácil de se entender;
  • Facilita a documentação;
  • Aumenta a produtividade reduzindo o tempo de manutenção;
  • Aumenta o tempo de vida do software
   Por hoje é só!!!

Postagens mais visitadas