Dado
un
problema a resolver, en primer lugar hay que estudiar la posibilidad de
dividirlo en otros más pequeños, llamados subproblemas
(este método es conocido como "divide y
vencerás"). Cada
uno de ellos puede tratarse de manera aislada; por tanto, la
complejidad global del problema disminuirá
considerablemente. Del mismo modo, si los subproblemas obtenidos siguen
siendo demasiado
complicados, también puede ser conveniente fragmentarlos. Y
así sucesivamente, hasta llegar a subproblemas realmente
sencillos.
A cada subproblema se le considera parte o módulo
del
problema global, y cada uno de ellos se resolverá por medio
de un programa o subprograma.
Dependiendo de las características de cada problema y
subproblemas derivados, se alcanzará un nivel de
descomposición diferente. A la persona que realice el
análisis, dichas características le
servirán para abstraer lo máximo posible el
problema y subproblemas a
resolver. La abstracción
permite considerar por separado
cada subproblema asilándolo de los demás.
Los módulos se interrelacionan entre sí, ya que,
cada uno de ellos tendrá un comportamiento que
afectará al
que esté por encima o por debajo de él. Sin
embargo,
la manera en que cada uno de los módulos realice sus tareas
no
será visible al resto de los módulos, a esto se
le conoce como encapsulación.
En resumen, la solución a un problema suele venir dada por
un programa representado por un módulo
principal, el cual se
descompone en subprogramas (submódulos),
los cuales, a su
vez, también se pueden fraccionar, y así
sucesivamente, es decir, el problema se resuelve de arriba hacia abajo.
A este
método se le denomina diseño
modular o
descendente (top-down). |