Sunteți pe pagina 1din 63

1

Metodologas de Diseo y
Anlisis
INF211
Ingeniera en Informtica Aplicada
Alfredo Rojas Vliz.
Anlisis y Diseo
l Diseo Estructurado de Sistemas
l El diseo estructurado de sistemas se
preocupa por la identificacin, seleccin y
organizacin de los mdulos y sus
relaciones. Se comienza con la
especificacin resultante del proceso de
anlisis, se realiza una descomposicin
del sistema en mdulos estructurados en
jerarquas, con caractersticas tales que
permitan la implementacin de un sistema
que no requiera elevados costos de
mantenimiento.
Anlisis y Diseo
l La idea original del diseo estructurado
fue presentada en la dcada de los '70,
por Larry Constantine, y continuadas
posteriormente por varios autores Myers;
Yourdon; Stevens.
l El diseo estructurado es un enfoque
disciplinado de la transformacin de qu
es necesario para el desarrollo de un
sistema, a cmo deber ser hecha la
implementacin.
2
Anlisis y Diseo
l La definicin anterior implica que:
l el anlisis de requerimientos del usuario
(determinacin del qu) debe preceder al
diseo y que, al finalizar el diseo se
tendr medios para la implementacin de
las necesidades del usuario (el cmo),
pero no se tendr implementada la
solucin al problema.
Anlisis y Diseo
l Cinco aspectos bsicos pueden ser
reconocidos:
l 1. Permitir que la forma del problema gu e
a la forma de la soluci n. Un concepto
bsico del diseo de arquitecturas es: las
formas siempre siguen funciones. Ese
concepto debe ser tambin utilizado para
el diseo de sistemas. Muchas veces, se
han escogido formas preconcebidas para
la solucin de un problema y forzado a un
problema a tomar la misma forma.
Anlisis y Diseo
l Un enfoque adecuado debe ser: lograr
que, la solucin de un problema tenga los
mismos componentes que los del
problema original y respete las relaciones
que existen en el problema. El objetivo
debe ser obtener la mayor aproximacin
posible a esa idea.
l 2. Intentar resolver la complejidad de los
grandes sistemasa travs de la
segmentacin de un sistema en cajas
negras, y su organizacin en una jerarqua
conveniente para la implementacin.
3
Anlisis y Diseo
l Adems, no es necesario conocer cmo
trabajan internamente esas cajas negras,
pues su complejidad ya fue resuelta
(separadamente de las otras). Para usarlo,
solamente se precisa conocer las
entradas que deben ser provistas, la
funcionalidad que implementa y las
salidas que retorna.
l 3. Utilizar herramientas, especialmente
grficas, para realizar diseos de fcil
comprensin.
Anlisis y Diseo
l Un diseo estructurado usa diagramas de
estructura (DE) en el diseo de la
arquitectura de mdulos del sistema y
adiciona especificaciones de los mdulos
y cuplas (entradas y salidas de los
mdulos), en un Diccionario de Datos
(DD).
l 4. Ofrecer un conjunto de estrategias para
derivar el diseo de la solucin,
basndose en los resultados del proceso
de anlisis.
Anlisis y Diseo
l Principalmente, ofrece dos heursticas
(Anlisis de Transformaciones y Anlisis
de Transacciones) para la derivacin de
los DE, partiendo de los diagramas de
flujo de datos (DFD) construidos en el
proceso de anlisis.
l 5. Ofrecer un conjunto de criterios para
evaluar la calidad de un diseo con
respecto al problema a ser resuelto, y las
posibles alternativas de solucin, en la
bsqueda de la mejor de ellas.
4
Anlisis y Diseo
l Permite clasificar varias caractersticas de
los DE (y de los mdulos y cuplas
componentes) basado en los problemas
potenciales que pueden ocasionar al
sistema, una vez implementado. Una
identificacin de esos problemas, y una
subsecuente correccin de errores en la
etapa de diseo, disminuyen en gran
medida los costos de mantenimiento (sea
para correccin de errores o
incorporacin de nueva funcionalidad).
Anlisis y Diseo
l El diseo estructurado produce
sistemas fciles de entender y
mantener, confiables, fcilmente
desarrollados, eficientes y que
funcionan.
Anlisis y Diseo
l Modelo de Implementacin del Usuario
l Con el Modelo Ambiental y el Modelo
Comportamental completamos el
desarrollo del Modelo Esencial. El modelo
esencial contiene una especificacin
completa del sistema de informacin de
las necesidades del usuario.
Especficamente describe:
5
Anlisis y Diseo
l - La acci n esencial de las funciones
que deben ejecutarse.
l - El volumen esencial de los datos
usados y guardados por el sistema.
l - El comportamiento esencial
necesario para trabajar con las
seales y las interrupciones del
ambiente externo.
Anlisis y Diseo
l Una especificacin de la funcionalidad,
estructura el comportamiento esencial del
sistema, debe ser suficiente para que el
diseador, pueda escoger el mejor
hardware, el mejor sistema operativo, el
mejor administrador de base de datos, el
mejor lenguaje de programacin, dentro
de las restricciones generales de tiempo,
dinero y recursos humanos destinados al
proyecto de implementacin.
Anlisis y Diseo
l Descrito as , el trabajo del diseador
parece simple, pero no lo es: hay muchas
caractersticas en las que ellos necesitan
del usuario para que stas sean
definidas.
l Estas caractersticas, incluso las de
implementacin (sin formar parte del
Modelo Esencial) son suficientemente
importantes ya que tienen gran impacto
en el usuario del sistema, por lo tanto
necesitan ser especificadas.
6
Anlisis y Diseo
l El problema de implementacin ms
evidente es el inters del usuario en la
Frontera de Automatizacin, es decir, que
parte del modelo esencial se llevara a
cabo en la computadora, y que se deja
para que sea ejecutada manualmente.
l El analista, ciertamente, tendr una
opinin en eso, y el diseador tambin,
pero ste es un problema en el que el
usuario tiene la ltima palabra.
Anlisis y Diseo
l Tambin, la interface hombre-mquina es
de gran inters para el usuario, muchas
veces l parece estar ms interesado en
las interfaces que en las funciones del
sistema. Hay muchas teoras
desarrolladas respecto a este problema,
del factor humano y organizacin de la
informacin, de la pantalla de la
computadora, de la optimizacin de la
comprensin del usuario, de criterios y
tcnicas acerca de la interaccin y
estructuracin de las interfaces.
Anlisis y Diseo
l Sin embargo, el usuario tiene la
ltima palabra porque l es quin las
sufre o las aprecia.
l Ms recientemente varias opciones y
posibilidades, aumentaron la
importancia de esos problemas de
implementaci n del usuario:
7
Anlisis y Diseo
l Los usuarios finales muchas veces tienen
la oportunidad de usar las computadoras
personales (PC) como parte de una red
distribuida de computadoras. Esto genera
una serie de cuestiones: Qu partes del
modelo esencial estar n disponibles en
las computadoras terminales y qu partes
en el servidor (mainframe o estaciones
RISC)? Esto implica: A qu datos se
tendr acceso por intermedio del PC, y
qu datos sern almacenados en el PC?
Anlisis y Diseo
l Qu funcionalidad tendr que
ejecutar el PC? Cul ser el formato
de entradas y de salidas en el PC?
Qu actividades adicionales de
apoyo deben ofrecerse para asegurar
que el usuario no dae
desprevenidamente los datos del PC
(o del servidor)?
Anlisis y Diseo
l Hay muchas ofertas de
administradores de base de datos
con lenguajes de cuarta generaci n
que permiten, al usuario, escribir sus
propios programas. Con qu partes
del sistema ellos pueden interactuar
sin riesgos de producir
inconsistencia en los datos?
8
Anlisis y Diseo
l Hoy da, en muchas situaciones, el
usuario y el analista pueden decidir
prototipar el sistema y usar un lenguaje de
cuarta generacin o un paquete generador
de aplicaciones. La prototipacin puede
hacerse porque el usuario no esta seguro
de la accin detallada que en el futuro
tendr que ser descrita en las
especificaciones de procesos del modelo
esencial; aun as , la mayora de las veces,
la prototipacin se usa para la exploracin
y experimentacin con formatos de
entrada, dilogos en lnea y formatos de
salida para las pantallas e informes.
Anlisis y Diseo
l Para muchas aplicaciones de una
compaa, una opcin es la de adquisicin
de un paquete de software. En estos
casos se generan los mismos problemas
de implementacin: Qu partes del
modelo esencial sern llevados a cabo por
el paquete adquirido y qu partes tendrn
que ser llevadas a cabo en un sistema
separado? Cules sern las normas de
integracin y compatibilidad entre el
paquete adquirido y el sistema a ser
desarrollado?
Anlisis y Diseo
l Estos problemas deben ser tratados como
parte del Modelo de Implementaci n del
Usuario. La construccin de este nuevo
modelo puede obligar a modificaciones
en el Modelo Esencial, en ese caso,
Yourdon recomienda el mantenimiento de
una versin intacta del modelo esencial
original. Esto permitir la experimentacin
de modelos alternativos del Modelo de
Implementacin del Usuario.
9
Anlisis y Diseo
El modelo de Implementacin del usuario,
en trminos generales, incluye los
siguientes cuatro aspectos:
1. La ubicacin dentro del Modelo Esencial
de las personas versus las mquinas.
2.Detalles de la interaccin
hombre/mquina.
3. Actividades manuales suplementarias
que pueden ser necesarias.
4. Restricciones operacionales que el
usuario quiere imponer al sistema
Anlisis y Diseo
l Determinacin de los Lmites de la
Automatizacin
l Qu funciones y que datos sern
manipulados manualmente, y cules
automatizados?
l Para responder esta pregunta se debe
tener en claro que aunque se tiene una
versin preliminar de esto en el estudio de
viabilidad esto no siempre es valido al
final.
Anlisis y Diseo
l Existen tres casos extremos que tienen
que ser considerados:
l Al usuario no le debe interesar donde esta
la frontera de la automatizaci n: es poco
probable que esto ocurra. En la prctica el
usuario elige el equipo de
implementacin. Qu partes del sistema
deben ser manuales y cules
automatizadas?
10
Anlisis y Diseo
l Adems del hecho que el usuario
normalmente tiene gran sensibilidad
en ese problema, ste espera que el
analista produzca un anlisis
detallado de costo-beneficio de todo
el proyecto. Eso demanda alguna
decisi n preliminar acerca de que
partes del modelo esencial sern
automatizadas y cuales manuales.
Anlisis y Diseo
l El usuario puede optar por un sistema
completamente automatizado: Esta es una
situacin muy comn, principalmente si el
sistema esta desarrollndose para
sustituir otro sistema existente. De esta
manera, las actividades manuales ya
pueden estar fuera del lmite del sistema
representado en el diagrama de contexto
como agentes externos con los que el
sistema se comunica.
Anlisis y Diseo
l El usuario puede optar por un sistema
completamente manual : Esta es una
opcin muy poco comn, sobre todo en
esta era de la automatizacin, dado que el
analista habitualmente tiene inters en
informatizar todo lo que sea posible. Sin
embargo, esto puede pasar en momentos
en que la intencin del usuario no sea
informatizar, pero si reorganizar la manera
en que las actividades estn
ejecutndose.
11
Anlisis y Diseo
Parte
Automatizada
Parte
Manual
Parte
Automatizada
Parte
Automatizada
Parte
Manual
Parte
Automatizada Parte
Automatizada
Parte
Manual
Anlisis y Diseo
l La ilustracin anterior presenta
algunas posibles alternativas para
establecer el lmite de un sistema.
Estas alternativas deben discutirse
entre el usuario, el analista y el
equipo de implementacin, con base
en un estudio del costo/beneficio.
Anlisis y Diseo
l Determinaci n de la Interface Del
Usuario.
l Hay varios estudios estadsticos de
sistemas interactivos que indican
que, entre el 40% y el 60% del cdigo
y datos de los programas estn
dedicados a la implementaci n de la
interface hombre-mquina.
12
Anlisis y Diseo
l La especificaci n de la interface de
usuario es, probablemente, la
actividad que ms tiempo consume y
en la que el usuario ms interesado
esta. Eso involucra cuatro problemas
relacionados:
Anlisis y Diseo
l La eleccin de dispositivos de entrada y
salida (por ejemplo, las terminales
alfanumricas o grficas, dispositivos de
lectura ptica, impresoras de gran
velocidad, etc.). Por ejemplo, en algunos
casos, un requisito importante es la
posibilidad de hacer anlisis estadstico
del desempe o de las funciones de
algunas de las reas de organizacin
(como volmenes de venta de ciertos
productos relacionados al periodo anual,
Anlisis y Diseo
o los volmenes de ventas generales
relacionados al periodo mensual, etc.), o
proyecciones financieras respecto a
mercaderas en stock. En esos casos, la
eleccin de una terminal grfica para la
gerencia (de ventas, de stock o financiera)
puede ser un requisito fundamental.
Tambin, si se identifican volmenes muy
elevados de facturacin, una impresora de
gran velocidad puede ser muy importante.
13
Anlisis y Diseo
l El formato de las entradas que fluyen de
los agentes externos hacia el sistema. Es
preciso especificar con gran detalle las
caractersticas de los datos ingresados y
como ellos sern aceptados.
l El formato de las salidas que fluyen del
sistema hacia los agentes externos. Se
representan ellos en la pantalla de la
computadora o en informes impresos?
Anlisis y Diseo
l Comnmente el formato de los
informes impresos ya es
predeterminado y, es comn que el
usuario quiera mantener estos
formatos. Si el agente externo es
gubernamental, habitualmente los
informes que se desean tienen un
formato muy estricto
Anlisis y Diseo
l La secuencia y el escalonamiento de
entradas y salidas en el componente
en lnea. Estos escalonamientos
deben disearse con mucho
cuidado. Ellos pueden especificarse
con diagramas de transici n de
estados.
14
Anlisis y Diseo
l El modelo de la interface hombre-mquina
involucra dos problemas. El primero es el
componente estructural, la secuencia y el
escalonamiento de entradas y salidas. Ese
problema puede planearse con diagramas
de transicin de estados, las
transacciones del sistema se ejecutan en
las transiciones entre los estados.
Anlisis y Diseo
l El segundo problema es el formato y
la tcnica de interacci n para los
flujos de datos de entrada, y el
formato de presentacin de los flujos
de datos de salida de las
transacciones. La ilustraci n
siguiente presenta un ejemplo.
Anlisis y Diseo
Lectura de
# de C # cuenta
Valida Cta.
"Saldo"
Pedir Saldo
de Cuenta
Mende
Operacin
Lectura de
Valor
"Depsito"
Valor legal
Sumar Valor a Saldo
Lectura de
Valor
"Retiro"
que"
Valor legal
Descontar
Valor a
Saldo
Esc
15
Anlisis y Diseo
l Identificacin de Actividades Manuales
Complementarias
l En el modelo esencial, se presume la
existencia de una tecnologa perfecta.
Entre otras cosas se considera que
nuestra tecnologa de implementacin
nunca falla ni comete errores. As mismo
con el funcionamiento de la tecnologa
perfecta, los usuarios cometen errores de
operacin que, si no fueron considerados
apropiadamente, producen daos en el
sistema.
Anlisis y Diseo
l El usuario puede estar trabajando con
datos financieros, caso en el que pueden
existir exigencias legales (impuestas por
los interventores) para asegurar la
integridad de las entradas y salidas de los
archivos del sistema. En la mayora de los
casos estas actividades complementarias
de apoyo sern representadas por nuevos
procesos en DFDs del modelo
comportamental.
Anlisis y Diseo

