domingo, 30 de diciembre de 2007

Cohesión y acoplamiento (1 de 2)

Hoy vamos a hablar de dos características muy importantes a la hora de diseñar nuestros componentes, la cohesión y el acoplamiento.

¿Que es cohesión?
Es la relación entre varios elementos internos de un componente.

¿Que es acoplamiento?
Son las relaciones de un componente con otros componentes

Vamos un poco más en detalle la cohesión:

Un componente cuyos servicios están fuertemente relacionados se dice que posee una alta cohesión. La fiabilidad de un componente es directamente proporcional de lo fuerte que sea la relación entre sus servicios. La cohesión puede ser beneficiosa o no en base al motiva en que fué creada.

La Cohesión puede ser:
  • Funcional: Cada unidad realiza unicamente una tarea. (El tipo más fuerte de cohesión)
  • Secuencial: Cada unidad contiene operaciones que deben ser ejecutadas en un orden específico y que deben compartiendo datos.
  • Comunicativa: La operaciones en una unidad utilizan los mismos datos pero no estan relacionadas de ninguna otra manera. Este tipo de cohesión minimiza la sobrecarga de comunicación en la aplicación.
  • Temporal: las operaciones están combinadas porque se realizan a la vez.
Sin embargo no siempre la cohesión es beneficiosa. Otros tipos de cohesión pueden ocurrir en una solución poco organizada, dificultando que su entendimiento, depuración y modificación. (una ruina, vamos...)

Los tipos ineficaces de cohesión son:
  • Procedural: las operaciones se agrupan porque son ejecutadas en un mismo orden. A diferencia de la cohesión secuencial, las operaciones no comparten datos.
  • Coincidencia: Las operaciones son agrupadas sin ninguna interrelación aparente.
En el próximo post hablaremos del acoplamiento...

No hay comentarios: