Acoplamiento Y Coherencia

Acoplamiento Y Coherencia

Cohesion

Grado de relacion entre los elementos de un modulo. Si evaluamos el acoplamiento y la cohesion nos puede dar la calidad de un buen sistema de informacion.

La cohesion tiene que ser alta para que el sistema sea bueno.

A mayor cohesion menor acoplamiento.

Tipos de Cohesion:

Funcional: Es la ideal, todos los elementos del modulo contribuyen a cumplir una misma funcion (la del modulo).

Secuencial: Cuando los elementos de un modulo tienen (o pueden tener) distintas funciones, se relacionan con los mismos datos (comparten los datos) e importa el orden.

Comunicacional: Es igual al secuencial, pero difiere en que no importa el orden en que se ejecuten estos elementos. Es una variante la secuencial.

Procedural o procedimental: Los elemento estan relacionado por flujo de control. Son procedimientos obligatorios de la empresa: ingresarlo a la DB, darle una credencial, hacer tarjetas personales (cuando ingresa un nuevo empleado). No es bueno porque los procedimientos cambian constantemente. Importa el orden.

Temporal: La relacion es que tienen que ejecutarse al mismo tiempo. No importa el orden y conviene que evitarlos.

Para solucionar puedo hacer modulos distintos y que este tenga llamadas a funciones. Al estar separado en mas modulos me permite que sean rehusables. Hay que mirar los tipos de cohesion en el sentido de funcion, no de procedimiento.

Logica: Los elementos tienen el mismo nivel o categoria y estan relacionados a travez de un mismo elemento de datos. Esta muy ligado con el acolpamiento de control. Cuando hay acoplamiento de control, habra cohesion logica.

Coincidental: La relacion esta dada por coincidencia, no tienen un sentido.

Como determinar el grado de cohesion de un modulo:

Funcional

Si

Tiene una sola Si procedimental

Funcion? Orden?

No flujo de control No Temporal

Relacion de los Si Secuencial

Modulos datos Orden?

No Comunic.

ninguno = nivel Si Logico

de actividad

No Coincidental

Acoplamiento

Propiedad que se define entre dos modulos, es el grado de relacion que hay entre estos dos modulos.

Para tener modularidad efectiva, hay que tratar de tener menos acoplamiento.

Con el menor acoplamiento logramos que si hay que cambiar un modulo no impacte en otro modulo y asi se produzca el efecto onda. Si hay demasiado acoplamiento, hay que analizar si no conviene juntarlos. Ademas si un modulo no esta tan relacionado con otro, lo puedo usar en otro lado.

Parametros tipo dato ( se puede procesar ).

Parametros tipo flag (no se pueden procesar ).

De datos: Cuando existe conexión entre los modulos y la comunicación es a travez de estructuras de datos simples (variables)

Ej.: Se envian datos simples y se devuelven simples

Estampado: Estan conectados y la comunicación es a travez de estructuras de datos compuestas (registros).

Ej.:Se envian datos compuestos y devuelve simples.

Como el segundo modulo retorna datos simples la relacion es de datos y estampado. En estos caso se toma el de mayor acoplamiento. En ese caso seria estampado.

De control: Estan conectados y la comunicación es a travez de un indicador, flag o señal a partir de la cual se pueden tomar deciciones en el modulo subordinado o superior.

La desventaja es que hay mucha relacion entre los modulos, depende mucho uno de otro.

Ej.: El modulo subordinado, debe saber que opcion le manda el superior. El modulo subordinado no le puede informar al superior que datos debe enviarle.

Soluciones:

Que el subordinado devuelva un mensaje de error, y el superior decida que hacer.

Que el subordinado cometa error, y no devuelva nada.

Comun o por area global: Pueden o no estar conectados, pero si comparten un area global de datos (variables globales).

Ej.: Si en una DB, tengo tres modulos que comparten una tabla y decido sacar una columna de la tabla, debo modificar los modulos que hagan referencia a la tabla.


Mis sitios nuevos:
Emprendedores
Politica de Privacidad