Sunteți pe pagina 1din 34

Departamento de Informtica

Universidad de Valladolid
Campus de Segovia
______________________

TEMA 9:
CRITERIOS DE CALIDAD
DE DISEO MODULAR
CRITERIOS DE CALIDAD DE
DISEO MODULAR

Conceptos generales
Cohesin y acoplamiento
Balanceado y factorizacin
CRITERIOS DE CALIDAD

Los criterios son el acoplamiento y la cohesin.

Estos criterios fueron introducidos por Yourdon et al.


En los aos 70.

El acoplamiento es un medio de evaluar la relacin


entre los distintos mdulos de un sistema.

La cohesin mide el grado de conexin funcional


entre los constituyentes o elementos de un mismo
mdulo.
ACOPLAMIENTO.
DEFINICIN
El acoplamiento es una medida del grado de
interdependencia entre los mdulos de un sistema.

Lo deseable es tener mdulos con poco


acoplamiento (o independiente entre s).

Para ser capaces de realizar el mantenimiento de un mdulo


sin tener que cambiar otros mdulos.

Este criterio se puede relacionar con la complejidad


de una interfaz.
TIPOS DE ACOPLAMIENTO

NORMAL Menos acoplamiento

POR DATOS

POR ESTAMPADO

POR CONTROL

COMN

POR CONTENIDO Ms acoplamiento


ACOPLAMIENTO NORMAL
Se dice que dos mdulos A y B estn acoplados
normalmente si:
A invoca a B
B realiza su funcin y retorna el control a A
Toda la informacin que comparten la realizan a travs de los
parmetros presentes en la llamada.

No hay parmetros
en la llamada.
B
ACOPLAMIENTO NORMAL.
POR DATOS
Dos mdulos estn acoplados por datos si estn acoplados
normalmente y adems todos los parmetros que se intercambian son
datos elementales sin estructura interna (tipos bsicos).

Producir
Factura

TIPO COCHE
IMPORTE
KILOMETROS ALQUILER

DIAS
Calcular
alquiler
coche
Los datos que se pasan en este ejemplo son bsicos
ACOPLAMIENTO NORMAL.
POR ESTAMPADO
Dos mdulos acoplados normalmente lo estn por
estampado si uno le pasa al otro un dato compuesto (con
estructura interna).
Producir
Factura

REGISTRO
IMPORTE
ALQUILER
ALQUILER
COCHE

Calcular
alquiler
coche
Los datos que se pasan en este ejemplo son compuestos
ACOPLAMIENTO NORMAL.
POR CONTROL
Dos mdulos acoplados normalmente lo estn por control
si uno le pasa al otro un dato con la intencin de controlar
su lgica interna.
Obtener Valores del Flag
transaccin y de Seleccin:
registro 1. Obtiene registro maestro
REGISTRO
2. Obtiene registro transaccin
MAESTRO 3. Obtiene ambos
FLAG DE 4. Imprime cabecera.
SELECCIN REGISTRO
TRANSACCIN
Etc...

Control de
sistema
E/S
El mdulo jefe controla, a travs del dato Flag de seleccin, la
lgica del mdulo subordinado. Si fuera al revs se dice que hay
una inversin de autoridad.
ACOPLAMIENTO NORMAL.
POR CONTROL
Con frecuencia el acoplamiento por control indica la presencia
de algn error de diseo ms grave (Que los mdulos posean
poca cohesin ).
Dentro del acoplamiento por control hay dos tipos de flag:
Flags de control:que intentan controlar la lgica del mdulo que
los recibe.
Flags descriptivos: que revelan cualidades relativas al dato.

A
Flag descriptivo
que no pretende
NOMBRE controlar la lgica
NUMERO del mdulo
CLIENTE NUMERO
CLIENTE INVLIDO
Obtener
nombre
Cliente
TIPO DE INFORMACIN QUE
INTERCAMBIAN MDULOS NORMALMENTE
ACOPLADOS

TIPO DE CONTENIDO
EJEMPLO
INFORMACIN DEL NOMBRE

DATO SIMPLE
Registro cliente
O SUSTANTIVO
Cdigo Postal
ESTRUCTURADO

