Está en la página 1de 27

Criterios para Evaluar la Calidad de un Diseo Modular

Cohesin

Cohesin

Definicin
Cohesin es la medida que determina en que grado se relacionan los elementos o actividades de un mdulo Por elemento entendemos:
una sentencia o grupo de sentencias invocaciones a otros mdulos conjunto de procedimientos o funciones empaquetados en el mismo mdulo

Cohesin

Tipos de Cohesin
Caja Negra Caja Gris Oscuro Caja Gris Caja Blanca

1.2.3.4.5.6.7.-

Mejor Cohesin Funcional Cohesin Secuencial Bueno Cohesin Comunicacional Cohesin Procedural Malo Cohesin Temporal Cohesin Lgica Psimo Cohesin Coincidencial Peor

Cohesin Alta => Buena Descomposicin y Bajo Acoplamiento

Cohesin Funcional

Definicin
Un mdulo tiene Cohesin Funcional si todos los elementos del mdulo contribuyen a la realizacin de una y slo una funcin
Ejemplos de Mdulos con Cohesin Funcional
Presentan Solamente UN Verbo en el Nombre del Mdulo Calcular Coseno de un Angulo Leer Registro de Transaccin Calcular Punto de Impacto de un Misil Calcular Salario Neto de un Empleado Abrir Archivo de Empleados

Cohesin Secuencial

Definicin
Un mdulo tiene Cohesin Secuencial si sus elementos estn involucrados en actividades tales que los datos de salida de una actividad sirven como datos de entrada para otra actividad
Ejemplos de Mdulos con Cohesin Secuencial
Generalmente Presentan Conjuncin en el Nombre del Mdulo Validar Registro y Grabar Registro Vlido Obtener Fecha de Nacimiento y Calcular Edad Obtener Cdigo de Producto y Recuperar Precio Unitario

Cohesin Secuencial
pedido de reintegro

Tiene Cohesin Secuencial

legajo de cliente

Obtener Pedido de Reintegro y Legajo de Cliente


nro. cliente legajo de cliente

pedido de reintegro

Obtener Pedido de Reintegro

Obtener Legajo de Cliente

Diccionario de Datos pedido de reintegro : = nro. cliente + anlisis + importe + fecha legajo de cliente : = nro. cliente + nombre cliente + direccin + nro. plan

Cohesin Secuencial
cdigo de producto

Tiene Cohesin Secuencial

precio x unidad

cdigo de producto

Obtener Cdigo de Producto y Recuperar Precio Unitario


cdigo de producto

precio x unidad

Obtener Cdigo de Producto

Recuperar Precio por Unidad

Cohesin Secuencial
Tiene Cohesin funcional
Editar rengln de factura
cdigo de producto cdigo de producto precio x unidad

Obtener Cdigo de Producto

Recuperar Precio por Unidad

Cohesin Comunicacional

Definicin
Un mdulo tiene Cohesin Comunicacional si sus elementos estn involucrados en actividades tales que todas utilizan los mismos datos de entrada y no importa el orden en que se realicen
Ejemplos de Mdulos con Cohesin Comunicacional
Generalmente Presentan Conjuncin en el Nombre del Mdulo Recuperar Nombre y Saldo de un Cliente Recuperar Ttulo, Autor y Precio de un Libro Calcular Salario Promedio y Mximo Generar Informe de Salarios y Calcular Salario Promedio

Cohesin Comunicacional
nro. de cuenta nombre cliente saldo

Tiene Cohesin Comunicacional

Recuperar Saldo y Nombre Cliente


nro. de cuenta nombre cliente

saldo

Consultar Saldo

Consultar Nombre Cliente

Cohesin Procedural

Definicin
Un mdulo tiene Cohesin Procedural si sus elementos estn involucrados en actividades diferentes donde el control es la principal relacin
Ejemplos de Mdulos con Cohesin Procedural
Generalmente Presentan Nombres que denotan Flujo de Control Grabar Ultima Transaccin y Obtener Siguiente Grabar Ultimo Registro, Leer y Editar Nuevo Registro Rutina de Iteracin Mdulo de Decisin

Cohesin Procedural
Mdulo Procesar Tablas de Ventas Usa tablaVentasSemanal, tablaVentasPorSucursal totalSemanal := totalSucursales := 0 Para i:= 1 hasta 7 hacer
totalSemanal := totalSemanal + tablaVentasSemanal[i] totalSucursales := totalSucursales + tablaVentasPorSucursal[i]

Fin Para ventaPromedioPorDia := totalSemana / 7 ventaPromedioPorSucursal := totalSucursales / 7 Retorna ventaPromedioPorDia, ventaPromedioPorSucursal Fin Mdulo
Tanto Tanto los los das das de de la la semana semana como como el el nmero nmero de de sucursales sucursales son son siete siete

Cohesin Temporal

Definicin
Un mdulo tiene Cohesin Temporal si sus elementos estn involucrados en actividades cuya relacin principal es el tiempo
Presentan Nombres que denotan actividades que se deben realizar juntas en un determinado momento

Ejemplos de Mdulos con Cohesin Temporal


Inicializar Variables Globales Finalizar Transaccin Abrir Archivos Cerrar Archivos
Inicializar Variables

Cohesin Lgica

Definicin
Un mdulo tiene Cohesin Lgica si sus elementos estn involucrados en actividades que responden a una misma categora general
Adems, la(s) actividad(es) a ser a ser ejecutada(s) son seleccionadas externamente con una cupla de control
Presentan Disyuncin actividad de propsito general en el Nombre del Mdulo

Ejemplos de Mdulos con Cohesin Lgica


Generar Informe de Ventas de Compras Generar Informes Leer Registro A Registro B Registro C Mdulo General de Consultas

