3.1 Descomposición modular
El diseño modular propone dividir el sistema
en partes diferenciadas y definir sus interfaces.
Sus ventajas: Claridad, reducción
de costos y re utilización.
Los pasos a seguir son:
1. Identificar los módulos
2. Describir cada módulo
3. Describir las relaciones entre módulos
Una descomposición modular debe poseer ciertas
cualidades mínimas para que se pueda considerar suficiente validad.
1. Independencia funcional
2. Acoplamiento
3. Cohesión
4. Comprensibilidad
5. Adaptabilidad
Independencia Funcional
Cada módulo debe realizar una función concreta
o un conjunto de funciones afines. Es recomendable reducir las relaciones entre
módulos al mínimo.
Para medir la independencia funcional hay dos
criterios: acoplamiento y cohesión
Acoplamiento
El acoplamiento es una medida de la
interconexión entre módulos en la estructura del programa. Se tiende a que
el acoplamiento sea lo menor posible, esto es a reducir las
interconexiones entre los distintos módulos en que se estructure nuestra
aplicación. El grado de acoplamiento
mide la interrelación entre dos módulos, según el tipo de conexión y la complejidad de
la interfaces:
Fuerte
- Por
contenido, cuando desde un módulo se puede cambiar datos locales de otro.
- Común,
se emplea una zona común de datos a la que tienen acceso varios módulos.
Moderado
- De
control, la zona común es un dispositivo externo al que están ligados
los módulos, esto implica que
un cambio en el formato de datos los afecta a todos.
Débil
- De
datos, viene dado por los datos que intercambian los módulos. Es el mejor.
- Sin
acoplamiento directo, es el acoplamiento que no existe
Cohesión
Un módulo coherente ejecuta una tarea sencilla
en un procedimiento y requiere poca interacción con procedimientos que
se ejecutan en otras partes de un programa. Podemos decir que un módulo
coherente es aquel que intenta realizar solamente una cosa.
Comprensibilidad
Para facilitar los cambios, el mantenimiento y
la reutilización de módulos es necesario que cada uno sea
comprensible de forma aislada.
Para ello es bueno que posea
independencia funcional, pero además es deseable:
- Identificación, el nombre debe ser adecuado y descriptivo
- Documentación, debe aclarar todos los detalles
de diseño e implementación que no queden de manifiesto en el
propio código
Adaptabilidad
La adaptación de un sistema resulta más
difícil cuando no hay independencia funcional, es decir, con alto acoplamiento
y baja cohesión, y cuando el diseño es poco comprensible. Otros factores
para facilitar la adaptabilidad:
Previsión, es necesario prever que aspectos
del sistema pueden ser susceptibles de cambios en el futuro, y poner
estos elementos en módulos independientes, de manera que su modificación
afecte al menor número de módulos posibles
Accesibilidad, debe resultar sencillo el
acceso a los documentos de especificación, diseño, e implementación para obtener
un conocimiento suficiente del sistema antes de proceder a su adaptación
Consistencia, después de cualquier adaptación
se debe mantener la consistencia del sistema, incluidos los
documentos afectados.
muy bien trabajo y buena informacion felicidades
ResponderEliminarLa información planteada en el blog es buena...
ResponderEliminar