1 - El Modelo AmbientaL
1 - El Modelo AmbientaL
1 - El Modelo AmbientaL
EL MODELO AMBIENTAL
La estabilidad del medio interno es una condicin primaria para la libertad e independencia de ciertos
cuerpos vivos en relacin con el ambiente que los rodea.
Claude Bernard, Lecons sur les Phenomenes de la Vie Communs aux Animaux
et aux Vegetaux, 1875-1879.
2
resultado de alguna negociacin poltica, o simplemente por accidente. Y eso es algo
que el analista de sistemas usualmente tiene oportunidad de influenciar.
Deseo del usuario por minimizar gastos operativos de algn rea de su negocio.
Esto era particularmente comn en las compaas grandes en los aos 60, y
sucede con muchos negocios pequeos que estn instalando su primera
computadora. La mayor parte de las organizaciones que han tenido
computadoras instaladas durante 10 aos o ms ya aprovecharon las
oportunidades obvias de reducir el personal de oficina.
Deseo del usuario por lograr alguna ventaja estratgica para la lnea de
productos o rea de negocios que opera. El usuario intenta hacerlo organizando
y manejando informacin sobre el mercado para poder producir artculos de
manera ms oportuna y econmica. Un buen ejemplo de esto son las lneas
areas (al igual que muchas otras industrias recientemente desreglamentadas)
donde mejor informacin acerca de tendencias del mercado y preferencias de los
clientes pueden llevar a costos de pasajes e itinerarios de aerolneas ms
eficientes.
Declaracin de propsitos
Diagrama de contexto
Lista de acontecimientos
La declaracin de propsitos
Cmo se entera el sistema sobre nuevos libros que se han publicado y estn
disponibles para la venta?
6
Muchos analistas sienten tambin que la declaracin de propsitos debe resumir
los beneficios tangibles y cuantificables que se logren con el nuevo sistema; por
ejemplo, "el propsito del sistema es reducir el tiempo que se requiere para procesar un
pedido, de tres das a uno". Aunque esto puede ser muy til en proyectos pequeos y
muy definidos, no es fcil de lograr en proyectos ms grandes. En su suele requerirse un
anlisis de costo-beneficio.
18.1.2
El diagrama de contexto
Los datos que el sistema recibe del mundo exterior y que deben procesarse de
alguna forma.
Los almacenes de datos que el sistema comparte con los terminadores. Estos
almacenes de datos se crean fuera del sistema para su uso, o bien son creados en
l y usados fuera.
7
18.1.3
La Lista de acontecimientos
A primera vista, uno pudiera verse tentado a concluir que los flujos de datos A, B
y C son todos indicadores de acontecimientos separados y discretos. Sin embargo,
pudiera resultar que slo el flujo de datos A est asociado con un acontecimiento (por
ejemplo, al flujo de datos lo inicia el terminador). Para procesar un acontecimiento el
sistema explcitamente podra pedir entradas a otros terminadores a lo largo de los flujos
de datos B y C para obtener alguna respuesta.
As que no necesariamente existe una correspondencia uno a uno entre los flujos
de datos del diagrama de contexto y los acontecimientos de la lista de acontecimientos.
En general, cada flujo de datos es un acontecimiento (o, mas precisamente, la indicacin
8
de que ha ocurrido), o bien es requerido por el sistema para poder procesar un
acontecimiento.
Adems de los acontecimientos de tipo flujo, un sistema puede tambin tener
acontecimientos temporales. Como su nombre implica, los acontecimientos temporales
arrancan con la llegada de un momento dado en el tiempo. Algunos ejemplos de
acontecimientos temporales pudieran ser:
9
tiempo real; por ejemplo vea el diagrama de contexto del sistema de control de elevador
en el Apndice G.
18.1.4
El diccionario de datos inicial, que define todos los flujos y almacenes externos
El modelo entidad-relacin de los almacenes externos
10
1 Tales usuarios pudieran no ser importantes en trminos de jerarqua organizacional; pueden con siderarse como
humildes oficinistas, secretarias o administradores. No obstante, las funciones que gatean pudieran ser vitales, y ser crucial modelar
con precisin las entradas que reciben del mundo exterior y las salidas que mandan. La razn de que el analista de sistemas a
menudo olvide hablarle a estas personas es muy sencilla: un usuario de nivel superior (es decir, el jefe) le dir al analista con quin
hablar. "No moleste a mi gente, le dir, "estn todos muy ocupados, por eso requerimos el nuevo sistema. Yo le dir todo lo que
necesita saber sobre el sistema. Como se discuti en el Captulo 3, tal vez no haya forma diplomtica de evitar esto, pero es crucial
revisar el modelo ambiental con cuidado para asegurar que no falta nada.
Es importante dedicar una buena cantidad de tiempo y energa al modelo ambiental, pues a menudo es el punto focal de juntas y presentaciones importantes al
comienzo de la vida de un proyecto de desarrollo de sistemas. De hecho, a veces es la
nica parte del modelo global del sistema que muchos usuarios y administradores de
alto nivel llegarn a ver (los nicos con el dinero necesario para continuar financiando
el proyecto, y con el poder para cancelarlo). Despus de construido y aprobado lo ver
en los pizarrones de avisos, as que es importante que est correcto.
18.2.1
11
12
s se comunican entre s pero, dado que por definicin son externos al sistema, la
naturaleza y contenido de las interacciones terminador-terminador son irrelevantes para
el sistema. Si durante la discusin con los usuarios encuentra que es esencial saber
cundo, por qu o cmo se comunican entre s, entonces los terminadores son parte del
sistema, y deben incluirse dentro de la burbuja de proceso del diagrama de contexto.
2 Este es un escenario poco probable para un proyecto de desarrollo de sistemas tpico, pero se ms y ms a medida que
se usan los diagramas de flujo de datos y las otras herramientas descritas en este libro para construir modelos de empresa. Esto se
puede hacer sin pretender computarizar toda la empresa, simplemente para entender lo que ya existe, sobre todo los datos que la
organizacin requiere para llevar cabo su propsito. El tema de modelos de empresa se discute en Information Engineering for the
Practitioner, de William Inmon (Englewood Clifts, N.J.: Prentice-Hall, 1987), as como en Strategio Data Base Modeling, de James
Martin (Englewood Cliffs, N.J.:Prentice-Hall, 1985).
13
Tres aclaraciones ms acerca de los terminadores:
1. Algunos terminadores tienen un buen nmero de entradas y salidas. Para
evitar un diagrama innecesariamente atiborrado conviene dibujar el terminador ms de
una vez, como muestra la Figura 18.12(a). Note que los terminadores duplicados se
marcan con un asterisco; otra posibilidad es representar los terminadores repetidos con
una diagonal, como muestra la Figura 18. 12(b).
2. Cuando el terminador es una persona individual, generalmente es preferible
indicar el rol que desempea, ms que su identidad; as, la Figura 18.13(a) se prefiere a
la Figura 18.13(b). Hay dos razones para ello: primero, la persona que desempea el
papel puede cambiar con el tiempo, y es deseable que el diagrama de contexto
permanezca estable y preciso incluso si hay cambios de personal. Segundo, una misma
persona puede desempear varios papeles distintos en el sistema; en lugar de mostrar un
terminador etiquetado "Juan Prez" con varios flujos de entrada y salida no
relacionados, es ms significativo mostrar los diversos papeles que Juan Prez
desempea, cada uno como terminador separado.
3. Dado que estamos interesados principalmente en desarrollar un modelo
esencial del sistema, es importante distinguir entre fuentes y manejadores cuando se
dibujan termidores en el diagrama de contexto. Un manejador es un mecanismo,
dispositivo, o medio fsico usado para transportar datos hacia dentro o fuera del sistema.
Dado que a menudo dichos manejadores son familiares y visibles para los usuarios de la
implantacin actual de un sistema, existe la tendencia a mostrar al manejador, en lugar
de la verdadera fuente de los datos. Sin embargo, puesto que el nuevo sistema
generalmente tendr opcin de cambiar la tecnologa mediante la cual los datos se
introducen y sacan del sistema, el manejador no debe mostrarse. As, el diagrama de
contexto de la Figura 18.14(a) se prefiere al que se muestra en la Figura 18.14(b).
14
Como compromiso, sobre todo si el usuario insiste, se puede etiquetar un terminador para mostrar tanto la fuente verdadera como al manejador que introduce o saca
los datos del sistema; esto se ilustra en la Figura 18.14(c).
Los flujos que aparecen en el diagrama de contexto modelan datos que entran y
salen del sistema, adems de las seales de control que recibe o genera. Los flujos de
datos se incluyen en el diagrama de contexto si se ocupan para detectar un
acontecimiento en el ambiente al que deba responder el sistema, o si se ocupan (como
datos) para producir una respuesta. Los flujos de datos tambin pueden aparecer en el
diagrama de contexto para ilustrar datos que estn siendo transportados entre
terminadores por el sistema. Finalmente, los flujos de datos se muestran en el diagrama
de contexto cuando el sistema produce datos para responder a un acontecimiento.
Como ya se ha hecho notar, el diagrama de contexto de un modelo esencial evita
(hasta donde sea posible) mostrar los manejadores cercanos a la implantacin que
introducen y sacan datos de un sistema. Ms an, no se desea mostrar los mensajes y
medios especficos de coordinacin que el sistema y los terminadores pasan entre s
para indicar que estn listos para las entradas o salidas. Se desea evitar diagramas de
contexto como el de la Figura 18.15(a) pues incluye suposiciones sobre la implantacin
que pueden cambiar drsticamente cuando se construye el nuevo sistema.
15
16
17
En lugar de eso, debe dibujarse el diagrama de contexto bajo el supuesto de que las
entradas son causadas e iniciadas por los terminadores, y que las salidas son causadas e
iniciadas por el sistema. Al evitar mensajes extraos y entradas salidas orientadas a la
implantacin, se modela slo el flujo neto de datos.
Sin embargo, habr ocasiones en las que un terminador no inicie las entradas pues, aun
con tecnologa perfecta, el terminador no sabe que el sistema requiere sus entradas.
Similarmente, hay ocasiones en las que el sistema no inicia la generacin de salidas,
debido a que no sabe que el terminador las necesita o desea, ambos casos, el mensaje es
una parte esencial del sistema, y debe mostrarse en el diagrama de contexto; la Figura
18.15(b) tiene un ejemplo. A veces resulta conveniente mostrar el mensaje y el
correspondiente flujo de entrada o salida con un flujo de dilogo (una flecha de dos
cabezas), como muestra la Figura 18.15(c).3
18.2.2
18
3 No es necesario usar un flujo de dilogo, pero s vuelve ms legible al diagrama de contexto al empaquetar las entradas y salidas
asociadas para hacerlas visibles de inmediato al lector. Adems, utilizar una flecha para mostrar el dilogo, en lugar de dos
separadas, logra un diagrama de contexto menos atiborrado. Esto es importante en los grandes sistemas, donde pudiera haber
incluso cien o ms diferentes interacciones con terminadores externos.
19
Esto pudiera parecer un ejercicio de semntica, pero no lo es. Si describimos el
acontecimiento desde el punto de vista del sistema (por ejemplo, desde dentro, viendo
hacia fuera), se podran identificar errneamente los flujos entrantes que no son
acontecimientos por s mismos, pero que se requieren para poder procesar algn otro
acontecimiento. Por ello, siempre se trata de describir los acontecimientos desde el
punto de vista del ambiente (es decir, desde fuera, viendo hacia dentro).
En la mayor parte de los casos, la manera ms fcil de identificar los acontecimientos
mientes relevantes para un sistema es visualizarlo en accin: examinar cada terminador
y preguntar qu efecto pueden tener sus acciones sobre el sistema. Esto usualmente se
hace en conjunto con los usuarios del sistema desempeando el papel de terminadores.
Sin embargo, debe distinguirse cuidadosamente entre acontecimientos discretos que se
han "empaquetado" accidentalmente como si fuera uno solo; esto sucede a menudo con
acontecimientos de tipo flujo. Debe examinarse el acontecimiento candidato y preguntar
si todas sus instancias involucran los mismos datos; si en algunas instancias estn
presentes los datos, y ausentes en otras, podra en realidad haber dos acontecimientos
distintos. Por ejemplo, si se ve de cerca el acontecimiento "el cliente hace un pedido", se
encontrara que algunas instan incluyen el dato "identificacin del vendedor" y otros no;
y podra encontrarse que la respuesta del sistema es diferente cuando participa un
vendedor que cuando no. Por ello, podra ser ms apropiado tener dos acontecimientos
separados: "el cliente hace un pedido" y "l vendedor tramita el pedido del cliente".
Adems, tenga en mente que la lista de acontecimientos debe incluir no slo las
interacciones normales entre el sistema y sus terminadores sino tambin situaciones de
falla. Dado que se est creando un modelo esencial, no hay que preocuparse por fallas
del sistema; pero se deben tomar en cuenta posibles fallas o errores causadas por los
terminadores. Como sealan Paul Ward y Stephen Mellor en Structured Development
for Real-Time Systems (Nueva York: YOURDON Press, 1985).
Puesto que los terminadores estn por definicin fuera de las fronteras del intento de construccin de
sistema representado por el modelo, los realizadores no pueden modificar la tecnologa de los
terminadores para mejorar su confiabilidad. En lugar de ello, deben construir respuestas para los
problemas de los terminadores en el modelo esencial del sistema. Un enfoque til para modelar respuestas
a los problemas de terminado es construir una lista de acontecimientos "normales" y luego preguntar, para
cada acontecimiento, "Necesita el sistema responder si este acontecimiento deja de ocurrir como se
espera?"
Por ejemplo, nuestra lista de acontecimientos para el Sistema de Pedido de Libros Ajax
(Figura 18.5) inclua un acontecimiento llamado "el pedido de reimpresin de libro llega
a la bodega". Pero qu tal si no llega a tiempo (por ejemplo, una semana despus de la
fecha prometida por el impresor)? Qu debera hacer el sistema? Probablemente se
necesitara un acontecimiento adicional iniciado por el sistema para hacer que se
comunique con el impresor y localice el origen del retraso.
18.2.3
20
Podra encontrarse tambin hablando con personas enteradas de todo lo que entra y
sale del sistema; algunos usuarios pueden proporcionar esta informacin, o a la vez los
programadores encargados del mantenimiento de la versin actual del sistema puedan
saber algo al respecto. Esto ofrecer las piezas del diagrama de contexto como punto de
partida. Pueden discutirse entonces las transacciones que los usuarios mandan al sistema
y la respuesta que esperan que d. Con ello se puede crear una lista de acontecimientos
a partir del diagrama de contexto.
Sin embargo, podra haber una situacin en la que el diagrama de contexto no est
disponible. Esto es muy comn, sobre todo al comienzo de algunos proyectos de
desarrollo de sistemas: tal vez no sea fcil identificar los terminadores de los diversos
flujos que entran y salen del sistema. En este caso suele ser ms prctico empezar con
un DER que muestre los objetos y relaciones. Los acontecimientos candidatos pueden
encontrarse a continuacin buscando las actividades u operaciones que ocasionan que se
creen o eliminen relaciones. La creacin de la lista de acontecimientos puede llevar
entonces al desarrollo del diagrama de contexto; esto se lustra en la Figura 18.16.
Por ejemplo, suponga que se han identificado los objetos CLIENTE y LIBRO en un
sistema de publicaciones; el usuario podra tambin decir que existe una relacin
"pedidos" entre CLIENTE y LIBRO. Un acontecimiento probable, entonces, sera una
accin que crea una instancia de la relacin pedidos; otro acontecimiento sera una
accin que elimine una instancia de una relacin. Esto llevara a identificar El cliente
pide un libro" y "El cliente cancela su pedido del libro" como acontecimientos en la lista
de acontecimientos. No hace falta mucha investigacin para darse cuenta de que
"cliente" es un terminador para el sistema (mientras que "libro" no lo es); se podra
entonces comenzar por dibujar el diagrama de contexto.
Cuando se termine con ambos componentes del modelo ambiental ser posible
confirmar lo siguiente:
El sistema necesita cada flujo de entrada del diagrama de contexto para reconocer que
ha ocurrido un acontecimiento; debe necesitarlo para producir una respuesta a un
acontecimiento, o ambas cosas.
Cada flujo de salida debe ser respuesta a un acontecimiento.
Cada acontecimiento no temporal de la lista de acontecimientos debe tener entradas a
partir de las cuales el sistema pueda detectarlo.
Cada acontecimiento debe producir salidas inmediatas como respuesta bien almacenar
los datos que luego sern salidas (como respuesta o te de una respuesta a algn otro
acontecimiento), o debiera ocasionar un cambio en el estado del sistema (como indica el
diagrama de transicin de estados).
21
18.3
RESUMEN
22
PREGUNTAS Y EJERCICIOS
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
23
30. Cmo puede estar seguro el analista de que ha identificado todos los
terminadores en el diagrama de contexto?
31. Qu es un manejador? Qu diferencia hay entre una fuente y un manejador?
32. Por qu deberan las fuentes, y no tanto los manejadores, aparecer en un
diagrama de contexto?
33. Qu debe hacer el analista si el usuario insiste en mostrar los manejadores en un
diagrama de contexto?
34. Bajo qu condiciones se muestran los flujos en un DFD?
35. Por qu en general no deben mostrarse los mensajes y la sincronizacin en un
diagrama de contexto?
36. Qu significa el trmino flujo neto de datos?
37. Bajo qu condiciones no inicia las entradas un terminador en un sistema?
38. Bajo qu condiciones el sistema no inicia las salidas al terminador?
39. Qu debe desarrollarse primero, el diagrama de contexto o la lista de acontecimientos? Por qu?
40. Cules son las cuatro cosas que deben revisarse para asegurar que el modelo
ambiental es correcto?
41. Qu tiene mal el siguiente diagrama de contexto?
24
LISTA DE ACONTECIMIENTOS
1. El cliente necesita una "a"
2. El vendedor necesita la factura
3. El vendedor hace un envo
4. El cliente hace un pedido