FLAG Registro es vlido


ADJETIVO
DESCRIPTIVO Cdigo Postal numrico

FLAG DE Leer siguiente registro


VERBO
CONTROL Rechazar este cliente
ACOPLAMIENTO COMN, POR
VARIABLES GLOBALES
Dos mdulos A y B estn acoplados globalmente si se refieren
a una misma zona global de datos o variable global.
Las reas de datos globales no son aconsejables:
Un error de programacin que aparece en un mdulo acoplado
globalmente puede aparecer en otros mdulos que compartan
dicha rea global.

Estos mdulos son menos reutilizables

Es un tipo de acoplamiento en el cul es difcil determinar la


procedencia de la informacin depositada en el rea global.

Los sistemas con muchas reas globales son muy difciles de


mantener.
ACOPLAMIENTO POR CONTENIDO

Se dice que dos mdulos estn acoplados por contenido


si uno se refiere al interior del otro en alguna de las
siguientes formas:
Modificando o leyendo sus datos internos
Saltando directamente al interior de su cdigo

En este punto se pierde totalmente la modularidad


COMPARACIN DE LOS DISTINTOS
TIPOS DE ACOPLAMIENTO
Dos mdulos pueden presentar ms de un tipo de
acoplamiento. En ese caso siempre se considerar el
peor de los dos.
Tipo de
Modificabilidad Comprensin Reusabilidad
acoplamiento
Por datos Buena Buena Buena

Por estampado Buena Media Media

Por control Pobre Pobre Pobre

Global Media Mala Pobre

Contenido Mala Mala Mala


COHESIN
La cohesin es una medida de la fuerza de la relacin
funcional entre los elementos de un mdulo.

Se entiende por elemento de un mdulo:


Una instruccin
Un grupo de instrucciones
Una definicin de datos
Una llamada a otro mdulo

Lo ideal es disponer de mdulos fuertemente cohesivos,


cuyos elementos tengan poca relacin con otros
elementos de otros mdulos.
ESCALAS DE COHESIN
Cohesin ms fuerte (Mejor Mantenimiento)
FUNCIONAL
SECUENCIAL
COMUNICACIONAL
PROCEDURAL
TEMPORAL
LGICA
CASUAL
Cohesin ms dbil (Peor Mantenimiento)

En los tres primeros niveles los mdulos se comportan


como cajas negras y por tanto representan los niveles
ms deseables de cohesin dentro de un sistema.
COHESIN FUNCIONAL
Un mdulo presenta cohesin funcional si contiene
elementos que contribuyen a la realizacin de una sola
funcin.

Son los mdulos ms reutilizables ya que solo es


necesario conocer la funcin que cumplen.

El nombre de este tipo de mdulos suele indicar


claramente la funcin que realizan:

Calcular suma
Validar campo numrico
Calcular seno del ngulo
COHESIN SECUENCIAL
Un mdulo presenta cohesin secuencial si sus
elementos estn envueltos en tareas, tal que la salida de
una tarea sirve de entrada para la siguiente.

Como se puede ver el mdulo implementa un conjunto


de funciones relacionadas entre s.

Mdulo Formatea n y calcula raiz


RAIZ cuadrada
NUMERO CUADRADA
usa Nmero
retorna Raiz cuadrada
Formatea el n principio
y calcula la Formatea el nmero
raiz cuadrada Calcula raiz cuadrada
Fin.
COHESIN COMUNICACIONAL
Un mdulo presenta cohesin comunicacional si contiene
actividades que comparten los mismo datos ya sean de
entrada o de salida.

NOMBRE Mdulo obtener detalles de Cliente


NUMERO CLIENTE
CUENTA SALDO usa Nmero cuenta
PRESTADO retorna Nombre cliente
OBTENER Saldo prstamo
DETALLES principio
CLIENTE Encontrar nombre
Encontrar saldo prstamo
Fin.
En algunos casos un mdulo con cohesin comunicacional
puede ser dividido en dos o ms mdulos con cohesin
funcional.
DIFERENCIAS ENTRE COHESIN
SECUENCIAL Y COMUNICACIONAL
En el mdulo con cohesin secuencial es relevante el orden
mientras que en el comunicacional no.

