a) 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
b) Acoplamiento
El acoplamiento es un medida de la interconexión entre módulos en la estructura del programa. Podemos graduardarla en un amplio espectro, pero por lo general 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 interfase:
. 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 estan ligados los módulos, esto implica que un cambio en el formato de datos los afecta a todos.
– Por etiqueta, intercambio de datos se realiza mediante una referencia a la estructura completa de datos(vector, pila, árbol,grafo,…)
. 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
c) Cohesión
Un módulo coherente ejecuta una tarea sencilla en un procedimiento de sw 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.
Para que n° de módulos no sea demasiado elevado y complique el diseño se tratan de agrupar elementos afines y relacionados en un mismo módulo.
- ALTA
. Cohesión abstraccional, se logra cuando se diseña el módulo como tipo abstracto de datos o como una clase de objetos
. Cohesión funcional, el módulo realiza una función concreta y específica
- MEDIA
. Cohesión secuencial, los elementos del módulo trabajan de forma secuencial
. Cohesión de comunicación, elementos que operan con el mismo conjunto de datos de entrada o de salida
. Cohesión temporal, se agrupan elementos que se ejecutan en el mismo momento. Ej.Arrancar o parar dispositivos
- BAJA
. Cohesión lógica, se agrupan elementos que realizan funciones similares.
. Cohesión coincidental, es la peor y se produce cuando los elementos de un módulo no guardan relación alguna
La descripción del comportamiento de un módulo permite establecer el grado de cohesión:
– Si es una frase compuesta y contiene más de un verbo la cohesión será MEDIA
– Si contiene expresiones secuenciales (primero, entonces, cuando…), será temporal o secuencial
– Si la descripción no se refiere a algo especifico(Ej. Todos los errores), cohesión lógica
– Si aparece “inicial-izar”, “preparar”, “configurar”, probablemente sea temporal.
d) Comprensibilidad
Para facilitar los cambios, el mantenimiento y la re utilizació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 implementan que no queden de manifiesto en el propio código
– SIMPLICIDAD, las soluciones sencillas son siempre laas mejores
e) 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 implementan 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
No hay comentarios.:
Publicar un comentario