Cohesin Lgica
Tiene Cohesin Lgica
Op informe de compras informe de ventas informe de produccin Op = 1 Generar Informe de Compras Especificacin del Mdulo Generar Informes Case Op Op = 2 Op = 3

Generar Informes

Generar Generar Informe de Informe de Ventas Produccin

Generar Informe de Compras

Generar Informe de Ventas

Generar Informe de Produccin

Cohesin Coincidencial

Definicin
Un mdulo tiene Cohesin Coincidencial si sus elementos estn involucrados en actividades para las que es imposible encontrar alguna relacin (ni datos, ni control, ni tiempo, ni categora general)
Ejemplos de Mdulos con Cohesin Coincidencial
Presentan un Nombre crptico sin significado Mdulo X-666 Mdulo de Miscelneas Utilidades & Parches
Op

M X-666

Cohesin Coincidencial Caractersticas


Tentativas intiles de Economa de Memoria Tentativas de Mejorar Tiempos de Respuesta Tentativas de Mejorar la Cohesin Pobre de Otros Mdulos (Dejando las Partes Poco Cohesivas en un nico Mdulo) Al igual que con Cohesin Lgica, comnmente es necesario enviar una cupla de Control para seleccionar la actividad a realizar

Determinando el nivel de Cohesin

Cmo determinamos la Cohesin de un mdulo de forma sistemtica?


Se debe Examinar Nombre del mdulo
til slo si el nombre define precisa, completa y honestamente lo que hace el mdulo

Subordinados en el DE
Los subordinados representan sub-funciones del mdulo

Estructura interna
Especificaciones (Pseudo-cdigo, Diagramas de Nassi, etc.) Cdigo fuente

Determinando el nivel de Cohesin

Cmo determinamos la Cohesin de un mdulo de forma sistemtica?


Utilizando un rbol de Decisin
S El mdulo ejecuta una nica funcin? Que relacin tienen las No actividades del mdulo?

1.- Funcional
Datos Control Tiempo Las actividades S son de la misma categora general? No La secuencia es importante? S No

2.- Secuencial 3.- Comunicacional 4.- Procedural 5.- Temporal 6.- Lgica 7.- Coincidencial

Ninguna de las Anteriores

Mdulos con ms de una Cohesin

Problema
Algunas veces un mdulo puede presentar justificadamente ms de un nivel de cohesin ...
Qu Cohesin Tiene Terminar Transaccin ? Temporal Comunicacional ?
transaccin Imprimir Transaccin

transaccin Terminar Transaccin transaccin Grabar Transaccin

Reglas de Cadenas en Serie y Paralelo

Heurstica
Aplicar reglas de cadena en serie y cadena en paralelo [Page Jones 88]. Podemos ver a las actividades de un mdulo como los eslabones de una cadena y a la cohesin como la fuerza que une dichos eslabones

Reglas de Cadenas en Serie y Paralelo

Cadenas en Paralelo
Si todas las actividades del mdulo estn relacionadas por ms de un nivel de cohesin, entonces tomar el nivel ms fuerte como la cohesin del mdulo
Qu Cohesin Tiene Terminar Transaccin ? Temporal (peor ms dbil) Comunicacional (mejor ms fuerte) => C. Comunicacional
Imprimir Transaccin Grabar Transaccin
transaccin

Terminar Transaccin
transaccin

Reglas de Cadenas en Serie y Paralelo

Cadenas en Serie
Si existen grupos de actividades del mdulo que estn relacionados por distintos niveles de cohesin, entonces tomar el nivel ms dbil como la cohesin del mdulo
Qu Cohesin Tiene M ? Secuencial (ms fuerte)
Entre A y B Entre A y C Entre C y D
a

M
a c c

Comunicacional (ms dbil)


Entre B y C

=> C. Comunicacional

Cohesin

Tipos de Cohesin
Mejor Bueno Malo Psimo Peor

1.2.3.4.5.-

Cohesin Funcional Cohesin Secuencial Cohesin Procedural Cohesin Temporal

Cohesin Informacional

Cohesin Comunicacional

6.- Cohesin Lgica 7.- Cohesin Coincidencial

Cohesin Informacional Cohesin de un Cluster de Informacin cuyos mdulos tienen todos cohesin funcional

Clusters de Informacin

Definicin
Un Cluster de Informacin modela una instancia de un Tipo Abstracto de Datos
posicin pieza ocupada posicin

Mdulos de Acceso y Actualizacin => Estructura de Datos =>

Efectuar Movimiento

Posicin Ocupada?

...

Tablero de Ajedrez

Se renen en un cluster aquellos mdulos que manipulan una misma Estructura de Datos

Cohesin de un Cluster de Informacin

Definicin
Si todos los mdulos de un cluster de informacin tienen cohesin funcional => El cluster (visto como un nico mdulo) tendr Cohesin Informacional En caso contrario => El cluster tendr la peor entre las cohesiones de sus mdulos

Cohesin & Acoplamiento

Relacin entre Cohesin y Acoplamiento


En General, a Mayor Cohesin Menor Acoplamiento

Comparacin de Niveles de Cohesin


Nivel A M Funcional Bueno Bueno Informacional Bueno Bueno Secuencial Bueno Bueno Comunicacional Medio Medio Procedural Variable Pobre Temporal Pobre Medio Lgica Malo Malo Coincidental Malo Pobre I C R Bueno Bueno Bueno Bueno Bueno Bueno Medio Bueno Bueno Variable Medio Medio Pobre Variable Malo Malo Medio Malo Malo Malo Malo Malo Malo Malo

A: Acoplamiento; M: Mantenibilidad; I: Implementacin; C: Comprensin; R: Reusabilidad

También podría gustarte