|
3.1 Dise¤o estructurado
3.1.1 Objetivo :
Esta t‚cnica tiene consigo los siguientes objetivos :
* Obtener la estructura modular y los detalles de procesos
del sistema partiendo solamente de los "productos" obteni-
dos de la fase de An lisis de Sistemas.
* Cambiar la atenci¢n del QUE al COMO.
* Obtener un dise¤o que no s¢lo "funcione" sino que tambien
sea mantenible, mejore la reutilizaci¢n y se pueda probar
y entender facilmente.
* Utilizar herramientas gr ficas (Diagrama de estructura de
cuadros) para representar la estructura modular del sistema.
Se trata por tanto de conseguir que cada m¢dulo de la
estructura en rbol que se obtenga cumpla las siguientes
caracter¡sticas :
M¢dulos de peque¤o tama¤o.
El impacto de un cambio a realizar puede ser perfectamente
aislado. Si el tama¤o de los m¢dulos es reducido, una dete-
rminada modificaci¢n afectar a un n£mero mayor de m¢dulos,
sin embargo la cantidad de c¢digo a considerar ser menor.
Independencia modular.
Cuando mayor es la independencia de un m¢dulo es m s senci-
llo trabajar con ‚l, por tanto el dise¤o debe reducir la
compartici¢n de ficheros, de datos, la de dispositivos, las
interfases comunes con el sistema operativo y las llamadas
desde o hacia otros m¢dulos.
Caracter¡stica de caja negra.
La caracter¡stica de caja negra se aplica a cualquier
sistema, programa o m¢dulo para dar visi¢n exclusiva de sus
entradas y salidas, sin tener en cuenta los detalles de
c¢mo se realiza el proceso.
Modelizaci¢n conceptual.
Un sistema sera m s f cil de mantener si el modelo utili-
zado en su dise¤o se ha basado en los conceptos l¢gicos de
la organizaci¢n, los cuales ser n m s familiares y compren-
sibles para el personal de mantenimiento que las descripci-
ones f¡sicas.
3.1.2 Utilidad
Esta t‚cnica nos permitir desarrollar un MODELO de un
sistema computarizado para solucionar un problema, que
tienen los mismos componentes, y las mismas interrelaciones
entre ellos, como el problema original.
Para construir este m¢dulo necesitamos:
UNA HERRAMIENTA PARA MODELAR
Para ayudarnos a planear y dise¤ar nuestro sistema, esta
herramienta tiene las siguientes caracter¡sticas :
* Gr fica.
* Uso de Top-Down.
* Rigurosa.
* Capaz de predecir el comportamiento del sistema.
* Una salida natural del an lisis.
* Una entrada natural a la implantaci¢n.
* Documentaci¢n del sistema
* Una ayuda para el mantenimiento.
UNA MANERA DE CONTROLAR LA COMPLEJIDAD
De sistemas no triviales.
3.1.3 Descripci¢n
El paso de la fase de An lisis del Sistema al Dise¤o ser
m s f cil si se ha llegado a un nivel de detalle muy bajo
en los diagramas de flujo de datos.
Una vez finalizada la fase de An lisis del Sistema, se
dispondr a iniciar la Fase de Dise¤o, de un conjunto de
especificaciones que describan, con t‚rminos precisos:
* Las entradas que suministran al sistema.
* Las salidas aportadas por el sistema a dichas entidades
externas.
* Las funciones descompuestas que se han de realizar por
ese sistema.
* El modelo de datos l¢gico del sistema.
Toda esta informaci¢n estar almacenada en el diccionario
del proyecto mediante la descripci¢n de diagramas de
flujo de datos, procesos, flujo de datos, diagrama de
estructura de datos, entidades y atributos.
Para pasar a construir el nuevo sistema es necesario
convertir toda esta informaci¢n en especificaciones de
programas.
Las tareas a realizar son:
* Determinar qu‚ m¢dulos implantar n los procesos termin-
ales obtenidos en la Fase de An lisis del Sistema.
* Organizar la estructura de estos m¢dulos y definir las
conexiones entre los mismos.
* Describir el pseudoc¢digo para cada m¢dulo.
Para ello se seguir el m‚todo propuesto por CONSTANTINE:
El Diagrama de Estructura de Cuadros, que permite definir
cu ndo bajo que condiciones y cuantas veces se tienen que
realizar los tratamientos identificados en los Procesos.
Los datos se contemplan como la interfases entre tratami-
entos sucesivos.
Por lo tanto, la Estructura Constantine nos da una visi¢n
de arquitectura del sistema. con la cual, se trata de no
tener ninguna restricci¢n en cuanto al n£mero de objetos,
siempre y cuando el dibujo pueda realizarse en una hoja,
para no perder la referencia, y en cualquier caso poder
explosionar aquella funci¢n que se descomponga..
El dise¤o f¡sico que debe de elaborar un dise¤ador debe
ser el ¢ptimo, por lo tanto, debemos de considerar los
siguientes aspetos para optimizar el dise¤o.
a) Principios del dise¤o estructurado.
b) Estrategias de dise¤o.
c) Evaluaci¢n y refinamiento del dise¤o.
d) Heur¡stica del Dise¤o.
e) Definici¢n de los Programas.
Se describir n en detalle cada aspecto, logrando un
mayor entendimiento de los mismos:
a) Principios del dise¤o estructurado.
Los principios de dise¤o estructurado que debemos de cons-
iderar son los siguientes:
* Descomposici¢n.
* Jerarqu¡a.
* Independencia.
Estos principios se describir n a continuaci¢n :
* Descomposici¢n :
Es la separaci¢n de una funci¢n en otras que estuvieran
contenidas en la primera.
La descomposici¢n con sigue los siguientes objetivos :
* Reducir el tama¤o del m¢dulo.
* Hacer el sistema m s f cil de entender y modificar.
En el dise¤o ®top-down¯, de arriba a bajo permite
descomponer paso a paso, seg£n se vaya observando que
los m¢dulos realizan m£ltiples funciones, acerc ndonos
cada vez m s a la soluci¢n ¢ptima.
A continuaci¢n veremos un ejemplo donde se emplea la
t‚cnica top-down; donde descompondremos la funci¢n:
obtener el sueldo del trabajador por horas que se
muestra en la Figura N§ 6: Funci¢n: Emitir Cheques a
empleados; a su vez, el resultado de este ejemplo se
muestra en la Figura N§ 7: Descomposici¢n de la funci¢n:
obtener el sueldo del trabajador por horas.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º º
º ÚÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ EMITIR ³ º
º þ ÚÄÄÄÄÄÄÄÄÄÄÄ´ CHEQUES ÃÄÄÄÄÄÄÄÄÄÄÄ¿ º
º Final de fichero ³ ³ ³ EMPLE DOS ³ ³ Nombre º
º ³ ³ ÀÄÄÄÄÂÄÂÄÄÄÄÙ ³ ³ Empleado º
º ³ ³ ÚÙ À¿ ³ ³ º
º þ ³ ÚÙ À¿ ³ þ º
º ³ ÚÄÄÄÄÄÄÄÄÄÙ ÚÙ À¿ ÀÄÄÄÄÄÄÄÄÄÄ¿ º
ºegistro ³ ³ ÚÙ þ À¿ ³ ³ Numero º
ºago empleado³ ³ ÚÙ ³ ³ À¿ Pago ³ ³ ³ empleado º
º ³ ÚÙ ³ ³ À¿ Empleado ³ ³ ³ º
º ³ þ ÚÙ þ À¿ þ ³ þ º
º ÚÄÄÄÄÄÄÄÙ Pago ³ ÚÙ À¿ ÀÄÄÄÄÄÄ¿ º
º ³ Neto ³ ÚÙ Registro Pago À¿ ³ º
º ³ Horas ³ ÚÙ Pago Sueldo À¿ Registro ³ º
º ³ ÚÙ Horas Neto À¿ ³ Pago de saldo ³ º
º ³ ÚÙ À¿ ³ ³ º
º ³ ÚÙ À¿ þ ³ º
º ³ ÚÙ À¿ ³ º
º ÚÄÄÄÄÁÄÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÁÄÄÄÄ¿ ÚÄÄÄÄÄÄÁÄ¿ º
º ³OBTENER ³ ³OBTENER NETO³ ³CALCULAR NETO³ ³IMPRIMIR³ º
º ³REG. PAGO³ ³ TRABAJADOR ³ ³ TRABAJADOR ³ ³ CHEQUE ³ º
º ³EMPLEADOS³ ³ PRO HORAS ³ ³ CONTRATO ³ ³ PAGO ³ º
º ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÙ º
º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Figura N§ 6: Funci¢n: Emitir Cheques a empleados
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º º
º ³ º
º ÚÄÄÄÄÄÄÄÄÄÄÄ¿ ³ º
º ÚÄÄÄÄ´ EMITIR ÃÄÄÄÄÄ¿ þ Nombre º
º ³ ³ CHEQUE DE ³ ³ Empleado º
º ÚÄÄÄÄÄÙ ³ EMPLEADOS ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º Registro Pago þ ³ ÀÄÄÄÂÄÄÄÄÄÄÄ´ ³ ³ º
º Empleado ³ ³ ³ ³ ³ Reg. ³ ³ º
º ³ ³ ³ ³ þ Pago ³ ³ Numero º
º ³ þ ³ ³ Empleado ³ þ empleado º
º ³ ³ ³ ÀÄÄÄÄÄÄÄ¿ ³ º
º ÚÄÄÄÄÄÄÄÄÄÙ ³ þ ÚÄÙ þ ³ ÀÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ Pago ³ ³ Registro ³ ³ ³ º
º ³ Neto ³ ³ Pago ³ ³ Pago ³ º
º ³ horas ³ Horas ÀÄÄÄÄÄÄ¿ Empleado ³ ³ º
º ÚÄÄÄÄÄÄÙ ÚÄÙ ³ ³ ÀÄÄ¿ º
º ³ ³ ³ ³ þ ÀÄÄ¿ º
º ³ ³ ³ ³ ³ º
º ÚÄÄÄÁÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÁÄÄ¿ þ ÚÄÄÄÄÄÄÄÄÁÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÁ¿ º
º ³OBTENER ³ ³CALCULAR NETO³ ³CALCULAR NETO³ ³SUPRIMIR³ º
º ³REG. PAGO³ ³ TRABAJADOR ³ ³ TRABAJADOR ³ ³ CHEQUE ³ º
º ³EMPLEADOS³ ³ POR HORAS ³ ³ CONTRATO ³ ³ PAGO ³ º
º ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÄÂÄÄÄÄÄÄÄÄÂÄÙ ÀÄÄÄÄÄÄÂÄÂÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÙ º
º Tarifa ³ ³ Reducciones ³ ³ º
º por ³ ³ þ Normales ³ ³ º
º moras ÚÄÙ ÀÄÄ¿ ³ ³ ÚÄÄÄÙ ÀÄÄÄÄÄ¿ º
º ³ Retenci¢n ³ ³ Pago þ ³ ³ º
º Horas ³ Impuestos ³ Bruto ³ ³ ³ Pago º
º Trabajadas ÚÄÄÄÙ ³ ÀÄ¿ ContratoÚÄÄÙ þ ÀÄÄ¿ º
º ³ þ ³ ³ ³ þ Tarifa ³ þ º
º ³ ³ Pago þ ³ Retenc. ³ ³ Normal ³ ³ Pago º
º ³ ³ ³ Bruto Pago ³ imp. ³ ³ ³ ³ Bruto por º
º ³ ³ Por Bruto ³ ³ Deducciones ³ ³ Contrato º
º þ ³ Horas Por ³ ³ ³ Normales þ ³ º
º ÚÄÄÄÄÄÙ Moras þ ÀÄÄÄÄ¿ ÚÄÄÄÄÙ ÀÄÄÄÄ¿ º
º ³ ³ ³ ³ º
º ³ ³ ³ ³ º
º ³ ³ ³ ³ º
º ÚÄÁÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÁÄ´ ÚÄÄÄÄÄÄÄÁÄÄÄ¿ º
º ³ CALCULAR ³ ³ CALCULAR ³ ³ CALCULAR ³ º
º ³BRUTO TRAB.³ ³REDUCCIONES³ ³BRUTO TRAB.³ º
º ³ POR MORAS ³ ³ NORMALES ³ ³ CONTRATO ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÙ º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Figura N§ 7: Descomposici¢n de la funci¢n: obtener el sueldo del
trabajador por horas
* Minimizar la duplicidad del C¢digo.
Se evita tener que realizar una funci¢n en m s de un m¢dulo.
* Crear M¢dulos £tiles.
Consiste en crear m¢dulos que puedan ser empleados en cual-
quier parte del sistema.
As¡, en el Ejemplo 3: vemos que el m¢dulo VALIDAR CAMPO
ALFABETICO puede utilizarse en cualquier otra parte del
sistema (o en otros sitemas que se desarrollen). Por ejemplo,
para hacer un chequeo en provincias o ciudades). Este ejemplo
se muestra graficamente en la Figura N§ 8: M¢dulo Validar
Campo Alfabetico.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º ³ þ º
º ³ ³ º
º ÚÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÁÄÄÄÄÄÄ¿ Campo Alfabetico º
º ³ Obtener campo ³ Completo º
º ³ alfabetico siguiente ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÙ º
º ³ º
º ³ º
º ÚÄÄÄÄÄÁÄÄÄÄÄÄ¿ º
º ³ ³ º
º þ ³ ³ þ º
º ³ ÚÄÄÄÄÄÙ ÀÄÄÄÄÄÄ¿ ³ º
º ³ ÚÄÄÄÄÙ ÀÄÄÄÄ¿ ³ º
º ³ ³ ³ º
º Campo ³ Campo ³ ³ º
º ÚÄÄÄÄÄÙ ³ ÀÄÄÄÄÄ¿ º
º ³ ³ ³ º
º ÚÄÄÄÄÄÙ þ ÀÄÄÄÄÄÄÄÄÄÄ¿ º
º ÚÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄ¿ º
º ³ Obtener ³ ³ Validar ³ º
º ³ Campo siguiente ³ ³Campo alfabetico³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º º
º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Figura N§ 8: M¢dulo Validar Campo Alfab‚tico
Puede surgir un problema cuando el dise¤ador se pregunte en
qu‚ momento debe dejar de descomponer m¢dulos.
- Se debe dejar de descomponer cuando no se encuentren func-
iones bien definidas.
- Se puede parar la descomposici¢n cuando la interfase con
un m¢dulo sea tan complicada como el m¢dulo en s¡ mismo.
Un m¢dulo de mil l¡neas es malo, ya que trata demasiados
m¢dulos en su interior, pero mil m¢dulos de una linea son
peores.
* Jerarqu¡a :
Al dividir los m¢dulos jer rquicamente, es posible contro-
lar el n£mero de ellos que interact£an directamente con
cualquiera de los otros.
El objetivo de aplicar una jerarqu¡a de m¢dulos que reali-
zan tareas de c lculo y edici¢n de aquellos que toman
decisiones y llaman a otros m¢dulos
Se debe lograr un tipo de organizaci¢n en donde los
m¢dulos de niveles medios y altos del diagrama ejerzan el
trabajo de coordinaci¢n y manipulaci¢n de los m¢dulos de
niveles m s bajos, que son los que deben realizar tareas
de c lculo y edici¢n.
* Independencia :
Si los m¢dulos individuales son completamente independi-
entes unos de otros, entonces el esfuerzo total
implicado en el desarrollo del sistema es una funci¢n
lineal del n£mero del m¢dulos del sistema.
La definici¢n de m¢dulos est cerca de la idea de CAJA
NEGRA: un m¢dulo no tiene que preocuparse por los detal-
les de la construcci¢n interna del resto de los m¢dulos.
Hay que ver a los m¢dulos solamente por su funci¢n y por
su apariencia externa.
b) Estrategias de Dise¤o.
El paso de los Diagramas de Flujo de Datos (DFD), obtenidos
en la Fase de An lisis del Sistema, a los Diagramas de Estr-
uctura de Cuadros (DEC), se puede hacer utilizando una serie
de estrategias que ayuden a conseguir una r pida derivaci¢n
hacia buen dise¤o.
Habr que estudiar la forma del DFD sobre el que se vaya a
realizar el dise¤o y dependiendo de su estructura, utilizar
una de las estrategias que se describen a continuaci¢n. El
uso de una de las dos estrategias no supone que la otra no
pueda ser utilizada. Depender £nicamente de la forma del
DFD y del peso de la actividad de los procesos.
A partir de esa primera estructura se realizar la evalua-
ci¢n y refinamiento del dise¤o hecho, consigui‚ndose, de esa
forma, un dise¤o con una alta calidad.
Estas estrategias son :
* An lisis de Transformaci¢n.
* An lisis de Transacci¢n.
El objeto de estas estrategias es desarrollar una represent-
aci¢n global de la arquitectura del Sistema. Una vez que se
define la estructura, podemos evaluar y refinar esta arquit-
ectura, vi‚ndola como un todo.
La descripci¢n de estas estrategias las veremos a continuac-
i¢n :
* An lisis de Transformaci¢n
El ®An lisis de Transformaci¢n¯ es una estrategia, no un
algoritmo. Si siguen los pasos de un algoritmo los result-
ados est n asegurados y son correctos, una estrategia
consigue resultados buenos, pero no perfectos en una
primera aproximaci¢n.
El an lisis de transformaci¢n es un conjunto de pasos que
permiten obtener, a partir de un DFD con caracter¡sticas
de transformaci¢n, la estructura del sistema.
El DFD con caracter¡sticas de transformaci¢n es aqu‚l en
el que se pueden distinguir tres zonas :
* Flujo de llegada o entrada.
* Flujo de Transformaci¢n o centro de transformaci¢n.
* Flujo de salida.
Esta divisi¢n en tres partes va a facilitar que los
datos que necesite el sistema se recojan por los m¢ dulos
que se encuentren en la/s rama/s de la izquierda, los
datos que se intercambian en esa rama ser n ascendentes:
informaci¢n de entrada al sistema.
En las ramas centrales habr movimiento de informaci¢n
compartido tanto ascendente como descendente porque aqu¡
los m¢dulos elaboran nuevos datos.
En las ramas de la derecha, la informacion ya ser la def-
initiva y el sentido de los datos debe ser descendente.
En alg£n caso particular puede suceder que alguna de las
partes sea vac¡a, esto es, no exista.
Los pasos necesarios para realizar el An lisis de Transfo-
rmaci¢n son los siguientes:
1. Aislar el centro de transformaci¢n.
2. Realizar ®el primer nivel de factorizaci¢n¯ del
Diagrama de Estructura de Cuadros.
3. Elaborar el ®segundo nivel de factorizaci¢n¯.
4. Refinar la estructura del sistema utilizando medidas
y guias de dise¤o.
A continuaci¢n se ver en detalle cada uno de estos pasos.
1. Aislar el Centro de Transformaci¢n.
El centro de transformaci¢n es la parte del DFD que cont-
iene las funciones esenciales del sistema y es independi-
ente de las caracter¡sticas particulares de la entrada y
de la salida.
Para aislar el centro de transformaci¢n habr que especi-
ficar los l¡mites del flujo de llegada y de salida.
Los l¡mites de flujo de llegada y salida est n abiertos a
interpretaci¢n de cada uno y se pueden derivar soluciones
de dise¤o alternativas variando la colocaci¢n de los
l¡mites de flujo, aunque una peque¤a variaci¢n tendr
poco impacto sobre la estructura final.
En el ejemplo siguiente, se ha aislado uno de los posib-
les Centros de Transformaci¢n, este ejemplo se muestra en
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º
º º º º
º ÚÄÄÄÂÄÄÄÄÄÄ¿ ÚÄÄÄÂÄÄÄÄÄ¿ º ÚÄÄÄÂÄÄÄÄÄ¿ ÚÄÄÄÂÄÄÄÄÄ¿ º º
º a ³ B ³ ³ b ³ C ³ ³ c º ³ F ³ ³ ³ H ³ ³ º º
º ÄÄÄÄÄÄþÃÄÄÄÁÄÄÄÄÄÄÅÄÄÄÄÄþÃÄÄÄÁÄÄÄÄÄÅÄÄÄÄþþÃÄÄÄÁÄÄÄÄÄÅÄÄÄÄÄþÃÄÄÄÁÄÄÄÄÄ´ º º
º ³ ³ ³ ³ º ³ ³ ³ ³ º º
º ÀÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÙ º ÀÄÄÄÂÄÂÄÄÄÙ ÀÄÄÄÂÄÄÄÄÄÙ º º
º º ³ ³ ³ º º
º º ³ ³ ³ º º
º þÄÄÄÄÄÙ ³ ³ º º
º º ³ ³ º º
º º ³ ³ º º
º e º ÀÄÄ¿ ³ º º
º ÚÄÄÄÄÄÄÄþ ³ ³ º º
º ³ º ³ ³ º º
º ³ º ³ ³ º º
º ³ º ³ þ º º
º d ÚÄÄÄÄÂÄÄÄÄÄÄÄ¿ ³ º ³ ÚÄÄÄÄÂÄÄÄÄÄÄÄÄ¿ º º
º ÄÄÄÄÄÄÄþ³ E ³ ÃÄÄÄÄÄÙ º ÀÄÄþ³ I ³ ³ º º
º ÃÄÄÄÄÁÄÄÄÄÄÄÄ´ º ÃÄÄÄÄÁÄÄÄÄÄÄÄÄ´ º º
º ³ ³ º ³ ³ º º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄþº ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º º
º ³ º º º
º ³ ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ º
º ³ º
º ÚÄÄÄÄÄÄÄÄÙ º
º ³ ÚÄÄÄÄÂÄÄÄÄÄÄÄÄ¿ º
º ÚÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄ¿ ³ J ³ ³ º
º ³ CENTRO DE ³ ÃÄÄÄÄÁÄÄÄÄÄÄÄÄ´ º
º ³ TRANSFORMACION ³ ³ ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÂÄÄÄÄÄÄÄÄÙ º
º ³ º
º ³ º
º þ º
º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Figura N§ 9: Aislar el Centro de Transformaci¢n.
2. Realizar el primer nivel de factorizaci¢n en Diagrama
de Estructura de Cuadros.
La estructura del programa debe representar una distribuci¢n
descendente del control.
El resultado del paso de DFD (Diagrama de Flujo de Datos) a
DEC (Diagrama de Estructura) debe ser una estructura en la que
los m¢dulos de nivel superior toman decisiones de ejecuci¢n y
los m¢dulos de nivel inferior ejecutan la mayor¡a del trabajo
de entrada, de c lculo y de salida.
En el primer nivel de factorizaci¢n aparecer n subordinados a
un m¢dulo de control del sistema, tres m¢dulos:
- M¢dulo controlador de proceso de la informaci¢n de llegada.
- M¢dulo controlador del centro de transformaci¢n.
- M¢dulo controlador del proceso de la informaci¢n de salida.
Esto se representa en la Figura N§ 10: Primer Nivel de Facto-
rizaci¢n.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º
º º º º º º
º º ÚÄÄÄÂÄÄÄÄ¿ ÚÄÄÄÂÄÄÄÄ¿ º º ÚÄÄÄÂÄÄÄÄ¿ ÚÄÄÄÂÄÄÄÄ¿ º º
º a º ³ B ³ ³ ³ C ³ ³ º c º ³ F ³ ³ ³ H ³ ³ º º
º ÄÄÄþþÃÄÄÄÁÄÄÄÄÅÄÄÄÄÄþÃÄÄÄÁÄÄÄÄÅÄþÄÄÄÄþÄþÃÄÄÄÁÄÄÄÄÅÄÄÄÄÄÄþÃÄÄÄÁÄÄÄÄ´ º º
º º ³ ³ ³ ³ º º ³ ³ ³ ³ º º
º º ÀÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÙ º º ÀÄÄÄÂÄÄÄÄÙ ÀÄÄÄÂÄÄÄÄÙ º º
º º º º þ ³ ³ º º
º º º ÚþÄÄÄÙ ³ þ º º
º º ÚÄÄÄÂÄÄÄÄ¿ º ³º À¿ ÚÄÄÄÂÄÄÄÄ¿ º º
º º ³ E ³ ³ º ³º ³ ³ I ³ ³ º º
º ÄÄþÄÄÄÄÄÄÄÄþÃÄÄÄÁÄÄÄÄÅÄÄÄÄÄÄÄÄÄþÄÄÄÙº ÀÄÄÄÄÄÄÄÄÄÄþÃÄÄÄÁÄÄÄÄ´ º º
º º ³ ³ º º ³ ³ º º
º º ÀÄÄÄÄÄÄÄÄÙ º º ÀÄÂÄÄÄÄÄÄÙ º º
º ÈÍÍÍþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþÍÍÍÍÍÍÍÍͼ º
º ³ ³ º
º ³ ³ º
º ³ ÀÄÄÄÄ¿ º
º ³ ³ º
º ³ þ º
º ³ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ º
º ³ Ü Ü º
º ³ Ü ÚÄÄÄÂÄÄÄÄÄÄ¿ Ü º
º ³ Ü ³ ³ ³ Ü º
º ³ Ü ÃÄÄÄÁÄÄÄÄÄÄ´ Ü º
º ³ Ü ³ ³ Ü º
º ³ ÚÄÄÄÄþÜ ÀÄÄÄÄÂÄÄÄÄÄÙ Ü º
º ³ ³ ÜÜÜÜ ÜÜܳÜÜÜÜÜÜÜÜÜ º
º ³ ³ ³ ³ º
º ³ ³ ³ þ º
º ³ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ³ ³ º
º ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ º EL SIST MA º ÅÄÄÄÄÄÄÄÄÄÅÄÄ¿ º
º ³ ³ ÈÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ³ ³ ³ º
º ³ ³ ³ ³ ³ ³ º
º ³ ³ ³ ³ ³ ³ º
º ³ ³ ³ ³ ³ ³ º
º þ þ þ ³ þ þ º
º ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ Contener datos de ³ ³ Transformar ³ ³ ³ Producir datos de ³ º
º ³ entrada ³ ³ datos ³þÄÙ ³ salida ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Figura N§ 10: Primer Nivel de Factorizaci¢n.
3. Elaborar el Segundo nivel de factorizaci¢n.
El segundo nivel de factorizaci¢n se realiza mediante la con-
versi¢n de las transformaciones de cada proceso de un DFD
en los m¢dulos correspondientes del diagrama de estructura.
Para ello se comienza en el l¡mite del centro de transforma-
ci¢n y se va hacia afuera a lo largo de los caminos de llegada
y salida..
Un ejemplo del segundo nivel de transformaci¢n se muestra en
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º º
º ÉÍÍÍÍÍÍÍÍÍÍÍÍ» º
º º EL SISTEMA º º
º ÚÄÄÄÄÄÄÄÄÄÄÄÄÄþÍÍÍÍþÍÍþþÍÍÍþÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ ³ ³ ³ º
º ³ ÚÄÄÙ ÀÄ¿ ³ º
º ³ ³ ³ ³ º
º þ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ þ ÀÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ ³ ÚÄÄÄÄÙ ÀÄÄÄ¿ ³ ³ º
º c³ ³ ³ þ ³ ³i ³ º
º ³ ³ ³e e³ ³ ³ ³ º
º ³ ÚÄÄÙ þ ÀÄ¿ ³ ³i º
º ³ ³ ³ ³ þ º
º ÚÄÄÄÄÄÁÄÄÄ¿ ÚÄÄÄÄÁÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄ¿ º
º ³ OBTENER ³ ³ OBTENER ³ ³ CENTRO DE ³ ³ PRODUCIR ³ º
º ÀÄÄÄÄÂÄÄÄÄÙ ÀÄÄÄÄÂÄÄÄÄÙ ³ TRANSFORMACION ³ ÀÄÄÄÄÄÂÄÄÄÄÙ º
º ³ þ ³ ÀÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÙ ³ º
º ³ ³b ³ ³þ ³ ³ º
º ³ ³ þ e³ ³³ ³ ³ º
º ³ ³ ³ þ ³ ³ ³ º
º ÚÄÄÄÁÄÄÄÄÄ¿ ³ ³d ÚÄÄÄÄÙ ÀÄÄÄÄ¿ ³ º
º ³ OBTENER ³ ³ ³ ³ ³ ³ º
º ÀÄÄÄÂÄÄÄÄÄÙ ³ ³ ³ ³ þ ³ ³ º
º ³ ³ c³ ³ þ ³ ³h ³ ³i º
º ³ þ ³ ³ ³ ³ ³ ³ ³ þ ³ º
º ³ ³a ³ þ ³ ³f g³ ³ ³ ³ º
º ³ ³ ³ þ ³ ³ º
º ³ ³ ³ ³ ³ º
º ÚÄÄÁÄÄÄ¿ ÚÄÄÄÁÄÄ¿ ÚÄÄÄÄÁÄÄÄÄ¿ ÚÄÄÄÄÁÄÄÄÄÄ¿ ÚÄÄÄÄÁÄÄÄÄÄ¿ º
º ³ LEER ³ ³ LEER ³ ³ MODULO F³ ³ MODULO G ³ ³ ESCRIBIR ³ º
º ÀÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÙ º
º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Figura N§ 11: Segundo Nivel de Transformaci¢n
4. Refinar la estructura del programa utilizando medidas y
gu¡a de dise¤o.
Una estructura de programa puede siempre refinarse siguiendo
los criterios que se ver n m s adelante en el apartado 3.
Dos o m s m¢dulos asignados por los correspondientes procesos
creados en la Fase de An lisis del Sistema se pueden continuar
en uno s¢lo y un m¢dulo puede que se detalle (explote) en dos
o m s m¢dulos.
* An lisis de Transacci¢n.
El an lisis de transacci¢n se aplica cuando un DFD toma una
forma en la que un dato determina la elecci¢n de uno o m s
flujos de informaci¢n.
La transacci¢n es evaluada y, bas ndose en su valor, el flujo
se inicia por uno de los muchos caminos de acci¢n.
El centro de flujo de informaci¢n desde el que emanan varios
caminos de acci¢n, se llama centro de transacci¢n.
Un ejemplo del an lisis de transacci¢n se muestra en la Figura
N§ 12: An lisis de Transacci¢n.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º º
º ÚÄÂÄÄÄÄÄÄ¿ ÚÄÂÄÄÄÄÄÄ¿ º
º ÚÄÄÄÄÄÄÄÄÄÄþÃÄÁÄÄÄÄÄÄÅÄÄÄþÃÄÁÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄ¿ º
º ³ ÀÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÙ ³ º
º ³ ³ º
º ³ Trasacci¢n A þ º
º ÚÄÂÄÁÄÄÄÄ¿ ÚÄÂÄÄÄÄÄÄ¿ ÚÄÂÄÄÄÄÄÄ¿ ÚÄÂÄÄÄÄÄÄ¿ º
º ÄÄÄÄÄÄþÃÄÁÄÄÄÄÄÄÅÄÂÄÄÄþÃÄÁÄÄÄÄÄÄÅÄÄÄþÃÄÁÄÄÄÄÄÄÅÄÄÄÄþÃÄÁÄÄÄÄÄÄÅÄÄþ º
º ÀÄÄÄÄÄÄÄÄÙ ³ ÀÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÙ º
º þ ³ þ º
º ³ ³ Trasacci¢n B ³ º
º ³ ³ ÚÄÂÄÄÄÄÄÄ¿ ÚÄÂÄÄÄÄÄÄ¿ ³ º
º ³ ÀÄÄÄþÃÄÁÄÄÄÄÄÄÅÄÂÄþÃÄÁÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÙ º
º ÚÄÄÄÄÄÁÄÄÄÄÄÄÄ¿ ÀÄÄÄÄÄÄÄÄÙ ³ ÀÄÄÄÄÄÄÄÄÙ º
º ³ CENTRO DE ³ ³ º
º ³ TRANSACCION ³ Trasacci¢n C ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ º
º ³ º
º ³ Estrategias de An lisis de Trasacciones º
º ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍþÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º
º º ³ º º
º º þ º º
º º ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ º º
º º ÚÄÄÄÄÄÄ´ EL SISTEMA ÃÄÄÄÄÄÄÄ¿ º º
º º ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ º º
º º ³ ³ º º
º º þ þ º º
º º ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º º
º º ³ ANALIZAR ³ ³ CONTROLADOR ³ º º
º º ³ TRASACCIONE ³ ³ PROCESO ³ º º
º º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄ´ TRASACCION ÃÄÄÄÄÄÄÄÄÄÄ¿ º º
º º ³ ÀÄÄÄÄÄÄÂÄÄÄÄÄÄÙ ³ º º
º º ³ ³ ³ º º
º º ³ ³ ³ º º
º º ³ ³ ³ º º
º º ³ ³ ³ º º
º º ÚÄÄÄÄÄÄÄÄÁÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄÄÄ¿ º º
º º ³ Proceso de ³ ³Proceso de ³ ³Proceso de ³ º º
º º ³Trasacci¢n B³ ³Trasacci¢n A³ ³Trasacci¢n C³ º º
º º ÀÄÄÄÄÄÄÄÄÂÄÄÄÙ ÀÄÄÄÄÄÂÄÄÄÄÄÄÙ ÀÄÄÄÄÄÂÄÄÄÄÄÄÙ º º
º º ³ ³ ³ º º
º º ³ ³ ³ º º
º º ³ ³ ³ º º
º º ÚÄÄÄÄÄÄÄÄÁÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄÄÄ¿ ÚÄÄÄÄÁÄÄÄÄÄÄ¿ º º
º º ³ Detalle ³ ³ Detalle ³ ³ Detalle ³ º º
º º ³ Proceso A ³ ³ Proceso B ³ ³ Proceso C ³ º º
º º ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÙ º º
º º º º
º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ º
º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Figura N§ 12: An lisis de Transacci¢n
Los pasos del an lisis de transacci¢n son los siguientes:
1. Identificar el centro de transacci¢n
2. Tranformar el DFD en la estructura adecuada al proceso
de transacciones.
3. Factorizar la estructura de cada camino de acci¢n.
4. Refinar la estructura del sistema utilizando medidas y
gu¡as de dise¤o.
A continuaci¢n se detallan cada uno de los pasos.
1. Identificar el centro de transacciones.
La posici¢n del centro de transacci¢n puede descubrirse
inmediatamente a partir del DFD, viendo cu l es el origen de
una serie de caminos de informaci¢n que fluyen radialmente.
Cada camino de llegada y todos los caminos de acci¢n deben
tambi‚n aislarse. Cada camino de acci¢n debe evaluarse en
funci¢n de sus caracter¡sticas individuales de flujo.
En la Figura N§ 13: Identificaci¢n del Centro de Trans-
acci¢n, es un ejemplo claro de este caso.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º ÚÄÄÄÂÄÄÄÄÄÄÄÄ¿ Trans ÚÄÄÄÂÄÄÄÄÄÄÄÄ¿ º
º ³ 1 ³ ³ Valida ³ 2 ³ ³ º
º ÃÄÄÄÁÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄþÃÄÄÄÁÄÄÄÄÄÄÄÄ´ º
º ÚÄÄÄÄÄþ³ Validar ³ A ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ ³Trasacci¢n A³ ³ ³ ³ º
º ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ º
º ³ ³ º
º ³ ³ º
º ³ ³ Modificaciones º
º ³ TRASACCION A ³ diarias º
º ³ ³ º
º ³ ³ º
º ³ ³ º
º ³ þ º
º ÚÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ÚÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄ¿ Trans.ÚÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ 3 ³ ÃÄÄÄÙ ³ 4 ³ ³ Valida³ 5 ³ ³ ³ 6 ³ ³ º
º ÃÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄþÃÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄþÃÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄþÃÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄþ º
º ³Determinar tipo³ ³ Validar ³ B ³ Actualizar ³Modifi.³ Imprimir ³ º
º ³ transacci¢n ³ ³ Transacci¢n B ³ ³ archivo C ³diaria.³modifi. diarias³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º þ þ º
º ³ ³ º
º ³ ³ º
º ³ TRANSACCION B ³ Modificaciones º
º ³ ³ diarias º
º ³ ³ º
º ³ ³ º
º ³ ÚÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄ¿ Trans.ÚÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ º
º ÀÄÄÄÄÄÄÄÄÄ´ 7 ³ ³ Valida³ 8 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º ÉÍÍÍÍÍÍÍÍÍÍÍÍ» ÃÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄþ ÃÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄ´ º
º º CENTRO DE º ³ Validar ³ C ³ Actualizar ³ º
º º TRASACCION º ³ Trasacci¢n ³ ³ archivo ³ º
º ÈÍÍÍÍÍÍÍÍÍÍÍͼ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º TRANSACCION C º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Figura N§ 13: Identificaci¢n del Centro de Transacci¢n
2. Transformar el DFD en la estructura adecuada al proceso
de transacciones.
El flujo de transacciones se convierte en una estructura de
programa formada por una bifurcaci¢n de entrada y una bifur-
caci¢n de salida.
3. Factorizar la estructura de cada camino de acci¢n.
La estructura de bifurcaci¢n de entrada se desarrolla de la
misma forma que el an lisis de transformaci¢n, comenzando en
el centro de transacci¢n y continuando desde el l¡mite hacia
afuera a lo largo del camino de llegada.
Cada camino de flujo de acci¢n del DFD se convierte en una
estructura que se corresponde con las caracter¡sticas espec-
¡ficas del flujo (flujo de transformaci¢n o transacci¢n).
Cada camino de acci¢n estudiado se desarrolla usando los
pasos de dise¤o discutidos anteriormente.
4. Refinar la estructura del programa utilizando medidas y
gu¡as de dise¤o.
En la Figura N§ 14: Paso de un DFD a DEC, se ilustra el
resultado de la aplicaci¢n sucesiva de estos pasos al DFD
anterior.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ PROCESAR ³ º
º ÚÄÄÄÄÄÄÄÄÄ´ TRANSACCION ÃÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ º
º ³ ³ º
º ÚÄÄÄÄÄÄÁÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÁÄÄÄÄÄ¿ º
º ³ ANALIZAR ³ ³ PROCESAR ³ º
º ³ TRANSACCION ³ ³ TRASACCION ³ º
º ÀÄÄÄÄÄÄÂÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÂÄÄÄÄÄÙ º
º ÚÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄ¿ º
º ³ ³ ³ ³ º
º ÚÄÄÄÄÄÄÁÄÄÄÄ¿ ÚÄÄÄÁÄÄÁÄÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄÄ¿ º
º ³ PROCESO A ³ ³ PROCESO B ³ ³ PROCESO C ³ º
º ÀÄÄÄÂÄÄÂÄÄÄÄÙ ÀÄÄÄÄÂÄÄÂÄÄÄÙ ÀÄÄÄÄÂÄÄÂÄÄÄÙ º
º ³ ³ ³ ³ ÚÄÄÄÄÄÄÄÄÙ ÀÄ¿ º
º ÚÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄ¿ ÚÄÄÙ ÀÄÄÄÄÄÄÄÄ¿ ³ ³ º
º ÚÄÄÄÄÄÁÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄÄÄÄ¿ ÚÄÄÄÁÄÄÄÁÄ¿ ÚÄÄÄÄÄÄÄÄÄÁÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄ¿ º
º ³ Validar ³ ³ Validar ³ ³ Validar ³ ³Validar ³ ³ Validar ³ ³Validar ³ º
º ³Trasacci¢n A³ ³Archivo A³ ³Transacci¢n B³ ³Archivo B³ ³Transacci¢n B³ ³Archivo C³ º
º ÀÄÄÄÄÄÂÄÄÄÄÄÄÙ ÀÄÄÄÄÂÄÄÄÄÙ ÀÄÄÄÄÂÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÂÄÄÄÄÙ ÀÄÄÄÄÄÄÂÄÄÄÄÄÄÙ ÀÄÄÄÄÂÄÄÄÄÙ º
º ³ ³ ³ ³ ³ ³ º
º ³ ³ ÀÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ º
º ³ ³ ³ ³ ÚÄÄÄÄÄÄÄÄÙ ³ º
º ³ ³ ÚÄÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÁÄ¿ ³ º
º ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ Imprimir ³ ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ Modificaciiones ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Figura N§ 14: Paso de un DFD a un DEC.
c) Evaluaci¢n y Refinamiento de Dise¤o
Un buen dise¤o debe organizar la complejidad del problema de
manera que el esfuerzo asociado con su desarrollo, prueba,
entendimiento y mantenimiento pueda ser controlado y mini-
mizado.
Para evaluar y mejorar el dise¤o obtenido con las estrategias
mencionadas se utilizan dos unidades de medida :
* ACOPLAMIENTO
* COHESION
Para mejorar la calidad del dise¤o tambi‚n se pueden utilizar
una serie de gu¡as o consejos pr cticos¯ que ayuden a conse-
guir este objetivo.
Estas gu¡as o consejos pr cticos se encuentran descritos a
continuaci¢n, de acuerdo a las dos unidades de medida.
* Acoplamiento
Se puede definir acoplamiento como el grado de interdepen-
dencias entre los m¢dulos; dependiendo del n£mero de par -
metros que se intercambian para su comunicaci¢n.
El objetivo que se debe conseguir es MINIMIZAR el acoplami-
ento, o lo que es lo mismo, hacer que los m¢dulos sean tan
independientes como sea posible, aunque esto no siempre se
consiga. Un bajo acoplamiento entre los m¢dulos indica que se
ha hecho una buena descomposici¢n del sistema, aunque esto no
ocurre siempre.
Uno de los puntos cruciales que hay que asegurar para conse-
guir un acoplamiento m¡nimo es que el m¢dulo no tenga que
preocuparse de los detalles de la construcci¢n interna del
resto de los m¢dulos (concepto CAJA NEGRA), ya que se trata de
conseguir m¢dulos lo m s independientes posibles.
Un bajo acoplamiento es deseable por las razones siguientes :
* Cuantas menos conexiones existan entre dos m¢dulos, menos
oportunidad habr de que aparezca el ®efecto onda¯ (un defe-
cto de un m¢dulo, puede aparecer afectando a otro).
* Se debe tener posibilidad de cambiar un m¢dulo con el m¡nimo
riesgo de tener que cambiar otro, se trata de que cada
cambio realizado afecte lo menos posible a otros m¢dulos.
* Mientras se est‚ manteniendo un m¢dulo, es deseable no nece-
sitar preocuparse en los detalles internos (c¢digo) de
cualquier otro m¢dulo.
Existen diversos niveles de acoplamiento seg£n el siguiente
espectro :
1. Acoplamiento Normal
* De Datos
* Por Estampado
* De control
2. Acoplamiento Com£n
3. Acoplamiento por contenido
1. Acoplamiento Normal
Ocurre cuando dos m¢dulos intercambian datos pero ‚stos no
interfieren en la operativa normal de la funci¢n que realiza
el m¢dulo de nivel inferior.
* Acoplamiento de Datos
Entre dos m¢dulos el que llama y el llamado, ha de estable-
cerse al menos una comunicaci¢n b sica por medio de
elementos.
Un ejemplo de este acoplamiento se muestra en la Figura N§
15: Acoplamiento de Datos.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º ÚÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ OBTENER ³ º
º ³ DATOS ³ º
º ³ CLIENTES ³ º
º ÀÄÄÄÄÂÄÄÄÄÄÙ º
º Nombre þ ³ º
º cliente ³ ³ º
º ³ ³ N£mero de º
º N£mero þ ³ ³ cuenta cliente º
º cuenta OK ³ ³ þ º
º ³ º
º ÚÄÄÄÄÄÁÄÄÄÄÄÄÄ¿ º
º ³ ENCONTRAR ³ º
º ³ NOMBRES DE ³ º
º ³ CLIENTES ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Figura N§ 15: Acoplamiento de Datos.
Este acoplamiento no da ning£n tipo de problemas, pero hay que cont-
rolar que los datos se generen lo m s cerca posible del m¢dulo que
los vaya a utilizar.
* Acoplamiento de Estampado
Ocurre si en la comunicaci¢n entre m¢dulos se pasan datos con estru-
ctura de registro. Este acoplamiento no es deseable si el m¢dulo que
recibe ese registro necesita s¢lo parte de los elementos que se le
pasan.
Un ejemplo de este acoplamiento se muestra en la Figura N§ 16: Acop-
lamiento de Estampado.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º ÚÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ OBTENER ³ º
º ³ NOMBRES ³ º
º ³ CLIENTES ³ º
º ÀÄÄÄÄÂÄÄÄÄÄÙ º
º ³ º
º Registro þ ³ º
º cliente ³ ³ ³ Registro º
º valido ³ ³ ³ Cliente º
º ³ þ º
º ³ º
º ÚÄÄÄÄÄÁÄÄÄÄÄÄÄ¿ º
º ³ VALIDAR ³ º
º ³ NOMBRES DE ³ º
º ³ CLIENTES ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Figura N§ 16: Acoplamiento de Estampa.
* Acoplamiento de Control
Ocurre si los datos de comunicaci¢n n controles. Ya se sabe que
los m¢dulos superiores coordinan y los de nivel inferior realizan el
trabajo, ‚stos deber n comunicar su estado. Este tipo de acopla-
miento no ser nocivo si el control (flag) tiene sentido ascendente
ya que informar de la situaci¢n en la que se encuentra el m¢dulo
inferior.
Sin embargo en el caso de la figura, el control tiene sentido desce-
ndente, lo que implica una ruptura del principio de ®caja negra¯: el
m¢dulo superior conoce detalles de la estructura del m¢dulo
inferior. Esto podr¡a implicar problemas de mantenimiento, si se
cambiase el m¢dulo inferior.
Un ejemplo de acoplamiento de control se muestra en la Figura N§ 17:
Acoplamiento de Control.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º ÚÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ IGUALAR ³ º
º ³ REGISTRO ³ º
º ³ CLIENTES ³ º
º ÀÄÄÄÄÂÄÄÄÄÄÙ º
º ³ þ Registro º
º Control ³ ³ Maestro º
º trabajo del ³ º
º modulo ³ þ Registro º
º inferior ³ ³ Transacciones º
º ³ º
º ÚÄÄÄÄÄÁÄÄÄÄÄÄÄÄ¿ º
º ³ CONTROLAR ³ º
º ³ENTRADA/SALIDA³ º
º ³ SISTEMA ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Figura N§ 17: Acoplamiento de Control.
2. Acoplamiento Com£n.
Se produce cuando un n£mero indeterminado de m¢dulos (m s de
dos) hacen referencia a un rea com£n de datos.
Algunos lenguajes de programaci¢n lo permiten, pero no es ope-
rativo puesto que en alg£n momento esos datos pueden ser cambiados
y al acceder otro m¢dulo puede no encontrar la informaci¢n cor-
recta. Habr¡a que ser muy estrictos en cuanto al acceso, y la
protecci¢n de esa rea.
3. Acoplamiento de Contenido
Ocurre cuando un m¢dulo cualquiera, necesita o accede a una parte
de otro, rompiendo la jerarqu¡a de funcionalidad de la estructura.
Un ejemplo de ‚ste acoplamiento se muestra en la Figura N§ 18:
Acoplamiento de Contenido.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º ÚÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ ³ º
º ³ ³ º
º ³ ³ º
º ÀÄÄÄÄÂÄÄÄÄÄÙ º
º ³ º
º ³ º
º ³ º
º ³ º
º ³ º
º ³ º
º ÚÄÄÄÄÄÁÄÄÄÄÄÄÄÄ¿ º
º ³ þÄÄÄÄÄÄÄÄÄÄþ ³ º
º ³ þÄÄÄÄÄÄÄÄÄÄþ ³ º
º ³ þÄÄÄÄÄÄÄÄÄÄþ ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Figura N§ 18: Acoplamiento de Contenido.
Si ocurre esto, habr que evitarlo descomponiendo el m¢dulo al que
se accede o duplicando esa parte de c¢digo en el m¢dulo que llama..
Existen diversos factores que afectan el acoplamiento, entre ellos
tenemos :
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º Tipo de ºSemsible al º Modifica- º Compren- º Utilizable en º
º Acoplamiento ºefecto Onda º lidad- º si¢n º otro Sistema º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º Acoplamiento sist.º º º º º
º De datos º Variable º Buena º Buena º Bueno º
º Por Estampado º Variable º Media º Media º Medio º
º De control º Medio º Pobre º Pobre º Pobre º
º Comun º Medio º Media º Mala º Pobre º
º Por contenido º Medio º Media º Media º Malo º
º º º º º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
* Cohesi¢n
La cohesi¢n se puede definir como la medida de la fuerza o
relaci¢n funcional de los elementos de un m¢dulo, entendiendo por
elementos a la sentencia o grupo de sentencias que lo componen, a
las definiciones de datos o a las llamadas a otros m¢dulos.
Un m¢dulo coherente ejecuta una tarea sencilla en un programa o
procedimiento y requiere poca interacci¢n con otros procedimientos
que se ejecuten en otras partes del programa.
Un m¢dulo coherente s¢lo debe hacer (idealmente) una cosa.
El objetivo que se intenta conseguir es obtener m¢dulos con una alta
cohesi¢n.
Asegurar que los m¢dulos tienen una buena cohesi¢n es la mejor
manera de minimizar el acoplamiento.
La escala de cohesi¢n no es lineal. Esto significa que una cohesi¢n
baja es mucho ®peor¯ que la de rango medio, la cual es casi tan
®buena¯ como una gran cohesi¢n.
Los distintos niveles de cohesi¢n son los siguientes :
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º Funcional º Mejor Mantenibilidad º Caja Negra º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º º º º
º Secuencial º : º No Demasiadaº
º Comunicacional º : º Caja Negra º
º Procedual º : º Caja Gris º
º Temporal º : º º
º L¢gica º : º Caja Blanca º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º º Peor Mantenibilidad º º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º º º º
º Coincidental º º Transparente º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
1. Cohesi¢n Funcional
Un m¢dulo con cohesi¢n funcional contiene elementos que contribuyen
a la realizaci¢n de una, y s¢lo una, tarea funcional.
Ejemplos de m¢dulos funcionalmente coherentes son los que realizan
el c lculo de coseno de un ngulo, leen un registro, etc.
Los sistemas construidos principalmente con acoplamiento normal
y con m¢dulos coherentes funcionalmente con los m s faciles de
mantener.
2. Cohesi¢n Secuencial
Un m¢dulo realiza distintas tareas dentro de ‚l en secuencia, de
forma que las entradas de cada tarea son las salidas de la anterior.
3. Cohesi¢n Comunicacional
Un m¢dulo realiza actividades paralelas usando los mismos datos de
entrada y de salida.
4. Cohesi¢n Procedural
Igual que la secuencial, pero con paso de controles.
5. Cohesi¢n Temporal
Las actividades que realizan tienen una matriz temporal.
6. Cohesi¢n L¢gica
Si las actividades que realiza un m¢dulo tienen la misma categor¡a,
es algo as¡ como tener partes independientes dentro de ese m¢dulo.
7. Cohesi¢n Coincidental
Un m¢dulo con cohesi¢n coincidental es aquel cuyos elementos contr-
ibuyen a las actividades relacion ndose mutuamente de una manera
poco significativa.
Los m¢dulos con cohesi¢n coincidental violan el principio de indep-
endencia y de caja negra de los m¢dulos, ya que es necesario que el
®padre¯ tenga conocimientos de la estructura interna de los m¢dulos
®hijos¯.
Entre los factores que afectan la cohesi¢n tenemos los siguientes :
FACTORES A LOS QUE AFECTA LA COHESION
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º Nivel de º Acopia- ºFacilidad ºCompren- º Modifica- º Mantenimiento º
º cohesi¢n º miento ºImplantaci¢n ºsibilidad º lida º de Sistemas º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
ºFuncional º Bueno º Buena º Buena º Buena º Buena º
ºSecuencial Buenoº Bueno º Buena º Buena º Buena º Bast. º
ºComunicacional º Medio º Media º Media º Media º Medio º
ºProcedural º Variable º Pobre º Variable º Variable º Malo º
ºTemporal º Pobre º Media º Media º Media º Medio º
ºL¢gica º Malo º mala º Mala º Pobre º Malo º
ºCoincidente º Malo º Pobre º Mala º Media º Malo º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
El dise¤o tambien puede ser mejorado al aplicarse las siguientes
ideas :
* Hay que reducir el n£mero de par metros que intercambian los
m¢dulos tanto como sea posible, es mejor que los datos de comuni-
caci¢n que se pasen sean elementos de registros.
* Hay que evitar pasar par metros de un m¢dulo a otro, a menos que
tengan una utilidad pr ctica.
Tome la decisi¢n de que hacer con esa informaci¢n.
Otro de los consejos que se recomienda utilizar son los
siguientes :
* Se recomienda no utilizar variables globales por CINCO razones:
1. Un defecto (o mala pr ctica al programar) de cualquier m¢dulo que
utiliza un rea global, puede transmitirse a cualquier otro
m¢dulo que utilice esa rea global.
2. Los m¢dulos que se refieren a datos globales siempre los utilizan
con el mismo nombre disminuyendo la flexibilidad de los m¢dulos.
3. Se introduce un tipo de distanciamiento en el sistema en el
tiempo. Puede ser dif¡cil entender c¢mo lleg¢ a tomar un valor
determinado una variable.
4. Son m s dif¡ciles de entender al tener que saber que datos se
utilizan en cada m¢dulo particular.
* Es dif¡cil encontrar que m¢dulos se deben cambiar cuando una
parte de los datos cambia.
* No se debe compartir c¢digo entre las actividades que est n
incluidas en un m¢dulo. Esto hace dif¡cil modificar una
actividad sin cambiar la otra.
* Se debe preparar la descomposici¢n cuando no se encuentren
funciones bien definidas. No se debe crear un m¢dulo con una
serie de l¡neas de c¢digo agrupadas aleatoriamente.
* Se puede parar la descomposici¢n cuando la interfase con un
m¢dulo sea tan complicada como el m¢dulo en s¡ mismo.
* Se deber n conseguir dise¤os lo m s equilibrados que sea posib-
le. Puede decidirse que un dise¤o est equilibrado si y s¢lo
si, trata con datos l¢gicos en su parte alta y con datos
f¡sicos en su parte baja.
Un ejemplo de un sistema bien equilibrado se muestra en la
Figura N§ 19: Sistema Bien Equilibrado.
Un m¢dulo realiza una funci¢n y debe ser llamado por todos los
m¢dulos que requieran esa funci¢n.
Un m¢dulo de nivel inferior puede llamar a otro m¢dulo de nivel
superior de otra rama del diagrama.
Es desaconsejable que un m¢dulo de nivel inferior llame a otro
de nivel superior de la misma rama ya que esto puede dar lugar
a bucles sin salida.
EJEMPLO DE SISTEMA BIEN EQUILIBRADO
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º º
º ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ ACTUALIZAR ³ º
º ³ REGISTRO ³ º
º ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ MAESTRO ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ ÀÄÂÄÄÄÄÄÄÄÂÄÄÙ ³ º
ºTrasacciones ³ ³ ³ þ ³ º
º ³ ³ ³ ³ ³ ³ ³ º
º ³ ³ ³ ³ ³ ³ ³ º
º þ ³ þ ³ þ ³ ³ þ º
º ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ º
º ³ ³ ³ ³ ³ Registro ³ Registro º
º ³ ³ ³ ³ Registro ³ maestro ³ maestro º
º ³ ³ maestro ³ ³ actualizado ³ actualizado º
º ³ ³ antiguo ³ ³ ³ º
º ³ ³ þ ³ ³ º
º ³ ³ ³ ³ º
º ÚÄÄÄÄÄÄÁÄÄÄÄÄÄÄ¿ ÚÄÄÁÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÁÄÄÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄ¿ º
º ³ OBTENER ³ ³ OBTENER ³ ³ ACTUALIZAR ³ ³ INSERTAR ³ º
º ³ TRANSACCION ³ ³ MAESTRO ³ ³ MAESTRO ³ ³ MAESTRA ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÂÄÄÄÙ ³ ANTIGUO ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÂÄÄÄÄÄÙ º
º þ ³ ÀÄÄÄÄÄÄÄÄÄÙ Registro ³ º
º ³ ³ maestro ³ º
º ³ ³ actualizado ³ º
º ÚÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄ¿ º
º ³ ³ þ þ ³ ³ º
ºTrasaccion ³ ³ ³Trasacci¢n ³ ³ Registro ³ ³ º
º ³ ³ ³ ³Validas ³ ³ ³ maestro ³ ³ º
º ³ ³ ³ ³ ³ formateado ³ þ º
º ³ þ ³ ³ þ ³ º
º ÚÄÄÄÄÄÄÁÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÁÄÄ¿ º
º ³ OBTENER ³ ³ VALIDAR ³ ³ FORMATEAR ³ ³ FORMATEAR ³ º
º ³ TRANSACCION ³ ³ CRUZADA DE ³ ³ REGISTRO ³ ³ REGISTRO ³ º
º ÀÄÄÄÄÄÄÂÄÄÄÄÄÄÙ ³ CAMPOS ³ ³ MAESTRO ³ ³ MAESTRO ³ º
º ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÙ ³ NUEVO ³ º
º þ ³ ÀÄÄÄÄÄÄÂÄÄÄÄÙ º
º ³ ³ Transacci¢n ³ º
º ³ ³ valida ³ º
º ³ ÚÄÄÄÄÄÙ º
º ³ ³ º
º ÚÄÄÄÄÄÄÁÄÄÄÄÄÄÄ¿ ³ º
º ³ OBTENER ³ þ º
º ³ CAMPO ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ TRANSACIONES ³ ³ CARACTERISTICAS FISICAS ³ º
º ÀÄÄÄÄÄÄÂÄÄÄÂÄÄÄÙ ³ DE ENTRADA / SALUD ³ º
º ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º þ³ ³ þ º
º ³³ ³ ³ º
º ³³ ³ þ ³ º
ºCampo ³ ³ ³ ³ ³ º
ºTransacci¢n³ ³ ³ ³ Campo transacci¢n ³ º
º ³ þ ³ ³ º
º ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º ³ ³ ³ º
º ÚÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄ¿ ³ º
º ³ OBTENER ³ ³ EO. TRANS. ³ ³ º
º ³ CAMPO ³ ³ CA PO ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º ³ TRANSACCION ³ ³ TRANSACCION ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
d) Heur¡sticas de Dise¤o
Las heur¡sticas de dise¤o son un conjunto de recomendaciones que
ayudan a mejorar la estructura del sistema, optimizando la modu-
laridad. La aplicaci¢n de estas recomendaciones depende en gran
medida del dise¤o espec¡fico, as¡ como de las caracter¡sticas
del equipo f¡sico donde se desarrolla el sistema.
* Tama¤o de un m¢dulo
El desarrollo del sistema de una estructura modular define la
funcionabilidad propia de cada m¢dulo; sin embargo es recomenda-
ble revisar independientemente cada m¢dulo a efectos de
optimizar su tama¤o en n£mero de sentencias, para facilitar el
desarrollo t‚cnico del programa y su posterior mantenimiento.
En general, podemos resumir diferentes versiones sobre el tama¤o
¢ptimo de cada m¢dulo definiendo que el coste en el desarrollo y
mantenimiento de un sistema ser ¢ptimo cuando su estructura
est‚ compuesta por m¢dulos con un tama¤o comprendido entre 10 y
100 sentencias (CONSTANTINE).
* Ambito de control
Se llama mbito de control de un m¢dulo a todos los m¢dulos
llamados por ‚l y a los llamados por ‚stos, es decir, a todos
los m¢dulos que hay por debajo de ‚l en esa rama del diagrama de
descomposici¢n funcional.
Un m¢dulo que llama a muchos otros puede ser dif¡cil de entender,
y en el otro extremo, si los m¢dulos forman una larga secuencia
lineal, es posible que pueda suprimirse alguno de ellos. Deben
evitarse ambos extremos:
* Ambito de Control Alto:
Normalmente se produce cuando no se tienen en cuenta los niveles
intermedios. El estudio de los grupos de m¢dulos subordinados
que permitan combinar sus funciones en una sola, puede soluci-
onar el problema..
Un ejemplo del mbito de control alto se muestra en la Figura
N§ 20: Ambito de Control Alto.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º º
º ²²²²²²²²²² º
º ²²²²²²²²²² º
º ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄþ²²²²²²²²²² þÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ þ þ þ ³ º
º ³ ³ ³ ³ ³ º
º ³ ³ ³ ³ ³ º
º ³ ÚÄÄÄÄÄÄÄÄÄÙ ³ ÀÄÄÄÄÄÄÄÄÄÄÄ¿ ³ º
º ³ ³ ³ ³ ³ º
º ³ ³ ³ ³ ³ º
º ³ ³ ³ ³ ³ º
º þ þ þ þ þ º
º ²²²²²²²²² ²²²²²²²²² ²²²²²²²²²² ²²²²²²²²²² ²²²²²²²²²² º
º ²²²²²²²²² ²²²²²²²²² ²²²²²²²²²² ²²²²²²²²²² ²²²²²²²²²² º
º ²²²²²²²²² ²²²²²²²²² ²²²²²²²²²² ²²²²²²²²²² ²²²²²²²²²² º
º º
º º
º ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º
º º AMBITO DE CONTROL º º
º º ALTO º º
º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ º
º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Figura N§ 20: Ambito de Control Alto.
* Ambito de Control bajo:
Para optimizar una estructura de ese tipo se deben revisar las
posibilidades de descomponer las funciones en subfunciones con
entidad propia, para formar nuevos m¢dulos, o por el contrario,
comprimir m¢dulos subordinados en el m¢dulo de nivel superior.
Un ejemplo de este mbito se muestra en la Figura N§ 21: Ambito
de Control Bajo.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º º
º ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ²²²²²²²² ³ AMBITO DE CONTROL ³ º
º ²²²²²²²² ³ BAJO ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º ²²²²²²²² º
º ²²²²²²²² ÚÄÄÄÄÄþ²²²²²²²²þÄÄÄÄÄÄ¿ º
º ³ ²²²²²²²² ³ º
º ²²²²²²²² þ þ º
º ²²²²²²²² ²²²²²²²² ²²²²²²²² º
º ÚÄÄÄÄÄþ²²²²²²²²þÄÄÄÄÄ¿ ²²²²²²²² º
º ²²²²²²²² ³ þ ³ þ º
º ²²²²²²²² þ þ þ þ º
º ²²²²²²²² ²²²²²²²² ²²²²²²²²² ²²²²²²²² º
º ²²²²²²²² ²²²²²²²² ²²²²²²²² ²²²²²²²²² ²²²²²²²² º
º ²²²²²²²² º
ºÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º³ AMBITO DE CONTROL ³ º
º³ CORRECTO ³ º
ºÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Figura N§ 21: Ambito de Control Bajo.
* Ambito de efecto
Este t‚rmino se aplica a los m¢dulos en los que interviene
alguna decisi¢n e identifica a los m¢dulos afectados por esa
decisi¢n.
El mbito de efecto debe estar contenido en el mbito de control
del m¢dulo que toma la decisi¢n.
Si no se da ninguna norma, es decir, si hay m¢dulos en otras
ramas del diagrama de descomposici¢n funcional que dependa de
esa decisi¢n, habr un flujo de control hacia arriba y hacia
abajo por el acoplamiento, o incluso se puede dar que la misma
decisi¢n se tome de nuevo en otra rama del diagrama.
Generalmente, existen tres soluciones a este problema :
1. Integrar el m¢dulo de nivel bajo en su m¢dulo superior, de
manera que la decisi¢n quede situada en un nivel alto de estru-
ctura.
2. Trasladar dentro de la estructura del mbito de efecto el m¢dulo
afectado por la decisi¢n.
3. Extraer la decisi¢n del m¢dulo de nivel bajo y ponerla en el
m¢dulo de nivel alto.
La relaci¢n existente entre el mbito de control y el mbito de
efecto se muestra en la Figura N§ 22: Relaci¢n entre Ambito de
Control / Ambito de Efecto.
Figura N§ 22: Relaci¢n entre Ambito de Control / Ambito de
Efecto.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º º
º º
º ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³AMBITO CONTROL³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ PRINCIPAL ³ º
º ³AMBITO EFECTO ³ ³ ÀÄÄÄÄÄÄÂÄÄÄÄÙ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ º
º ³ ÀÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ ³ º
º ³ ³ º
º ³ ³ º
º ³ ³ º
º ÚÄÄÄÄÄÁÄÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄ¿ º
º ³ PROCESAR ³ ³ PROCESAR ³ º
º ÚÄÄÄÄÄÄÄÄÄÄÄ´ X ÃÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ TIPO II ³ º
º ³ ÀÄÄÄÄÄÂÄÄÄÄÙ ³ ÀÄÄÄÄÄÄÄÄÄÄÙ º
º ³ ³ ³ º
º ³ ³ ³ º
º ³ ³ ³ º
º ³ ³ ³ º
º ³ ³ ³ º
º ÚÄÄÄÄÁÄÄÄÄ¿ ÚÄÄÄÄÁÄÄÄÄÄ¿ ÚÄÄÄÄÁÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ LEER X ³ ³ VALIDAR ³ ³ PROCESAR ³ ³ PRINCIPAL ³ º
º ÀÄÄÄÄÄÄÄÄÄÙ ³ TIPO X ³ ³ TIPO 1 ³ ÀÄÄÄÄÄÂÄÄÄÄÄÄÙ º
º ÀÄÄÄÄÂÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÙ ³ º
º ³ ³ º
º ³ ³ º
º ³ ³ º
º ÚÄÄÄÁÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄÄÄ¿ º
º ³ TIPO DE ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄ´ PROCESAR ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ ERROR ³ ³ ÀÄÂÄÄÄÄÄÄÄÄÄÂÙ ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÙ ³ ³ ³ ³ º
º ³ ³ ³ ³ º
º ³ ³ ³ ³ º
º ÚÄÄÄÄÁÄÄÄÄ¿ ÚÄÄÄÄÄÁÄÄ¿ ÚÄÄÁÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÁÄÄÄÄ¿ º
º ³ OBTENER ³ ³ TIPO X ³ ³ PROCESAR ³ ³ ROCESAR ³ º
º ³ VALIDAR ³ ÀÄÄÄÄÄÄÄÄÙ ³ TIPO I ³ ³ TIPO II ³ º
º ÀÄÄÄÂÄÄÄÂÄÙ ÀÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÙ º
º ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ ³ º
º ³ ³ º
º ÚÄÄÄÄÄÄÁÄÄÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º
º ³ LEER X ³ ³ TIPO DE ³ ³ AMBITO EFECTO ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ERROR ³ ³ FUERA DEL AMBITO ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÙ ³ CONTROL ³ º
º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º
º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
e) Definici¢n de los Programas.
Por £ltimo, el dise¤ador debe agrupar todos los m¢dulos que ha
definido en distintos programas.
Existen en este sentido dos posturas muy contrastadas:
* Construir un programa por cada m¢dulo.
Se garantiza que los campos de trabajo de un m¢dulo no sean acc-
esibles para otro para asegurar por tanto, que no se den acopla-
miento patol¢gicos.
Como contrapartida el funcionamiento se hace m s lento, puesto
que los programas realizan continuas llamadas ®CALL¯ a peque¤os
programas. Adem s, un programa que sea llamado por otros estar
cargado en memoria tantas veces como programas lo llamen.
* Agrupar todos los m¢dulos en un programa, asociado cada uno de
ellos a un p rrafo.
Funcionamiento m s r pido, sin necesidad de realizar ®CALL¯.
Las desventajas son evidentes: desbordamientos de memoria,
encarecimiento de las modificaciones, rigidez, etc.
Existen diversos criteros para definir programa, donde se debe
clasificar los m¢dulos en programas teniendo en cuenta las rest-
ricciones de equipo f¡sico y sistema operativo, de modo que el
resultado sea lo m s eficiente posible, con programas peque¤os y
manejables. Los factores a tener en cuenta son:
* Iteraci¢n: Si un m¢dulo llama a otro iterativamente, se
pueden evitar muchos CALL poniendo ambos m¢dulos en el mismo
programa.
* Volumen: Si se conoce el n£mero de veces que un m¢dulo llama
a otro, se deben poner en el mismo programa.
* Intervalo: Aquellos m¢dulos que en un peque¤o intervalo tenga
una alta frecuencia de llamada deben ir en el mismo programa.
* Funci¢n Opcional: Los m¢dulos que realicen funciones secundar-
ias u opcionales pueden ir en programas independientes.
* Ejecuci¢n £nica: Los m¢dulos que se ejecutan una £nica vez en
el sistema deben ser programas independientes.
* Clasificaci¢n: Los m¢dulos que sean entradas o salidas de un
proceso de clasificaci¢n deben ser programas independientes.
As¡ mismo, cada programa de una aplicaci¢n debe documentarse
exhaustivamente con el fin de facilitar su futuro mantenimi-
ento por cualquier persona del departamento de desarrollo.
Para ello se deber disponer de la siguiente informaci¢n:
* Estructuras de datos de los distintos ficheros de entrada y
salida que utiliza el programa.
* Diagrama de correspondencias entre ficheros de entrada y
salida.
* Estructura del programa una vez integradas las estructuras de
entrada y salida.
* Comentarios sobre el programa, indicando:
- Colisiones detectadas y forma de resolverlas.
- Normas especiales de ejecuci¢n.
- Limitaciones.
- Tablas de decisi¢n.
- Lista detallada de operaciones.
* Estructura del programa conteniendo la asignaci¢n de operaciones.
* L¢gica esquem tica (pseudoc¢digo).
* Listado del programa fuente, compilado y sin errores.
* Listado de referencias cruzadas para facilitar la b£squeda de
variables y entidades a lo largo del programa, cuando sea necesa-
rio efectuar su mantenimiento.
* Listado de ocupaci¢n de memoria.
* Cualquier otro listado que proporcione el compilador o sistema
operativo.
* Documentaci¢n de la prueba definita que se realiz¢ para obtener
la aceptaci¢n del programa, adjuntando juegos de ensayo, condici-
ones de prueba, tiempo invertido y resultados obtenidos.
|