|
|
| Contenidos > 3.2
Diseño modular |
|
|
| 3.2 Diseño modular |
|
|
|
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).
Definición
de conceptos relacionados en el Mini Diccionario Informático
· Definición
de algoritmo.
· Definición
de análisis.
· Definición
de ciclo de vida de un programa.
· Definición
de pseudocódigo.
|
|
|
|
|
| Contenidos > Apartado siguiente del
Curso de Ingeniería del Software |
|
| 3.3
¿Qué es un algoritmo? |
|
|
|
|