Verificar
Error de
Said
a
factur
a
Ejecucion dePC operada por
usuario


Verificacion Manual de
Errores

Generar
Factura

16
Anlisis y Diseo
De una manera general, tendremos que
contemplar la posibilidad de fallas
tecnolgicas en:
l Las entradas y salidas del sistema: Si los
datos de entrada han sido introducidos
por dispositivos de vdeo unidos a las
computadoras principales por lneas de
telecomunicacin, la posibilidad de
errores en la transmisin es muy grande.
Tambin puede tener errores de los
medios magnticos como diskettes (o
discos blandos).
Anlisis y Diseo
l La ejecucin de clculos: una vez
introducidos los datos en el sistema, los
errores del hardware pueden existir
(memoria, procesador, etc.) o de
programa.
l El almacenamiento de datos por periodos
largos: la mayora de los sistemas
retienen datos en discos por periodos
largos de tiempo. Es posible que, esos
datos, sean destruidos debido a los
errores del hardware (o software).
Anlisis y Diseo
l Lo que debe hacerse con respecto a estas
posibles reas de tecnologa defectuosa
depender mucho de:
l 1. El nivel estimado de fiabilidad del
hardware y del software.
l 2. La naturaleza y la fiabilidad del
usuario.
l 3. Los costos o multas asociadas a
entradas y/o salidas defectuosas.
17
Anlisis y Diseo
l Por la naturaleza de la incertidumbre
en la predicci n de estos tipos de
fallas, la soluci n ms comn es la
introducci n de redundancias:
entradas y/o salidas redundantes,
procesadores redundantes, la
redundancia interna en los depsitos
de datos, campos redundantes (de
control) en las estructuras de datos.
Anlisis y Diseo
l Especificacin de Restricciones
Operacionales.
l El equipo de implementacin tendr que
decidir que combinacin de hardware,
sistema operativo, recursos de
comunicacin, lenguajes de
programacin, administradores de base
de datos y estrategias de proyecto
llevar n a cabo mejor los requisitos. Pero,
ser difcil hacerlo sin el establecimiento
de algunas restricciones de operaciones
(que el modelo esencial evita
deliberadamente).
Anlisis y Diseo
l Los problemas principales,
normalmente, son:
l Volmenes de datos: Necesitamos
que el usuario especifique los
volmenes de transacciones de
entrada y el tamao necesario de los
depsitos de datos, si el volumen es
estable o hay grandes variaciones.
18
Anlisis y Diseo
l Tiempo de respuesta para las entradas:
Las restricciones de tiempos de respuesta
pueden existir para algunas entradas del
sistema. Por ejemplo, todas las
transacciones de depsitos de clientes
deben procesarse por la noche para que
de maana los clientes puedan saber su
saldo, o las novedades para los
empleados se admiten hasta antes de las
10 horas de la maana, o la liquidacin de
haberes que deba estar hecha a las 8
horas del da siguiente.
Anlisis y Diseo
l Restricciones pol ticas en opciones de
implementacin: El usuario puede, por
motivos racionales o irracionales,
especificar la marca del hardware a ser
usado (o a ser evitado), el vendedor del
equipo, y as sucesivamente. O, cuando ya
fue comprado el hardware y el problema
es que ste no es el que mejor se adapta
al problema. O al revs, el problema puede
ser respecto al hardware ya existente
Anlisis y Diseo
l Restricciones de seguridad y fiabilidad: El
usuario puede especificar el tiempo medio
entre fallas y el tiempo medio entre
paradas para el mantenimiento del
sistema.
l Restricciones de seguridad: El usuario
puede especificar la intencin de
minimizar el uso no autorizado del
sistema. Eso puede incluir a usuarios
administradores del sistema con claves de
acceso.
19
Anlisis y Diseo
l Los usuarios pueden tener el acceso
a diferentes niveles (para los
diferentes niveles de
confidencialidad de informaci n o de
riesgo del funcionamiento).
Anlisis y Diseo
l Diagrama de Estructura
l Los diagramas de estructura (DE) sirven
para el modelamiento top-down de la
estructura de control de un programa
descripto a travs de un rbol de
invocacin de mdulos. Fueron
presentados en la dcada de los 70 como
la principal herramienta utilizada en
diseos estructurados, por autores como
Constantine, Myers, Stevens e Yourdon
Anlisis y Diseo

