You are on page 1of 5

3.

1 Descomposicin Modular
Proceso de descomposicin de un sistema en un conjunto de elementos
con un ndice bajo acoplamiento (independientes) y alto ndice de
cohesin (con significado propio).
Consiste en descomponer el problema a resolver en mdulos o tareas
ms simples. Cada tarea representa una actividad completa y se codifica
de manera independiente. Facilita el diseo descendente del problema,
centrndonos cada vez en la resolucin de sub problemas de magnitud
inferior.
El diseo modular propone dividir el sistema en partes diferenciadas y
definir sus interfaces.
Los pasos a seguir son:
1. Identificar los mdulos
2. Describir cada mdulo
3. Describir las relaciones entre mdulos
Una descomposicin modular debe poseer ciertas cualidades mnimas
para que se pueda considerar suficiente validad los cuales son los
siguientes:
a) Independencia Funcional
Cada mdulo debe realizar una funcin concreta o un conjunto de
funciones afines. Es recomendable reducir las relaciones entre mdulos
al mnimo.
Para medir la independencia funcional hay dos criterios: acoplamiento y
cohesin
b) Acoplamiento
El acoplamiento es una medida de la interconexin entre mdulos en
la estructura del programa. Se tiende a que el acoplamiento sea lo
menor posible, esto es a reducir las interconexiones entre los distintos
mdulos en que se estructure nuestra aplicacin. El grado de
acoplamiento mide la interrelacin entre dos mdulos, segn el tipo de
conexin y la complejidad de la interfaces:

Fuerte
Por contenido, cuando desde un mdulo se puede cambiar datos
locales de otro.

Comn, se emplea una zona comn de datos a la que tienen


acceso varios mdulos.
Moderado
De control, la zona comn es un dispositivo externo al que estn
ligados los mdulos, esto implica que un cambio en el formato de
datos los afecta a todos.
Dbil
De datos, viene dado por los datos que intercambian los mdulos.
Es el mejor.
Sin acoplamiento directo, es el acoplamiento que no existe

c) Cohesin
Un mdulo coherente ejecuta una tarea sencilla en un procedimiento y
requiere poca interaccin con procedimientos que se ejecutan en otras
partes de un programa. Podemos decir que un mdulo coherente es
aquel que intenta realizar solamente una cosa.
d) Comprensibilidad
Para facilitar los cambios, el mantenimiento y la reutilizacin de
mdulos es necesario que cada uno sea comprensible de forma aislada.
Para ello es bueno que posea independencia funcional, pero adems es
deseable:

Identificacin, el nombre debe ser adecuado y descriptivo


Documentacin, debe aclarar todos los detalles de diseo e
implementacin que no queden de manifiesto en el propio cdigo

e) Adaptabilidad
La adaptacin de un sistema resulta ms difcil cuando no hay
independencia funcional, es decir, con alto acoplamiento y baja
cohesin, y cuando el diseo es poco comprensible. Otros factores para
facilitar la adaptabilidad:

Previsin, es necesario prever que aspectos del sistema pueden ser


susceptibles de cambios en el futuro, y poner estos elementos en
mdulos independientes, de manera que su modificacin afecte al
menor nmero de mdulos posibles.

Accesibilidad, debe resultar sencillo el acceso a los documentos de


especificacin, diseo, e implementacin para obtener un conocimiento
suficiente del sistema antes de proceder a su adaptacin
Consistencia, despus de cualquier adaptacin se debe mantener la
consistencia del sistema, incluidos los documentos afectados.
El principal objetivo de la descomposicin modula es de componer los
problemas difciles en problemas sencillos de tal manera sera ms
eficiente el desarrollo del sistema. La descomposicin modular se
enfoca en reutilizar cdigo, adems debido a esta descomposicin cada
mdulo es desarrollado con un fin especfico, de esta manera los
futuros programadores comprendern fcilmente la funcin de cada
mdulo.
Ventajas:
-

Claridad
Reduccin de costos
Re utilizacin.
Evita la propagacin de errores
Facilita las interfaces e independiza la codificacin

Tiene un impacto positivo en los siguientes aspectos de programacin:


- Construccin del programa. Pueden trabajar diversos
desarrolladores gracias a la independencia de los mdulos.
- Depuracin del programa. Se centrar en cada uno de los
mdulos por separado y posteriormente se comprobar la
interaccin.
- Legibilidad del cdigo.
- Eliminacin de cdigo redundante.

Criterios a seguir durante el diseo:


- Reducir acoplamiento
- Aumentar la cohesin
- Conseguir mdulos con interfaces sencillas

Abstraccin y encapsulamiento

Idea principal: Definir una parte de un sistema de modo que puede ser
comprendido por s mismo, como una unidad, sin conocimiento de sus
detalles especficos. Solo ser necesario saber el modo de interaccionar
con dicha unidad.
Dos tipos:
Abstraccin procedimental
Los mdulos se ven como cajas negras con una determinada
funcionalidad que a su vez pueden hacer uso de otras cajas negras.
Abstraccin de datos
Los datos son vistos como elementos sobre los que se pueden realizar
un conjunto de operaciones predefinidas. En ningn momento se tiene
conocimiento de su representacin o implementacin de las
operaciones.
Modificabilidad
Una buena descomposicin modular facilitar la modificabilidad del
cdigo. Pequeos cambios en los requisitos de un programa modular
normalmente requieren un cambio pequeo slo en algunos de sus
mdulos.
Vendr condicionado por los siguientes aspectos:

Acoplamiento dbil. Los mdulos deben ser independientes entre s.

Cohesin fuerte. Las tareas de cada mdulo deben estar bien


definidas.

Se debe perseguir que los cambios debidos a modificaciones afecten a la


menor cantidad de mdulos posible.

Diagrama:

You might also like