Definición de Cohesión (informática)
En informática, la cohesión hace referencia a la forma en que agrupamos unidades de software (módulos, subrutinas...) en una unidad mayor. Por ejemplo: la forma en que se agrupan funciones en una biblioteca de funciones o la forma en que se agrupan métodos en una clase, etc.
El consenso general para una buena programación o un buen diseño es que la cohesión debe ser alta. Es decir, mientras más cohesionados estén los elementos agrupados, mejor.
El acoplamiento, junto con la modularidad, la cohesión y otros factores, permiten mejorar la programación y el diseño de sistemas informáticos y aplicaciones, y son cruciales en el incremento de la reutilización de los códigos.
La cohesión es fundamental en la programación ya que nos permite organizar de manera eficiente el código y facilita su comprensión y mantenimiento. Cuando los elementos agrupados están altamente cohesionados, significa que están estrechamente relacionados y cumplen un propósito específico dentro del sistema.
Por otro lado, el acoplamiento se refiere a la dependencia entre los diferentes elementos del sistema. Un acoplamiento bajo es deseable, ya que indica que los elementos están menos interconectados y pueden ser modificados de forma independiente sin afectar a los demás. Esto facilita la reutilización del código y mejora la flexibilidad del sistema.
La modularidad es otra característica importante en el diseño de sistemas informáticos. Consiste en dividir el sistema en módulos o componentes independientes, lo que facilita la comprensión y el mantenimiento del código. Además, la modularidad permite la reutilización de módulos en diferentes proyectos o partes del sistema.
En resumen, la cohesión, el acoplamiento y la modularidad son conceptos interrelacionados que deben ser tenidos en cuenta al momento de desarrollar software. Estas características permiten que el código sea más eficiente, fácilmente mantenible y fomentan la reutilización de códigos, lo que conlleva a un mejor diseño y una mayor productividad en el desarrollo de sistemas informáticos y aplicaciones.
Tipos de cohesión (criterios de agrupamiento)
* Cohesión funcional: Los elementos de la unidad de software están relacionados en el desarrollo de una única función. Es decir, las unidades de software trabajan juntas con un mismo fin. En general, es el criterio de agrupación más deseable. Probablemente haya entre las unidades un acoplamiento relativamente alto, por lo tanto es conveniente que estén juntas.
* Cohesión secuencial: Una unidad de software realiza distintas tareas en secuencia, de forma que las entradas de cada tarea son las salidas de la tarea anterior. En otras palabras, se agrupan las unidades que cumplen que los resultados o salidas que produce una sirven como entrada para que la próxima continúe trabajando.
* Cohesión comunicacional o de datos: La unidad de software realiza actividades paralelas usando los mismos datos de entrada y salida. En otras palabras, cuando todas las unidades agrupadas trabajan sobre el mismo conjunto de datos.
* Cohesión procedimental: La unidad de software tiene una serie de funciones relacionadas por un procedimiento efectuado por el código. Es similar a la secuencial, pero incluyendo el paso de controles.
* Cohesión lógica: Cuando las unidades de software agrupadas realizan un trabajo en una misma categoría lógica, pero no necesariamente tienen relación entre sí. Por ejemplo: bibliotecas de funciones matemáticas, sólo se agrupan porque realizan cálculos matemáticos, pero no tienen necesariamente relación entre ellas.
* Cohesión temporal: Los elementos de la unidad de software están implicados en actividades relacionadas con el tiempo. En otras palabras, se agrupan unidades de software que tienen que ejecutarse más o menos en el mismo período de tiempo, sin que haya otro tipo de relación entre ellas. En general debe evitarse.
* Cohesión casual o coincidente: Los elementos de la unidad de software contribuyen a las actividades relacionándose mutuamente de una manera poco significativa. En otras palabras, es cualquier criterio que no caiga dentro de los anteriores. Este tipo de cohesión viola el principio de independencia y de caja negra de las unidades de software, por lo tanto debe evitarse.
Resumen: Cohesión
La cohesión en informática se refiere a cómo agrupamos unidades de software juntas. Es mejor tener alta cohesión, lo que significa que los elementos agrupados están fuertemente relacionados. Esto mejora la programación y el diseño del sistema y aumenta la reutilización de código.
¿Qué es la cohesión en informática?
La cohesión en informática se refiere a la forma en que agrupamos unidades de software, como módulos, subrutinas, funciones o métodos, en una unidad mayor. Consiste en organizar estas unidades de manera que estén relacionadas y cumplan un propósito común dentro del sistema.
¿Por qué es importante la cohesión en el desarrollo de software?
La cohesión es importante en el desarrollo de software porque permite una mejor organización y estructuración del código. Al agrupar unidades de software de forma coherente, se facilita la comprensión, el mantenimiento y la reutilización del código. Además, una buena cohesión ayuda a minimizar los efectos secundarios y reduce la complejidad del sistema.
¿Cuáles son los tipos de cohesión más comunes?
Existen varios tipos de cohesión utilizados en el desarrollo de software. Algunos de los más comunes son:
- Cohesión funcional: cuando las unidades de software agrupadas realizan una función específica.
- Cohesión temporal: cuando las unidades de software agrupadas se ejecutan en un determinado momento o secuencia.
- Cohesión comunicacional: cuando las unidades de software agrupadas comparten datos o intercambian información.
- Cohesión procedimental: cuando las unidades de software agrupadas se ejecutan en un orden específico.
¿Qué beneficios tiene la cohesión funcional?
La cohesión funcional proporciona varios beneficios en el desarrollo de software. Permite una mejor legibilidad y comprensión del código, ya que las funciones están agrupadas en base a su propósito común. Además, facilita el mantenimiento y la modificación del código, ya que los cambios en una función no afectan a otras partes del sistema. También promueve la reutilización del código, ya que las funciones pueden ser utilizadas en diferentes contextos.
¿Cómo se puede mejorar la cohesión en un sistema existente?
Para mejorar la cohesión en un sistema existente, es importante realizar una revisión y análisis del código. Identificar las unidades de software que no están agrupadas de forma coherente y reorganizarlas. Esto puede implicar la subdivisión de módulos o clases, o la reubicación de funciones para que estén más relacionadas entre sí. También es importante documentar los cambios realizados y realizar pruebas para asegurar el correcto funcionamiento del sistema.
¿Existe algún caso en el que la cohesión no sea deseable?
En algunos casos, una excesiva cohesión puede ser poco deseable. Si todas las unidades de software están tan fuertemente acopladas que los cambios en una unidad afectan a otras partes del sistema, puede dificultar el mantenimiento y la modificación del código. En estos casos, es importante buscar un equilibrio entre la cohesión y el acoplamiento, para asegurar la flexibilidad y escalabilidad del sistema.
Términos relacionados:
• Acoplamiento
• Modularidad
• Reutilización de código
Autor: Leandro Alegsa
Actualizado: 09-07-2023
¿Cómo citar este artículo?
Alegsa, Leandro. (2023). Definición de Cohesión. Recuperado de https://www.alegsa.com.ar/Dic/cohesion.php