nmero Raiz
Calcular cuadrada
Formatear
raiz
numero
cuadrada

Producir Informe
informe salarios
Tabla salario salario
empleados
Calcular
promedio
salario
Salario
promedio
COHESIN PROCEDURAL
En un mdulo con cohesin procedural los elementos
desarrollan actividades diferentes, posiblemente sin
relacin alguna, tal que el flujo de control fluye de una
actividad a la siguiente.
En estos mdulos las diferentes actividades no comparten
datos, lo nico que las relaciona es el flujo de control.

Mdulo Escribir, leer y editar


REGISTRO
REGISTRO ENTRADA
registro
SALIDA EDITADO usa Registro salida
retorna Registro entrada editado
ESCRIBIR principio
LEER Y EDITAR Escribir registro salida
REGISTRO leer registro de entrada
llenar campos numricos del
registro de entrada con ceros
Fin.
COHESIN TEMPORAL
En un mdulo con cohesin temporal los elementos estn
envueltos en actividades que estn relacionadas por el
tiempo (se deben desarrollar al mismo tiempo).
Normalmente cada una de estas actividades responde a
una tarea diferente.
La cohesin procedural y la temporal son muy parecidas,
salvo por el hecho de que en la procedural suele ser ms
importante el orden.
BANDERA
Mdulo Inicializar funciones del
Contador A
ACTIVADO sistema
TABLA
usa ContadorA, ContadorB
Contador B
TOTALES Bandera activado y Tabla totales
INICIALIZAR retorna lo mismo inicializado
FUNCIONES principio
DEL SISTEMA pone los contadores a cero
limpia tabla de totales
pone bandera activado en falso
Fin.
COHESIN LGICA
En un mdulo con cohesin lgica los elementos
contribuyen en tareas de la misma categora general y las
actividades a desarrollar se seleccionan fuera del mdulo.
Estos mdulos se caracterizan por:
Necesitan una interfaz ancha que permita seleccionar la
actividad a ejecutar.
Son mdulos difciles de entender y mantener
Mdulo Rutina general de E/S
usa RegistroA, Bandera de seleccin
RegistroA Registro B retorna RegistroA, RegistroB,
RegistroC
Bandera de RegistroC principio
Seleccin si bandera de seleccin=1
entonces escribir registro A en Fmaes.
RUTINA
Leer registroB de Fichero1
GENERAL DE
si_no si bandera de seleccin=2
E/S
Leer registroB de Fichero1
si_no
Leer registroA de Fichero2
Leer registroC de Fichero3
Fin.
COHESIN CASUAL
Un mdulo con cohesin casual es aquel cuyos elementos
realizan tareas diferentes sin relacin significativa entre ellas.
Estos mdulos aparecen debido a:
Intentos por ahorrar tiempo o memoria, situando dentro de un
mdulo trozos de cdigo que se repite a lo largo del sistema.
Cambios de mantenimiento mal hechos, en mdulos con poca
cohesin.
Mdulo Funciones varias
usa Mensaje operador, flag activacin,
Acumulador, Matriz numrica.
Mensaje Acumulador retorna Acumulador, Matriz numrica.
Operador principio
Flag de si flag-activacin=1
Matriz
activacin entonces inicializar Matriz numrica a 0.
numrica
Inicializar acumulador a 0.
si_no si flag-activacin=2
FUNCIONES
entonces imprimir cabecera
VARIAS
si_no Escribir en pantalla Mensaje
Operador
Fin.
DETERMINACIN DE LA COHESIN DE
UN MDULO. RBOL DE COHESIN
A partir de una serie de preguntas situadas en los nodos
se determina la cohesin dominante del mdulo.
REALIZA EL MDULO
UNA SLA FUNCIN? SI
FUNCIONAL
NO POR DATOS
SI SECUENCIAL
COMO ESTN ES IMPORTANTE
LA SECUENCIA? COMUNICACIONAL
RELACIONADAS
NO
LAS ACTIVIDADES
DENTRO DEL
MDULO? POR FLUJO DE CONTROL
SI PROCEDURAL
ES IMPORTANTE
LA SECUENCIA?
NO TEMPORAL
NINGUNA DE LAS DOS