Emitir cheques
de
pago a los
Empleados
Calcular
Deducciones
Normales
Leer registro
de Empleado
Calcular Salrio
Lquido para
jornaleros
Calcular Salrio
Lquido para
Asalariados
Imprimir cheque
de pago
Calcular Salrio
Bruto para
Jornalero
s
Calcular Salrio
Bruto para
Asalariados
Registrode
Empleado
Fin de
Archivo
Registrode
Empleado

Registrode
Empleado
Asalariado
PagoLiquido
dejornaleros
Pago
de
Liquido
Asalariado
Empleado
Nombrede
Empleado
Pagode
Empleado
Nmerode
Valor Hora
Horas
Trabajadas
Pago
Brutode
Jornaleros
Deducciones
normales
Detallede
Impuesto
s
Pago
Brutode
Asalariados
Detallede
Impuesto
s
Pago
Bsico
Bonos
Cupla de
Control
Cupla de
Datos
I nvocacin
Mdulo
Mdulo de
Biblioteca
20
Anlisis y Diseo
l Un diagrama de estructura permite
modelar un programa como una jerarqua
de mdulos. Cada nivel de la jerarqua
representa una descomposicin ms
detallada del mdulo del nivel superior. La
notacin usada se compone bsicamente
de tres s mbolos:
l Mdulos ,Invocaciones y Cuplas
Anlisis y Diseo
l Un mdulo es un conjunto de
instrucciones que ejecutan alguna
actividad, un procedimiento o
funcin en PASCAL, una funci n en
C o un pargrafo en COBOL. Tal vez,
la definici n ms precisa es que un
mdulo es una caja negra, pero
como ser mostrado a continuaci n
son cajas casi negras o grises.
Anlisis y Diseo
l Desde un punto de vista prctico, un
mdulo es una colecci n de
instrucciones de un programa con
cuatro caractersticas bsicas:
l 1.Entradas y Salidas: lo que un
mdulo recibe en una invocacin y lo
que retorna es un resultado.
21
Anlisis y Diseo
l 2. Funcin: las actividades que un
mdulo hace con la entrada para
producir la salida.
l 3. Lgica Interna: por la cual se
ejecuta la funcin.
l 4. Estado Interno: su rea de datos
privada, datos para los cuales slo el
mdulo hace referencia.
Anlisis y Diseo
l Las entradas y salidas son,
respectivamente, datos que un mdulo
necesita y produce. Una funcin es la
actividad que hace un mdulo para
producir la salida. Entradas, salidas y
funciones proveen una visin externa del
mdulo. La lgica interna son los
algoritmos que ejecutan una funcin, esto
es, junto con su estado interno
representan la visin interna del mdulo.
Anlisis y Diseo
l Un mdulo es dise ado como una
caja, su funcin es representada por
un nombre en el interior y las
entradas y salidas de un mdulo son
representadas por pequeas flechas
que entran y salen del mdulo.
Existen distinciones entre mdulos,
la tabla siguiente describe los
diferentes tipos de mdulos:
22
Anlisis y Diseo
M
E
S
Mdulo
Un mdulo es una caja negra conteniendo una
coleccin de instrucciones y reas de datos
locales. Los mdulos tienen una funcin,
definida por el nombre contenido en el interior
(M), datos de entrada y datos de salida
generados por la aplicacin de la funcin a los
datos de entrada.
Anlisis y Diseo
Mb
E
S
Mdulo
de
Bibliote
ca
Un mdulo predefinido o mdulo de biblioteca
representa un mdulo que no tiene que ser
especificado porque ya existe en el sistema o en
bibliotecas. Frecuentemente, tambin, se utiliza la
misma notacin para representar llamadas al
sistema operacional como read o write de
archivos. Un mdulo de biblioteca es
verdaderamente una caja negra ya que no son
modeladas las actividades que realiza.
Anlisis y Diseo
A B C
E deDatos
Cluster de
Informaci
n
Un cluster de informacin es una coleccin de
mdulos que trabajan sobre la misma estructura de
datos. Son utilizados para modelar tipos abstractos
de datos, esto es, encapsulan una estructura de datos
y los mdulos que la crean y referencian. En la
parte inferior del mdulo se anota el nombre de la
estructura de datos.
23
Anlisis y Diseo
D
rea de
Datos
Global
Es fuertemente recomendable la especificacin de
reas de datos globales cuando son utilizadas por
los mdulos en un diseo. El uso de reas globales
no es una prctica confiable, en muchos dise os no
pueden ser evitadas o precisan ser incluidas para
mejorar el desempeo del sistema. Una buena
especificacin de estas reas permite un mejor
anlisis de la calidad del diseo y disminuye costos
de mantenimiento.
Anlisis y Diseo
l Relaciones entre Mdulos (Invocaciones)
l En la realidad, los mdulos no son
realmente cajas negras. Los diagramas de
estructura muestran las invocaciones que
un mdulo hace a otros mdulos. Estas
invocaciones son diseadas como una
flecha que sale del mdulo llamador y
apunta al mdulo llamado. La siguiente
figura muestra un ejemplo:
Anlisis y Diseo
A
C D B
Mdulo Llamador
Mdulo Llamado
I nvocacin
24
Anlisis y Diseo
l En el ejemplo de la figura el mdulo A
invoca (o llama) a los mdulos B, C y D.
La interpretacin de las invocaciones
provee informacin de la estructura
interna del mdulo llamador, que no
concuerda con la idea de caja negra. Una
caja negra no permite que se observe su
interior y, las invocaciones que un mdulo
hace son componentes de su estructura
interna. De todas formas, se dice que un
mdulo es una caja casi negra o caja gris
porque ella permite que se observe solo
las invocaciones.
Anlisis y Diseo
l Los diagramas de estructura no tienen
especificado el orden de invocacin de los
mdulos invocados. El orden de dibujo de
los mdulos B, C, y D (de izquierda a
derecha) no debe ser interpretado como el
orden de invocaciones ejecutado por el
mdulo A. Ese orden puede ser cambiado,
al dibujar, para evitar que se crucen
flechas o se dupliquen mdulos.
Anlisis y Diseo
l A pesar que el orden de invocacin de los
mdulos del mismo nivel en un diagrama
de estructura, no es especificado por el
formalismo, se recomienda que siempre
que fuese posible, se siga un orden de
izquierda a derecha (si esto no produce
que se crucen flechas) que se
corresponde con el orden de invocacin, y
permitiendo un orden de lectura que es
patrn en la mayora de los idiomas.
25
Anlisis y Diseo
l Una invocacin, representa la idea
de invocacin a funciones o
procedimientos en los lenguajes de
programacin convencionales. En un
diagrama de estructura se pueden
modelar varios tipos de
invocaciones:
B
A
A
B C
A B
B
A
B
A
Tipos de Invocacin
Invocaci
n
Estndar
El mdulo A invoca al mdulo B con la semntica de
invocacin de procedimientos o funciones en los
lenguajes de programacin convencionales (C,
Pascal, etc.).
Invocaci
n
Concurre
nte
El mdulo A comienza dos tareas concurrentes, B y
C.
Invocaci
n Co-
rutina
El mdulo A invoca al mdulo B con una semntica
de transferencia de control al punto de entrada de una
co-rutina.
Transfere
ncia de
Control
Patol gic
a
El mdulo A hace una transferencia de control (ej.:
con un GOTO ) al interior del m dulo B. Claramente
es una pr ctica patolgica y no es recomendable en
ningn caso. Pero, si una patologa existe es
preferible que sea mostrada.
Referenci
a
Patol gic
a
El mdulo A hace referencia a un rea de datos local
del mdulo B. Tambin es una prctica patolgica y
debe ser evitada.
Anlisis y Diseo
l Comunicacin entre Mdulos (Cuplas)
l Cuando una funcin o un procedimiento,
en un lenguaje convencional, es invocado,
comnmente un conjunto de argumentos
es comunicado y, en el caso de las
funciones, tambin se espera que retorne
un resultado. Estos datos comunicados
en una invocacin son modelados por
medio de flechas, sobre el s mbolo de
invocacin, llamadas cuplas.
26
Anlisis y Diseo
A
C D B
X
Y
Z W
f
Cupla deDatos
Cupla deControl
(flag)
Cupla sin tipo
(o dedatos o de
Control o Hbrida)
h
Cupla Modificada
CuplaHbrida
(datosycontrol)
Anlisis y Diseo
Anlisis y Diseo
l Absorci n
l En muchos casos en el diseo top-down
de un programa la descomposicin
realizada, con el objetivo de mejorar la
interpretacin y modelamiento, da como
resultado peque os mdulos (apenas una
o dos instrucciones o una ecuacin
matemtica). La descomposicin realizada
puede ayudar en la comprensin del
programa diseado pero se tiene la
certeza que en la implementacin el
mdulo correspondiente no ser
separado.
27
Anlisis y Diseo
l Este hecho puede ser especificado
en el diagrama de estructura con el
smbolo mostrado en el siguiente
ejemplo:
Anlisis y Diseo


