Cohesión y acoplamiento de ambos miden la relación entre los elementos de los programas informáticos. Cohesión mide cómo los componentes de un módulo de software o una clase de objetos de software se relacionan entre sí . Acoplamiento mide la relación entre las clases y módulos separados . Una buena programación aumenta la cohesión y disminuye la cantidad de acoplamiento. Cohesión
Una clase o módulo tiene alta cohesión si todas las responsabilidades, los datos y los métodos que incluye están estrechamente relacionados. Si un módulo de proyectos de programación incluye sólo los métodos o funciones relacionadas con la programación , es muy coherente , y si también incluye organigramas y una base de clientes, que es menos cohesivo. Para medir la cohesión , calcule el número de campos compartidos que los métodos - subrutinas - en una clase tienen que acceder y compararlo con el número de campos no relacionados que utilizan. Cuanto mayor es el número de campos comunes , mayor es la cohesión
Importancia
Si un módulo tiene que manejar múltiples operaciones - . Seguridad, infraestructura, normas de la red - se hace más difícil trabajar que si todo en el módulo se centra en un solo propósito. Con un modelo de baja cohesión , puede que tenga que hacer varios cambios que no tienen , ya que cada parte tiene una solución o parche diferente. Por el contrario , si las funciones relacionadas están divididos en varios archivos en lugar de un solo archivos de cohesión , puede que tenga que hacer cambios idénticas repetidas a cada archivo en lugar de un solo arreglo a un único archivo .
acoplamiento
Cuando el diseño de su software utiliza estrecho acoplamiento entre las clases o subsistemas , lo que significa que están interconectados : Sistema a no puede llevar a cabo su trabajo sin conocer los detalles acerca de lo que está haciendo el sistema B , y cambiar a B significa que a tiene que cambiar también. Con acoplamiento débil , se puede cambiar un sistema con más facilidad. También es más difícil de estudiar el código para A si no se puede entender sin analizar el código para B y su relación.
Eficiencia
bajo acoplamiento hace que la codificación más eficiente porque se puede reutilizar más código: Si sistema a y sistema B no son interdependientes , puede copiar el código de uno de ellos en otro programa sin dificultad. Software que incluye codificación duplicados para funciones duplicadas es otro signo de ineficiencia. A menudo es mejor si vuelves a escribir el programa para eliminar funciones duplicadas , a continuación, asignar la función a su propio módulo de cohesión. Cuanto más bajo sea el nivel de acoplamiento , los más fáciles los cambios radicales convertirse.