SON LAS SI
ACTIVIDADES
LGICA
DE LA MISMA
CATEGORA? NO CASUAL
OTROS CRITERIOS
DE DISEO

FACTORIZACIN

POR LA FORMA DEL SISTEMA

SISTEMAS BALANCEADOS
FACTORIZACIN
La factorizacin consiste en la separacin de la funcin
contenida como cdigo dentro de un mdulo, para formar un
nuevo mdulo.

El proceso inverso se denomina desfactorizacin y tambin


puede representarse en el D.E.

Fa
RAZONES DE USO DE LA
FACTORIZACIN
Reducir el tamao de los mdulos
Clarificacin del sistema obteniendo las ventajas del
diseo descendente
Evitar que una misma funcin este codificada en varios
mdulos
Separar el clculo y el procesamiento de las decisiones
sobre los mdulos.
Crear mdulos reusables.
Simplificar la implementacin.
EJEMPLO DE FACTORIZACIN
E1

E2
S1

CALCULAR
IMPORTE
ARTCULO
E1, E3.- Cdigo artculo
E2, E4.- Cantidad artculo
E1 E5, E8, S2.- Precio de artculo
E6, S3.- Valor artculo
E2
E7, S4.- IVA aplicable
S1 S5.- Precio con IVA
S1.- Importe artculo
CALCULAR
IMPORTE
ARTCULO
E3 E7
E8
S2 E4 S4
E6 S5
E5 S3
OBTENER CALCULAR CALCULAR
CALCULAR
PRECIO VALOR PRECIO CON
VALOR IVA
ARTCULO ARTCULO IVA
CRITERIOS PARA DETENER LA
FACTORIZACIN

Cuando no se encuentre una funcin bien definida


susceptible de ser factorizada.

Cuando las interfaces comiencen a ser tan complejas


como los propios mdulos de manera que no se mejore la
comprensin del mdulo.
CLASIFICACIN DE LOS MDULOS EN
FUNCIN DEL FLUJO DE LOS DATOS
Aferente: el mdulo enva informacin de abajo hacia arriba,
es decir recoge informacin de algn mdulo subordinado.

Eferente: el mdulo enva informacin de arriba hacia abajo.

Transformacin: Toma informacin del mdulo jefe y la


transforma en datos que le devuelve.

Coordinacin: coordina la informacin entre los mdulos


subordinados.

Los mdulos pueden presentar una combinacin de estos


tipos.
FORMA DEL SISTEMA

A partir de la forma del diagrama de estructura se puede


evaluar la calidad del diseo.

En un diagrama de estructura se distinguen tres reas:


aferente: que trata con la informacin de entrada.
Transformacin: que procesa los datos de entrada para
producir la salida.
Eferente: que trata con la informacin de salida

A partir del desarrollo de cada una de estas reas


podremos evaluar el diseo.
SISTEMAS BALANCEADOS

Un sistema balanceado es aquel en el que los mdulos


superiores manejan informacin de naturaleza lgica ms
que fsica.

Son los mdulos de niveles inferiores de las ramas


aferente y eferente los que tratan con los datos fsicos de
entrada y salida.

La ventaja de los sistemas balanceados es que se mejora


el acoplamiento entre los mdulos y a su mantenibilidad.
EJEMPLO DE SISTEMA BALANCEADO
ACTUALIZAR
FICHERO

CONSEGUIR CONSEGUIR GENERAR PONER


NUEVO
TRANSACC REGISTRO REGISTRO
NUEVO
VLIDA MAESTRO MAESTRO REGISTRO

FORMATEAR ESCRIBIR
CONSEGUIR VALIDAR
NUEVO NUEVO
TRANSACC. TRANSACC.
REGISTRO REGISTRO

CONSEGUIR
CAMPO
VLIDO

CONSEGUIR EDITAR
CAMPO CAMPO

LEER
LINEA
TERMINAL

S-ar putea să vă placă și