O que torna um programa bem projetado?
Autor: Luiz Francisco de Assis Borges | Publicado: 2011-07-14T23:17:00-03:00




A lógica do programa deve ser mapeada com a utilização de uma ferramenta de planejamento: Se programas forem planejados sistematicamente antes de serem codificados, eles serão mais bem projetados. Ferramentas de planejamento como pseudocódigo, fluxogramas e gráficos hierárquicos ajudam os programadores a mapear a lógica do programa. Assim como arquitetos preparam plantas antes de os prédios serem construídos, os programadores devem usar ferramentas de planejamento antes de um programa ser codificado. O processo de planejamento minimiza erros lógicos ajudando o programador a determinar como todas as instruções irão se relacionar quando o programa for realmente codificado.




Os programas devem ser estruturados: Programas bem projetados e estruturados são aqueles que possuem uma série de construções lógicas, em que a ordem na qual as instruções são executadas é padronizada. Em programas estruturados, cada conjunto&nbsp; de instruções que realiza uma função específica é definido em um módulo ou segmento de programa. Um módulo é chamado também de uma rotina ou, em COBOL, um parágrafo. Ele consiste em uma série de instruções relacionadas entre si. Cada módulo é executado em sua totalidade a partir de locais específicos de um programa. Em COBOL os módulos são executados a partir da instrução PERFORM, que permite que o controle passe temporariamente para um módulo diferente e depois retorne para o módulo original do qual a instrução PERFORM foi executada.




Exemplo:




MODULO-PRINCIPAL SECTION.

&nbsp;&nbsp;&nbsp; …

&nbsp;&nbsp;&nbsp; …

&nbsp;&nbsp;&nbsp; PERFORM MODULO-6

&nbsp;&nbsp;&nbsp; …

&nbsp;&nbsp;&nbsp; … 

MODULO-6 SECTION.

&nbsp;&nbsp;&nbsp; …

&nbsp;&nbsp;&nbsp; …

&nbsp;&nbsp;&nbsp; …

MODULO-7 SECTION.

&nbsp;&nbsp;&nbsp; …

&nbsp;&nbsp;&nbsp; …




Depois do MODULO-6 ser executado no módulo principal, o controle retorna para a instrução seguinte ao PERFORM MODULO-6 no MODULO-PRINCIPAL. Um desvio incondicional para diferentes rotinas, chamado GO TO na maioria das linguagens, é totalmente evitado em um programa estruturado bem projetado. Para maiores detalhes, leia também o post GO TO. USÁ-LO OU NÃO?




Essa técnica modular, combinada com o uso das instruções PERFORM para a execução de módulos, faz com que os programas fiquem mais fáceis de codificar, depurar, manter e modificar.

Os programas devem ser MODULARES: Cada unidade ou segmento de programa bem definido deve ser escrito como um módulo e executado por intermédio de uma instrução PERFORM. OS módulos subordinados podem ser escritos depois que a estrutura principal o a lógica geral tenha sido mapeada. Veja por exemplo, um programa que deve executar uma sequencia de passos caso dois campos sejam iguais e uma sequencia diferente de passos se os campos não foram iguais. Poderiamos codificar as instruçoes assim:




IF&nbsp; VALOR1 = VALOR2

&nbsp;&nbsp;&nbsp; Sequencia de passos...

&nbsp;&nbsp;&nbsp; …

&nbsp;&nbsp;&nbsp; …

ELSE

&nbsp;&nbsp;&nbsp; Sequencia de passos...

&nbsp;&nbsp;&nbsp; …

&nbsp;&nbsp;&nbsp; …

END-IF.




É preferível um método modular, onde cada sequencia de passos é executada em parágrafos separados:




IF&nbsp; VALOR1 = VALOR2

&nbsp;&nbsp;&nbsp; PERFORM 100-ROTINA-IGUAL

ELSE

&nbsp;&nbsp;&nbsp; PERFORM 200-ROTINA-DIFERENTE

END-IF.




Dessa forma o módulo principal se concentra na tarefa principal de verificar se os dois campos são iguais ou não. Mais tarde, nos módulos subordinados 100-ROTINA-IGUAL e 200-ROTINA-DIFERENTE, voltaremos nossas atenções para as instruções detalhadas a serem executadas conforme os campos sejam iguais ou diferentes. Observe que END-IF é um terminador de escopo usado com a instrução IF do COBOL 85.


Espero ter ajudado e até a próxima!