Vous êtes sur la page 1sur 34

Metodologa de Programacin

41


Captulo 3
Anlisis Estructurado
Metodologa de Programacin
42
3 Caractersticas de las herramientas de modelado
Aqu se describen algunas herramientas de modelado estructurado que usted usar como analista. Antes de
ahondar en los detalles de los diagramas de flujo de datos, de estructuras, etc., existen algunos puntos
introductorios que necesitamos repasar.
Un modelo es un simulacro a bajo costo de un sistema complejo que se desea estudiar. Se construyen modelos
de sistemas por tres motivos:
1. Para enfocar caractersticas importantes del sistema, a la vez que para minimizar las caractersticas
menos importantes.
2. Para discutir cambios y correcciones a los requerimientos del usuario, a bajo costo y con riesgo mnimo.
3. Para verificar que se entiende el ambiente del usuario, y que se ha documentado de tal manera que los
diseadores y programadores puedan construir el sistema.
Sin embargo existen muchos tipos diferentes de modelos que se pueden construir para el usuario: modelos
narrativos, modelos de prototipos, modelos grficos diversos, etc. De hecho, el sistema final que se le
construir al usuario pudiera resultar ser un modelo, en el sentido de que puede representar, por primera vez,
una manera de que el usuario visualice lo que desea.
Nosotros nos concentramos en los modelos en papel(o en modelos en papel producidos por sistemas CASE
automatizados). Pero, nuevamente, existe una gran variedad, existen diagramas de flujo, diagramas HIPO,
tablas de decisin, diagramas de flujo de datos, diagramas de flujo de sistemas, diagramas de transicin de
estados, rboles de decisiones, diagramas de entidad-relacin, diagramas de Ferstl, diagramas de Hamilton-
Zeldin, diagramas PAD y una interminable serie de diagramas, tablas y grficas que se le pueden presentar al
usuario. Cul debemos usar?
La premisa bsica es que debe usarse cualquier modelo que funcione en la situacin en la que se encuentra.
Los diferentes usuarios pudieran requerir distintas herramientas de modelado, sea por su experiencia pasada o
porque ciertos tipos de diagramas los confunden o intimidan. Diferentes proyectos pudieran requerir de distintas
herramientas para cumplir con los estndares de documentacin impuestos por organizaciones externas. Y
diferentes tipos de sistemas pudieran requerir de modelos diversos para poder destacar adecuadamente
caractersticas importantes.
Para llevar ms lejos esto, la mayora de los sistemas requieren de mltiples modelos: cada modelo se enfoca a
un nmero limitado de aspectos del sistema a la vez que minimiza (o ignora totalmente) otros de sus aspectos.
Esto se da sobre todo en muchos de los sistemas que se estn construyendo actualmente, pues tienen
caractersticas funcionales complejas, estructuras de datos complejos, y consideraciones complejas de
tiempos.
Cualquier herramienta que use debiera tener las siguientes caractersticas:
Debe ser grfica, con detalles textuales de apoyo apropiados.
Debe permitir que el sistema sea visto en segmentos, en forma descendente.
Debe tener redundancia mnima.
Debe ayudar al lector a predecir el comportamiento del sistema.
Debe ser transparente para el lector.
A continuacin discutiremos con ms detalle cada uno de estos puntos.
3.1 Modelos grficos
La mayora de los modelos populares de sistemas, se apoyan mucho en grficas. No es requisito usar grficas
en un modelo de sistemas, pero el viejo adagio de que "una imagen vale ms que mil palabras" es una buena
explicacin de nuestra preferencia por las grficas en lugar de texto narrativo. Una imagen bien escogida
puede transmitir de manera concisa y compacta una gran cantidad de informacin.
Esto no significa necesariamente que una imagen pueda describir todo lo referente a un sistema; hacerlo
normalmente significara tener un desorden que nadie quisiera mirar. En general, se utilizan los grficos para
identificar los componentes de un sistema y su interfaz. Todos los dems detalles (esto es, las respuestas a
preguntas tales como "Cuntos?" y "En qu orden?", etc.) se presentan en documentos textuales de apoyo.
Los textos de apoyo son la especificacin del proceso y el diccionario de datos.
Esto no significa que todos los analistas deban usar un conjunto particular de herramientas grficas y de textos;
el Gran Analista de Sistemas que est en el cielo no lo fulminar con sus rayos si no utiliza diagrama de flujo de
datos. Sin embargo, es probable que lo fulmine el rayo si opta por uno de los extremos de nicamente grficos
(sin textos de apoyo) o de slo texto (sin material grfico). Y seguramente le tocara aunque sea un pequeo
relmpago si hiciera que el texto fuera la parte dominante del modelo, y que los grficos tuvieran un papel
pequeo y subordinado. Uno o ms grficos debieran ser el documento primario al que se dirige el usuario para
Metodologa de Programacin
43
poder entender el sistema; los documentos textuales debieran servir de material de referencia para consulta en
caso de necesidad
3.2 Modelos segmentables en forma descendente
Un segundo aspecto importante de una buena herramienta de modelado es su capacidad de mostrar un
sistema por partes en forma descendente. Esto no es importante para sistemas pequeos, pues de ellos se
puede decir todo lo necesario en una o dos pginas, y cualquiera que necesite conocer algn aspecto del
sistema bien puede conocerlo en su totalidad.
Sin embargo, los proyectos reales en el mundo real generalmente no son pequeos. De hecho, muchos de los
proyectos en los que es probable que se involucre sern desde medianos hasta enormes. En consecuencia,
ser imposible que alguien, sea usuario, analista o programador, se enfoque a todo el sistema al mismo tiempo.
Tampoco ser posible presentar un modelo grfico de un sistema grande y complejo en una sola hoja de papel,
a menos, claro, que se considere el extremo de tener una microficha de 2 x 3 metros. Por eso, nuestras
herramientas deben permitirnos mostrar partes individuales del sistema de manera independiente, junto con
una forma sencilla de moverse de una parte a otra del modelo del sistema.
Sin embargo, se necesita ms que esto: no sera apropiado, por ejemplo, crear un modelo grfico enorme de 30
x 30 metros y luego cortarlo en 3000 pedazos individuales de medio metro cuadrado, con miles de conectores
de hoja a hoja. Esto equivaldra, a grandes rasgos, a dibujar un mapa de las calles de todo un pas en una sola
hoja y luego partirla en miles de pedacitos del tamao de una pgina.
De hecho, la experiencia con mapas y atlas ilustra cmo debe organizarse un modelo de un sistema complejo.
Por ejemplo, un atlas de Chile empieza generalmente por un solo diagrama de una pgina de todo el pas.
Dicha pgina muestra las regiones individuales, y pudiera tambin mostrar las principales interfaces entre las
regiones (ros, autopistas, lneas de ferrocarril, rutas areas, etc.). Las siguientes pginas se dedican
normalmente a cada regin individual, en donde cada pgina muestra las ciudades y comunas individuales de
la regin, al igual que las autopistas locales que no aparecen en el mapa de nivel nacional. Podramos imaginar
mapas de nivel menor que proporcionaran detalles de cada provincia, de cada ciudad dentro de una provincia
determinada, y de cada barrio dentro de una ciudad dada.
Un buen modelo de un sistema complejo de informacin debera preceder de la misma manera descendente.
Una porcin de la vista global de alto nivel del modelo debe dar al lector buena idea de los principales
componentes de alto nivel y de las interfaces del sistema. Las siguientes porciones del modelo deberan
proporcionar informacin respecto a los componentes detallados de bajo nivel. Y as como el atlas proporciona
un mecanismo conveniente para recorrer el conjunto completo de mapas individuales (esto es, llegar sin mayor
confusin del mapa de nivel nacional al mapa apropiado al nivel de comuna), un buen modelo de un sistema
de informacin proporciona un mecanismo conveniente para pasar tranquilamente de un nivel alto a uno bajo.
3.3 Modelos mnimamente redundantes
Los modelos son representacin de algn sistema del mundo real y el sistema mismo pudiera ser esttico (no
cambiante) o dinmico. Un mapa de Chile, por ejemplo, es una representacin grfica del pas. Mientras que
muchos de sus aspectos son obviamente muy dinmicos, podra decirse que los aspectos que modela un mapa
son relativamente estticos: las regiones individuales no aparecen o desaparecen muy a menudo y las
fronteras entre ellos han permanecido constantes durante un tiempo bastante largo. (En cambio, no puede
decirse esto de un mapa de todo el mundo).
Por qu importa esto a quien construye un modelo? Simplemente, porque es deseable mantenerlo en forma
actualizada y precisa. Si el sistema cambia, entonces debe cambiar el modelo, si ha de tenerse actualizado.
Obviamente, si slo cambia un aspecto local del sistema, preferiramos cambiar slo un aspecto local
correspondiente del modelo, sin tener por fuerza que cambiar algn otro. De hecho, si se requieren mltiples
cambios, existe una buena probabilidad de que no se hagan o de que se harn desordenadamente. Y esto
significa que el modelo se volver gradualmente menos preciso.
Para ilustrar esto, considere nuevamente nuestro ejemplo del atlas Chile Podemos imaginar, en el caso ms
simple, una pgina que muestre todo el pas, y 13 pginas siguientes que muestren los detalles de cada regin.
Ahora, imagine qu sucedera si desapareciera la regin del Bio Bio el mapa de nivel nacional tendra que
volver a dibujarse para mostrar el nuevo pas de 12 regiones, y el anterior mapa de nivel regional del Bio Bio
tendra que descartarse.
Sin embargo sera un poco ms difcil con los atlas de verdad, pues, como es caracterstico de muchos
modelos de sistemas, existe alguna redundancia. Cada mapa de nivel estatal muestra no slo el estado que se
describe sino tambin parte de los que tienen frontera con l. Esta informacin se tiene en el mapa de nivel
nacional, pero es til en el nivel regional tambin. Esto significa que si desapareciera la 8 regin,
Metodologa de Programacin
44
probablemente tendramos que redibujar los mapas de la 7 regin y de la 9 regin. Qu molestia. Los
cartgrafos profesionales pudieran objetar esto y argumentar que se necesita una cierta cantidad de
redundancia para hacer el atlas fcil de leer. Pero debera ser evidente que cuanto ms redundante sea el
modelo ms difcil ser de mantener. Imagine, por ejemplo, que nuestro atlas mtico muestra las autopistas en
el mapa nacional y en todos los mapas de nivel regional. Imagine tambin que algn emprendedor fabricante
de mapas ha decidido mostrar la longitud completa de cada autopista en cada mapa regional que atraviesa. De
esta forma, la carretera panamericana, que va de Arica a Pto. Montt, aparecera en alrededor de una docena de
regiones, y en cada uno se escribira el hecho (redundante) de que la autopista mide 2,700 kilmetros. Y
ahora qu sucede si descubrimos que esta cifra estaba equivocada o que parte de la autopista se extendi o
se desvi de ruta? Obviamente, se tendran que modificar una docena de mapas regionales.
3.4 Modelos transparentes
Finalmente, un buen modelo debe ser tan fcil de leer que el lector no tenga que detenerse a pensar siquiera
que se trata de la representacin de un sistema y no del sistema mismo. Esto no siempre es fcil de lograr y a
menudo requiere de prctica y preparacin por parte del lector. Piense por ejemplo en un mapa: qu tan a
menudo se pone a pensar en que est mirando una representacin abstracta de la regin del Bio Bio y no la
realidad misma? Por otro lado, observe a un nio pequeo que est viendo un mapa mientras sus padres o su
maestro pretenden explicarle que Concepcin tiene frontera con Chillan y Los Angeles a 100 kilmetros de la
ciudad de Chillan. "No, no es cierto", dir el nio, "Chillan est a dos centmetros de Concepcin".
Al crecer, nos familiarizamos cada vez ms con el concepto de las representaciones abstractas, siempre que
nos parezcan cmodas mentalmente. Los cientficos han estudiado el comportamiento y la organizacin del
cerebro humano y han encontrado que el hemisferio izquierdo realiza los procesos secuenciales. Tambin se
hace cargo de los textos; por ejemplo, las palabras que est leyendo, una tras otra, en esta pgina. El
hemisferio derecho trata con las imgenes y el procesamiento asincrnico, donde "todo sucede a la vez". Esto
indica que si estamos tratando de modelar algo que es intrnsecamente lineal y secuencial, como el flujo de
control en un programa de computadora, debemos usar una herramienta de modelado textual que quepa
cmodamente en el hemisferio izquierdo, que ser el mejor equipado para tratarlo. Y si estamos tratando de
modelar algo que es intrnsecamente multidimensional, con muchas actividades que se dan a la vez, debemos
usar una herramienta grfica.
4 Diagrama de flujo de datos
Aqu exploraremos una de las tres herramientas grficas de modelado ms importantes del anlisis
estructurado: el diagrama de flujo de datos. Esta es una herramienta que permite visualizar un sistema como
una red de procesos funcionales, conectados entre s por "conductos" y "tanques de almacenamiento de datos.
En la literatura computacional, y en sus conversaciones con otros analistas y usuarios, puede utilizar cualquiera
de los siguientes trminos como sinnimo de diagrama de flujo de datos:
Carta de burbujas
DFD
Diagrama de burbujas
Modelo de proceso
Diagrama de flujo de trabajo
Modelo de funcin
"una imagen de lo que est sucediendo aqu"
El diagrama de flujo de datos es una de las herramientas ms comnmente usadas sobre todo por sistemas
operacionales en los cuales las funciones del sistema son de gran importancia y son ms complejas que los
datos que ste maneja. Los DFD se utilizaron por primera vez en la ingeniera de software como notacin para
el estudio del diseo de sistemas. A su vez, la notacin se tom prestada de artculos anteriores sobre teora de
grficas, y contina siendo utilizada por los ingenieros de software que trabajan en la implantacin directa de
modelos de los requerimientos del usuario.
Estos son antecedentes interesantes, pero con toda probabilidad no sern muy relevantes para los usuarios a
quienes usted mostrar los modelos de DFD del sistema; de hecho, probablemente lo peor que pueda usted
hacer sea decir, "Sr. Usuario, quisiera mostrarle un modelo grfico-terico descendente y por partes de su
sistema". En realidad, muchos usuarios estarn familiarizados con el concepto bsico de DFD, pues la misma
notacin ha sido empleada por investigadores de operaciones durante los ltimos 70 aos para construir
modelos de flujo de trabajo de organizaciones. Es importante tener esto en mente: los DFD no slo se pueden
utilizar para modelar sistemas de sistemas de proceso de informacin, sino tambin como manera de modelar
organizaciones enteras, es decir, como una herramienta para la planeacin estratgica y de negocios.
Metodologa de Programacin
45
Empezaremos nuestro estudio de los DFD examinando los componentes de un diagrama tpico de flujo de
datos: el proceso, el flujo, el almacn y el terminador.
Enseguida revisaremos algunas de las guas de elaboracin de diagramas de flujo de datos para minimizar las
posibilidades de construir un DFD confuso, incorrecto o inconsistente. Finalmente, discutiremos el concepto de
DFD nivelado como mtodo de modelar sistemas complejos.
Tenga en mente que el DFD es tan slo una de las herramientas de modelado disponibles y que nicamente
proporciona un punto de vista de un sistema, el orientado a las funciones.
4.1 Los componentes de un DFD
La figura muestra un DFD tpico para un sistema pequeo. Antes de examinar sus componentes en detalle,
ntese lo siguiente:
Prcticamente no requiere explicacin; se puede simplemente mirar el diagrama y entenderlo. La
notacin es sencilla y clara y, en cierto sentido, intuitivamente obvia. Esto es particularmente importante
cuando recordamos quin se supone que est viendo la figura: no el analista sino el usuario. Si el
usuario necesita una enciclopedia para poder leer entender el modelo de su sistema, probablemente no
se tomar la molestia de hacer ninguna de las dos cosas.
El diagrama cabe fcilmente en una pgina. Esto significa dos cosas: 1)alguien puede mirarlo sin
ofuscarse y 2) el sistema que se est modelando no es muy complejo. Qu se hace si el sistema es
intrnsecamente complejo, tanto -por ejemplo- que hubiera literalmente cientos de crculos y lneas en el
diagrama?
El diagrama se dibuj con computadora. Nada tiene de malo un diagrama hecho a mano, pero la figura
y muchos de los otros DFD que se muestran se hicieron con la ayuda de un programa. Esto significa
que el diagrama probablemente se har de manera ms ordenada y estndar que lo que en general
sera posible a mano. Tambin significa que se pueden hacer cambios y producir nuevas versiones en
cuestin de minutos.
4.1.1 El proceso
El primer componente del DFD se conoce como proceso. Los sinnimos comunes son burbuja, funcin o
transformacin. El proceso muestra una parte del sistema que transforma entradas en salidas; es decir,
muestra cmo es que una o ms entradas se transforman en salidas. El proceso se representa grficamente
como un crculo. Algunos analistas prefieren usar un valo o un rectngulo con esquinas redondeadas; y otros
prefieren usar un rectngulo.
Metodologa de Programacin
46
Las diferencias entre estas tres formas son puramente cosmticas, aunque obviamente es importante usar la
misma forma de manera consistente para representar todas las funciones de un sistema. Nosotros utilizaremos
el crculo o burbuja.
Ntese que el proceso se nombra o describe con una sola palabra, frase u oracin sencilla. En casi todos los
DFD el nombre del proceso describir lo que hace. Por ahora es suficiente decir que un buen nombre
generalmente consiste en una frase verbo-objeto tal como VALIDAR ENTRADA o CALCULAR IMPUESTO.
4.1.2 El flujo
Un flujo se representa grficamente por medio de una flecha que entra o sale de un proceso. El flujo se usa
para describir el movimiento de bloques o paquetes de informacin de una parte del sistema a otra. Por ello, los
flujos representan datos en movimiento, mientras que los almacenes representan datos en reposo.
Los flujos realmente representarn datos, es decir, bits, caracteres, mensajes, nmeros de punto flotante y los
diversos otros tipos de informacin con los que las computadoras pueden tratar. Pero los DFD tambin pueden
utilizarse para modelar otros sistemas aparte de los automatizados y computarizados; pudiera escogerse, por
ejemplo, usar un modelo de DFD para modelar una lnea de ensamblado en la que no haya componentes
computarizados. En tales casos, los paquetes o fragmentos mostrados por los flujos sern tpicamente
materiales fsicos. Para muchos sistemas complejos del mundo real, el DFD mostrar el flujo de materiales y
datos.
Ntese que los flujos de las figuras tienen nombre. El nombre representa el significado del paquete que se
mueve a lo largo del flujo. Un corolario de esto es que el flujo slo lleva un tipo de paquete, como lo indica su
nombre. El analista no debe dar al flujo un nombre como MANZANAS Y NARANJAS Y ARTICULOS Y VARIAS
COSAS MAS.
Aunque parezca obvio, tenga en mente que el mismo contenido pudiera tener distintos significados en distintas
partes del sistema. Por ejemplo, considere el fragmento de sistema que se muestra en la siguiente figura.
El mismo fragmento de datos por ejemplo, 212-410-9955 tiene distinto significado cuando viaja a lo largo de un
flujo llamado NUMERO TELEFONICO que cuando viaja a lo largo de uno llamado NUMERO TELEFONICO
VALIDO. En el primer caso, significa un nmero telefnico que pudiera ser o no vlido; en el segundo caso,
significa un nmero telefnico que, dentro del contexto de este sistema, se sabe que es vlido.

