3.1.Técnica Top-Down y fragmentación de problemas

Importante
Top-down
El diseño modular de programas estructurados se basa en la división del programa en subprogramas más sencillos. La estructura principal estará dividida en niveles de mayor a menor complejidad, interrelacionados entre sí mediante una estructura jerárquica.
Esta técnica se denomina top-down, diseño descendente o "divide y vencerás".

![]() |
Imagen en pixabay de geralt bajo licencia Creative Common |
Ya conocemos la técnica "Divide y vencerás" o "top-down" como técnica apropiada para abordar la resolución de un problema complejo mediante un programa informático.
Cualquier software informático tiene en cuenta esta manera de trabajar para, a partir de unos requerimientos iniciales, realizar una serie de cálculos o procesos intermedios que permitan finalmente mostrar los resultados esperados.
Un ejemplo típico puede ser el abrir una nueva ventana en tu navegador, internamente el sistema debe llamar a un tipo de dato especial, llamémosle TipoVentana e incluir en él la información visualizada.
Esta técnica de descomponer un programa (principal) en subprogramas o módulos (secundarios) más sencillos nos permite separadamente solucionar pequeños problemas que en un solo paso o con un único programa sería una labor casi imposible.
El programa principal tomará el control al principio de la ejecución y desde él se llamará a cada uno de los módulos. Una vez realizada la llamada a un módulo, se transfiere el control a éste, que al terminar devolverá el control a la instrucción siguiente desde la que fue llamado.
La estructura de un módulo o subprograma es la misma que la de un programa:
- suministrando junto a su nombre (al ser llamado) la información de entrada
- declarando las variables y/o constantes necesarias en su interior
- realizando las acciones convenientes
- y por último devolviendo los resultados al programa que lo llamó
Las principales ventajas de la programación modular son las siguientes:
- Facilitar la comprensión del problema y su resolución escalonada.
- Aumentar la claridad y legibilidad de los programas. Simplificación del código.
- Permitir la resolución del problema por varios programadores a la vez.
- Reducir el tiempo de desarrollo aprovechando módulos previamente desarrollados.
- Mejorar la depuración de los programas, pues se pueden depurar los módulos aisladamente de forma más sencilla e independiente.
- Facilitar un mejor y más rápido mantenimiento de la aplicación al poder realizar modificaciones o implementaciones de una forma más sencilla tomando como base los módulos ya desarrollados.
Estas ventajas adquieren su máxima importancia cuando los módulos para realizar tareas típicas que se repiten en todos los programas ya están implementados y simplemente se nombran en el programa.
Con el término Funciones o Procedimientos, en programación, hacemos referencia a estos módulos o subprogramas anteriormente mencionados. Estos procedimientos se almacenan en una bibliotecas denominadas librerías.

Actividad
Un procedimiento o función es un conjunto de instrucciones que realiza una o varias tareas específicas. Sus componentes son:
- una entrada o entradas determinadas.
- un dato de salida.
- un nombre único e identificable en el algoritmo del programa principal.
El trabajo con funciones es útil en estos casos:
- cuando una tarea debe ejecutarse varias veces en un programa.
- cuando la resolución de un problema requiere un código extenso y de lectura complicada.
Sin embargo, no todos los lenguajes de programación admiten el uso de procedimientos. Además, en cada lenguaje se designan los procedimientos de un modo distinto:
Procedimientos y funciones | Pascal |
Funciones | C y C++ |
Subrutinas | Basic y Fortran |
Secciones | Cobol |

AV - Pregunta Verdadero-Falso
Después de tanta información, ¿quieres comprobar todo lo que has aprendido?
Retroalimentación
Falso
Retroalimentación
Verdadero
Retroalimentación
Falso
Retroalimentación
Falso