Total
Cantidad
Promedio
Absorcin
Informar
Promedio
de Alumno
Acumular
Notas
Dividir entre
la cantidad
de notas
Presentar
Promedio
de Alumno
Tabla
de
Notas
Anlisis y Diseo
l Estructuras de Control
l Los diagramas de estructura tambin
definen smbolos que posibilitan el
modelamiento de estructuras de
control como repetici n o
alternativa:
28
Anlisis y Diseo
A
A
Repetici
n
Una flecha circular, abarcando un nmero de
invocaciones, especifica que las invocaciones que abarca
son ejecutadas repetidamente.
Alternativ
a
Un rombo incluyendo una o ms invocaciones especifica
la ejecucin condicional de ellas.
Anlisis y Diseo
l Derivacin de los Diagramas de
Estructura
l Para un DFD dado siempre puede ser
construido un diagrama de estructura que
describe la arquitectura de mdulos que
debe ser desarrollada para implementar la
funcionalidad descripta. La creacin de
los DE puede resultar una actividad muy
difcil, principalmente para DFDs con
muchos procesos.
Anlisis y Diseo
l Sin embargo, el diseo estructurado
ofrece dos estrategias para construir
rpidamente una primera versin del
diseo. Las estrategias para la validacin
y el refinamiento pueden llevarnos en
direccin a obtener un buen diseo. Sin
tales estrategias, se tendra,
frecuentemente, que efectuar sucesivas
modificaciones a los diagramas de
estructura.
l Las dos estrategias de derivacin de
diagramas de estructura son:
29
Anlisis y Diseo
Anlisis de Transformaciones: provee un
vnculo entre el anlisis estructurado y un
diseo estructurado.
Anlisis de Transacciones: La estructura
general de los sistemas tiende a caer en
modelos reconocibles. Uno de los
modelos comunes en sistemas
comerciales es el llamado sistema de
transacciones. El anlisis de
transacciones es una estrategia especfica
para disear estos tipos de sistemas.
Anlisis y Diseo
l Anlisis de Transformaciones
l El principal enfoque del anlisis de
transformaciones es convertir un DFD,
resultado del anlisis estructurado, en un
diagrama de estructura. La principal
ventaja de este enfoque es que, el
diagrama de estructura resultante tiene
una forma tal que permite un fcil
desarrollo y mantenimiento ms barato
que la mayora de los diagramas de
estructura que podamos construir ad-hoc.
30
Anlisis y Diseo
l Anlisis de la Especificaci n del Problema
l Si un diseo estructurado est siendo
desarrollado, luego del anlisis
estructurado, entonces habr un conjunto
de DFDs que describen el problema, para
los cuales se debe disear una solucin.
Si el anlisis estructurado no precede al
diseo, entonces se pueden reconocer
dos situaciones muy diferentes:
Anlisis y Diseo
l Un problema muy simple: Si el problema
puede ser representado en la memoria de
una persona [DeMarco 86], es muy simple
y no precisa mayor esfuerzo que la
especificacin. En ese caso las
herramientas del Anlisis no son
necesrias y el DE puede ser desarrollado
ad-hoc. Sin embargo, el anlisis
estructurado ofrece una coleccin de
tcnicas y criterios que permiten analizar
y especificar un problema cuando es muy
complejo para ser comprendido y
especificado con una simple declaracin
narrativa.
Anlisis y Diseo
l Segn DeMarco [DeMarco 86], un modelo
es una maqueta de una realidad donde
algunas caractersticas son estudiadas y,
se construyen diferentes modelos de la
misma realidad (cada uno de ellos
representando diferentes caractersticas)
para estudiar diferentes partes del
problema por separado.
31
Anlisis y Diseo
l Un problema complejo: La mayora de las
veces, el problema es mayor que la
capacidad de nuestra memoria principal y
diversos modelos debern ser
desarrollados, en el proceso de anlisis
estructurado, para conseguir una buena
comprensin y especificacin. En ese
caso, ser necesario construir algunos
DFDs a partir de la narrativa del problema
(declaraciones surgidas de las entrevistas
con los diversos usuarios involucrados).
Anlisis y Diseo
l Identificacin del Centro de
Transformacin
l El centro de transformacin es la parte del
DFD que contiene la funcionalidad
principal del sistema y es independiente
de la implementacin particular de las
entradas y salidas. Por ejemplo, considere
el DFD de la siguiente figura.
Anlisis y Diseo
32
Anlisis y Diseo
l Se podra considerar al proceso
Reunir Movimientos del Cliente como
la transformaci n principal del DFD,
si un proceso tiene mas flujos de
entrada que de salida, la pregunta
que deber ser respondida es: Qu
proceso hace el trabajo principal de
la funcionalidad que representa el
DFD?.
Anlisis y Diseo
l el principal trabajo no es hecho por
los procesos: Leer Movimiento del
Cliente, Leer Informaci n del Cliente,
Calcular Total o Imprimir Lnea.
Tampoco es hecho por alguno de los
procesos: Formatear Encabezado,
Formatear Lnea del Reporte o
Formatear Total por separado.
Anlisis y Diseo
l La funcin que el DFD modela, con
certeza, no es Reunir Movimientos
del Cliente, podra corresponderse
con un proceso de abstracci n
mayor, tal vez llamado Generar
Reporte de Movimientos, que incluya
los procesos: Formatear
Encabezado, Formatear Lnea de
Reporte y Formatear Total.
33
Anlisis y Diseo
l La eleccin del centro de
transformaciones no es una actividad
simple, generalmente requiere una
interpretacin detallada de la
funcionalidad descripta por el DFD, y, en
muchos casos, podra incluir mas de un
proceso. Para eso existe una estrategia
basada en la estructura del DFD,
independiente de la interpretacin
particular de los procesos, que permite
obtener una buena aproximacin de la
porcin del DFD que debe incluir el centro
de transformaciones.
Anlisis y Diseo
l No es un algoritmo, ya que no establece
una secuencia de etapas y tampoco
garantiza la obtencin acertada del centro
de transformaciones. Una vez identificada
la porcin del DFD que incluye el centro
de transformaciones, se debe interpretar
detalladamente la funcin de los procesos
incluidos para determinar si alguno de
ellos representa la transformaci n
principal del DFD o si una actividad de
abstraccin mayor deber ser escogida.
Anlisis y Diseo
l Estrategia para Determinar el Centro de
Transformacin
l La estrategia intenta identificar la
transformaci n central siguiendo los
caminos de datos aferentes y
eferentes. Este proceso puede ser
desarrollado a travs de los tres
pasos siguientes:
34
Anlisis y Diseo
l Marcar cada camino aferente partiendo del
lado externo del DFD (los flujos
provenientes de depsitos de datos,
agentes externos o porciones del DFD no
incluidas en el Anlisis)
y terminar en cada flujo eferente
alcanzado (los flujos dirigidos para
depsitos de datos, agentes externos o
porciones de DFD no incluidas en el
Anlisis).
Anlisis y Diseo
l Disear una curva que una los
puntos de interseccin de caminos
diferentes. Los procesos incluidos
en el interior de la curva son
candidatos iniciales para el centro de
transformaci n.
Anlisis y Diseo
l Finalmente, analizar los lmites del centro.
Generalmente, en el lmite, se puede
reconocer la finalizacin del refinamiento
de las entradas (para los caminos de
entrada o aferentes) y el comienzo del
refinamiento de las salidas (para los
caminos de salida o eferentes). Si no es
as, modifique el contorno, yendo hacia el
interior o exterior de forma tal que, el
interior, incluya solamente datos en
estado lgico (independiente de las
fuentes y destinos y totalmente refinados).
35
Anlisis y Diseo
l En siguiente ejemplo ilustra la actividad
descripta arriba. Primero se marcan todos
los caminos de datos a travs del DFD
comenzando por los flujos de comienzo
de los caminos aferentes y finalizando en
los flujos de finalizacin de los caminos
eferentes. En el ejemplo, los flujos de
datos Campo y Registro Maestro son
flujos de comienzo de caminos aferentes
y, Nuevo Registro Maestro y L nea de
Informeson flujos de finalizacin de
caminos eferentes.
Anlisis y Diseo
l En el segundo paso se hace una
curva uniendo los puntos de
intersecci n de caminos. La curva
rene los procesos candidatos para
centros de transformacin, en el
ejemplo, rene los procesos:
Aparear Transacci n con Registro
Maestro, Actualizar Registro Maestro
y Formatear Nuevo Registro Maestro.
Anlisis y Diseo
36
Anlisis y Diseo
l Las lneas punteadas marcan los
diferentes caminos de datos a travs del
DFD. Hay dos Caminos Aferentes que
comienzan en los flujos Campo y Registro
Maestro y dos Caminos Eferentes que
finalizan en los flujos Nuevo Registro
Maestro y Lnea de Informe. Los procesos
en el interior de la curva son candidatos a
integrar el centro de transformaciones,
ellos son Aparear Transacci n con
Registro Maestro y Actualizar Registro
Maestro.
Anlisis y Diseo
l La curva tambin indica la
finalizaci n de los caminos aferentes
y el comienzo de los caminos
eferentes, verificar eso es el objetivo
del tercer paso.
Anlisis y Diseo
l La primera tarea es verificar que, en el
interior de la curva, no haya
transformaciones de refinamiento de los
flujos de entrada o salida. En el ejemplo,
el flujo de datos Transacci n Vlida es la
versin mas refinada de los datos que
comenzaron con el flujo Campo y, el
proceso Aparear Transaccin con
Registro Maestro procesan datos de los
dos caminos aferentes para crear una
salida muy diferente (el Registro Maestro
Apareado).
37
Anlisis y Diseo
l Con los caminos eferentes no ocurre la
misma cosa. El proceso Formatear Nuevo
Registro Maestro, aunque sea integrante
del selecto grupo de procesos candidatos
para centro de transformacin, ejecuta
una tarea de refinamiento de datos de
salida. La tarea de transformacin real de
datos fue realizada por los procesos
Aparear Transaccin con Registro
Maestro y Actualizar Registro Maestro.
Anlisis y Diseo
l El mdulo Formatear Nuevo Registro
Maestro simplemente refina el
Registro Maestro Actualizado o el
Registro Maestro sin Transaccin
para generar el Nuevo Registro
Maestro. As el proceso Formatear
Nuevo Registro Maestro no compone
el centro de transformaci n e
incrementa el camino eferente.
Anlisis y Diseo
l Existe subjetividad en la eleccin de la
transformacin central, raramente surgen
grandes acuerdos relativos a esa eleccin.
El diseador se podr preguntar sobre un
proceso aqu o all, sin embargo, eso
parece hacer poca diferencia en el diseo
final. Por eso, si hubiera dudas sobre un
proceso, se no debe pertenecer al centro
de transformacin.
38
Anlisis y Diseo
l En sistemas de informacin el centro
de transformaci n est compuesto
por una pequea porcin del DFD y
no incluye procesos de edicin,
formateo o verificacin y correccin
de errores.
Anlisis y Diseo
l Producir un Primer Diagrama de
Estructura (First-Cut)
l Una vez reconocido el centro de
transformaci n y los caminos
aferentes y eferentes, una primera
versi n del DE puede ser
desarrollada aplicando los cuatro
pasos siguientes:
Anlisis y Diseo
l Convertir el DFD en una jerarqua de
mdulos: Tirar el DFD desde los
procesos marcados como
participantes del centro de
transformaciones y dejar caer los
otros procesos, por acci n de la
gravedad.
39
Anlisis y Diseo
Anlisis y Diseo
l Substituir los depsitos de datos por
mdulos de lectura o grabacin
(dependiendo de la orientaci n del
flujo), los agentes externos por
mdulos de captacin o
presentaci n de datos y adicionar
mdulos debajo de los flujos sin
destinatario u origen.
Anlisis y Diseo
l Se deben asociar nombres
adecuados a los mdulos
adicionales, dependiendo de la
actividad de lectura (captaci n) o
escritura (presentaci n) que deben
ejecutar.
40
Anlisis y Diseo
l
m
n
q
o
p
k h
i
j
f
g
a
b
c
d
e
G
H
F
C
A
B
?
? ?
? ?
Leer
X
Gra
X
?
D
E
Anlisis y Diseo
l Convertir los flujos de datos en
invocaciones (apuntando al mdulo
invocado) y los datos transportados por
los flujos en cuplas.
l Cada uno de los mdulos deber ser
analizado para determinar y adicionar los
datos de entrada necesarios. Por ejemplo,
el mdulo Leer X debe recibir como
entrada la clave de acceso para la lectura
del registro.
Anlisis y Diseo
l
m
n
q
o
p
k
h
i
j f
g
a
b
c
d
e
G H F C
A
B Or Et Er
Ic Ec
Leer
X
Gra
X
Em
D
E
41
Anlisis y Diseo
l Indicar un nico mdulo como raz
del DE, sea por seleccin de uno de
los mdulos participantes del centro
de transformaciones o, por la
incorporacin de un mdulo nuevo.
Anlisis y Diseo
l Mejorar el Diagrama de Estructura Obtenido
l El diagrama de estructura resultante del
paso anterior, con certeza, puede ser
mejorado. Eso simplemente es una
primera aproximacin y se debe beneficiar
con la aplicacin de los criterios de
calidad (presentados mas adelante),
especialmente Descomposicin, Cohesin
y Acoplamiento.
Anlisis y Diseo
l Por lo menos, la siguiente revisin debera
ser hecha en el diagrama de estructura:
l 1. Reorganizar, y descomponer si fuese
necesario, los mdulos aferentes y
eferentes.
l 2. Descomponer la transformacin central,
si fuese necesario, usando el DFD como
base. Los niveles del DFD son tiles en
este caso.
42
Anlisis y Diseo
3. Adicionar los mdulos de
manipulacin de errores.
l 4. Adicionar detalles de inicializacin y
terminacin (si son requeridos).
l 5. Tener certeza que todos los mdulos
tengan nombres correspondientes a su
representacin en la jerarqua.
l 6. Adicionar todas las cuplas necesarias
(de datos y de control).
7. Chequear todos los criterios de calidad
y mejorar el diseo de acuerdo con esos
criterios.
Anlisis y Diseo
l De esta manera, aplicando los cuatro
pasos en el DFD de la figura, el DE
resultante es el siguiente:
Anlisis y Diseo
43
Anlisis y Diseo
l Garantizar la Funcionalidad del Diseo
l El paso final es el paso ms importante:
tener certeza que el DE es funcionalmente
equivalente al DFD de origen. El propsito
del anlisis de transformaciones, es
obtener r pidamente un DE que
implemente correctamente la
especificacin del problema y cumpla los
criterios de calidad.
Anlisis y Diseo
l Anlisis de Transacci n
l El anlisis de transformaciones es la
principal estrategia para convertir un DFD
(de transformacin de datos) en un DE.
Sin embargo, una pregunta est sin
responder: que criterio puede ser
aplicable para particionar un DFD mayor
en un conjunto de DFDs de
transformacin?
Anlisis y Diseo
l El anlisis de transaccin es
extremadamente valioso para dividir un
DFD de alto grado de complejidad en
DFDs de menor complejidad. Esta tcnica
divide en distintos DFDs, uno para cada
transformacin que el sistema procesa.
Esos DFDs menores sern
suficientemente simples como para
permitir su conversin por medio del
anlisis de transformaciones en
Diagramas de Estructura (DE).
44
Anlisis y Diseo
l El anlisis de transaccin tambin
puede ser usado para combinar los
diagramas de estructura individuales
(de transacciones separadas) en un
diagrama de estructura mayor y ms
flexible.
Anlisis y Diseo
l Una transaccin, en general, es un
estmulo para un sistema que posee un
conjunto de actividades a ser realizadas
internamente. Ejemplos de transacciones
son: incluir un nuevo cliente, generar una
factura por venta de mercaderas,
actualizar el stock de un producto,
disminuir la temperatura de un reactor
nuclear, actualizar archivo maestro o
generar el reporte de movimientos de
cuenta corriente.
Anlisis y Diseo
Transaccin
Tipode
Obtener
Transaccin
Tipo de
Transaccin
Tipo
B
Transaccin
Tipo
A
Transaccin
Tipo
C
Aplicar
Transaccin
45
Anlisis y Diseo
l Los DE que resultan del anlisis de
transaccin tienen la forma descripta
por la figura anterior. De manera
similar al anlisis de
transformaciones, la actividad
principal para derivar un DE a partir
del DFD, en el anlisis de
transaccin, es identificar el centro
de transacci n.
Anlisis y Diseo
l Frecuentemente, es muy fcil reconocer
transacciones, centros de transacciones y
procesos de transaccin a travs del
formato del diagrama. Siempre que un
flujo de datos entra en un proceso que
determina su tipo y lo enva a un proceso
relacionado con el tipo, se puede tener
certeza que fue localizado un centro de
transacciones.
Anlisis y Diseo
l Acoplamiento
l El acoplamiento entre mdulos clasifica el
grado de independencia entre pares de
mdulos de un DE. El objetivo es
minimizar el acoplamiento, es decir,
maximizar la independencia entre
mdulos. A pesar que el acoplamiento, es
un criterio que clasifica caractersticas de
una invocaci n (una relacin existente
entre dos mdulos), ser usado para
clasificar un DE completo.
46
Anlisis y Diseo
l Un DE se caracteriza por el peor
acoplamiento existente entre pares
de sus mdulos, ya que ese es el
problema que debe ser resuelto para
mejorar la calidad del DE completo.
Anlisis y Diseo
l Un bajo acoplamiento indica un sistema
bien particionado y puede obtenerse de
tres maneras:
l 1. Eliminando relaciones innecesarias: Por
ejemplo, un mdulo puede recibir algunos
datos, innecesarios para l, porque debe
enviarlos para un mdulo subordinado.
2. Reduciendo el nmero de relaciones
necesarias: Cuanto menos conexiones
existan entre mdulos, menor ser la
chance del efecto en cadena (un error en
un mdulo aparece como s ntoma en otro)
Anlisis y Diseo
3. Debilitando la dependencia de las
relaciones necesarias: Ningn
mdulo se tiene que preocupar por
los detalles internos de
implementaci n de cualquier otro. Lo
nico que tiene que conocer un
mdulo debe ser su funci n y las
cuplas de entrada y salida (cajas
negras).
47
Anlisis y Diseo
l A cada invocacin de un DE le ser
atribuido uno de los cinco tipos de
acoplamiento siguientes:
Anlisis y Diseo
Anlisis y Diseo
l Acoplamiento sin Cuplas
l Hay una categora de acoplamiento no
considerada en la tabla anterior por ser un
caso poco frecuente, el Acoplamiento sin
Cuplas. Un acoplamiento sin cuplas
representa una invocacin donde ningn
argumento se comunica y el mdulo
llamado no retorna ningn valor.
48
Anlisis y Diseo
l El acoplamiento sin cuplas puede ser
considerado el punto cero en una tabla de
acoplamientos siempre que, en la
realidad, ningn dato sea comunicado. Si
el mdulo llamado hace referencia para
reas de memoria globales, podra
corresponder a otro tipo de acoplamiento
(tpicamente acoplamiento comn o
acoplamiento por contenido).
Anlisis y Diseo
l Acoplamiento de Datos
l Dos mdulos estn acoplados por datos
si todas las cuplas comunicadas en una
invocacin son par metros simples (tipos
de datos bsicos en un lenguaje de
programacin: integer, real, string, etc.) o
tablas homogneas. Una tabla homognea
es una tabla en la cual cada entrada
contiene el mismo tipo de dato y tiene la
misma interpretacin
Anlisis y Diseo
Calcular la
Cuenta Total
del Cliente
Calcular
Deudapor
el Servicio
Valor Normal
delServicio
TasadeInters
Das despus del
Vencimiento
ValorTotal
delServicio
Calcular
Promediode
Notas
Acumular
Total de
Notas
Tablade
Notas
Sumadelas
Notas
Cantidad
deNotas
DatosSimples
DatosSimples
TablaHomognea
49
Anlisis y Diseo
l El acoplamiento de datos es una
comunicaci n de datos necesaria
entre mdulos. Una vez que los
mdulos tienen que comunicarse, la
vinculaci n de datos es inevitable e
inofensiva (si es mnima). A pesar
que es el tipo de acoplamiento
recomendado, existen dos
importantes riesgos:
Anlisis y Diseo
l Interface Compleja: Cuando un mdulo
recibe un gran cantidad de cuplas (ej. 10 o
15), a pesar que todas sean simples o
tablas homogneas, la interface del
mdulo queda muy oscura. As , las
grandes ventajas de mantenimiento que el
acoplamiento de datos ofrece, son de
poca importancia para el gran esfuerzo
que representa la comprensin. Una gran
cantidad de cuplas, en general, es un
sntoma de cohesin pobre. La solucin
es intentar una mejor descomposicin de
los mdulos
Anlisis y Diseo
l Datos Vagabundos (tramp data): Cuando
una cupla recorre una cantidad de
mdulos innecesariamente, se dice que es
una cupla vagabunda. Los riesgos de
mantenimiento, en presencia de cuplas
vagabundas es casi semejante a los
riesgos del acoplamiento comn, ya que
cualquiera de los mdulos visitados
puede producir modificaciones, por error,
y los s ntomas apuntarn para el mdulo
que la usa efectivamente.
50
Anlisis y Diseo
l Las cuplas vagabundas son muy
comunes, principalmente en DE
derivados por anlisis de
transformaciones. Para corregir el
defecto, se recomienda la
reorganizaci n del DE
Anlisis y Diseo
l El acoplamiento de datos es el
acoplamiento recomendado ya que: la
interface es la mnima posible, la interface
es clara y fcil de comprender, los
sntomas de los errores aparecen en el
mismo mdulo donde se produce el error,
la modificacin de un mdulo no produce
efecto en cascada en otros mdulos, un
mdulo puede ser cambiado por otro
fcilmente siempre que, el nuevo mdulo
tenga la misma funcionalidad y la misma
interface (a pesar que sean
implementados de manera muy diferente).
Anlisis y Diseo
l Acoplamiento Estampado
l Dos mdulos estn vinculados por un
acoplamiento estampado si, por lo menos
una cupla contiene una estructura de
datos (un grupo de tems de datos simples
o compuestos), o un dato simple
interpretado como una estructura de
datos.
51
Anlisis y Diseo
l Por ejemplo, si en un programa
PASCAL, un argumento es de tipo
RECORD, o un argumento de tipo
INTEGER que representa un dato
empaquetado (4 bits para el da: 2
4
=
16; 5 bits para el mes: 2
5
=32; y los 7
bits restantes para el ao 2
7
=128, del
ao 1900 al 2028)
Anlisis y Diseo
Calcular la
Cuenta Total
del Cliente
Calcular
Deuda por
el Servicio
Valor Normal
deServicio
TasadeInters
Fecha
Vencimiento
Valor Total
del Servicio
Procesar
Pedido
do
Cliente
Pedido
Datos Simples
Estrutura deDatos
Datos Compuestos
Descontar
Stock delos
Productos
Anlisis y Diseo
l A pesar que el acoplamiento
estampado no es el mejor, es un
acoplamiento bueno si es bien
usado. Por ejemplo considere la
porci n de DE de la figura siguiente.
52
Anlisis y Diseo
Jugar
Ajedrez
Hacer
Movimiento
Movimiento
Tablero
Anterior
Tablero
Nuevo
Anlisis y Diseo
l Un tablero es una estructura de datos
natural para el problema: no sera muy
inteligente considerar cada cuadrado del
tablero separadamente, porque eso har a
que necesitramos de 64 cuplas para el
tablero y una mas para el movimiento.
Pero existen dos riesgos importantes en
este tipo de acoplamiento:
Anlisis y Diseo
l Informaci n Innecesaria: Cuando una
estructura de datos es pasada a un
mdulo y, frecuentemente, no precisa de
todos los tems de datos de la estructura.
Cuando el mdulo usa apenas uno o dos
tems de un conjunto mayor, la interface
queda oscura, compleja y poco flexible.
Un ejemplo es el mdulo Descontar Stock
de los Productos mostrado anteriormente.
Recibe la estructura de datos Pedido y
solamente precisa de los identificadores
de producto y las cantidades para
descontar del stock.
53
Anlisis y Diseo
l Empaquetamiento Artificial
(bundling): Considere el mdulo del
ejemplo siguiente.
Calcular
CostoTotal
Cantidad
Tipode
Descuento
Costo
Total
Impuesto
deVenta
Preciopor
Item
Calcular
Costo Total
Costo
Total
Informacin
ParaClculo
deCosto
Anlisis y Diseo
l Para reducir la cantidad de cuplas de
datos que viajan para el mdulo, se
empaquetan en una estructura de
datos llamada Informaci n para
Clculo de Costo. Esta idea de
agrupar datos, no relacionados
razonablemente, en un estructura de
datos artificial genera una interface
oscura innecesariamente
Anlisis y Diseo
l Los mdulos acoplados por estructuras
de datos tienen un acoplamiento mayor
que los mdulos relacionados solamente
por datos simples. Si una estructura de
datos debe ser modificada, todos los
mdulos que la reciben debern ser
modificados (o, por lo menos re-
compilados). As mismo, si una estructura
de datos no es artificial (se basa en ideas
de modelado) y el mdulo precisa de
todos los componentes, es un buen
acoplamiento.
54
Anlisis y Diseo
l Acoplamiento de Control
l Dos mdulos estn acoplados por
control si uno pasa para el otro un
dato (o grupo de datos) destinado a
controlar la lgica interna del otro.
Anlisis y Diseo