Ntese tambin que los flujos muestran la direccin: una cabeza de flecha en cualquier extremo (o
posiblemente ambos) del flujo indica si los datos (o el material) se est moviendo hacia adentro o hacia afuera
de un proceso (o ambas cosas). El flujo que se muestra en la figura, por ejemplo, indica claramente que el
nmero se est mandando hacia el proceso denominado VALIDAR NUMERO TELEFONICO.
Metodologa de Programacin
47
Y el flujo denominado HORARIO DE ENTREGA DE CONDUCTOR de la figura claramente indica que es una
salida generada por el proceso GENERAR HORARIO DE ENTREGA DE CONDUCTOR. Los datos que se
mueven a lo largo de dicho flujo viajarn ya sea a otro proceso (como entrada) o a un terminador.
El flujo de dos cabezas que se muestra en la figura es un dilogo, es decir, un empacado conveniente de dos
paquetes de datos (una pregunta y una respuesta) en el mismo flujo. En el caso de un dilogo, los paquetes en
cada extremo de la flecha deben nombrarse, como se ilustra en la figura.
Los flujos de datos pueden divergir o converger en un DFD: conceptualmente esto es algo as como un ro
principal que se divide en varios ms pequeos, o varios pequeos que se unen. Sin embargo, esto tiene un
significado especial en un DFD tpico en el cual hay paquetes de datos que se mueven a travs del sistema: en
el caso de un flujo divergente, esto significa que se estn mandando copias por duplicado de un paquete de
datos a diferentes partes del sistema, o bien que un paquete complejo de datos se est dividiendo en varios
paquetes individuales ms, cada uno de los cuales se est mandando a diferentes partes del sistema, o que el
ducto de flujo de datos lleva artculos con distintos valores (por ejemplo, vegetales cuyos valores pudieran ser
"papa", "col de bruselas" o "tomate") que estn siendo separados. De manera inversa, en el caso de un flujo
convergente, significa que varios paquetes elementales de datos se estn uniendo para formar agregados ms
complejos de paquetes de datos.
Por ejemplo, la figura muestra un DFD en el cual el flujo denominado DETALLES DE PEDIDOS diverge y lleva
copias de los mismos paquetes a los procesos GENERAR DOCUMENTOS DE ENVIO, ACTUALIZAR
INVENTARIO y GENERAR FACTURAS.
La siguiente figura muestra como el flujo DOMICILIO DEL USUARIO se divide en los paquetes ms
elementales NUMERO TELEFONICO, CODIGO POSTAL, y CALLE, los cuales se mandan a tres procesos de
validacin diferentes.
Metodologa de Programacin
48
Ntese que el flujo no responde a muchas dudas de procedimiento que pudiera tener cuando est viendo un
DFD: no responde a dudas acerca de peticin de entradas o de flujos de salidas, por ejemplo. La figura muestra
el caso sencillo de un flujo de entrada que entra al proceso denominado PROCESAR PEDIDO. Pero cmo
sucede esto? PROCESAR PEDIDO pide explcitamente al usuario las entradas? O se mueven los paquetes
a lo largo del flujo por su propia voluntad, sin ser pedidos?
Similarmente, la siguiente figura muestra un flujo de salidas sencillo que emana de GENERAR REPORTE DE
PEDIDO. Acaso los PEDIDOS se mueven a lo largo del flujo cuando GENERAR REPORTE DE PEDIDO los
quiera mandar, o cuando alguna otra parte del sistema pide el paquete?
Finalmente, considere la situacin mas comn que se muestra en la siguiente figura, en donde hay mltiples
flujos de entrada y de salida: en qu secuencia llegan los paquetes de datos y en qu secuencia se generan
los paquetes de salida? Es decir, el proceso Q requiere exactamente un paquete de los flujos A, B y C para
producir exactamente un paquete de salida para los flujos X, Y y Z? O existen dos Aes para cada tres Bes?
La respuesta a todas estas preguntas es muy sencilla: no sabemos. Toda las interrogantes acarrean detalles de
tipo procedimiento, que son el tipo de pregunta que se modelara normalmente con un diagrama de flujo de
datos o alguna otra herramienta de modelado de tipo procedimiento. El DFD simplemente no intenta abordar
estas cuestiones. Si estas preguntas se vuelven importantes, entonces, tendr que modelarse el procedimiento
interno de los diversos procesos; las herramientas para hacer esto se discuten despus.
4.1.3 El almacn
El almacn se utiliza para modelar una coleccin de paquetes de datos en reposo. Se denota por dos lneas
paralelas;
alternativa de notacin se muestra a continuacin.
De modo caracterstico el nombre que se utiliza para identificar al almacn es el plural del que se utiliza para los
paquetes que entran y salen del almacn por medio de flujos.
Para el analista con conocimientos de proceso de datos es tentador referirse a los almacenes como archivos o
bases de datos. De hecho, es as como a menudo se implantan los almacenes en un sistema computarizado;
pero un almacn tambin pudiera consistir en datos almacenados en tarjetas perforadas, microfilm, microfichas,
disco ptico o alguna ms de otras posibles formas electrnicas. Y un almacn tambin puede ser un conjunto
de fichas de papel en una caja de cartn, nombres y domicilios en un directorio, diversos archivos en un
archivero, o varias formas no computarizadas. La figura muestra un ejemplo caracterstico de "almacn" en un
sistema manual existente. Es precisamente debido a la variedad de formas de implantacin posibles de un
almacn que deliberadamente escogimos una notacin grfica simple y abstracta as como el trmino almacn
en lugar de, por ejemplo, base de datos.
Metodologa de Programacin
49
Como hemos visto hasta ahora, los almacenes se conectan por flujos a los procesos. As, el contexto en el que
se muestra un almacn en un DFD es uno de los siguientes (o ambos):
Un flujo desde un almacn
Un flujo hacia un almacn
En la mayora de los casos, los flujos se etiquetan, sin embargo, muchos analistas no se molestan en etiquetar
el flujo si una instancia completa del paquete fluye hacia o desde el almacn. Por ejemplo, la siguiente figura
muestra un fragmento tpico de un DFD.
Normalmente se interpreta un flujo que precede de un sistema como una lectura o un acceso a la informacin
del almacn. Esto significa especficamente que:
Se recupera del almacn un solo paquete de datos; esto es, de hecho el ejemplo ms comn de flujo
desde un almacn. Imagnese, por ejemplo, un almacn llamado CLIENTES, donde cada paquete
contiene nombre, domicilio y nmero telefnico de los clientes individuales. As, un flujo tpico del
almacn podra implicar la recuperacin de un paquete completo de informacin acerca de un cliente.
Se ha recuperado ms de un paquete del almacn. Por ejemplo, el flujo podra recuperar paquetes de
informacin acerca de todos los clientes de la ciudad de Concepcin del almacn CLIENTES.
Se tiene una porcin de un paquete del almacn. En algunos casos, por ejemplo, slo se podra
recuperar la informacin del nmero telefnico de cliente del almacn CLIENTES.
Se tienen porciones de ms de un paquete del almacn. Por ejemplo, un flujo podra recuperar del
almacn CLIENTES la porcin del cdigo postal de todos los clientes que viven en el la comuna de
Concepcin.
Como notamos antes cuando examinamos los flujos que entraban y salan de un proceso, tendremos muchas
preguntas de tipo procedimiento cuando examinemos los flujos que entran y salen de un almacn: representa
el flujo un solo paquete, muchos, porciones de uno o porciones de diversos paquetes? En algunos casos
podemos darnos cuenta simplemente viendo la etiqueta del flujo: si el flujo no esta etiquetado, significa que
todo el paquete de informacin se est recuperando (como se dijo antes esto es simplemente una convencin
cmoda); si la etiqueta del flujo es la misma que la del almacn significa que se recupera todo un paquete (o
mltiples instancias de uno completo); si la etiqueta del flujo es diferente del nombre de almacn, entonces se
estn recuperando uno o ms componentes de uno o ms paquetes.
A pesar de que algunas de las preguntas de tipo procedimiento pueden responderse viendo con cuidado las
etiquetas del flujo, no sern evidentes todos los detalles. De hecho, para conocer todo lo deseado acerca del
flujo que emana del almacn, tendrn que examinarse los detalles: la especificacin del proceso al cual se
conecta el flujo. Las especificaciones de proceso se examinan ms adelante.
Existe un detalle de tipo procedimiento del cual podemos estar seguros: el almacn es pasivo, y los datos no
viajarn a lo largo del flujo a menos que el proceso lo solicite explcitamente. Existe otro detalle de tipo
procedimiento que suponen, por convenio, los sistemas de proceso de datos: el almacn no cambia cuando un
paquete se mueve del almacn a lo largo del flujo. Un programador pudiera referirse a esto como una lectura no
destructiva o, en otras palabras, del almacn se recupera una copia del paquete y el almacn mantiene su
condicin original.
Un flujo hacia un almacn habitualmente se describe como una escritura, una actualizacin o posiblemente una
eliminacin. Especficamente, slo puede significar que se tiene una de las situaciones siguientes:
Se estn guardando uno o ms paquetes nuevos en el almacn. Dependiendo de la naturaleza del
sistema, los paquetes nuevos pudieran anexarse (es decir, de alguna manera acomodarse para que
estn "despus de los paquetes existentes); o pudieran colocarse en algn lado entre los paquetes
Metodologa de Programacin
50
existentes. Esto es a menudo un asunto de la implantacin (es decir, controlado por el sistema
especfico de administracin de bases de datos), por lo que el analista no debiera preocuparse acerca
de ello. Podra ser, sin embargo, cuestin de una poltica del usuario.
Uno o ms paquetes se estn borrando o retirando del almacn.
Uno o ms paquetes se estn modificando o cambiando. Esto pudiera traer consigo un cambio de todo
un paquete, o (ms comnmente), de slo una porcin, o de una porcin de mltiples paquetes. Por
ejemplo, suponga que la polica tiene un almacn de sospechosos y que cada paquete contiene sus
nombres y domicilios; Puede ofrecrsele una nueva "identidad" a un sospechoso que coopera, en cuyo
caso toda la informacin relacionada con su paquete cambiara.
En todos estos casos es evidente que el almacn cambi como resultado del flujo que ingresa. El proceso (o
procesos) conectados con el otro extremo del flujo es el responsable de realizar el cambio al almacn.
Un punto que debiera ser evidente de todos los ejemplos que se han mostrado hasta ahora es el siguiente: los
flujos conectados a un almacn slo pueden transportar paquetes de informacin que el almacn sea capaz de
guardar. Por ello, un flujo conectado a un almacn CLIENTES slo puede transportar informacin relacionada
con los clientes contenidos por el almacn; no puede transportar paquetes de inventarios o paquetes de
manufactura o datos astronmicos.
4.1.4 El Terminador
El siguiente componente del DFD es un terminador; grficamente se representa como un rectngulo, como se
muestra en la figura. Los terminadores representan entidades externas con las cuales el sistema se comunica.
Comnmente, un terminador es una persona o un grupo, por ejemplo, una organizacin externa o una agencia
gubernamental, o un grupo o departamento que est dentro de la misma compaa u organizacin, pero fuera
del control del sistema que se est modelando. En algunos casos, un terminador puede ser otro sistema, como
algn otro sistema computacional con el cual se comunica ste.
Suele ser muy fcil identificar los terminadores en el sistema que se est modelando. A veces el terminador es
el usuario; es decir, en sus discusiones con el usuario, ste dir "Pretendo suministrar al sistema los datos X, Y
y Z, y espero que me regrese los datos A, B y C". En otros casos, el usuario se considera parte del sistema y
ayudar a identificar los terminadores relevantes; por ejemplo, le dir Tenemos que estar listos para recibir las
formas tipo 321 del departamento de contadura. Y debemos enviar reportes financieros semanales al comit
de finanzas". En este ltimo caso, es evidente que el departamento de contadura y el comit de finanzas son
terminadores separados con los cuales se comunica el sistema.
Existen tres cosas importantes que debemos recordar acerca de los terminadores:
1. Son externos al sistema que se est modelando; los flujos que conectan los terminadores a diversos
procesos (o almacenes) en el sistema representan la interfaz entre l y el mundo externo.
2. Como consecuencia, es evidente que ni el analista ni el diseador del sistema estn en posibilidades de
cambiar los contenidos de un terminador o la manera en la que trabaja. En el lenguaje usado por
diversos libros de texto clsicos sobre anlisis estructurado, el terminador est fuera del dominio del
cambio. Lo que esto significa es que el analista est modelando un sistema con la intencin de permitir
una considerable flexibilidad y libertad al diseador para elegir la mejor implantacin posible (la ms
eficiente o la ms confiable, etc.). El diseador puede implantar el sistema de manera bastante
diferente de aquella en la que actualmente est implantado; el analista puede escoger modelar los
requerimientos del sistema en forma que se vea considerablemente diferente de la manera en la que
actualmente el usuario visualiza mentalmente el sistema. Sin embargo, el analista de sistemas no
puede modificar los contenidos, la organizacin ni los procedimientos internos asociados con los
terminadores.
3. Las relaciones que existan entre los terminadores no se muestran en el modelo de DFD. Pudieran
existir de hecho diversas relaciones, pero, por definicin, no son parte del sistema que se est
estudiando. De manera inversa, si existen relaciones entre los terminadores y si es esencial para el
analista modelarlos para poder documentar los requerimientos del sistema, entonces, por definicin, los
terminadores son en realidad parte del sistema y debieran modelarse como procesos.
En los ejemplos sencillos que se han discutido hasta ahora hemos visto slo uno o dos terminadores. En un
sistema real tpico pueden existir docenas de terminadores diferentes interactuando con l.
Metodologa de Programacin
51
4.2 Gua para la construccin de DFD
En la seccin anterior vimos que los diagramas de flujo de datos constan de cuatro componentes sencillos:
procesos (burbujas), flujos, almacenes y terminadores. Armado con estas herramientas, puede comenzar a
entrevistar a los usuarios y a construir modelos de DFD de sistemas.
Sin embargo, existe un nmero de reglas adicionales que se requieren para poder utilizar DFD con xito.
Algunas de estas reglas ayudarn para no elaborar DFD errneos (por ejemplo, incompletos o lgicamente
inconsistentes). Algunas de las reglas tienen la finalidad de ayudarle para que dibuje un DFD grato a la vista,
que, por tanto, tenga ms probabilidades de que lo lea con cuidado el usuario.
Las reglas incluyen las siguientes:
1. Escoger nombres con significado para los procesos, flujos, almacenes terminadores.
2. Numerar los procesos.
3. Redibujar el DFD tantas veces como sea necesario estticamente.
4. Evitar los DFD excesivamente complejos.
5. Asegurarse de que el DFD sea internamente consistente y que tambin lo sea con cualesquiera DFD
relacionados con l.
4.2.1 Escoger nombres con significado para los procesos, flujos, almacenes y terminadores.
Como se ha visto, un proceso en un DFD puede representar una funcin que se est llevando a cabo, o pudiera
indicar cmo se est llevando a cabo, identificando a la persona, grupo o mecanismo involucrado. En el ltimo
caso, obviamente es importante etiquetar con precisin el proceso, de modo que quienes leen el DFD,
especialmente los usuarios, puedan confirmar que se trata de un modelo preciso. Sin embargo, si el proceso lo
hace una sola persona, recomiendo que identifique el papel que dicha persona est representando, ms que su
nombre o identidad. As, en lugar de dibujar un proceso como el que se muestra en la figura,

con el nombre de Pedro inmortalizado a la vista de todos, sugerimos que represente el proceso como se
muestra en la siguiente figura.

La razn de esto tiene tres aspectos:
1. Pedro pudiera ser reemplazado la prxima semana por Mara o por Juan Para qu introducir en el
modelo algo susceptible de volverse obsoleto?
2. Pedro pudiera estar realizando diversas labores diferentes en el sistema En lugar de dibujar tres
burbujas distintas, cada una etiquetada como Pedro pero con distinto significado, es preferible indicar la
labor misma que se est logrando, o por lo menos el papel que Pedro est jugando en el momento.
3. Identificar a Pedro es probable que atraiga atencin hacia la manera particular en la que realiza la labor
dada. Generalmente desearemos concentrarnos en la poltica de negocios que debe cumplirse, sin
referirnos a los procedimientos (los cuales pueden basarse en costumbres e historia que ya no sean
relevantes) que se utilizan para seguir dicha poltica.
Si tenemos suerte de evitar nombres de personas (o de grupos) y papeles polticos, entonces podemos
etiquetar los procesos de tal manera que se puedan identificar las funciones que el sistema est llevando a
cabo. Un buen sistema que se puede utilizar para nombrar procesos es usar un verbo y un objeto. Es decir,
Metodologa de Programacin
52
escoja un verbo activo (un verbo transitivo, uno que tenga objeto) y un objeto apropiado para formar una frase
descriptiva para el proceso. Los siguientes son ejemplos de nombres de procesos:
CALCULAR TRAYECTORIA DEL PROYECTIL
PRODUCIR INFORME DE INVENTARIO
VALIDAR NUMERO TELEFONICO
ASIGNAR ESTUDIANTE A LA CLASE
Encontrar, al seguir estas reglas, que es considerablemente ms fcil utilizar verbos y objetos especficos si el
proceso mismo es relativamente simple y est bien definido. Sin embargo, aun en los casos sencillos hay la
tentacin de utilizar nombres ambiguos como HACER, MANEJAR y PROCESAR. Cuando se utilizan verbos
tan "elsticos" (verbos con significados para cubrir casi cualquier situacin), a menudo significa que el analista
no est seguro de cul funcin se est llevando a cabo o que se han agrupado diversas funciones que en
realidad no debieran agruparse.
Estos son algunos nombres de procesos poco adecuados:
HACER ALGO
FUNCIONES MISCELANEAS
MANEJAR ENTRADAS
ENCARGARSE DE CLIENTES
DATOS DE PROCESOS
EDICION GENERAL
Los nombres de los procesos (al igual que los nombres de flujos y de terminadores) deben provenir de un
vocabulario que tenga algn significado para el usuario. Esto suceder de manera muy natural si el DFD se
dibuja como resultado de una serie de entrevistas con los usuarios y si el analista tiene algn entendimiento
mnimo de la materia de aplicacin subyacente. Pero se deben tener en cuenta dos precauciones:
1. Hay una tendencia natural de los usuarios de utilizar abreviaturas y acrnimos especficos con los que
estn familiarizados; esto es cierto tanto para los procesos como para los flujos que describen. Por
desgracia, esto suele resultar en un DFD fuertemente orientado a la manera en la que se hacen las
cosas ahora. Por ello, el usuario pudiera decir: "Bueno, se consigue una copia de la forma 107, la forma
rosada, usted sabe, y se la mandamos a Jos una vez llena". Una buena manera de evitar tales
trminos idiosincrsicos es escoger verbos (como llenar") y objetos (como "forma 107") que tendran
significado para alguien de la misma industria o aplicacin, pero que trabaje en una compaa u
organizacin diferente. Si se est creando un sistema para bancos, los nombres de procesos de flujos
debieran, idealmente, ser comprensibles para alguien de un banco distinto.
2. Si el DFD lo dibuja alguien que tenga bases de programacin, habr la tendencia a utilizar terminologa
orientada a la programacin, tal como "RUTINA", "PROCEDIMIENTO", "SUBSISTEMA" y "FUNCION",
aunque dichos trminos pudieran no tener significado alguno en el mundo del usuario. A menos que
oiga a los usuarios utilizar estas palabras en su propia conversacin, evite utilizarlas en su DFD.
4.2.2 Numerar el proceso
Como una forma conveniente de referirse a los procesos en un DFD, muchos analistas numeran cada burbuja.
No importa mucho cmo se haga esto, de izquierda a derecha, de arriba abajo o de cualquier otra manera
servir, mientras haya constancia en la forma de aplicar los nmeros.
La nica cosa que se debe tener en mente es que el sistema de numeracin implicar, para algunos lectores
casuales de su DFD, una cierta secuencia de ejecucin. Esto es, cuando se muestre el DFD a un usuario, ste
pudiera preguntar: "Acaso la burbuja nmero 1 sucede primero, luego la 2 y luego la 3?" De hecho otros
analistas y programadores pudieran hacer la misma pregunta; cualquiera que est familiarizado con un
diagrama de flujo puede cometer el error de suponer que los nmeros asociados con las burbujas implican
alguna secuencia.
Esto no es as en absoluto. El modelo de DFD es una red de procesos asincrnicos que se intercomunican, lo
cual es, de hecho, una representacin precisa de la manera en la que en realidad muchos sistemas operan.
Alguna secuencia pudiera implicarse por la presencia o ausencia de datos (por ejemplo, pudiera resultar que la
burbuja 2 no pueda realizar su funcin sino hasta que reciba datos de la burbuja 1) pero el esquema de
numeracin no tiene nada que ver con eso.
Para qu numerar entonces las burbujas? En parte, como se indic anteriormente, es una manera muy
conveniente de referirse a los procesos. Es ms fcil en una discusin animada sobre un DFD decir "burbuja 1"
en lugar de "EDITAR TRANSACCION Y REPORTAR ERRORES". Pero de mayor importancia an es el hecho
de que los nmeros se convierten en base para la numeracin jerrquica cuando se introduzcan los diagramas
de flujo por niveles.
Metodologa de Programacin
53
4.2.3 Evitar los DFD demasiado complejos
El propsito de un DFD es modelar de manera precisa las funciones que debe llevar a cabo un sistema y las
interacciones entre ellas. Pero otro propsito del DFD es ser ledo y comprendido, no slo por el analista que
construy el modelo, sino por los usuarios que sean los expertos en la materia de aplicacin. Esto significa que
el diagrama debe ser fcilmente entendido, fcilmente asimilado y placentero a la vista.
Trataremos sobre varias reglas estticas en la siguiente subseccin, pero hay una regla principal que se debe
tener en mente: no cree un DFD con demasiados procesos, flujos, almacenes y terminadores. En la mayora de
los casos, esto significa que no debiera haber ms de media docena de procesos y almacenes, flujos y
terminadores relacionados en un solo diagrama. Otra manera de decir esto es que el DFD debe caber
cmodamente en una hoja normal.
Existe una excepcin importante a esto un DFD especial conocido como diagrama de contexto, que representa
el sistema entero como un solo proceso y destaca las interfaces entre el sistema y los terminadores externos.
La figura muestra un diagrama de contexto tpico y, como puede verse, con l basta para asustar a muchos
analistas, por no mencionar al usuario desprevenido. Comnmente, los diagramas de contexto como el que se
muestra en la figura no se pueden simplificar, pues describen, con el ms alto detalle, una realidad que es
intrnsecamente compleja.
4.2.4 Redibujar el DFD tantas veces como sea necesario
En un proyecto real de anlisis de sistemas, el DFD que se analiza tendr que dibujarse y volverse a dibujar, a
menudo hasta 10 veces o ms antes de 1) ser tcnicamente correcto, 2) ser aceptable para el usuario y 3)
estar lo suficientemente bien dibujado como para que no sea embarazoso mostrarlo a la direccin de la
organizacin. Esto pudiera parecer mucho trabajo, pero bien vale el esfuerzo de desarrollar un modelo preciso,
congruente y agradable, de los requerimientos de su sistema. Lo mismo se cumple para cualquier otra
disciplina de ingeniera: querra usted volar en un avin diseado por ingenieros que se aburrieron de sus
dibujos de ingeniera tras la segunda iteracin?
Qu hace estticamente agradable a un DFD? Esto es obviamente una cuestin de gustos y puede
determinarse por normas dispuestas por su organizacin o por las caractersticas particulares de cualquier
paquete que utilice de diseo de diagramas basado en una estacin de trabajo automatizada. Y la opinin del
usuario pudiera ser un tanto diferente de la suya; lgicamente, cualquier cosa que el usuario encuentre
agradable debe determinar la manera en la que se dibuje el diagrama. Algunos de los asuntos que surgen para
ser tratados en esta rea son los siguientes:
Tamao y forma de las burbujas. Algunas organizaciones dibujan diagramas de flujo de datos con
rectngulos u valos en lugar de crculos; esto es obviamente una cuestin de esttica. Adems,
algunos usuarios pudieran molestarse si las burbujas del DFD no son del mismo tamao: creen que si
una burbuja es ms grande que otra eso significa que esa parte del sistema es ms importante o que
difiere del resto de una manera significativa. (De hecho, por lo comn sucede slo debido a que el
nombre de la burbuja era tan largo que el analista tuvo que dibujarla ms grande para poderlo abarcar.)
Flujos curvos v/s. rectos. Para ilustrar esto, considere los DFD de las siguientes figuras. Cul es ms
agradable? Muchos observadores se encogern de hombros y dirn "en realidad da igual". Pero otros,
y este es el meollo del asunto, escogern uno y rechazarn violentamente el otro. Obviamente, sera
una buena idea conocer de antemano que opcin ser aceptada y cul ser rechazada. El asunto de
las flechas cruzadas es similar. Se permiten o no se permiten?

