2. Presentacion
• Ruben Dario M. Perez. 2010-0247
• Lorfranklin De Js. M. B. 2010-0291
• Alex Joaquin Fais P. 2008-700
• Luisandra Rodriguez R. 2006-663
3. Estilos de descomposición
modular
• Después de elegir la organización del sistema en
su totalidad, debemos decidir cómo
descomponer los subsistemas en módulos .
• No existe una distinción rígida entre la
organización del sistema y la descomposición
modular.
• Sin embargo, los componentes de los módulos
son normalmente más pequeños, lo que permite
usar estilos alternativos de descomposición.
4. Descomposición modular
• Para realizar una descomposición modular del
sistema como actividad fundamental del diseño
es necesario concretar los siguientes aspectos:
Identificar los módulos, Describir cada módulo,
Describir las relaciones entre módulos.
5. Cont.
• El diseño modular propone dividir el sistema en
partes diferenciadas y definir sus interfaces. Sus
ventajas:
• Claridad.
• Reducción de costos.
• Reutilización
6. Cont.
• 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 de suficiente validez.
1. Independencia funcional
2. Acoplamiento
3. Cohesión
4. Comprensibilidad
5. Adaptabilidad
7. 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.
8. 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 interface:
9. Cont.
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.
10. 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.
11. 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:
12. Cont.
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.
13. 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:
14. Cont.
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.
15. Distinción entre subsistemas y
módulos
1. Un subsistema es un sistema en sí mismo. Su
funcionamiento no depende de los servicios
proporcionados por otros subsistemas .
-Los subsistemas se componen de módulos y tienen
interfaces definidas , que se usan para comunicarse
con otros subsistemas.
2. Un módulo suele ser un componente de un
subsistema, que brinda uno o más servicios a otros
módulos . A su vez éste usa los servicios
proporcionados por otros módulos. No se le puede
considerar como un sistema independiente.
16. Cont.
• Los módulos se componen normalmente de varios
componentes del sistema más simples. Hay dos
estrategias para descomponer un subsistema en
módulos:
• 1. Descomposición orientada a objetos: donde se
descompone un sistema en un conjunto de objetos
que se comunican.
• 2. Descomposición orientada a flujos de
funciones: donde se descompone el sistema en
módulos funcionales que aceptan datos y los
transforman en datos de salida.
17. Estilos de Control
• Hay dos estilos de control genéricos :
• 1. Control centralizado. Un subsistema tiene toda la
responsabilidad para controlar , iniciar y detener a
otros subsistemas. También puede devolver el
control a otro subsistema, pero esperará que le sea
devuelta la responsabilidad del control.
• 2. Control basado en eventos. En vez de que la
información de control esté embebida en un
subsistema, cada subsistema puede responder a
eventos generados externamente . Estos eventos
podrían provenir de otros subsistemas o del entorno
del sistema.