Cohesión (informática)En la programación de la computadora, la cohesión se refiere al grado en que los elementos de un módulo permanecen juntos.[1] Por lo tanto, la cohesión mide la fuerza de la relación entre las piezas de funcionalidad dentro de un módulo dado. Por ejemplo, en sistemas altamente cohesivos, los elementos funcionales que integran el módulo en cuestión están muy relacionados. ConceptoLa cohesión es un tipo de medición ordinal y se describe generalmente como "cohesión alta" o "cohesión baja". Se prefieren los módulos con una alta cohesión debido a varios rasgos deseables del software con los que se relaciona como la robustez, la fiabilidad, la reutilización y el grado de comprensión. Por otro lado, la baja cohesión se asocia con rasgos indeseables, tales como ser difícil de mantener, probar, volver a utilizar o incluso entender. La cohesión es a menudo comparada con acoplamiento, un concepto diferente. Una alta cohesión a menudo se relaciona con acoplamiento flexible, y viceversa.[cita requerida] Las métricas de software de acoplamiento y cohesión fueron inventadas por Larry Constantine a finales de la década de 1960, como parte del Diseño Estructurado, basado en las características de las "buenas" prácticas de programación que reducen los costos de mantenimiento y modificación. Diseño estructurado, cohesión y acoplamiento fueron publicados en el artículo Stevens, Myers & Constantine (1974) y el libro Yourdon & Constantine (1979); los dos últimos posteriormente se convirtieron en términos estándar en la ingeniería de software. Tipos de CohesiónLa cohesión en un sistema de información puede ser de los siguientes tipos:
En la programación orientada a objetos, si los métodos que sirven a una clase tienden a ser similares en muchos aspectos, entonces se dice que la clase tiene una alta cohesión. En un sistema altamente cohesivo, la legibilidad y reusabilidad del código es mayor, mientras que la complejidad se mantiene manejable. La cohesión es mayor si:
VentajasVentajas de la cohesión alta o "fuerte" son:
Aunque, en principio, un módulo puede tener una cohesión perfecta por estar constituido solo por un elemento atómico -teniendo una sola función, por ejemplo – en la práctica las tareas complejas no se pueden expresar por un solo, simple elemento. Por lo tanto un elemento de un único módulo tiene un elemento que es demasiado complicado, con el fin de realizar la tarea, o es demasiado estrecho, y por lo tanto está muy unido a otros módulos. Así que la cohesión es equilibrada con la complejidad de la unidad y el acoplamiento. |