Metodologa de Programacin
54
Diagramas hechos a mano v/s. los diagramas generados por mquinas. El asunto aqu es la
reaccin del usuario a estos diagramas: algunos prefieren marcadamente los diagramas generados
por la mquina pues son ms ordenados, mientras que otros prefieren los dibujados a mano porque
los hace sentir que el diagrama no se ha "congelado" an, y que todava pueden introducir cambios.
4.2.5 Asegrese de que su DFD sea lgicamente consistente
Existen reglas que ayudan a asegurar la consistencia del DFD con los otros modelos de sistemas el diccionario
de datos, y la especificacin, de procesos. Sin embargo, existen algunas reglas respecto a cmo asegurar que
el DFD mismo sea consistente. Las principales reglas de consistencia son:
Evite sumideros infinitos, burbujas que tienen entradas pero no salidas. Tambin son conocidos por los
analistas como "agujeros negros", en analoga con las estrellas cuyo campo gravitacional es tan intenso
que ni la luz se les escapa. Un ejemplo de vrtice infinito se da en la siguiente figura.
Evite las burbujas de generacin espontnea, que tienen salidas sin tener entradas, porque son
sumamente sospechosas y generalmente incorrectas. Un ejemplo factible de una burbuja que slo tiene
salidas es un generador de nmeros aleatorios, pero es difcil imaginar algn otro ejemplo razonable.
Una burbuja tpica que slo tiene salidas se muestra en la siguiente figura.
Tenga cuidado con los flujos y procesos no etiquetados. Esto suele ser un indicio de falta de esmero,
pero puede esconder un error an ms grave: a veces el analista no etiqueta un flujo o un proceso
porque simplemente no se le ocurre algn nombre razonable. En el caso de un flujo no etiquetado,
pudiera significar que diversos datos elementales no relacionados se agruparon arbitrariamente; en el
caso de un proceso no etiquetado, pudiera significar que el analista estaba tan confundido que dibuj
un diagrama de flujo disfrazado en lugar de un diagrama de flujo de datos.
Tenga cuidado con los almacenes de "slo lectura" o "slo escritura': Esta regla es anloga a la de los
procesos de "nicamente entradas" o "nicamente salidas". Un almacn tpico debiera tener tanto
entradas como salidas. La nica excepcin a esta regla es el almacn externo, que sirve de interfaz
entre el sistema y algn terminador externo. La siguiente figura muestra un ejemplo de un sistema de
bolsa con un almacn legtimo que slo es para escritura.
Metodologa de Programacin
55
4.3 DFD por niveles
Los nicos diagramas de flujo de datos completos que hemos visto son un sistema sencillo de tres burbujas de
y un sistema de una burbuja, pero los DFD que veremos en proyectos reales son considerablemente mayores y
ms complejos. Considere por ejemplo el DFD que se muestra en la siguiente. Puede imaginarse mostrndole
esto al usuario tpico?