Procesar
Registro
deCliente
Control de
Entrada/
Salida
Realizar
Operacin
#deCliente Registrode
Cliente
Generar
Informede
Pago
DatosSimples
Cupla deControl
Buscar
Nombredel
Cliente
Nombredel
Cliente
#deCuenta
Mostrar Mensaje
deError:Cliente
inexistente
Cupla deControl
DatosSimples
Anlisis y Diseo
l Acoplamiento Hbrido
l Una cupla de control frecuentemente
contiene valores discretos y
fcilmente identificables, pero en
algunos casos una cupla de datos
cumple el rol de cupla de control.
55
Anlisis y Diseo
l IV.1.1.1 Acoplamiento Comn
l Dos mdulos poseen acoplamiento
comn, si hacen referencia a la misma
rea de datos global. En este caso,
hablamos de una clase de acoplamiento
existente entre dos mdulos que no
precisan estar relacionados por una
invocacin. Tanto el acoplamiento comn
como el acoplamiento por contenido
pueden aparecer entre dos mdulos no
relacionados en el DE.
Anlisis y Diseo
El acoplamiento comn no es
aconsejable por:
l No localizaci n de errores: Un error
en cualquier mdulo que use un rea
global de datos puede aparecer en
cualquier otro mdulo que use
aquella rea.
Anlisis y Diseo
l Baja Reusabilidad: Mdulos que
referencian datos globales generalmente
lo hacen a travs de nombres explcitos.
Por ejemplo, un mdulo que verifica la
correccin de un dato almacenado en un
rea global, hace referencia a una fecha
por un nombre explcito y queda sujeto al
nombre, no puede verificar una fecha si
no est almacenado en una rea global
con ese nombre. Tiene perdido una gran
posibilidad de reutilizacin de ese mdulo
simplemente por la complejidad
innecesaria de las convenciones de uso.
56
Anlisis y Diseo
l Conversi n Implcita de Tipos: La
misma rea global puede ser usada
por mdulos diferentes para
almacenar datos de tipos diferentes.
l Difcil Comprensi n: Programas con
muchos datos globales son
extremadamente difciles de
entender.
Anlisis y Diseo
l Poca Flexibilidad: Cuando un
mdulo tiene que ser modificado es
difcil descubrir qu datos precisan
ser cambiados y, peor an, si alguna
rea de datos global es modificada
es muy difcil descubrir qu mdulos
deben ser modificados tambin.
Anlisis y Diseo
l Acoplamiento por Contenido (o Patolgico)
l Dos mdulos presentan acoplamiento por
contenido (o patolgico) si uno hace
referencia al interior del otro: por ejemplo,
si un mdulo desva la secuencia de
control para adentro de otro o si un
mdulo altera un comando o un rea de
datos local del otro. El acoplamiento por
contenido torna el concepto de mdulo
(como una caja negra) sin sentido, ya que
obliga a un mdulo a conocer el contenido
e implementacin de otro.
57
Anlisis y Diseo
l El acoplamiento por contenido hace
que los mdulos sean tan
dependientes entre ellos que es no
posible modificar uno sin tener que
modificar el otro.
Anlisis y Diseo
l Cohesin
l Otro medio para evaluar la particin en
mdulos (adems del acoplamiento) es
observar como las actividades de un
mdulo estn relacionadas unas con
otras, este es el criterio de cohesin.
Generalmente el tipo de cohesin de un
mdulo determina el nivel de
acoplamiento que tendr con otros
mdulos del sistema.
Anlisis y Diseo
l Cohesi n es la medida de intensidad
de asociacin funcional de los
elementos de un mdulo. Por
elemento debemos entender una
instruccin, o un grupo de
instrucciones o una llamada a otro
mdulo o, un conjunto de
procedimientos o funciones
empaquetados en el mismo mdulo
58
Anlisis y Diseo
l El objetivo del diseo estructurado es
obtener mdulos altamente cohesivos,
cuyos elementos estn fuerte y
genuinamente relacionados unos con
otros. Por otro lado, los elementos de un
mdulo no deberan estar fuertemente
relacionados con elementos de otros
mdulos, porque eso llevara a un fuerte
acoplamiento entre ellos.
Anlisis y Diseo
l Clasificamos cada uno de los
mdulos de un DE con uno de los
tipos de cohesi n siguientes:
Anlisis y Diseo
59
Anlisis y Diseo
l Cohesin Funcional
l Un mdulo con cohesi n funcional
contiene elementos que contribuyen
con la ejecuci n de una y solo una
funcin. Ejemplos de nombres de
mdulos con cohesi n funcional
son:
Anlisis y Diseo
l 1. Calcular el Coseno de un ngulo
l 2. Leer el Registro de Transaccin
l 3. Determinar la Deuda del Cliente
l 4. Calcular el Punto de Impacto del
Misil
l 5. Calcular el Salario Lquido del
empleado
Anlisis y Diseo
Cohesin Secuencial
l Un mdulo con cohesin secuencial es
aquel cuyos elementos estn
involucrados en actividades tales que los
datos de salida de una actividad sirven
como datos de entrada para la prxima.
Por ejemplo, considere un mdulo que
incluye los pasos necesarios para pintar
un auto de un color diferente al actual:
60
Anlisis y Diseo
l 1. Limpiar el Auto
l 2. Lijar el Auto
l 3. Aplicar la Primer Capa de Pintura
Anlisis y Diseo
Cohesin Comunicacional
l Un mdulo con cohesi n
comunicacional es aquel cuyas
actividades usan los mismos datos
de entrada. Por ejemplo, tenemos un
mdulo que contiene funciones que
retornan datos sobre un libro:
Anlisis y Diseo
l 1. Buscar el Ttulo del Libro
l 2. Buscar el Precio del Libro
l 3. Buscar el Cdigo del Libro
l 4. Buscar el Autor del Libro
61
Anlisis y Diseo
l Cohesin Procedural
l Un mdulo con cohesin procedural es
aquel cuyos elementos estn
involucrados en actividades diferentes, en
las que el control es la principal relacin.
De manera semejante a los mdulos con
cohesin secuencial, el orden de los
elementos es importante pero, en este
caso, la secuencia es guiada por el control
y no por la transformacin de datos.
Anlisis y Diseo
l Los mdulos con cohesin procedural
tienden a estar compuestos por algunas
funciones poco relacionadas entre s
(excepto por ser ejecutadas en un cierto
orden). Sin embargo, esas funciones
probablemente tienen mucho que ver con
funciones en otros mdulos. En Grabar,
Leer y Editar Registro se termina la
ejecucin de la ltima transaccin (grabar
el registro) y comienza la transaccin
siguiente (leer y editar el registro nuevo)
Anlisis y Diseo
l Cohesin Temporal
l Un mdulo con cohesi n temporal es
aquel cuyos elementos estn
involucrados en actividades que
estn relacionadas en el tiempo.
Considere el siguiente ejemplo:
62
Anlisis y Diseo
l 1. Inicializar Tabla
l 2. Leer Configuracin del Sistema
l 3. Inicializar Variables Auxiliares
l 4. Completar Tabla con Valores Fijos
Anlisis y Diseo
l Cohesin Lgica
l Un mdulo con cohesin lgica es aquel
cuyos elementos contribuyen en
actividades de una misma categora
general, donde la actividad o las
actividades a ser ejecutadas son
seleccionadas fuera del mdulo.
l 1. Leer Registro de Cliente
l 2. Leer Registro de Vendedor
l 3. Leer Registro de Producto
l 4. Leer Registro de Proveedor
Anlisis y Diseo
l Cohesin Coincidencial
l Un mdulo con cohesin coincidencial es
aquel cuyos elementos contribuyen en
actividades sin relacin significativa entre
ellos. Entre sus causas estn las
tentativas intiles para economizar tiempo
o memoria, la incrustacin de codificacin
monoltica en mdulos arbitrarios y las
alteraciones de mantenimiento intentando
mejorar la mala cohesin de algunos otros
mdulos del sistema (dejando en un
mismo mdulo las porciones de cdigo
descartados de los otros).
63
Anlisis y Diseo
l Clusters de Informacin (Cohesin
Informacional)
l Los clusters de informacin sirven
para modelar tipos abstractos de
datos en un diagrama de estructura.
Muestran una estructura de datos
junto con los mdulos de acceso y
actualizacin.
Anlisis y Diseo
Tablero de Ajedrez
Hacer
Movimiento
Validar
Posicin
Movimiento Validacin
Anlisis y Diseo
Fin Capitulo II

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