Programación Top-Down y Modularidad en COBOL
Clase 23 de 24 • Curso de COBOL desde Cero
Top-down
Una técnica común para hacer los programas más sencillos de leer y más eficientes es la programación top-down (de arriba hacia abajo).
El término implica que el diseño adecuado del programa se logra mejor desarrollando los módulos o procedimientos principales antes que el resto de los módulos. Por lo tanto, en un programa top-down, las rutinas o párrafos principales se codifican primero y son seguidas por las rutinas intermedias y al final las rutinas menores.
Al codificar los módulos de esta manera de arriba hacia abajo, se presta una atención primordial a la organización general del programa. Los detalles se aplazan o se guardan para los módulos menores, que se codifican en último lugar.
La programación de top-down (arriba hacia abajo) es análoga a diseñar un trabajo final desarrollando primero un esquema, que se vuelve cada vez más detallado solo después de que se ha establecido la organización o estructura principal. Esta técnica top-down estandarizada complementa el enfoque estructurado para lograr un diseño de programa eficiente.
Para visualizar correctamente los módulos, estos deben representarse en una estructura de árbol de módulos o diagrama jerárquico, el cual es un diagrama usado para representar la jerarquía de los módulos:
-
Un diagrama jerárquico o estructura de árbol representa los módulos del programa como cajas rectangulares e ilustra la relación entre módulos con el uso de líneas que se conectan.
-
Un módulo es un segmento bien definido del programa que realiza una función específica. Un módulo puede ser una escritura de encabezados, una lectura de archivos, un párrafo de validación de error, etc.
Los lineamientos para la definición del árbol de módulos:
-
Cada módulo se representa como un "rectángulo o cajita", tiene conectados hacia abajo los módulos que dependen de él exclusivamente.
-
En la parte inferior se representan sin estar conectados, los módulos compartidos.
El siguiente ejemplo ilustra la relación entre los módulos en un diagrama jerárquico:
En el diagrama anterior, de las letras A hasta la letra I, representan nombres de párrafos que son ejecutados con el uso de la palabra PERFORM, como se muestra a continuación:
- .
.
PERFORM B.
.
.
PERFORM C.
.
.
.
PERFORM D.
- .
PERFORM E.
- .
.
.
El diagrama jerárquico sólo ilustra los módulos ejecutados por otros módulos. A diferencia del pseudocódigo o los diagramas de flujo, las instrucciones dentro de cada “rectángulo o cajita” no son mostradas. Cada cajita representa un módulo. Si un módulo llama a otro módulo, este es especificado en una caja separada.
Ventajas de un diagrama jerárquico o estructura de árbol
-
Ayuda a los programadores, analistas de sistemas, y a los usuarios a ver cómo se interrelacionan los módulos.
-
Ayuda a los programadores a depurar y modificar los programas.
-
Ayuda a los líderes técnicos a evaluar la eficiencia de los programas.
En resumen, la codificación de los módulos de una manera jerárquica es llamada programación top-down.
Modularidad
Cada segmento bien definido de un programa debe ser codificado como un módulo y ejecutado con la palabra reservada PERFORM. Los módulos o párrafos subordinados pueden ser codificados después de que la estructura principal o la lógica general del programa ha sido mapeada.
Las características de la modularidad incluyen:
-
Dividir el programa en varios grupos de instrucciones COBOL llamadas módulos o párrafos.
-
Un módulo puede contener varias instrucciones, algunas de las cuáles pueden ser PERFORM.
-
Al iniciar el procesamiento del programa, el primero de los módulos (llamado módulo de control del programa) es ejecutado.
-
Un módulo puede ser ejecutado desde uno o desde varios módulos (ejecución recursiva)
-
Cada módulo debe tener una sola función
-
La función de cada módulo debe ser completa (Que no deje vacíos a ser cubiertos por otro módulo en otro punto de la ejecución del programa)
-
La división de los módulos debe ser de acuerdo con la estructura lógica del problema a resolver
-
La división de los módulos debe aislar los efectos de posibles modificaciones al programa
-
Un módulo debe ser de un tamaño que resulte comprensible de leer
-
Si la función del módulo es muy extensa, este se subdivide en sub funciones, la función del módulo original no se debe alterar
-
La definición de cada módulo del programa debe especificar claramente:
-
El nombre del módulo
-
Cuál es la función que realiza el módulo
-
Cuál es la interfaz externa con otros módulos (que datos espera recibir y que datos devuelve)
--
Ya casi hemos llegado al final de este curso de COBOL. Acompáñame a la siguiente clase