La seccin 4.2.3 sugiere que deben evitarse diagramas como el de la figura. Pero cmo? Si el sistema es
intrnsecamente complejo y tiene docenas o incluso cientos de funciones que modelar, cmo puede evitarse el
tipo de DFD que muestra la figura?
La respuesta es organizar el DFD global en una serie de niveles de modo que cada uno proporcione
sucesivamente ms detalles sobre una porcin del nivel anterior. Esto es anlogo a la organizacin de mapas
en un atlas, como se discuti anteriormente: esperaramos ver un mapa global que mostrara un pas completo,
o tal vez incluso el mundo completo; los mapas subsecuentes mostraran los detalles de los pases individuales,
las regiones individuales dentro de los pases, etc. En el caso de los DFD, la organizacin de los niveles se
muestra conceptualmente en la siguiente figura.
El DFD del primer nivel consta slo de una burbuja, que representa el sistema completo; los flujos de datos
muestran las interfaces entre el sistema y los terminadores externos (junto con los almacenes externos que
pudiera haber, como lo ilustra la figura). Este DFD especial se conoce como diagrama de contexto.
Metodologa de Programacin
56
El DFD que sigue del diagrama de contexto se conoce como la figura 0. Representa la vista de ms alto nivel
de las principales funciones del sistema, al igual que sus principales interfaces. Como se discuti en la seccin
4.2.2, cada una de estas burbujas debiera numerarse para una referencia conveniente.
Los nmeros tambin sirven como una manera adecuada de relacionar una burbuja con el siguiente nivel del
DFD que la describe ms a fondo. Por ejemplo:
La burbuja 2 en la figura 0 se asocia con un DFD inferior conocido como figura 2. Las burbujas de la
figura 2 se numeran 2.1, 2.2, 2.3, etc.
La burbuja 3 de la figura 0 se asocia con un DFD inferior conocido como figura 3, las burbujas de la
figura 3 se numeran 3.1, 3.2, 3.3, etc.
La burbuja 2.2 de la figura 2 se asocia con un DFD de nivel inferior conocido como figura 2.2. Las
burbujas de sta se numeran 2.2.1, 2.2.2 2.2.3, etc.
Si una burbuja tiene nombre (que en realidad debiera tenerlo) entonces dicho nombre se reutiliza en la
figura de nivel inmediato inferior. As, si la burbuja 2.2 se llama CALCULAR IMPUESTO DE VENTA,
entonces la figura 2.2, que parte la burbuja 2.2 en ms detalles, debe etiquetarse "figura 2.2:
CALCULAR IMPUESTO DE VENTA".
Como podr verse, sta es una manera bastante directa de organizar un DFD potencialmente enorme en un
grupo de piezas manejables. Pero existen diversas cosas que debemos aadir a esta descripcin de niveles:
1. Cmo saber cuntos niveles debe haber en un DFD? La respuesta se sugiri en la seccin 4.2.3: cada
DFD debe tener no ms de media docena de burbujas y almacenes relacionados. As, si se ha partido
un sistema grande en tres niveles, pero sus DFD de nivel ms bajo an contienen 50 burbujas cada
uno, entonces falta por lo menos un nivel ms. Si no podemos escribir una especificacin de proceso
razonable para una burbuja en alrededor de una pgina, entonces es probable que sea demasiado
compleja y debiera partirse en DFD de menor nivel antes de tratar de escribir la especificacin.
2. Existen reglas acerca del nmero de niveles que debieran esperarse en un sistema tpico? En un
sistema simple, probablemente se encontrarn dos o tres niveles; uno mediano tendr generalmente de
tres a seis niveles; uno grande tendr de cinco a ocho niveles. Debe ser bastante precavido con quien
le diga que todos los sistemas pueden modelarse en exactamente tres niveles; tal persona tambin
tratar de venderle la Torre Eiffel. Por otro lado, recuerde que el nmero total de burbujas se
incrementa exponencialmente a medida que se baja de nivel al inmediato inferior. Si, por ejemplo, cada
figura tiene 7 burbujas, entonces habr 343 en el tercer nivel, 16,807 en el quinto, y 40,353,607 en el
noveno.
3. Deben partirse todas las partes del sistema con el mismo nivel de detalle? Por ejemplo, si la burbuja 2
de la figura 0 requiere tres niveles ms de detalle, es necesario que tambin la burbuja 3 tenga tres
niveles ms de detalle? Es decir, la figura 3; un conjunto de figuras etiquetadas como figura 3.1, 3.2,...;
y un conjunto de figuras etiquetadas 3.1.1, 3.1.2,.., 3.2.1, 3.2.2, etc. La respuesta es "no". Algunas
partes del sistema pueden ser ms complejas que otras y pueden requerir uno o ms niveles de
particin. Por otro lado, si la burbuja 2, que existe en la figura 0, resulta primitiva, mientras que la
burbuja 3 requiere de siete niveles ms de particin, entonces el modelo global del sistema est
ladeado y probablemente est mal organizado. En este caso, algunas porciones de la burbuja 3
debieran separarse en una burbuja aparte o tal vez ser reasignadas a la 2.
4. Cmo se muestran estos niveles al usuario? Muchos usuarios slo querrn ver un diagrama: un
usuario ejecutivo de alto nivel pudiera querer ver tan slo el diagrama de contexto o tal vez la figura 0;
un usuario de nivel operacional pudiera querer ver slo la figura que describe el rea en la cual est
interesado. Pero si alguien quiere ver una parte ms extensa del sistema, o tal vez todo, entonces tiene
sentido presentar los diagramas de una manera descendente: comenzar con el diagrama de contexto y
continuar hasta niveles ms bajos de detalle. A menudo resulta til tener dos diagramas juntos en el
escritorio (o mostrarlos por un proyector) cuando est haciendo esto: el diagrama en el cual est
particularmente interesado y el diagrama progenitor que provee un contexto de alto nivel.
5. Cmo asegurar que los niveles del DFD sean consistentes entre s? El asunto de la consistencia
resulta ser de importancia crtica, pues los diversos niveles del DFD los desarrollan en general distintas
personas en un proyecto real; un analista en jefe puede concentrarse en el diagrama de contexto y la
figura 0, mientras que diversos analistas ayudantes trabajan en las figuras 1, 2, etc. Para asegurar que
cada figura sea consistente con su figura de ms alto nivel se sigue una regla sencilla: los flujos de
datos que salen y entran de una burbuja en un nivel dado deben corresponder con los que entran y
salen de toda la figura en el nivel inmediato inferior que la describe. La siguiente figura muestra dos
niveles de un DFD que no estn balanceados.


