Definición de Cohesión:
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.
Tipos de Cohesion
* 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.
No hay comentarios:
Publicar un comentario