PROGRAMACIÓN
MODULAR
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o
subprogramas con el fin de hacerlo más legible y manejable.
Se presenta históricamente como una evolución de la programación estructurada para solucionar problemas de programación más grandes y
complejos de lo que ésta puede resolver.
Al aplicar la programación modular, un problema complejo debe
ser dividido en varios subproblemas más simples, y estos a su vez en otros
subproblemas más simples. Esto debe hacerse hasta obtener subproblemas lo
suficientemente simples como para poder ser resueltos fácilmente con algún
lenguaje de programación. Ésta técnica se llama refinamiento sucesivo, divide y vencerás ó análisis descendente (Top-Down).
Un 'módulo' es cada una de las partes de un programa que
resuelve uno de los subproblemas en que se divide el problema complejo
original. Cada uno de estos módulos tiene una tarea bien definida y algunos
necesitan de otros para poder operar. En caso de que un módulo necesite de
otro, puede comunicarse con éste mediante una interfaz de comunicación que
también debe estar bien definida.

Características:
•Este paradigma también se conoce como principio de ocultación
de procedimientos y datos
•Consiste en dividir un programa en módulos o subprogramas con
el fin de hacerlo más legible y manejable.
•Se presenta históricamente como una evolución de la
programación estructurada para solucionar problemas de programación más grandes
y complejos de lo que ésta puede resolver.
Ventajas:
•Al aplicar la programación modular, un problema complejo debe
ser dividido en varios subproblemas más simples, y estos a su vez en otros
subproblemas más simples.
•En caso de que un módulo necesite de otro, puede comunicarse
con éste mediante una interfaz de comunicación que también debe estar bien
definida.
•Es fácil de mantener y modificar
•Es más fácil de escribir y depurar
•Facilidad de controlar es decir descompone un problema en
estructuras jerárquicas, de modo que se puede considerar cada estructura desde
dos puntos de vista
Desventajas:
•No se dispone de algoritmos formales de modularidad, por lo que
a veces los programadores no tienen claras las ideas de los módulos
•La programación modular requiere más memoria y tiempo de
ejecución
PROGRAMACIÓN
ESTRUCTURADA
La programación estructurada es un paradigma de
programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de
un programa de computadora, utilizando únicamente subrutinas y tres
estructuras: secuencia, selección (if y switch) e iteración (bucles for y
while), considerando innecesario y contraproducente el uso de la instrucción de
transferencia incondicional (GOTO), que podría conducir a "código
espagueti", que es mucho más difícil de seguir y de mantener, y era la
causa de muchos errores de programación.
Surgió en la década de 1960, particularmente del
trabajo de Böhm y Jacopini,1 y una famosa carta, «La sentencia goto considerada
perjudicial», de Edsger Dijkstra en 19682 — y fue reforzado teóricamente por el
teorema del programa estructurado, y prácticamente por la aparición de
lenguajes como ALGOL con adecuadas y ricas estructuras de control.
Características:
•La estructura de los programas es clara, puesto que
las instrucciones están más ligadas o relacionadas entre sí.
•Los programas son más fáciles de entender, pueden
ser leídos de forma secuencial.
•Un programa escrito de acuerdo a los principios de
programación estructurada no solamente tendrá una mejor estructura sino también
una excelente presentación.
Ventajas:
•Reducción de los costos de mantenimiento
•Reducción del esfuerzo en las pruebas y depuración
•Los bloques de código son casi auto-explicativos,
lo que reduce y facilita la documentación.
•Se incrementa el rendimiento de los programadores
Desventajas:
•El principal inconveniente de este método de
programación es que se obtiene un único bloque de programa, que cuando se hace
demasiado grande puede resultar problemático el manejo de su código fuente
•Se obtiene un único bloque de programa, que cuando
se hace demasiado grande puede resultar difícil su manejo
MODULO
Un
módulo es una porción de un programa de ordenador. De las varias tareas que
debe realizar un programa para cumplir con su función u objetivos, un módulo
realizará, comúnmente, una de dichas tareas (o varias, en algún caso).
Particularmente,
en el caso de la programación, los módulos suelen estar (no necesariamente)
organizados jerárquicamente en niveles, de forma que hay un módulo principal
que realiza las llamadas oportunas a los módulos de nivel inferior.
Cuando
un módulo es convocado, recibe como entrada los datos proporcionados por otro
del mismo o superior nivel, el que ha hecho la llamada; luego realiza su tarea.
A su vez este módulo convocado puede llamar a otro u otros módulos de nivel
inferior si fuera necesario; cuando ellos finalizan sus tareas, devuelven la
salida pertinente al módulo inmediato llamador, en secuencia reversa,
finalmente se continúa con la ejecución del módulo principal.
CARACTERISTICAS DE UN
MODULO:
Cada
uno de los módulos de un programa idealmente debería cumplir las siguientes
características:
- Tamaño relativamente pequeño.- Esto facilita aislar el impacto que pueda tener la realización de un cambio en el programa, bien para corregir un error, o bien por rediseño del algoritmo correspondiente.
- Independencia modular.- Cuanto más independientes son los módulos entre sí más fácil y flexiblemente se trabajará con ellos, esto implica que para desarrollar un módulo no es necesario conocer detalles internos de otros módulos. Como consecuencia de la independencia modular un módulo cumplirá:
- Características de caja negra, es decir abstracción (ver abstracción en programación orientada a objetos).
o Aislamiento
de los detalles mediante encapsulamiento (ver encapsulamiento en programación
orientada a objetos).
La
independencia modular mejora el rendimiento humano, pudiendo realizarse
programación en equipo y desarrollar módulos paralelamente. También contribuye
a la reutilización de software.
METODOLOGIA
DE DISEÑO