Metodologa de Programacin
57

Balanceado No Balanceado
6. Cmo se muestran los almacenes en los diversos niveles? Esta es un rea donde la redundancia se
introduce deliberadamente en el modelo. La regla es la siguiente: mostrar un almacn en el nivel ms
alto donde primeramente sirve de interfaz entre dos o ms burbujas; luego, mostrarlo de nuevo en cada
diagrama de nivel inferior que describa ms a fondo dichas burbujas de interfase. As, la siguiente figura
muestra un almacn compartido por dos procesos de alto nivel: A y B; el almacn se mostrara
nuevamente en las figuras del nivel inmediato inferior que describen ms a fondo A y B. El corolario de
esto es que los almacenes locales, que utilizan slo las burbujas en una figura de menor nivel, no se
mostrarn en niveles superiores, dado que se incluyen de manera implcita en un proceso del nivel
inmediato superior.

7. Cmo se realiza de hecho la particin de los DFD en niveles? La exposicin hasta aqu ha sido un tanto
sutil: a pesar de que ciertamente los DFD deben presentarse al pblico usuario de una manera
descendente, no es necesariamente cierto que el analista deba desarrollarlos as. El enfoque descendente
intuitivamente es muy atractivo: puede imaginarse comenzando con el diagrama de contexto y luego
desarrollando la figura 0 para ir trabajando metdicamente en forma progresiva hasta los niveles ms bajos
de detalle. Sin embargo, existen problemas con este enfoque; un enfoque que tiene ms xito es identificar
primero los acontecimientos externos a los cuales debe responder el sistema y utilizarlos para crear un
primer borrador del DFD. Por ahora, es suficiente que simplemente se d cuenta que la organizacin y
Metodologa de Programacin
58
presentacin de un conjunto de DFD por niveles no necesariamente corresponde a la estrategia para
desarrollar estos niveles en primer lugar.

