oop - oose - object oriented analysis and design pdf
Acoplamiento y cohesiĆ³n (6)
Estoy tratando de reducir los conceptos de acoplamiento y cohesión a una definición concisa. ¿Puede alguien darme una explicación breve y comprensible (más corta que las definiciones en Wikipedia here y here )? ¿Cómo interactúan?
Gracias.
¿Alguien tiene un buen y breve ejemplo?
"El acoplamiento es una medida de interdependencias entre los módulos, que se debe minimizar" "la cohesión, una cualidad que se debe maximizar, se centra en las relaciones entre las actividades realizadas por cada módulo".
citado de este artículo: http://steve.vinoski.net/pdf/IEEE-Old_Measures_for_New_Services.pdf
Acoplamiento significa dependencia de los demás. La cohesión significa completarse consigo mismo.
Acoplamiento: una medida de cuánto un módulo (paquete, clase, método) se basa en otros módulos. Es deseable reducir el acoplamiento, o reducir la cantidad que un módulo dado se basa en los otros módulos de un sistema.
Cohesión: una medida de cuán estrechamente relacionados están los miembros (clases, métodos, funcionalidad dentro de un método) de un módulo con los otros miembros del mismo módulo. Es deseable aumentar la cohesión ya que eso indica que un módulo tiene una tarea muy específica y solo hace esa tarea.
Una de las mejores discusiones exhaustivas sobre los conceptos de diseño de software relacionados con OO (incluidas estas) es la Construcción de software orientado a objetos de Bertrand Meyer.
Con respecto al "acoplamiento", él da su regla de Acoplamiento Débil / Interfaces Pequeñas de la siguiente manera:
Si dos módulos se comunican, deberían intercambiar la menor cantidad de información posible.
El material de Meyer relacionado con la cohesión no se reduce a una sola declaración concisa, pero creo que esta frase del Código Completo de Steve McConnell lo resume bastante bien:
La cohesión se refiere a qué tan cerca todas las rutinas en una clase o todo el código en una rutina respaldan un propósito central
Una manera rápida y sucia de medir el acoplamiento es medir sus declaraciones de import
(o similares).
Acoplamiento
Suelto: usted y el hombre en la tienda de conveniencia. Te comunicas a través de un protocolo bien definido para lograr tus objetivos respectivos: pagas dinero, te deja salir con la bolsa de Cheetos. Cualquiera de ustedes puede ser reemplazado sin interrumpir el sistema.
Apretado: usted y su esposa.
Cohesión
Bajo: la tienda de conveniencia. Vas allí para todo, desde el gas a la leche a la banca en cajeros automáticos. Los productos y servicios tienen poco en común, y la conveniencia de tenerlos a todos en un solo lugar puede no ser suficiente para compensar el aumento resultante en el costo y la disminución en la calidad.
Alto: la tienda de queso. Ellos venden queso. Nada más. Sin embargo, no se puede superar cuando se trata de queso.