5 Diccionario de datos.
La segunda herramienta de modelado importante que discutiremos es el diccionario de datos; aunque no tiene
la presencia y el atractivo grfico de los DFD, es crucial. Sin los diccionarios de datos, el modelo de los
requerimientos del usuario no puede considerarse completo; todo lo que se tendra es un borrador rudimentario,
una "visin del artista" del sistema.
La importancia del diccionario de datos a menudo les pasa de largo a muchos adultos, pues no han utilizado un
diccionario durante 10 o 20 aos. Trate de recordar sus das en la primaria, cuando constantemente se le
asediaba con nuevas palabras en sus tareas. Sin un diccionario, se habra perdido. Lo mismo sucede con un
diccionario de datos en el anlisis de sistemas: sin el se extraviar y el usuario no podr estar seguro de que
entendi los detalles de la aplicacin.
El diccionario de datos de frases casi se autodefine. El diccionario de datos es un listado organizado de todos
los datos pertinentes al sistema, con definiciones precisas y rigurosas para que tanto el usuario como el
analista tengan un entendimiento comn de todas las entradas, salidas, componentes de almacenes y clculos
intermedios. El diccionario de datos define los datos haciendo lo siguiente:
Describe el significado de los flujos y almacenes que se muestran en los DFD.
Describe la composicin de agregados de paquetes de datos que se mueven a lo largo de los flujos, es
decir, paquetes complejos (por ejemplo el domicilio de un cliente), que pueden descomponerse en
unidades ms elementales (como ciudad, estado y cdigo postal).
Describen la composicin de los paquetes de datos en los almacenes.
Especifica los valores y unidades relevantes de piezas elementales de informacin en los flujos de
datos y en los almacenes de datos.
Describe los detalles de las relaciones entre almacenes que se enfatizan en un diagrama de entidad-
relacin.
5.1 La Necesidad de la Notacin en el Diccionario de Datos
En la mayora de los sistemas reales con los que se trabaja, los paquetes, o elementos de datos, sern lo
suficientemente complejos como para que se necesite describirlos en trminos de otras cosas. Los elementos
complejos de datos se definen en trminos de elementos ms sencillos, y los sencillos en trminos de los
valores y unidades legtimos que pueden asumir.
Imagine, por ejemplo, la forma en la que respondera a las siguientes preguntas de un marciano (que es el
concepto que muchos usuarios tienen del analista) acerca del significado del nombre de una persona:
Marciano: "Bien, qu es esto llamado nombre?"
Usted (encogindose impacientemente de hombros): "Pues, usted sabe, es slo un nombre, quiero decir,
este, bueno, es lo que nos llamamos unos a otros.
Marciano (confundido): "Significa eso que los llama de distinto modo cuando est contento y cuando
est enojado?"
Usted (un tanto sorprendido de la ignorancia de este extraterrestre): "No, claro que no. Un nombre es el
mismo siempre. Un nombre de persona lo distingue de otras personas."
Marciano (entendiendo de repente): "iAh! Ya entiendo. Hacemos lo mismo en mi planeta. Mi nombre es
3.141 592653589793238462643.
Usted (incrdulo): "Pero eso es un nmero, no un nombre."
Marciano: "Y es un muy buen nombre, me enorgullezco de l. Nadie tiene algo parecido."
Usted: "Pero cul es su nombre y cul su apellido? o 3 es su nombre y el resto su apellido?
Marciano: "Qu es todo esto de nombre y apellido? No entiendo. Tengo un solo nombre y siempre es el
mismo."
Usted: "Pues no funcionan as las cosas aqu. Tenemos un nombre, un apellido, y en ocasiones un
segundo nombre tambin."
Marciano: "Significa eso que usted puede llamarse 23 45 99?"
Usted: "No. No permitimos nmeros en nuestros nombres. Slo puede usar los caracteres alfabticos de
la A a la Z.
Como podr imaginar, la conversacin podra continuar durante mucho tiempo. Puede pensar que el ejemplo
es exagerado porque rara vez nos encontraremos con marcianos que no tengan el concepto del significado de
Metodologa de Programacin
59
un nombre. Pero no est muy alejado de las discusiones que se suscitan (o que debieran suscitarse) entre el
analista y el usuario, en las cuales pudieran surgir las siguientes preguntas:
Debe tener todo mundo un nombre? Qu tal el personaje "Mr. T" de la popular serie de televisin "Los
Magnficos"?
Qu pasa con los signos de puntuacin en los apellidos de las personas, por ejemplo "O'Higgins"?
Se permiten los segundos nombres abreviados, por ejemplo, "Juan X Prez?"
Existe una longitud mnima para el nombre de una persona? Por ejemplo, es legal el nombre "X Y"?
(Es fcil imaginarse que pudiera confundir a muchos sistemas de cmputo, pero existe alguna razn
legal o de negocios por la cual una persona no pudiera llamarse X y apellidarse Y?)
Cmo debemos tratar los sufijos que a veces siguen al apellido? Por ejemplo, se supone que el
nombre "Juan Prez Jr." es legtimo, pero se considera el Jr. como parte del apellido, o en una
categora aparte? Y si est en una nueva categora, no debiramos permitir tambin dgitos, como por
ejemplo, Samuel Sosa 3"?
Ntese, por cierto, que ninguna de estas cuestiones tiene algo que ver con la forma en la que se almacenar la
informacin en la computadora; simplemente estamos tratando de determinar, como cuestin de poltica de
negocios, lo que constituye un nombre vlido.
Como se podr imaginar, se vuelve algo tedioso describir la composicin de los elementos de datos en una
forma narrativa. Necesitamos una notacin concisa y compacta, as como un diccionario normal tiene notacin
compacta y concisa para definir el significado de las palabras ordinarias.
5.2 Notacin del diccionario de datos
Existen muchos esquemas de notacin comunes utilizados por el analista de sistemas. El que se muestra a
continuacin es de los ms comunes y utiliza varios smbolos sencillos:
= est compuesto de
+ y
() optativo (puede estar presente o ausente)
{} iteracin
[] seleccionar una de varias alternativas
** comentario
@ identificador (campo clave) para un almacn
| separa opciones alternativas en la construccin
Por ejemplo, se puede definir el nombre para nuestro amigo marciano as:
Nombre= ttulo de cortesa+ nombre + (segundo nombre) + apellido
Ttulo de cortesa= [Sr. I Srita. I Sra. IDr. I Profesor]
Nombre= {carcter legal}
Segundo nombre= {carcter legal}
Apellido= {carcter legal}
Carcter legal= [A-Zla-zl0-9|'|-l I]

Como puede apreciarse, los smbolos parecen algo matemticos y pudiera preocuparse porque sea demasiado
complicado de entender. Sin embargo, como veremos pronto, la notacin es bastante fcil de leer. La
experiencia de miles de proyectos de procesamiento de datos y varias decenas de miles de usuarios nos ha
mostrado que la notacin, adems, es bastante entendible para casi todos los usuarios si se presenta de
manera correcta.
5.2.1 Definiciones
La definicin de un dato se introduce con el smbolo "=". En este contexto, el =" se lee: "se define como", o "se
compone de", o simplemente "significa". Por ello, la notacin
A=B+C
puede leerse de las siguientes maneras:
Cuando digamos A, queremos decir una B y una C
A se compone de B y C
A se define como B y C
Para definir por completo un dato, nuestra definicin debe incluir lo siguiente:
El significado del dato dentro del contexto de la aplicacin de este usuario. Por lo comn se ofrece
como comentario utilizando la notacin "**"
La composicin del dato, si se compone de partes elementales con significado.
Metodologa de Programacin
60
Los valores que puede tomar el dato, si es un dato elemental que no puede descomponerse ms.
As, si estamos construyendo un sistema mdico que siga la evolucin de los pacientes, podran definirse los
trminos peso y estatura de la siguiente manera:
peso = *peso del paciente al ser admitido al hospital*
*unidades: kilogramos; rango 1-200*
estatura = *estatura del paciente al ser admitido al hospital*
*unidades: centmetros; escala: 20-200*
Ntese que hemos descrito las unidades relevantes y la escala relevante entre un par de caracteres "*".
Repetimos que esto es un convenio de notacin que muchas organizaciones encuentran adecuado, pero que
puede cambiarse de ser necesario.
Adems de las unidades y la escala, podra requerirse la especificacin de la precisin de la medicin del dato.
Para datos tipo precio, por ejemplo, es importante indicar si los valores se expresarn en moneda entera o
redondeados al ltimo centavo, etc. En muchas aplicaciones cientficas y de ingeniera es importante indicar el
nmero de dgitos significativos en el valor de los datos.
5.2.2 Elementos de datos bsicos
Las partes elementales de los datos son aquellas para las cuales ya no existe una descomposicin con
significado dentro del contexto del ambiente del usuario. Esto usualmente es una cuestin de aplicacin y es
algo que se debe explorar cuidadosamente con el usuario. Por ejemplo, hemos visto en la exposicin anterior
que el trmino nombre puede descomponerse en nombre, segundo nombre, apellido y ttulo de cortesa. Pero
tal vez en algunos ambientes de usuario no se requiere tal descomposicin, ni sea relevante, ni tenga
significado (esto es, en ambientes donde los trminos apellido, segundo nombre, etc., no tengan significado
para el usuario).
Cuando se han identificado los datos elementales, deben introducirse al diccionario de datos. Como se indic
anteriormente, el diccionario de datos debe proporcionar una breve narrativa, encerrada entre caracteres "*",
que describa el significado del trmino en el contexto del usuario. Desde luego, habr trminos que se definan
solos, es decir, cuyo significado es universal para todos los sistemas de informacin, o donde el analista
pudiera estar de acuerdo en que no se necesita aclarar ms. Por ejemplo, los siguientes pudieran considerarse
trminos que se autodefinen en un sistema que maneja informacin sobre personas:
estatura actual
peso actual
fecha de nacimiento
sexo
telfono particular
En estos casos no se necesita un comentario narrativo; muchos analistas usan la notacin "**" para indicar "sin
comentarios" cuando el dato se defina solo. Sin embargo, es importante especificar los valores y unidades de
medida que los datos elementales pueden tomar. Por ejemplo:
peso actual= **
*unidades: libras; escala: 1-400*
estatura actual= **
*unidades: pulgadas; escala: 1-96*
fecha de nacimiento = **
*Unidades: das a partir del 1" de enero de 1900; escala: 0-36500*
sexo= *valores: [M I F]*
5.2.3 Datos opcionales
Un dato opcional, como la frase implica, es aquel que puede estar o no presente en un dato compuesto. Existen
muchos ejemplos de datos opcionales en sistemas de informacin:
El nombre de un cliente pudiera no incluir un segundo nombre
El domicilio de un cliente pudiera incluir o no informacin secundaria, como el nmero de departamento.
El pedido de un cliente pudiera contener el domicilio al que se tiene que mandar la cuenta, el domicilio
al que hay que hacer el envo, o ambos.
Las situaciones de este tipo deben verificarse con cuidado con el usuario y deben documentarse precisamente
en el diccionario de datos. Por Ejemplo, la notacin
domicilio de cliente = (domicilio de envo)+ (domicilio para cuenta)
significa, literalmente, que el domicilio del cliente pudiera consistir en:
slo un domicilio de envo
Metodologa de Programacin
61
o bien
slo un domicilio para enviar cuentas
o bien
un domicilio de envo y uno para cuentas
o bien
ninguno de los dos
Esta ltima posibilidad es dudosa. Es mucho ms probable que el usuario realmente quiere decir que el
domicilio debe consistir en uno u otro o ambos. Esto pudiera expresarse de la siguiente manera:

domicilio del cliente = [domicilio de envo I domicilio para cuentas | domicilio de envo + domicilio para cuentas]

Podra tambin argumentarse que, en un negocio por correspondencia, siempre se requiere un domicilio de
envo a donde se deber mandar la mercanca solicitada por el cliente; un segundo domicilio para el envo de la
cuenta es opcional (por ejemplo, el departamento de contabilidad del cliente). As, es posible que la verdadera
poltica del usuario est expresada por

domicilio del cliente = domicilio de envo + (domicilio para cuentas)

Desde luego, la nica manera de saber esto es pedirle al usuario que explique con cuidado las implicaciones de
las diferentes notaciones que se mostraron.
5.2.4 Iteracin
La notacin de iteracin se usa para indicar la ocurrencia repetida de un componente de un dato. Se lee como
"cero o ms ocurrencias de". As, la notacin
solicitud = nombre del cliente + domicilio de envo + {articulo}

significa que la solicitud siempre debe contener un nombre de cliente, un domicilio de envo, y tambin cero o
ms ocurrencias de un artculo. As, pudiramos estar tratando con un cliente que pide un artculo, o dos, o
algn comprador compulsivo que decide ordenar 397 artculos diferentes.
En muchas situaciones reales, el usuario querr especificar los lmites inferior y superior de la iteracin. Tal vez,
en el ejemplo anterior, el usuario seale que no tiene sentido que un cliente haga un pedido de cero artculos;
debe haber por lo menos uno. Podra tambin especificarse un lmite superior; quiz, se permitirn cuando ms
10 artculos. Puede indicarse esto de la siguiente forma:
solicitud = nombre del cliente + domicilio de envo + 1{artculo}10

Es correcto especificar slo el lmite inferior, slo el lmite superior, ambos, o ninguno. As que se permite
cualquiera de los siguientes:
A = 1 {b}
A = {b) 10
A = 1 {b} 10
A = {b}
5.2.5 Seleccin
La notacin de seleccin indica que un dato consiste en exactamente un elemento de entre un conjunto de
opciones alternativas. Las opciones se encierran en corchetes "[" y "]", y se separan por una barra vertical "I".
Como ejemplos tpicos tenemos:
Sexo = [Femenino I Masculino]
Tipo de cliente = [Gobierno I Industria I Universidad I Otro]

Es importante revisar las opciones de seleccin con el usuario para asegurarse de cubrir todas las
posibilidades. En el ltimo ejemplo, el usuario pudiera tender a concentrar su atencin en los clientes
"gobierno", "industria" y "universidad", y podra requerir un recordatorio de que existen clientes de la categora
de "ninguno de los anteriores".
5.2.6 Alias
Un alias, como el trmino implica, es una alternativa de nombre para un dato. Esto es una ocurrencia comn
cuando se trata con diversos grupos de usuarios en diferentes departamentos o ubicaciones geogrficas (y a
Metodologa de Programacin
62
veces con diferentes nacionalidades e idiomas), que insisten en utilizar distintos nombres para decir lo mismo.
El alias se incluye en el diccionario de datos para que est completo, y se relaciona con el nombre primario u
oficial del dato. Por ejemplo:
Comprador = *alias de cliente*

Ntese que la definicin de comprador no muestra su composicin (es decir, no muestra que consiste en
nombre, domicilio, nmero telefnico, etc.). Todos estos detalles deben darse slo para el nombre primario del
dato, para minimizar la redundancia en el modelo.
An cuando el diccionario de datos relaciona correctamente los alias con el nombre primario de los datos, debe
evitarse el uso de alias hasta donde sea posible. Esto se debe a que los nombres de datos se suelan ver
primero, y son ms visibles para todos los usuarios en los DFDs, en donde pudiera no ser tan obvio que
comprador y cliente sean alias. Es mejor, de ser posible, lograr que todos los usuarios se pongan de acuerdo
en un solo nombre.
5.3 Como mostrar el diccionario de datos al usuario
El diccionario de datos lo crea el analista durante el desarrollo del modelo del sistema, pero el usuario debe ser
capaz de leerlo y entenderlo para poder verificar el modelo. Esto plantea unas preguntas obvias:
Podrn los usuarios entender la notacin del diccionario de datos?
Cmo podran los usuarios verificar que el diccionario est completo y correcto?
Cmo se crea el diccionario?
La cuestin de la aceptacin por el usuario de la notacin del diccionario puede despistar en la mayora de los
casos. Es cierto, la notacin del diccionario se ve algo matemtica; pero, como se ha visto, el nmero de
smbolos que el usuario debe aprender es muy pequeo. Los usuarios estn acostumbrados a la variedad de
notaciones formales en su trabajo y vida personal; considere, por ejemplo, la notacin musical, que es mucho
ms compleja:
Similarmente, la notacin de los juegos de canasta, ajedrez, y varias actividades ms es cuando menos igual
de compleja que la del diccionario de datos que se muestra en este captulo.
La cuestin de la verificacin del diccionario de datos por el usuario lleva generalmente a esta pregunta:
"Deben los usuarios leer en detalle todo el diccionario para asegurarse de que est correcto?" Es difcil
imaginar que algn usuario estuviera dispuesto a hacer esto. Es ms probable que el usuario verifique que el
diccionario es correcto en conjunto con el DFD o la especificacin del proceso que est leyendo.
Hay varios detalles acerca de la correccin del sistema que el analista puede hacer por su cuenta, sin ayuda
del usuario: puede asegurarse de que el diccionario est completo y sea consistente y no contradictorio. As
que puede examinar el diccionario por s solo y preguntar lo siguiente:
Metodologa de Programacin
63
Se ha definido en el diccionario cada flujo del DFD?
Se han definido todos los componentes de los datos en el diccionario?
Se ha definido ms de una vez algn dato?
Se ha utilizado la notacin correcta para todas las definiciones del diccionario de datos?
Hay elementos de datos en el diccionario que no estn relacionados con los DFD?
5.4 Implantacin del diccionario de datos
En un sistema mediano o grande, el diccionario de datos puede representar una cantidad formidable de trabajo.
No es fuera de lo comn ver un diccionario de datos con varios miles de entradas, e incluso un sistema
relativamente sencillo tendr varios cientos de entradas. As que se debe pensar en cmo desarrollar el
diccionario de datos, porque es probable que la tarea sea demasiado para el analista.
El enfoque ms fcil es hacer uso de una computadora para introducir definiciones al diccionario, verificar que
estn completas y consistentes, y producir reportes apropiados. Si su organizacin est utilizando cualquier
sistema moderno de administracin de bases de datos, ya dispone de una ayuda para el diccionario. En este
caso, debiera aprovecharla y utilizarla para construir el diccionario de datos. Sin embargo, debe tener cuidado
de las siguientes limitaciones posibles:
Pudiera verse forzado a limitar los nombres de datos a cierta longitud (por ejemplo, 15 o 32 caracteres).
Esto probablemente no sea un gran problema, pero podra ser que el usuario insista en un nombre
como destino-del-envo-del-cliente y que su paquete de elaboracin de diccionarios lo obliga a
abreviar esto a: dest-env-clien.
Podra haber otras limitaciones artificiales para el nombre. Por ejemplo, el carcter "-" pudiera no
permitirse, y podra verse forzado a utilizar en su lugar el carcter "_". O podra verse obligado a utilizar
prefijos (o sufijos) en todos los nombres, para indicar el nombre del proyecto de desarrollo del sistema,
lo cual lleva a nombres como:
ctas.pag.GHZ345P14. numera_telfono_vendedor
Podra verse obligado a asignarle atributos fsicos (por ejemplo, nmero de bytes, o bloques de
almacenamiento en disco, o representaciones como decimales redondeados) a un dato, aun cuando no
sea cuestin del usuario. El diccionario de datos que se discute en este captulo debe ser un diccionario
de anlisis y no debiera requerir decisiones de implantacin innecesarias o irrelevantes.
Si est trabajando en un proyecto donde no tiene acceso a un paquete para elaboracin de diccionarios de
datos o a un paquete automatizado de herramientas para analista, o a una computadora personal o un sistema
procesador de palabras, entonces debera 1) renunciar y encontrar un mejor empleo, o 2) conseguir su propia
computadora personal, o 3) hacer ambas cosas.
6 Especificaciones de proceso
La especificacin del proceso es la descripcin de qu es lo que sucede en cada burbuja primitiva de nivel ms
bajo en un DFD. Varios textos tambin utilizan el trmino minispec (como abreviatura de especificacin en
miniatura) como alternativa de especificacin de proceso. Sin importar el nombre, el propsito de una
especificacin de proceso es bastante claro: define lo que debe hacerse para transformar entradas en salidas.
Es una descripcin detallada de la poltica de negocios del usuario que cada burbuja lleva a cabo.
Existe una variedad de herramientas que podemos utilizar para producir una especificacin de proceso: tablas
de decisiones, lenguaje estructurado (espaol, ingls, etc.), pre/post condiciones, diagramas de flujo, etc. A
pesar de que la mayora de los analistas estn a favor del lenguaje estructurado, debe recordar que se puede
usar cualquier mtodo mientras satisfaga dos requerimientos cruciales:
La especificacin del proceso debe expresarse de una manera que puedan verificar tanto el usuario
como el analista. Precisamente por esta razn se evita el lenguaje narrativo como herramienta de
especificacin: es notoriamente ambiguo, sobre todo si describe acciones alternativas (decisiones) y
acciones repetitivas (ciclos). Por naturaleza, tambin tiende a causar gran confusin cuando expresa
condiciones booleanas compuestas (esto es, combinaciones de los operadores booleanos AND, OR y
NOT) (y, o, no, respectivamente).
El proceso debe especificarse en una forma que pueda ser comunicada efectivamente al pblico amplio
que est involucrado. A pesar de que el analista es tpicamente quien escribe la especificacin del
proceso, habitualmente ser un pblico bastante diverso de usuarios, administradores, auditores,
personal de control de calidad y otros, el que leer la especificacin del proceso. Una especificacin
pudiera expresarse tal vez con clculo de predicados, o en Pascal, o en un enfoque de diagramacin
formal como USE-IT de Higher Order Software; pero de nada sirven esas especificaciones si la
Metodologa de Programacin
64
comunidad usuaria se rehusa a verlas. Lo mismo pudiera suceder con las tablas de decisiones, con el
lenguaje estructurado o con otras herramientas; en gran medida esto es funcin de la personalidad,
antecedentes y humor de los usuarios con los que trate.
Como se mencion anteriormente, la mayora de los analistas usan el lenguaje estructurado como mtodo
favorito para escribir especificaciones de proceso. Tal vez sea ms importante sealar que la mayora de los
analistas y de las organizaciones utilizan una herramienta para escribir todas sus especificaciones. Esto es, en
mi opinin, un gran error: usted debe sentirse libre para utilizar una combinacin de herramientas de
especificacin, segn a) las preferencias del usuario, b) sus propias preferencias y, c) la naturaleza propia de
los diversos procesos.
Una buena herramienta de especificacin de proceso debe tambin tener una tercera caracterstica: no debe
imponer (o implicar) decisiones de diseo e implantacin arbitrarias. A menudo esto es muy difcil, pues el
usuario, de quien depende la "poltica" que realizar cada burbuja en el DFD, suele escribirla en los trminos en
los que la lleva a cabo en la actualidad. Su trabajo como analista consiste en destilar de esto la esencia de lo
que dicha poltica es y no cmo se lleva a cabo hoy en da.
Considere el siguiente ejemplo: el analista discute un pequeo fragmento del sistema, como lo ilustra la figura.
Quiere desarrollar una especificacin de proceso para la burbuja etiquetada CALCULAR FACTOR-W. Dado
que el analista no est familiarizado con la aplicacin, entrevist al usuario para aprender que la poltica a
seguir para calcular los factores-W para cualquier valor de entrada x es la siguiente:
1. El factor-W no se produce como resultado de un solo clculo. De hecho, tenemos que empezar por
hacer una adivinanza. El usuario dice que en lo particular le gusta usar el 14 como primer intento de
adivinar.
2. Luego volvemos a adivinar. Esto se hace dividiendo el nmero que acabamos de adivinar entre el
nmero x con el que comenzamos.
3. Luego tomamos el resultado de dicho clculo y se lo restamos al nmero que acabamos de adivinar.
4. Tomamos el resultado del paso 3 y lo dividimos entre dos. Esto se convierte en nuestro nuevo nmero
adivinado.
5. Si el nuevo nmero adivinado y el anterior son muy cercanos, digamos con diferencia menor a 0.0001,
entonces nos podemos detener; el nuevo nmero adivinado es el factor-W. De otro modo, regrese al
paso 2 y vuelva a repetir todo.
Podra argumentarse que esta especificacin de proceso es difcil de leer y entender pues est escrita en
lenguaje narrativo. De hecho, la descripcin siguiente es ms compacta (note que las barras verticales "I" en el
HASTA significan el "valor absoluto de" la expresin que encierran).
factorW
0
= 14
REPITE para N = 0 en pasos de 1
factorW
N+1
= (factorW
N
-(X/factorW
N
))/2
HASTA |factorW
N+1
- factorW
N
I < 0.0001

Sin embargo, incluso esto tiene fallas: describe una poltica en trminos de una implantacin de procedimiento
particular. La poltica, como pudiera ser evidente (pero que igualmente pudiera no serlo), es el algoritmo de
Newton-Haphson de aproximacin a la raz cuadrada. La siguiente especificacin de proceso describe la misma
poltica, pero da al diseador/programador completa libertad para escoger su propio algoritmo:
PRECONDICION
Existe un nmero X no negativo
POSTCONDICION
Se produce un factorW tal que
X = factorW * factorW

El programador puede en efecto optar por usar el algoritmo del usuario para calcular la raz cuadrada, pero no
debera sentirse restringido por el analista a hacerlo. De hecho, la atencin extravagante al algoritmo del
Metodologa de Programacin
65
procedimiento, sobre todo en la primera versin de la especificacin anterior, impeda por completo ver lo que el
proceso era en realidad.
Antes de explorar las diversas herramientas de especificacin de proceso, debera hacerse nfasis en un
punto: las especificaciones de proceso slo se desarrollan para los procesos de ms bajo nivel en un conjunto
de diagramas por niveles en un DFD. Como se ve en la siguiente figura, los procesos de mayor nivel se definen
por medio de la red de procesos del nivel inmediato inferior. En otras palabras, la especificacin de proceso
para una burbuja de nivel superior es el DFD de nivel inferior.
Escribir una especificacin de proceso adicional en lenguaje estructurado sera superfluo y redundante; esto es,
creara una especificacin ms difcil de actualizar.

6.1 Lenguaje estructurado
El lenguaje estructurado, como el nombre indica, es "lenguaje espaol (o ingls u otro) con estructura". Es
decir, es un subconjunto de todo el idioma con importantes restricciones sobre el tipo de frases que pueden
utilizarse y la manera en que pueden juntarse dichas frases. Tambin se conoce con nombres como PDL
(siglas en ingls de lenguaje de diseo de programas) y PSL (lenguaje de planteamiento o especificacin de
problemas). Su propsito es hacer un balance razonable entre la precisin del lenguaje formal de programacin
y la informalidad y legibilidad del lenguaje cotidiano.
Una frase en lenguaje estructurado puede consistir en una ecuacin algebraica, por ejemplo,
x=(Y*Z)/(Q+14)

o en una sencilla frase imperativa que consista en un verbo y un objeto. Ntese que esta frase no tiene el punto
y coma que termina una instruccin en muchos lenguajes de programacin; puede o no terminar con un punto
("."), dependiendo de sus gustos en esta materia. Adems, note que las frases que describen los clculos
pueden usarse con prefijos de los verbos CALCULAR, AADIR, FIJAR, etc., por lo que se pudo haber escrito el
ejemplo anterior as:
CALCULAR X = (Y*Z)/(Q+14)

y tambin se tienen clculos expresados en lenguaje, como los siguientes:
FIJAR IMPUESTO A 13
SUMAR 3 A X
MULTIPLICAR PRECIO UNITARIO POR CANTIDAD
DIVIDIR GANANCIAS ACTUALES ENTRE PERDIDAS ACTUALES
Los verbos deben escogerse de entre un pequeo grupo de verbos orientados a la accin tales como:
Metodologa de Programacin
66
CONSEGUIR (o ACEPTAR o LEER)
PONER (o MOSTRAR o ESCRIBIR)
ENCONTRAR (o BUSCAR o LOCALIZAR)
SUMAR
RESTAR
MULTIPLICAR
DIVIDIR
CALCULAR
BORRAR
ENCONTRAR
VALIDAR
MOVER
REEM PLAZAR
FIJAR
ORDENAR
En muchas organizaciones se llega a la conclusin de que entre 40 y 50 verbos son suficientes para describir
cualquier poltica dentro de una especificacin de proceso.
Los objetos (el tema de las frases imperativas sencillas) deben consistir slo en datos que se han definido en el
diccionario o ser trminos locales. Los trminos locales son aquellos que se definen explcitamente en una
especificacin de proceso individual; slo son conocidos, relevantes y con significado dentro de dicha
especificacin de proceso. Un ejemplo tpico de trmino local es un clculo intermedio, que se utiliza para
producir una salida final del proceso. Por ejemplo, la especificacin de proceso en lenguaje estructurado que se
muestra a continuacin examina una serie de registros de pedidos en el almacn PEDIDOS, para calcular un
total diario:
total-diario = 0
HACER MIENTRAS haya ms pedidos en PEDIDOS con fecha-de-pedido = fecha de hoy
LEER el siguiente PEDIDO en PEDIDOS con fecha-de-pedido = fecha de hoy
MOSTRAR a Contabilidad nmero-de-pedido, nombre-del-cliente y cantidad-total.
total-diario = total-diario + cantidad-total
FIN HACER
MOSTRAR a Contabilidad total-diario

Finalmente, el lenguaje estructurado permite que se combinen frases en unas cuantas formas limitadas que se
toman de las construcciones acostumbradas de la programacin estructurada.
La construccin SI-ENTONCES-SINO se utiliza para describir frases alternativas que se deben realizar
segn el resultado de la decisin binaria. La construccin SI-ENTONCES-SINO puede tomar cualquiera de
las formas siguientes:
SI condicin-1
frase-1
FIN SI
o bien
SI condicin-1
frase-1
SINO
frase-2
FIN SI
De esta forma, el analista puede escribir:
Si el cliente vive en Concepcin
aadir cliente a PROSPECTOS-DE-MERCADO
FIN SI
o bien
SI edad-del-cliente es mayor que 65
fijar cuota a cuota-ancianos
SINO
fijar cuota a cuota-normal
FIN SI
Metodologa de Programacin
67
La construccin CASO se utiliza para describir frases alternativas que se efectuarn basndose en los
resultados de una decisin multivaluada (en contraste con la decisin binaria que tiene lugar con la
construccin SI-ENTONCES). La construccin CASO toma la forma general:
HACER CASO
CASO variable = valor-1
Frase-1
. . .
CASO variable = valor-n
frase-n
SINO
frase-n+1
FIN CASO
Por lo que el analista puede escribir:
HACER CASO
CASO edad-del-cliente < 13
fijar cuota a cuota-nios
CASO edad-del-cliente > 12 y edad-del-cliente < 20
fijar cuota a cuota-adolescente
CASO edad-del-cliente > 19 y edad-del-cliente < 65
fijar cuota a cuota-adultos
SINO
fijar cuota a cuota-ancianos
FIN CASO

O, como otro ejemplo, considere la siguiente porcin de una especificacin de proceso en lenguaje
estructurado:
HACER CASO
CASO estado = "NY"
fijar impuesto-de-venta a 0.0825
CASO estado = "NJ"
fijar impuesto-de-venta a 0.07
CASO estado = "CA"
fijar impuesto-de-venta a 0.05
SINO
fijar impuesto-de-venta a 0
FIN CASO

Ntese que la clusula SINO suele usarse para abarcar situaciones que el usuario se olvida de especificar
y por las que el analista se olvida de preguntar; a menudo llevar a discusiones entre el usuario y el
analista que de otra manera no sucederan sino hasta despus de puesto en operacin el sistema.
Considere el siguiente ejemplo:
HACER CASO
CASO forma-de-pago = "efectivo"
fijar descuento a 0.05
CASO forma-de-pago = "tarjeta-de-crdito"
fijar descuento a 0.01
SINO
fijar descuento a 0
FIN CASO

El usuario podra cuestionar esta especificacin del proceso y preguntar por qu el analista incluy el
SINO; el analista pudiera responder preguntando acerca de pagos con cheque, cheques de viajero,
monedas de oro e intercambios.
La construccin HACER-MIENTRAS se usa para describir una frase que deber llevarse a cabo
repetitivamente hasta que alguna condicin booleana se haga verdadera. Toma la forma general:
HACER-MIENTRAS condicin-1
frase-1
FIN HACER
Metodologa de Programacin
68

La prueba (en el ejemplo anterior, la "condicin-1") se hace antes de que se ejecute la frase-1, por lo cual,
si la condicin no se satisface, es posible que la frase-1 se ejecute cero veces. Por ejemplo, el analista
puede escribir:
HACER-MIENTRAS haya ms artculos en el pedido-del-cliente
precio-extendido = precio-unitario*cantidad-de-unidades
FIN HACER

Muchas organizaciones incluyen otra estructura que ejecuta una frase especificada por lo menos una vez
antes de hacer una prueba para ver si debe repetirse. Esta variante, usualmente conocida como la
construccin REPITE-HASTA, tiene la siguiente forma:


REPITE
frase-1
HASTA condicin-1

Se pueden construir frases compuestas a partir de combinaciones de frases sencillas y las estructuras sencillas
que se presentaron anteriormente, de acuerdo con las siguientes reglas:
1. Una secuencia lineal de frases sencillas equivale (estructuralmente) a una frase sencilla. As que la
secuencia
frase-1
frase-2
. . .
frase-n
es estructuralmente equivalente a una frase sencilla nica y puede ser sustituida dondequiera que se
espere una frase sencilla. Esto permite construir estructuras como la siguiente:
SI condicin-1
frase-1
frase-2
SINO
frase-3
frase-4
frase-5
FIN SI
o bien
HACER MIENTRAS condicin-1
frase-1
frase-2
frase-3
FIN HACER

2. Una construccin SI-ENTONCES-SINO sencilla se considera estructuralmente equivalente a una frase
nica sencilla. Esto permite que las estructuras SI-ENTONCES-SINO se aniden dentro de otras estructuras
iguales, o dentro de estructuras HACER-MIENTRAS, o dentro de estructuras CASO. Por ejemplo:
SI condicin-1
frase-1
SI condicin-2
frase-2
frase-3
SINO
frase-4
frase-5
FIN SI
frase-6
SINO
frase-7
SI condicin-3
Metodologa de Programacin
69
frase-8
FIN SI
frase-9
FIN SI

3. Una estructura HACER-MIENTRAS sencilla se considera estructuralmente equivalente a una frase nica
sencilla. Esto permite que las estructuras HACER-MIENTRAS se aniden dentro de otras estructuras
iguales, o dentro de estructuras SI-ENTONCES-SINO, o dentro de estructuras CASO. As, se puede tener
una especificacin en lenguaje estructurado de la siguiente naturaleza:
gran-total= 0
HACER-MIENTRAS haya ms pedidos que procesar
total-de-pedidos = 0
LEER el siguiente pedido de PEDIDOS
HACER-MIENTRAS haya ms artculos en el pedido
total-de-pedidos = total-de-pedidos + nmero-de-artculos
FIN MACER
MOSTRAR nmero-de-pedido, total-de-pedidos
gran-total = gran-total + total-de-pedidos
FIN MACER
MOSTRAR gran-total

4. Una estructura sencilla CASO se considera estructuralmente equivalente a una frase nica sencilla. Esto
permite que las estructuras CASO se aniden dentro de otras iguales, dentro de estructuras SI-ENTONCES-
SINO o dentro de estructuras HACER-MIENTRAS.

Como puede verse, esto permite construir arbitrariamente descripciones complejas de polticas de negocios,
que a la vez mantienen un control estricto sobre el vocabulario, organizacin y estructura de la descripcin. Sin
embargo, esta complejidad es tambin la principal desventaja del lenguaje estructurado: si el analista compone
una especificacin de proceso demasiado compleja para ser entendida y verificada por el usuario, entonces
fall. Esto usualmente se puede evitar mediante las siguientes tres reglas:
1. Restrinja la especificacin de proceso en lenguaje estructurado a una sola pgina de texto (por ejemplo,
una hoja de 8 x 11, que son 66 lneas de texto en un sistema procesador de palabras). Si la
especificacin ocupa ms de una pgina, entonces el analista (con la ayuda del usuario) debe pensar
en una forma totalmente distinta de formular la poltica (por ejemplo, escoger un algoritmo diferente,
ms sencillo). Si no se puede, entonces es posible que el proceso mismo (esto es, la burbuja dentro
del DFD) sea demasiado complejo, y debe partirse en una red de procesos ms simples de nivel
inferior.
2. No permita ms de tres niveles de anidamiento (es decir, tres niveles de estructuras anidadas SI-
ENTONCES-SINO o tres niveles de estructuras CASO, etc.). En particular, en el caso de estructuras SI-
ENTONCES- SINO, incluso ms de dos niveles de anidamiento es un indicio de que sera preferible
una especificacin mediante una tabla de decisiones.
3. Evite confusiones acerca de los niveles de anidamiento utilizando sangras, como se muestra en los
ejemplos anteriores. Esto se puede lograr y controlar muy fcilmente si est utilizando algn tipo de
auxilio automatizado para desarrollar las especificaciones de proceso (incluso algo tan sencillo como un
sistema estndar de procesamiento de textos). Si las especificaciones de proceso las est tecleando
manualmente alguna persona no familiarizada con la programacin o el anlisis estructurados, tendr
que explicarle con mucho cuidado qu tipo de sangras se desea; tambin debiera revisar con cuidado
el texto resultante para ver que est correcto.
Muchos analistas preguntan si se puede esperar que el usuario lea y entienda una especificacin de proceso
escrita en lenguaje estructurado. En esta rea, mi experiencia ha resultado casi uniformemente positiva: los
usuarios s pueden leer el lenguaje estructurado, con las siguientes advertencias:
1. Tendr que repasar una o dos veces el documento para asegurarse de que entiendan el formato y las
diversas construcciones. En la primera lectura, bien pudiera parecer un documento legal, sobre todo si ha
enfatizado la construccin SI-ENTONCES-SINO y las dems.
2. No se refiera a la especificacin del proceso como "lenguaje estructurado". De ser necesario, refirase a
ella como "una descripcin formal de la poltica de negocios para realizar esta actividad".
Metodologa de Programacin
70
3. Ponga mucha atencin al formato global y la distribucin del documento; la sangra de los bloques anidados
de lgica es de especial importancia. Algunos usuarios prefieren un estilo de sangra de "silueta", es decir,
donde los niveles de sangra se numeran 1.1, 1.1.1, 1.1.1.1, etc.
6.2 OTRAS HERRAMIENTAS DE ESPECIFICACION DE PROCESO
6.2.1 Diagramas de flujo
Se ha evitado hasta ahora el uso de diagramas de flujo en el anlisis, pero esto es reflejo de la falta de inters
actual por ellos ms que una denuncia. Mucho de la crtica hacia ellos result de su mal uso en las dos
siguientes reas:
Como herramienta de alto nivel de modelado de sistemas, los diagramas de flujo son muy malo9. Un
diagrama de flujo muestra una lgica secuencial y de tipo procedimiento; los DFD son una herramienta
ms apropiada para modelar una red de procesos no sincronizados y comunicados entre si.
No hay nada que impida que el analista pueda crear un diagrama de flujo no estructurado y
arbitrariamente complejo, del tipo que se muestra en la figura siguiente.
Sin embargo, si el diagrama de flujo se usa slo para describir lgica detallada y si el analista de sistemas se
limita a los smbolos de elaboracin de diagramas de flujo equivalentes a las construcciones del espaol (u otro
lenguaje) estructurado, entonces no tiene nada de incorrecto su uso. Para crear un diagrama de flujo
estructurado, el analista de sistemas tiene que organizar su lgica con las combinaciones anidadas de los
smbolos de diagrama de flujo que se muestran en la figura siguiente.
Sin embargo, debe sealarse que muy pocos analistas utilizan diagramas de flujo para especificaciones de
proceso (ni, para el caso, para diseo tampoco) Aunque existen herramientas automatizadas pueden usarse
para crear y mantener diagramas de flujo, la verdad es que el lenguaje estructurado, las tablas de decisiones y
las especificaciones de pre/post condiciones son ms fciles de crear y mantener.
7 Diagrama de estructuras
Algunos analistas han usado los diagramas de estructuras para presentar una visin de alto nivel de las
funciones que realiza el sistema, al igual que la descomposicin de funciones en subfunciones, etc.
En algunos medios de usuarios, los diagramas de estructuras pueden ser herramientas de modelado tiles
porque se parecen al diagrama de organizacin ya familiar que describe la jerarqua de gerentes, subgerentes,
etc.
Metodologa de Programacin
71
Un tpico diagrama de estructuras aparece en la siguiente figura; observe que adems de mostrar la jerarqua
funcional muestra las interfaces de datos entre los componentes.
A diferencia de la mayor parte de los diagramas anteriores, el rectngulo en un diagrama de estructura no
representa una declaracin computacional ni un grupo contiguo de declaraciones, sino que representa un
mdulo. (Ejemplos comunes de mdulos son las funciones y los procedimientos de Pascal). Las flechas que
conectan los mdulos no representan declaraciones GOTO sino llamados de subrutinas; la notacin implica
que una subrutina terminar o regresar a donde se llam cuando finalice de realizar su funcin.
El diagrama de estructura se utiliza generalmente como herramienta de diseo para modelar una jerarqua
sincronizada de mdulos en un sistema; por sincronizada entendemos que slo un mdulo se ejecuta en un
tiempo dado, lo cual es una representacin precisa de la manera en la que la mayor parte de las computadoras
comunes trabajan hoy en da.
Por otro lado, el analista necesita una herramienta que le permita mostrar una jerarqua de redes asincrnicas
de procesos; esto se logra de manera efectiva con un conjunto de DFD por niveles.
El diagrama de estructura se utiliza extensamente en el diseo de programas.
7.1 El modelo de implantacin de programas
Dentro de una tarea individual, la computadora opera de una manera no sincronizada: slo se puede llevar a
cabo una actividad a la vez. El modelo ms comn de organizacin de la actividad en una sola unidad
sincronizada es el diagrama de estructura, que muestra la organizacin jerrquica de mdulos dentro de una
tarea. La siguiente figura muestra los principales componentes de un diagrama de estructura.
Debe leerse este pequeo diagrama de estructura de la forma siguiente:
El mdulo A es el mdulo ejecutivo del nivel superior del sistema que consta de los mdulos A y B. La
razn por la cual A se identifica como el mdulo de nivel superior no es porque est topolgicamente
por encima del mdulo B, sino porque ningn otro mdulo lo llama. El mdulo B, por otro lado, se llama
subordinado del mdulo A. (El mdulo A es llamado o invocado por el sistema operativo de la
computadora).
Metodologa de Programacin
72
El mdulo A contiene una o ms instrucciones ejecutables, incluyendo una llamada al mdulo B. Esta
llamada puede hacerse como una declaracin CALL en lenguaje FORTRAN, o simplemente invocando
el nombre de B en otros lenguajes. El diagrama de estructura evita deliberadamente describir cuntas
veces llama el mdulo A al B. Eso depende de la lgica interna del programa dentro del mdulo A. Por
tanto puede haber una instruccin del siguiente tipo dentro del mdulo A:
SI comienza-guerra-nuclear
LLAMA Mdulo-B
EN OTRO CASO
. . .
en cuyo caso el mdulo B pudiera no llamarse jams. Pero tambin puede existir una instruccin del
siguiente tipo en el mdulo A:
HACER MIENTRAS haya ms pedidos en el archivo PEDIDOS
LLAMA Mdulo B
FIN
en cuyo caso el mdulo B puede llamarse miles de veces.
Cuando se llama al mdulo B, la ejecucin del mdulo A se suspende. El mdulo B se empieza a
ejecutar en su primera declaracin ejecutable. Cuando termina, sale o regresa al mdulo A. El mdulo
A contina entonces su ejecucin en el punto donde la suspendi.
El mdulo A puede o no pasar parmetros de entrada al mdulo B como parte de la llamada, y el
mdulo B puede regresar o no parmetros de salida cuando regrese al mdulo A. En el ejemplo que se
muestra en la figura anterior, el mdulo A pasa los parmetros X e Y al mdulo B, y ste le regresa los
parmetros P y Q. Las definiciones detalladas de X, Y, P y Q normalmente se deben encontrar en un
diccionario de datos. La mecnica de la transmisin de los parmetros vara de un lenguaje de
programacin a otro.
En la siguiente figura se muestra un ejemplo de un diagrama de estructura completo. Note que contiene cuatro
niveles de mdulos; esto normalmente representara un programa de alrededor de quinientas a mil
instrucciones, suponiendo que cada mdulo representa alrededor de cincuenta a cien.
Existe una pregunta obvia al llegar aqu: Cmo transforma el diseador un modelo de red de procesos en el
diagrama de flujo de datos en el modelo sincronizado representado por el diagrama de estructura? Varios
textos sobre diseo de sistemas discuten esta cuestin con gran detalle. Como ilustra la siguiente figura, hay
una estrategia de recetas para transformar el modelo de red de flujo de datos en un modelo de diagrama de
estructura sincronizado; de hecho, la estrategia generalmente se conoce como diseo centrado en la
transformacin.
Metodologa de Programacin
73
Esta es tan slo una de diversas estrategias para convertir un modelo de red de flujo de datos en un modelo
jerrquico sincronizado. Note que cada burbuja de proceso en el diagrama de flujo de la figura se convierte en
un mdulo en el diagrama de estructura derivado; sta es una situacin realista si los procesos son
relativamente pequeos y simples (por ejemplo, si la especificacin del proceso ocupa menos de una pgina de
lenguaje estructurado). Adems del mdulo que realiza los procesos de flujo de datos, es evidente que el
diagrama de estructura tambin contiene mdulos destinados a coordinar y administrar la actividad global, y
mdulos que se encargan de traer entradas al sistema y obtener salidas de l.
7.2 Metas y objetivos del diseo
Adems de lograr los objetivos que se especifican en el modelo de implantacin del usuario, el diseador
tambin se ocupa de la calidad global del diseo. La capacidad que los programadores exhiban para implantar
un sistema de alta calidad y libre de errores depende en gran medida de la naturaleza del diseo; de manera
similar, la capacidad de los programadores de mantenimiento para realizar cambios en el sistema despus de
haberlo puesto en operacin depende de la calidad del diseo.
El campo del diseo estructurado ofrece guas para ayuda al diseador a determinar los mdulos, y sus
interconexiones, que mejor realizarn los requerimientos especificados por el analista. Las dos reglas ms
importantes son las referentes al acoplamiento y la cohesin; a continuacin se discuten stas y algunas otras
reglas comunes.
Cohesin. Grado en el cual los componentes de un mdulo (tpicamente las instrucciones individuales
que conforman un mdulo) son necesarios y suficientes para llevar a cabo una sola funcin bien
definida. En la prctica, esto significa que el diseador debe asegurarse de no fragmentar los procesos
esenciales en mdulos, y tambin debe asegurarse de no juntar procesos no relacionados (que se
representan por burbujas en el DFD) en mdulos sin sentido. Los mejores mdulos son aqullos que
son funcionalmente cohesivos (es decir, mdulos en los cuales cada instruccin es necesaria para
poder llevar a cabo una sola tarea bien definida). Los peores mdulos son los que son
coincidentalmente cohesivos (es decir, cuyos cuyas instrucciones no tienen una relacin significativa
entre uno y otro).
Acoplamiento. Grado en el cual los mdulos se interconectan o se relacionan entre ellos. Entre ms
fuerte sea el acoplamiento entre mdulos en un sistema, ms difcil es implantarlo y mantenerlo, pues
entonces se necesitar un estudio cuidadoso para la modificacin o cambio y modificacin de algn
mdulo o mdulos. En la prctica, esto significa que cada mdulo debe tener interfaces sencillas y
limpias con otros, y que se debe compartir un nmero mnimo de datos entre mdulos. Tambin
Metodologa de Programacin
74
significa que un mdulo dado no debe modificar la lgica interna o los datos de algn otro mdulo; lo
que se conoce como una conexin patolgica.
Tamao del mdulo. De ser posible, cada mdulo debe ser lo suficientemente pequeo como para
caber en una sola pgina (o para que pueda desplegarse en una sola pantalla). Desde luego, a veces
no es posible determinar qu tan grande va a ser un mdulo hasta haberlo escrito, pero las actividades
iniciales de diseo a menudo darn al diseador una buena pista de que el mdulo va a ser grande y
complejo. Si es as, debe partirse en uno o ms niveles de submdulos. (En raras ocasiones, los
diseadores crean mdulos que son triviales. Por ejemplo, mdulos que consisten en slo dos o tres
renglones de cdigo. En este caso, pueden juntarse varios en un solo supermdulo mayor).
Alcance del control. El nmero de subordinados inmediatos que un mdulo administrador puede llamar
se conoce como el alcance del control. Un mdulo no debe poder llamar a ms de una media docena
de mdulos de nivel inferior. La razn es evitar la complejidad: si el mdulo tiene, digamos, 25 mdulos
de nivel inferior, entonces probablemente contendr tanta lgica compleja de programa (en la forma de
declaraciones SI anidadas, o de iteraciones HACER-MIENTRAS anidadas, etc.) que nadie lo podr
entender. La solucin es introducir un nivel intermedio de mdulos administradores, como hara un
administrador de una organizacin humana si se ve en la necesidad de tratar de supervisar
directamente a 25 subordinados inmediatos.
Alcance del efecto/alcance del control. Esta regla sugiere que cualquier mdulo afectado por el
resultado de alguna decisin debe ser subordinado (aunque no necesariamente un subordinado
inmediato) del mdulo que toma la decisin. Es un tanto anlogo a la regla de administracin que dice
que cualquier empleado afectado por los resultados de la decisin de algn administrador (es decir,
dentro del alcance del efecto de la decisin) debe estar dentro del alcance de control del administrador
(es decir trabajando entre la jerarqua de personas que se reportan con el administrador). Violar esta
regla en un ambiente de diseo estructurado usualmente lleva paso innecesario de banderas y
condiciones (lo cual incrementa el acoplamiento entre mdulos), la toma redundante de decisiones o
(en el peor de los casos) conexiones patolgicas entre mdulos.

Vous aimerez peut-être aussi