miércoles, 5 de mayo de 2010

Manual sobre el Modelo de Comportamiento

3.3 Modelo de Comportamiento.


Dentro del modelo de comportamiento se involucrará el desarrollo de un diagrama de flujo de datos y un diagrama de entidad-relación preliminares, además de la elaboración de las entradas iniciales del diccionario.

Para explicar el modelo de comportamiento utilizaremos el enfoque de partición por acontecimiento, el cual incluye los siguientes cuatro pasos:

  1. Se dibuja una burbuja, o proceso, para cada acontecimiento de la lista.
  2. La burbuja se nombra describiendo la respuesta que el sistema debe dar al acontecimiento asociado.
  3. Se dibujan las entradas y salidas apropiadas de tal forma que la burbuja pueda dar la respuesta requerida, y se dibujan los almacenes, como sea apropiado, para la comunicación entre burbujas.
  4. El borrador de DFD que resulta se compara con el diagrama de contexto y la lista de acontecimientos para asegurar que está completo y sea consistente.

El primer paso es directo y mecánico: si existen 25 acontecimientos en la lista, se deben dibujar 25 burbujas.

El segundo paso también es directo y mecánico: a cada burbuja se le da un nombre apropiado, basado en la respuesta requerida. ¿Esto significa que se debe examinar el acontecimiento y preguntar qué respuesta debe dar el sistema a este Acontecimiento?.

El tercer paso definitivamente no es mecánico, pero usualmente es bastante directo. Para cada burbuja dibujada, identifique las entradas que requiere para efectuar su trabajo. Identifique las salidas que cada una produce e identifique los almacenes a los que cada burbuja debe tener acceso. Esto normalmente se hace entrevistando al usuario o usuarios apropiados y concentrándose en cada acontecimiento y su burbuja asociada. Las preguntas son: ¿Qué necesita esta burbuja para hacer su trabajo? y ¿Qué salidas genera?.

En muchos casos el acontecimiento está determinado por el flujo; esto significa que el sistema detecta la ocurrencia de un acontecimiento por la llegada de algún dato de un terminador externo, esto es, se pueden requerir entradas adicionales (de otros terminadores, y de almacenes de datos) para que un proceso produzca su salida requerida.

De manera similar, como parte de la respuesta dibuje las salidas adecuadas producidas por el proceso. En muchos casos, esto implicar devolver salidas a los terminadores fuera del sistema; sin embargo, puede también involucrar salidas que se envían a los almacenes de datos, para ser usadas como entradas de otros procesos.

Los dos casos anteriores se ilustra en la figuras 3.3.1.

Figura 3.3.1:Figura que muestra entradas y salidas de un proceso

El cuarto paso es una actividad de verificación de consistencia. Verifique cada entrada del diagrama de contexto para ver si está conectada con alguna entrada de alguno de los procesos del DFD preliminar, y verifique también que cada salida producida por algún proceso en el DFD preliminar se envíe a un almacén o sea una salida externa incluida en el diagrama de contexto.

Existen dos casos especiales: (1) acontecimientos únicos que causan respuestas múltiples y, (2) acontecimientos múltiples que causan la misma respuesta. En el primer caso, un solo acontecimiento puede causar múltiples respuestas, cada una de las cuales se modela con su propia burbuja en el DFD preliminar.Sólo es apropiado si todas las respuestas usan el mismo flujo de datos de entrada, y sólo si todas las respuestas son independientes entre sí.

De manera inversa, habrá situaciones ocasionales en las que un proceso se asocia con más de un acontecimiento.Es válido y apropiado sólo si la respuesta de la burbuja es idéntica para los diversos acontecimientos, y sólo si los datos de entrada y salida son idénticos para las diversas respuestas a acontecimientos.

Obsérvese que en los ejemplos anteriores ninguno de los procesos en el diagrama de flujo de datos preliminar está conectado con otro; las burbujas no se comunican directamente con otras. En vez de eso se comunican entre sí atravéz de otros almacenes de datos.

Una vez hecho esto se procede a un proceso de limpieza, el cual se describirá posteriormente, para producir un modelo bien organizado del proceso y un modelo de datos para presentarlo al usuario final. Este enfoque se llamó partición por acontecimientos.


3.5 Diseño de Sistemas


Como analista, puede no sentir interés por los detalles del diseño de sistemas o de programas; sin embargo, la labor de analista y la del diseñador no siempre se pueden separar debido a que, el analista debe asegurarse de entender los requerimientos del usuario, mientras que el diseñador debe asegurar que dichos requerimientos se puedan implantar de manera realista con la tecnología computacional actual.

Existe otra razón para tener interés en el diseño de sistemas: tal vez le toque hacerlo. Sobre todo en los sistemas pequeños y medianos, a menudo se espera que el mismo individuo documente los requerimientos del usuario y además desarrolle el diseño.

La actividad de diseño involucra el desarrollo de una serie de modelos. Los modelos más importantes para el diseñador son el modelo de implementación de sistemas y el modelo de implementación de programas. El modelo de implantación de sistemas se divide luego en un modelo de procesador, y uno de tareas.

En el nivel del modelo del procesador, el diseñador del sistema trata principalmente de decidir como asignar el modelo esencial a los distintos procesadores(CPU) y como deben comunicarse entre sí. Existe típicamente una variedad de opciones:

  • El modelo esencial completo se le puede asignar a un solo procesador (solución de computadora principal).
  • Cada burbuja de la figura 0 del DFD del modelo esencial se puede asignar a un procesador distinto (solución distribuida).
  • Se pude escoger una combinación de computadoras principales, minis y micros para minimizar costos, maximizar confiabialidad o lograr algún otro objetivo.

Así como se deben asignar procesos a los componentes apropiados de hardware, los almacenes de datos se deben igualmente asignar. El diseñador debe de decidir si un almacén se realizará como base de datos en el procesador 1 o el 2. Dado que la mayor parte de los almacenes se comparten entre muchos procesos, también debe decidir si se deben asignar copias del almacén a diferentes procesadores.

En el nivel del modelo de tarea, el diseñador debe, procesador por procesador, asignar procesos y almacenes a las tareas individuales de cada uno.

Obsérvese que los procesos dentro de un mismo procesador pueden tener necesidad de comunicarse mediante alguna forma de protocolo de comunicación entre tareas. El mecanismo para hacerlo varía de un proveedor a otro, pero casi siempre se realiza através del sistema operativo del proveedor.

En el modelo de implementación de programas se llega al nivel de una tarea individual. Dentro de una tarea individual, la computadora opera de una manera no sincronizada: sólo se pueden llevar a cabo una actividad a la vez. El modelo más común de organización de la actividad en una sola unidad sincronizada es el diagrama de estructura, que muestra la organización jerárquica de módulos dentro de una tarea.


3.6 Programación.

La programación comienza cuando termina la actividad de diseño. En esta fase se involucra la escritura de instrucciones en C++, Pascal, o algún otro lenguaje de programación para implantar lo que el analista ha especificado y el diseñador ha organizado en módulos.

Como programadores se pueden enfrentar a los siguientes problemas:

  • Productividad: esto es escribir más software, más rápidamente. La principal razón de esto es la enorme cantidad de sistemas y aplicaciones que siguen en espera en las grandes organizaciones.
  • Eficiencia: la eficiencia es de gran importancia en muchos sistemas de tiempo real, y en sistemas que procesan grandes volúmenes de datos (ejemplo, sistemas en bancos, reservación en aerolíneas, compañías de bolsas y compañías de seguro). La meta de eficiencia usualmente entra en conflicto con otras metas discutidas: si se emplea mucho tiempo en la construcción de un sistema eficiente, es probable que sea menos mantenible y menos transportable, y que tenga más errores residuales sutiles, además de que tal vez reduzca la productividad de la persona que escribió el programa.
  • Corrección: se podría argumentar que esto es lo más importante. Después de todo, si el programa no funciona correctamente, no importa que tan eficiente sea. Por ejemplo, se prefieren lenguajes de programación como Ada y Pascal si la corrección es de importancia crítica, en caso de que se estuviera construyendo sistemas de la Guerra de las Galaxias o el sistema de control para un reactor nuclear, porque son de "tipos rígidos".
  • Portabilidad: en algunos ambientes esto es importante; el usuario puede desear ejecutar el mismo sistema en varios tipos distintos de computadoras. Los lenguajes de tercera generación (C, Pascal, FORTRAN, COBOL, etc.) son más portátiles que los de cuarta generación; aunque no existe un lenguaje universalmente portátil. Por ello, además del lenguaje de programación debemos preocuparnos por el estilo de programación, sí la portabilidad es un factor importante.
  • Mantenibilidad: como los sistemas viven durante mucho tiempo, por lo tanto el software debe mantenerse.


4.1 Diagramas de flujo de datos.

El diagrama de flujo de datos (DFD), 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. Siendo éste, una de las herramientas más comúnmente usadas, sobre todo por sistemas operacionales en los cuales las funciones del sistema son de gran importancia y son más complejos que los datos que éste maneja.

Es importante tener en mente: los DFD no sólo se pueden utilizar para modelar sistemas de sistemas de proceso de información, sino también como manera de modelar organizaciones enteras, es decir, como una herramienta para la planeación estratégica y de negocios.

Los componentes de un diagrama típico de flujo de datos:

  • Proceso.
  • Flujo.
  • Almacén.
  • Terminador.

Proceso.

El primer componente del DFD se conoce como proceso. Los sinónimos comunes son burbuja, función, transformación. El proceso muestra una parte del sistema que transforma entradas en salidas. El proceso se representa gráficamente como un círculo, como se muestra en figura 4.1.1(a). Algunos analistas prefieren usar un óvalo o un rectángulo con esquinas redondeadas, como se muestra en la figura 4.1.1(b). Y otros prefieren usar un rectángulo, como se muestra en la figura 4.1(c). Las diferencias entre estas tres formas son puramente cosméticas, aunque obviamente es importante usar la misma forma de manera consistente para representar todas las funciones de un sistema.

Figuras 4.1.1(a),(b)(c): Ejemplos de procesos.

Nótese que el proceso se nombra o describe con una sola palabra, frase u oración sencilla. Un buen nombre para un proceso generalmente consiste en una frase verbo-objeto tal como validar entradas o calcular impuesto. En algunos casos, el proceso contendrá el nombre de una persona o un grupo (por ejemplo, un departamento o una división de una organización), o de una computadora o un aparato mecánico.


Flujo.

Un flujo se representa gráficamente por medio de una flecha que entra o sale de un proceso; un ejemplo se muestra en la figura 4.1.2. El flujo se usa para describir el movimiento de bloques o paquetes de información de una parte del sistema a otra.

Figura 4.1.2: Ejemplo de un flujo.

En la mayoría de los sistemas que modele como analista, los flujos realmente representan datos, es decir, bits, caracteres, mensajes, números de punto flotante y los diversos tipos de información con los que las computadoras pueden tratar.

Nótese que el flujo de la figura 4.1.2 tiene nombre. El nombre representa el significado del paquete que se mueve a lo largo del flujo. Un corolario de esto es que el flujo sólo lleva un tipo de paquete, como lo indica su nombre.

Los flujos muestran también la dirección: 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 fuera de un proceso (o ambas cosas). El flujo que se muestra en la figura 4.1.4(a) por ejemplo, indica claramente que el número se está mandando hacia el proceso denominado Validar números telefónicos. Y el flujo denominado honorarios de entrega de choferes de la figura 4.1.4 (b) claramente indica que es una salida generada por el proceso Generar honorarios de entrega de choferes. Los datos que se mueven a lo largo de dicho flujo viajarán ya sea a otro proceso (como entrada) o a un almacén o a un terminador. El flujo de dos cabezas que se muestra en la figura 4.1.4 (c) es un diálogo, es decir, un empacado conveniente de dos paquetes de datos (una pregunta y una respuesta) el mismo flujo. En el caso de un diálogo, los paquetes de cada extremo de la flecha deben nombrarse, como se ilustra en la figura 4.1.4 (c).

Figuras 4.1.3 (a):Flujo de entrada.

figura 4.1.3 (b):Flujo de salida.

Figura 4.1.3(c): Flujo de diálogo.


Almacén.

El almacén se utiliza para modelar una colección de paquetes de datos en reposo. Se denota por dos líneas paralelas, como lo muestra la figura 4.1.5. De modo característico el nombre que se utiliza para identificar al almacén es el plural del que se utiliza para los paquetes que entran y salen del almacén por medio de flujos.

Figura 4.1.5: Representación gráfica de un almacén.

Para el analista con conocimiento de proceso de datos es tentador referirse a los almacenes como archivos o base de datos; pero un almacén también pudiera consistir en datos almacenados en tarjetas perforadas, microfilm, microfichas, discos ópticos, etc. y un almacén también puede ser un conjunto de fichas de papel en una caja de cartón, nombres y domicilios en un directorio, diversos archivos en un archivero, o varias formas no computarizadas.

Aparte de la forma física que toma el almacén, también existe la cuestión de su propósito: ¿Existe el sistema por causa de un requerimiento fundamental del usuario o por algún aspecto conveniente de la realización del sistema?. En el primer caso, la base de datos existe como un área de almacenamiento diferida en el tiempo, necesaria entre dos procesos que ocurren en momentos diferentes.

Los almacenes se conectan por flujos a los procesos. Así, el contexto en el que se muestra en un DFD es uno de los siguientes (o ambos):

  • Un flujo desde un almacén.
  • Un flujo hacía un almacén.

Terminador.

El terminador gráficamente se representa como un rectángulo, como se muestra en la figura 4.1.6. Los terminadores representan entidades externas con las cuales el sistema se comunica. Comúnmente, puede ser una persona, o un grupo, por ejemplo, una organización externa o una agencia gubernamental, o un grupo o departamento que esté dentro de la misma compañía u organización, pero fuera del control del sistema que se está modelando. En algunos casos, un terminador puede ser otro sistema, como algún otro sistema computacional con el cual se comunica éste.

Figura 4.1.6: Representación gráfica de un terminador .

Existen tres cosas importantes que debemos recordar acerca de los terminadores:

  • Son externos al sistema que se está modelando.
  • Es evidente que ni el analista ni el diseñador del sistema están en posibilidades de cambiar los contenidos de un terminador o la manera en que trabaja.
  • Las relaciones que existan entre los terminadores no se muestran en el modelo de DFD.

Guía para la construcción de DFD.

Además de la regla básica que existen para la elaboración de DFD tal como, los componentes básicos de DFD son: proceso(burbuja) flujo, almacenes y terminadores. Existen otras reglas adicionales que nos permitirán no elaborar DFD erróneos y gratos a la vista de los usuarios.

Las reglas incluyen las siguientes:

  1. Escoger nombres con significado para los procesos, flujos, almacenes y terminadores.
  2. Numerar los procesos.
  3. Evitar los DFD excesivamente complejos
  4. Redibujar el DFD tantas veces como sea necesario estéticamente.
  5. Asegurarse de que el DFD sea lógicamente consistente y que también sea con cualesquiera DFD relacionados con él.
  6. Extensiones del DFD para sistemas de tiempo real

1.- Escoger nombres con significado para los procesos, flujos, almacenes y terminadores.

Un proceso en un DFD puede representar una función que se está llevando a cabo, o pudiera indicar cómo se está llevando a cabo, identificando a la persona, grupo o mecanismo involucrado.

Un buen sistema que se puede utilizar para nombrar procesos es usar un verbo y un objeto. Es decir, escoja un verbo activo (un verbo transitivo 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 número telefónico.
  • Asignar estudiante a la clase.
Los nombres de los procesos (al igual que los nombres de flujos y de terminadores) deben provenir de un vocabulario que tenga algún significado para el usuario.

2.- Numerar los procesos.

Como una forma conveniente de referirse a los procesos en un DFD, muchos analistas numeran cada burbuja. No importa mucho como sea haga esto, de izquierda a derecha, de arriba abajo o de cualquier otra manera servirá, mientras haya constancia en la forma de aplicar los números.

La única cosa que se debe tener en mente es que el sistema de numeración implicará, para algunos lectores casuales de su DFD, una cierta secuencia de ejecución. Esto es, cuando se muestre el DFD a un usuario, él pudiera preguntar: ¿Acaso la burbuja número 1 sucede primero, luego la 2 y luego la 3?. Y esto no es así en absoluto. El modelo de DFD es una red de procesos asincrónicos que se intercomunican, lo cual es, de hecho, una representación precisa de la manera en la que en realidad muchos sistemas operan.

Un ejemplo de la funcionalidad de enumerar las burbujas es el siguiente: Es más fácil en una discusión sobre un DFD decir " burbuja 1" en lugar de "Editar transacción y reportar errores". Pero de mayor importancia aún es el hecho de que los números se convierten en base para la numeración jerárquica.


3.- Evitar los DFD excesivamente complejos.

El propósito de un DFD es modelar de manera precisa las funciones que debe llevar a cabo un sistema y las interacciones entre ellas. Pero otro propósito del DFD es ser leído y comprendido, no sólo por el analista que construyó el modelo, sino por los usuarios que sean los expertos en la materia de aplicación.

Existe una regla principal para la elaboración de un DFD, que se debe tener en mente: no cree un DFD con demasiados procesos, flujos, almacenes y terminadores. En la mayoría de los casos, esto significa que no debería haber más de media docena de procesos y almacenes, flujos y terminadores relacionados en un solo diagrama.

Existe una excepción importante a esto, un diagrama 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.


4.- Redibujar el DFD tantas veces como sea necesario estéticamente.

En un proyecto real de análisis de sistemas el DFD debe dibujarse y volver a dibujar a menudo hasta 10 veces o más, antes de 1) ser técnicamente correcto, 2) ser aceptable para el usuario y 3) estar lo suficientemente bien dibujado como para que no sea embarazoso mostrarlo a las dirección de la organización.

¿Qué hace estéticamente agradable a un DFD?. Esto es obviamente una cuestión de gustos y puede determinarse por normas dispuestas por su organización o por las características particulares de cualquier paquete que utilice de diseño de diagramas basado en una estación de trabajo automatizada. Y la opinión de usuario pudiera ser un tanto diferente de la suya; lógicamente, cualesquiera cosas que el usuario encuentre agradable debe determinar la manera de la que se dibuje el diagrama.


5.- Asegurese de que el DFD sea lógicamente consistente.

Las principales reglas de consistencia son:

  • Evite sumideros infinitos, burbujas que tienen entradas pero no salidas.
  • Evite las burbujas de generación espontánea, que tienen salidas sin tener entradas, porque son sumamente sospechosas y generalmente incorrectas.
  • Tenga cuidado con los flujos y procesos no etiquetados. Esto suele ser un indicio de falta de esmero, pero puede esconder un error aún más grave: a veces el analista no etiqueta un flujo o un proceso porque simplemente no se le ocurre algún nombre razonable.

6.- Extensiones del DFD para sistemas de tiempo real.

Para los sistemas de tiempo real necesitamos alguna manera de modelar flujos de control (es decir señales o interrupciones). Y se requiere una manera de mostrar procesos de control (esto es, burbujas cuya única labor es coordinar y sincronizar las actividades de otras burbujas del DFD). Se muestran gráficamente con líneas punteadas en el DFD.



4.2 Diagramas de Entidad -Relación


El diagrama de entidad-relación (también conocido como DER, o diagrama E-R) es un modelo de red que describe con un alto nivel de abstracción la distribución de datos almacenados en un sistema.

¿Porque podríamos estar interesados en modelar los datos de un sistema?. Primeramente, porque las estructuras de datos y las relaciones pueden ser tan complejas que se deseará enfatizarlas y examinarlas independientemente del proceso que se llevará a cabo. De hecho, esto se da sobre todo si mostramos el modelo del sistema correspondiente a los usuarios ejecutivos quienes se preocupan más por los datos: ¿Qué dato requerimos para manejar nuestro negocio? ¿Quién lo tiene? ¿Quién tiene acceso a ellos?.

Para el analista, el DER representa un gran beneficio: porque enfatiza las relaciones entre almacenes de datos en el DFD que de otra forma se hubiera visto sólo en la especificación de procesos. Por ejemplo, un DER típico se muestra en la figura 4.2.1 Cada una de las cajas rectangulares corresponden a un almacén de datos en DFD y puede verse que hay relaciones que normalmente no se aprecian en un DFD.

Figura 4.2.1: Diagrama de entidad-relación típico.

Hay cuatro componentes principales en un diagrama de entidad-relación:

  1. Tipos de objetos.
  2. Relaciones.
  3. Indicadores asociativos de tipo de objeto.
  4. Indicadores de supertipo/subtipo.

Tipos de objetos

El tipo de objeto se representa en un diagrama de entidad-relación por medio de una caja rectangular; en la figura 4.2.2 se muestra un ejemplo. Representa una colección de objetos (cosas) del mundo real cuyos miembros individuales o instancias tienen las siguientes características:

  • Cada una puede identificarse de manera única por algún medio. Por ejemplo, si se tiene un tipo de objeto conocido como cliente, debemos ser capaces de distinguir uno de otro (tal vez por un número de cuenta, por su apellido, o por su número de Seguro Social).

Figura 4.2.2: Un tipo de objeto

  • Cada uno juega un papel necesario en el sistema que se construye. Es decir, para que el tipo de objeto sea legítimo, debe poder decirse que el sistema no puede operar sin tener acceso a esos miembros.
  • Cada uno puede describirse por uno o más datos. Es decir, un cliente puede describirse por medio de datos tales como nombre, domicilio, límite de crédito y número telefónico.
  • En muchos de los sistemas que desarrolle, los tipos de objetos serán la representación del sistema de algo material del mundo real. Esto significa que los clientes, artículos de inventario, empleados, partes manufacturadas, etc., son objetos típicos. El objeto es algo material del mundo real, y el tipo de objeto es su representación en el sistema. Sin embargo, un objeto pudiera ser algo no material: por ejemplo, horarios, planes, estándares, estratégias y mapas.

    Una persona (o cualquier cosa material) pudiera ser diversos tipos de objetos distintos en distintos modelos de datos, o incluso en un mismo modelo. Juan Pérez, por ejemplo puede ser empleado en un modelo de datos y cliente en otro. También pudiera ser empleado y cliente dentro del mismo modelo.


    Relaciones

    Una relación representa un conjunto de conexiones entre objetos, y se representa por medio de un rombo. La figura 4.2.3 muestra una relación sencilla, que pudiera existir entre dos o más objetos.

    Figura 4.2.3: Una relación

    Cada instancia de la relación representa una asociación entre cero o más ocurrencias de un objeto y cero o más ocurrencias del otro. Así, en la figura 4.2.3, la relación etiquetada como compras puede contener las siguientes instancias individuales:

    • Instancia 1: el cliente 1 compra el artículo 1
    • Instancia 2: el cliente 2 compra los artículos 2 y 3.
    • Instancia 3: el cliente 3 no compra ningún artículo.

    La relación representa algo que debe ser recordado por el sistema: algo que no pudo haberse calculado ni derivado mecánicamente. Así, el modelo de datos de la figura 4.2.3 indica que existe alguna razón relacionada con el usuario para recordar el hecho de que el cliente 1 compra el artículo 1, etc. Y también indica que no existe nada priori que hubiera permitido determinar que el cliente 1 compró el artículo 1 y nada más.

    Notación alternativa para relaciones

    El diagrama E-R son multidireccionales, esto es, puede leerse siguiendo cualquier dirección. Y no muestran cardinalidad, es decir, no muestran el número de objetos que participan en la relación.

    Una notación alternativa utilizada por algunos analistas muestra tanto la cardinalidad como la ordinalidad.


    Indicadores asociativos de tipo de objeto

    El indicador asociativo de tipo de objeto representa algo que funciona como objeto y como relación. Por ejemplo, un cliente que adquiere un artículo. En donde la relación de compra no hace más que asociar un cliente con uno o más artículos. Pero suponga que existen datos que deseamos recordar acerca de cada instancia de una compra (por ejemplo a qué hora del día se hizo). ¿Dónde se podría almacenar dicha información? "Hora del día" no es un atributo de cliente, ni de artículo. Más bien, se asocia "Hora del día" con la compra misma, y esto se muestra en un diagrama como el que ilustra la figura 4.2.5.

    Figura 4.2.5:Indicador asociativo de tipo objeto

    Nótese que compra ahora se escribe dentro de una caja rectangular conectada por medio de líneas dirigidas, a un rombo de relación sin nombre. Esto pretende indicar que compra funciona como:

    • Un tipo de objeto, algo acerca de lo cual se desea almacenar información. En este caso la hora en la cual se realizó la compra y el descuento, que se dio al cliente.
    • Una relación que conecta los dos tipos de objetos cliente y artículo. Lo que significa aquí es que cliente y artículo se mantienen solo. Existirían con o sin la compra.

    Indicadores de subtipo/supertipo

    Los tipos de objetos de subtipo/supertipo consisten en tipos de objeto de una o más subcategorías, conectados por una relación. La figura 4.2.6 muestra un subtipo /supertipo típico: la categoría general es empleado y las subcategorias son empleados asalariados y empleado por horas. Nótese que los subtipos se conectan al supertipo por medio de una relación sin nombre. Note también que el supertipo se conecta con una línea que contiene una barra.

    Figura 4.2.6:Indicador de subtipo/supertipo

    Reglas para la construcción de diagramas de Entidad- Relación.

    El primer DER típicamente se creará a apartir de entrevista iniciales con el usuario, y de su conocimiento de la materia en cuanto al negocio del usuario. Después de desarrollar el primer DER, el siguiente paso es asignar los datos del sistema a los diversos tipos de objetos. Se supone, que se sabe cuales son los datos. Esto puede suceder en cualquier de tres maneras:

    1. Si el modelo del proceso (DFD) ya se ha desarrollado o se está desarrollando paralelamente al modelo de datos, entonces el diccionario de datos ya existirá.

    2. Si el modelo del proceso no se ha desarrollado o no tiene intención de desarrollar, entonces pudiera tener que empezar por entrevistar a todos los usuarios apropiados para construir una lista exhaustiva de datos y sus definiciones.

    3. Si está trabajando con un grupo de administración de datos, hay una buena probabilidad de que ya exista un diccionario de datos, que podría obtener durante el proyecto.

    Existe un número de situaciones en las que los refinamientos del DER llevan a la eliminación de tipos de objetos y relaciones redundantes o erróneas. Las más comunes son:

    1. Tipos de objetos que consisten en un identificador.

    2. Tipos de objetos para los cuales existe una sola instancia.

    3. Tipos asociativos de objetos flotantes.

    4. Relaciones derivadas.


    DICCIONARIO DE DATOS

    Para completar el diccionario de datos habrá que realiza para cada uno de los campos que componen cada tabla:

    1. Nombre: indica el nombre del campo que estamos describiendo.

    2. Tipo: que tipo de dato es el que vamos a almacenar (cadena de caracteres, entero, decimal,...)

    3. Tamaño: indica el numero de elementos que tiene ese campo (ejm: 5 caracteres, 4 dígitos,...), cual es el rango máximo y mínimo y además, en caso de que lo tenga cual es su formato (ejm: fecha de la forma dd/mm/aaaa)

    4. Descripción: que almacena, escrito en texto libre, una breve reseña de qué es lo que almacena el campo que se está describiendo.

    5. Calculado: en caso de que el campo lo sea, detalla cual es el cálculo a partir del que se obtiene dicho campo.

    Ejm: IVA = 16% precio

    6. Derivado: en caso de que el campo lo sea, indica con qué derivación obtenemos dicho campo.

    Ejm: Login: 3 primeras letras del nombre + 4 primeras letras del apellido.

    Si existieran logias coincidentes: añadir un número al final.

    7. Ejemplo: unos pocos ejemplos de los valores que puede contener el campo. Normalmente dentro de dichos ejemplos se suelen adjuntar los valores extremos.



    Tutorial de Modelos y Sistemas

    1.2 Elementos de un Sistema


    Una definición básica de sistema es la siguiente: Grupo de elementos interdependientes o que interactuan regularmente formando un todo, a continuación se enumeran diversos ejemplos.

    Un sistema gravitacional, un sistema termodinámico, un sistema de ríos, un sistema telefónico, un sistema de autopistas, el sistema newtoniano de la mecánica, el sistema de mecanografía al tacto, un sistema taxonómico, el sistema decimal, etcétera.

    James Grier Miller en su libro Living System destaca 19 subsistemas críticos de todos los sistemas vivientes, haciendo una analogía con los mismos se pueden categorizar de la manera siguiente:

    El reproductor, que es capaz de dar origen a otros sistemas similares aquel en el cual se encuentra. En una organización de negocios, pudiera ser una división de planeación de instalaciones que hace nuevas plantas y construye oficinas regionales nuevas.

    La frontera, que mantiene unidos a los componentes que conforman el sistema, los protege de tensiones ambientales y excluye o permite la entrada de diversos tipos de materia-energía e información. En una organización de negocios, esto pudiera constituir la planta misma y los guardias u otro personal de seguridad que evitan el ingreso de intrusos indeseables.

    El inyector, que transporta la materia-energía a través de la frontera del sistema desde el medio ambiente. En una organización de negocios, este pudiera ser el departamento de compras o recepción, que introduce la materia prima, los materiales de oficina, etc.

    El distribuidor, que trae material desde el exterior del sistema y lo reparte desde sus subsistemas a cada componente. En una organización de negocios, pudiera estar conformado por las líneas telefónicas, correo electrónico, mensajeros, bandas, etc.

    El convertidor, que cambia ciertos materiales que ingresan al sistema a formas más útiles para los procesos especiales de dicho sistema particular.

    El productor, que forma asociaciones estables durables por períodos significativos con la materia-energía que ingresa al sistema o que egresa de su convertidor. Estos materiales sintetizados pueden servir para crecimiento o reparación de daños o reposición de componentes del sistema.

    El subsistema de almacenamiento de materia-energía, que retiene en el sistema, durante diferentes períodos, depósitos de diversos tipos de materia-energía.

    El expulsor, que transmite materia-energía hacia el exterior del sistema en forma de desechos o de productos.

    El motor, que mueve el sistema o a sus partes en relación con todo o parte del medio ambiente, o bien que mueve a los componentes del ambiente.

    El soporte, que mantiene las relaciones espaciales apropiadas entre los componentes del sistema, de manera que pueden interactuar sin ser un lastre o estorbo entre ellos.

    El transductor de entrada, que traen señales portadoras de información al sistema, transformándolas en otras formas de materia-energía adecuadas para su transmisión al interior.

    El transductor interno, que recibe de otros subsistemas o componentes del sistema señales que portan información acerca de alteraciones significativas en dichos subsistemas o componentes, transformándolos en otras formas de materia-energía transmisibles en su interior.

    El canal y la red, que están compuestos por una sola ruta en el espacio físico, o bien por múltiples rutas interconectadas, mediante las cuales las señales portadoras de información se transmiten a todas partes del sistema.

    El decodificador, que altera las claves de información que le es introducida por medio del transductor de entrada o del transductor interno, para dejar una clave privada que pueda ser utilizada internamente por el sistema.

    El asociador, que lleva a cabo la primera etapa del proceso de aprendizaje, formando asociaciones duraderas entre elementos de información dentro del sistema.

    La memoria, que lleva a cabo la segunda etapa del aprendizaje, almacenando diversos tipos de información en el sistema durante diferentes períodos.

    El que decide, que recibe información de los demás subsistemas y les transmite información que sirve para controlar al sistema completo.

    El codificador, que altera la clave de información que se le introduce desde otros subsistemas procesadores de información, convirtiéndola, de una clave privada utilizada internamente por el sistema, en una clave pública que pueden ser interpretada por otros sistemas en su medio ambiente.

    El transductor de salida, que emite señales portadoras de información desde el sistema, transformando los marcadores dentro del sistema en otras formas de materia-energía que pueden ser transmitidas por medio de canales en el medio ambiente del sistema.

    1.3 Sistemas de información más comúnes.


    Existen dos categorías básicas en la clasificación de sistemas:

    • Sistemas naturales.
    • Sistemas hechos por el hombre.

    Es conveniente dividir los sistemas naturales en dos subcategorías básicas:

    ? Sistemas físicos.
    ? Sistemas vivientes.

    Los sistemas físicos incluyen:

    ? Sistemas estelares: galaxias, sistemas solares, etcétera.
    ? Sistemas geológicos: ríos, cordilleras, etcétera.
    ? Sistemas moleculares: organizaciones complejas de átomos.

    Los sistemas vivientes comprenden toda gama de animales y plantas que nos rodean, al igual que la raza humana.

    En lo que respecta a los sistemas hechos por el hombre existen una gran diversidad de sistemas construidos, organizados y mantenidos por humanos, tales como: sistemas sociales, sistemas de transporte, sistemas de comunicación, Sistemas de manufactura, sistemas financieros.

    En la actualidad, la mayoría de estos sistemas incluyen las computadoras pero es importante señalar que dichos sistemas existían antes de que hubiera computadoras; de hecho, algunos sistemas continúan por completo sin computarizar y podrían permanecer así durante muchas décadas más. Otros contienen a la computadora como componente, pero también incluyen uno o más componentes no computarizados (o manuales).

    Los sistemas automatizados son sistemas hechos por el hombre que interactuan con o son controlados por una o más computadoras. Aunque hay diferentes tipos de sistemas automatizados, todos tienden a tener componentes en común:

    • El hardware de la computadora: los procesadores, los discos, terminales, impresora, unidades de cinta magnética, etcétera.
    • El software de la computadora: Los programas de sistemas tales como sistemas operativos, sistemas de base de datos, programas de control de telecomunicaciones, etcétera.
    • Las personas: los que operan el sistema, los que proveen su material de entrada y consumen su material de salida, y los que proveen actividades de procesamiento manual en un sistema.
    • Los datos: la información que el sistema recuerda
    • Los procedimientos: las políticas formales e instrucciones de operación del sistema.

    Una división categórica de los sistemas automatizados es la siguiente:

    ? Sistemas en línea.

    ? Sistemas de tiempo real.

    ? Sistemas de apoyo a decisiones.

    ? Sistemas basados en el conocimiento.

    Sistemas en línea: es aquel que acepta material de entrada directamente del área donde se creo. También es sistema en el que el material de salida, o resultado de la computación, se devuelve directamente a donde es requerido.

    Sistemas de tiempo real: puede definirse como aquel que controla un ambiente recibiendo datos, procesándolos y devolviéndolos con la suficiente rapidez como para influir en dicho ambiente en ese momento.

    Sistemas de apoyo a decisiones: Estos sistemas computacionales no toman decisiones por si mismos, sino ayudan a los administradores, y a otros profesionistas "trabajadores del conocimiento" de una organización a tomar decisiones inteligentes y documentadas acerca de los diversos aspectos de la operación.

    Sistemas basados en el conocimiento: Estos sistemas contienen grandes cantidades de diversos conocimientos que emplean en el desempeño de una tarea dada. Los sistemas expertos son una especie de sistemas basados en el conocimiento, aunque ambos términos a menudo se utilizan indistintamente.

    Existen algunos principios generales que son de interés particular para quienes crean sistemas automatizados de información, e incluyen los siguientes:

    • Entre más especializado sea el sistema, menos capaz es de adaptarse a circunstancias diferentes.
    • Cuanto mayor sea el sistema mayor es el número de sus recursos que deben dedicarse a su mantenimiento diario.
    • Los sistemas siempre forman parte de sistemas mayores y siempre pueden dividirse en sistemas menores.
    • Los sistemas crecen.

    2.1 Modelo Clásico.


    En el modelo clásico, cada proyecto atraviesa por algún tipo de análisis, diseño e implantación, aunque no se haga exactamente como se muestra en la figura 2.1.1(a) El ciclo de vida de proyecto utilizado, pudiera diferir del que se muestra en la figura 2.1.1(a) en una o todas de las formas siguientes:

    • La fase de exploración y análisis pudieran juntarse en una sola.
    • Puede no haber fase de estudio de hardware si se cree que cualquier sistema nuevo pudiera instalarse con las computadoras existentes sin causar mayor problema operacional.
    • La fase de diseño preliminar y el diseño de detalles pudieran juntarse en una sola llamada simplemente de diseño.
    • Diversas fases de pruebas pueden juntarse en una sola; de hecho, podrían incluirse con la codificación.

    Figura 2.1:El ciclo de vida del proyecto clásico

    El uso de la implantación ascendente es una de las grandes debilidades del ciclo de vida de los proyectos clásicos. Como se podrá ver en la figura 2.1, se espera que los programadores lleven a cabo primero sus pruebas modulares, luego las pruebas del subsistema, y finalmente las pruebas del sistema mismo. Este enfoque también se conoce como el ciclo de vida de cascada. .

    Muchas organizaciones que desarrollan sistemas únicos, el enfoque ascendente presenta un gran número de dificultades serias:

    • Nada esta hecho hasta que todo esté terminado.
    • Las fallas más triviales se encuentran al comienzo del período de prueba y las más graves al final.
    • La eliminación de fallas suele ser extremadamente difícil durante las últimas etapas de prueba del sistema.
    • La necesidad de prueba con la computadora aumenta exponencialmente durante las etapas finales de prueba.

    La segunda debilidad más importante del ciclo de vida de un proyecto clásico es su insistencia en que las fases se sucedan secuencialmente. Querer esto es una tendencia natural humana: deseamos decir que hemos terminado la fase de análisis del sistema y que nunca tendremos que volver a preocuparnos por ella. El único problema del progreso ordenado es que no es nada realista. Por ejemplo, durante el período que transcurre para desarrollar el sistema pueden cambiar ciertos aspectos del ambiente del usuario (la economía, la competencia, los reglamentos gubernamentales que afectan a las actividades del usuario).

    2.2 Modelo Semiestructurado.


    En la figura 2.2.1 se muestra el modelo semiestructurado, en donde se observa la siguiente diferencia con respecto al modelo clásico:

    "La secuencia ascendente de codificación, la prueba de módulos y prueba del sistema se reemplaza por una implementación de arriba hacia abajo, que es un enfoque en el cual los módulos de alto nivel se codifican y prueban primero, seguidos por los más detallados de bajo nivel".

    Figura 2.2:Modelo semiestructurado

    Dentro del modelo semiestructurado encontramos otros detalles tales como, la implementación descendente que significa que se pondrán en ejecución paralelamente parte de la codificación y de las pruebas. Dándose con lo anterior una retroalimentación entre la codificación, la prueba y la eliminación de las fallas.

    Como último punto acerca del modelo semiestructurado, tenemos que una gran parte del trabajo que se realiza bajo el nombre de "diseño estructurado" es en realidad un esfuerzo manual para enmendar especificaciones erróneas. Otra funcion de los diseñadores, es traducir un documento narrativo, ambiguo, monolítico y redundante a un modelo útil, que sirva de base para derivar la jerarquía de módulos que cumplan con los requisitos del usuario.

    En general con este enfoque de desarrollo de sistemas los diseñadores tenían poco contacto con el analista que escribía la especificación y definitivamente "no tenía contacto con el usuario".

    2.3 Modelo Estructurado.


    En el modelo estructurado se examinan brevemente las nueve actividades y los tres terminadores que lo componen, como se muestra en la figura 2.3.1. Los terminadores son los usuarios, los administradores, y el personal de operaciones. Los cuales se tratan de individuos o grupos que proporcionan la entrada al equipo del proyecto, y son los beneficiados finales del sistema.

    Figura 2.3: Modelo Estructurado


    Actividad 1: La encuesta

    Esta actividad también se conoce como el estudio de factibilidad o como el estudio inicial de negocios. Empieza cuando el usuario solicita que una o más partes de su sistema se automaticen. Los principales objetivos de la encuesta son:

    • Identificar a los usuarios responsables y crear ""un campo de actividad" inicial del sistema.
    • Identificar las deficiencias actuales en el ambiente del usuario.
    • Establecer metas y objetivos para un sistema nuevo.
    • Determinar si es factible automatizar el sistema y de ser así, sugerir escenarios aceptables.
    • Preparar el esquema que se usará para guiar el resto del proyecto.

    En general, la encuesta ocupa sólo del 5 al 10 por ciento del tiempo y los recursos de todo el proyecto, y para los proyectos pequeños y sencillos pudiera ni siquiera ser una actividad formal. A pesar de todo lo anterior, es una actividad importante debido a que la administración pudiera decidir cancelar el proyecto si no parece atractivo desde el punto de vista de costo-beneficio.


    Actividad 2: El análisis de sistemas

    El propósito principal de la actividad de análisis es transformar sus dos entradas - o insumos o factores - principales, las políticas del usuario y el esquema del proyecto, en una especificación estructurada. Esto implica modelar el ambiente del usuario con diagramas de flujo de datos, diagramas de entidad-relación, diagramas de transición de estado, etc.

    El proceso paso a paso del análisis de sistemas implica el desarrollo de un modelo ambiental y el desarrollo de un modelo de comportamiento, los cuales se combinan para formar el modelo esencial que representa una descripción formal de lo que el nuevo sistema debe hacer, independientemente de la naturaleza de la tecnología que se use para cubrir los requerimientos.

    Al final de la actividad de análisis también se debe preparar un conjunto de presupuestos y cálculos de costo y beneficio más precisos y detallados.


    Actividad 3: El diseño

    La actividad de diseño se dedica a asignar porciones de la especificación (modelo esencial) a procesadores adecuados (máquinas o humanos) y a labores apropiadas (o tareas, particiones, etc.) dentro de cada procesador. Dentro de cada labor, la actividad de diseño se dedica a la creación de una jerarquía apropiada de módulos de programas y de interfases entre ellos para implantar la especificación creada en la actividad 2. Además, se ocupa de la transformación de modelos de datos de entidad-relación en un diseño de base de datos.


    Actividad 4: Implantación

    Esta actividad incluye la codificación y la integración de módulos en un esqueleto progresivamente más complejo del sistema final. Por eso, la actividad 4 incluye tanto programación estructurada como implantación descendente.


    Actividad 5: Generación de pruebas de aceptación

    La especificación estructurada debe contener toda la información necesaria para definir un sistema que sea aceptable desde el punto de vista del usuario. Por eso, una vez generada la especificación, puede comenzar la actividad de producir un conjunto de casos de prueba de aceptación desde la especificación estructurada.


    Actividad 6: Garantía de calidad

    La garantía de calidad también se conoce como la prueba final o la prueba de aceptación. Esta actividad requiere como entradas los datos de la prueba de aceptación generada en la actividad 5 y el sistema integrado producido en la actividad 4.


    Actividad 7: Descripción del procedimiento

    Esta actividad implica la generación de una descripción formal de las partes del sistema que se harán en forma manual, lo mismo que la descripción de como interactuarán los usuarios con la parte automatizada del nuevo sistema. El resultado de la actividad 7 es un manual para el usuario.


    Actividad 8: Conversión de bases de datos

    En algunos proyectos, la conversión de bases de datos involucraba más trabajo que el desarrollo de programas de computadoras para el nuevo sistema. En otros casos, pudiera no haber existido una base de datos que convertir. En el caso general, esta actividad requiere como entrada las base de datos actual del usuario, al igual que la especificación del diseño producida por medio de la actividad 3.


    Actividad 9: Instalación

    En esta actividad sus entradas son el manual del usuario producido en la actividad 7, la base de datos convertida que se creó con la actividad 8 y el sistema aceptado producido por la actividad 6. En algunos casos la instalación pudiera significar simplemente un cambio de la noche a la mañana al nuevo sistema; en otros casos, la instalación pudiera ser un proceso gradual, en el que un grupo tras otro de usuario van recibiendo manuales y entrenamiento y comenzado a usar el nuevo sistema.

    3.1 Modelo Esencial.


    El modelo esencial del sistema es un modelo de lo que el sistema debe hacer para satisfacer los requerimientos del usuario, diciendo lo mínimo posible acerca de como se implanta.

    Específicamente, esto significa que cuando el analista habla con el usuario acerca de los requerimientos del sistema, debe evitar describir implantaciones especificas de procesos (burbujas en un diagrama de flujo de datos) en el sistema; es decir, no debe mostrar las funciones del sistema que están siendo realizadas por humanos o por sistemas de computo existentes. Como lo ilustran las figuras 3.1.1(a), ésta opción arbitrarias de cómo podría implantarse el sistema; pero esta decisión debería retrasarse hasta que haya comenzado la actividad de diseño.

    Figuras: 3.1.1(a):Modelo que muestra como hará su labor una función

    La figura 3.1.1(b) muestra un modelo esencial más apropiado de lo que la función del sistema debe realizar sin importar su implantación final.

    Figura 3.1.1(b): Un modelo de cual es la función del sistema

    Lo mismo se da para los flujos y almacenes de datos: el modelo esencial debe describir el contenido de los flujos o almacenes de datos, sin describir el medio (por ejemplo, disco o cinta) u organización física de los datos.

    El modelo esencial consiste en dos componentes principales:

    1.- Modelo ambiental

    2.- Modelo de comportamiento

    Recuerde que es importante desarrollar el modelo esencial de un sistema, pues muchos sistemas de información grandes tienen una vida media de unos 10 a 20 años. Durante ese período se puede esperar que el hardware mejore por lo menos por un factor de mil.

    3.2 Modelo Ambiental.


    Para el analista de sistemas, la labor más difícil en la especificación de un sistema es a menudo determinar qué es parte del sistema y qué no.

    Así, el primer modelo importante que se debe desarrollar como analista es uno que no haga más que definir las interfaces entre el sistema y el resto del universo, es decir, el ambiente. Por razones obvias, este modelo se conoce como el modelo ambiental. Por lo tanto, se necesita saber qué información entra al sistema desde el ambiente exterior, y qué información produce como salida al ambiente externo.

    Otro aspecto crítico del modelo ambiental consiste en identificar los acontecimientos que ocurren en el ambiente al cual debe responder el sistema. No para todos los acontecimientos; después de todo, el ambiente en su totalidad genera un número infinito de acontecimientos. Sólo nos preocupan aquellos que (1) ocurren en el ambiente exterior y (2) requieren una respuesta del sistema.

    En un sistema grande se puede tomar en cuenta una cantidad de factores cuando se están escogiendo las perspectivas del proyecto. Entre los más importantes están los siguientes:

    El deseo del usuario de lograr cierta participación en el mercado para el producto, o incrementarla a más de su nivel actual. Esto se puede hacer ofreciendo un nuevo producto o una mayor funcionalidad de uno existente.

    La legislación establecida por el gobierno federal, estatal, o de la ciudad. Por ejemplo tendría que hacerse un nuevo sistema para considerar los cambios en las leyes sobre impuestos.

    Deseo del usuario por minimizar gastos operativos de alguna área de su negocio. La mayor parte de las organizaciones que han tenido computadoras instaladas durante 10 años o más ya aprovecharon las oportunidades obvias de reducir el personal de oficina.

    Deseo del usuario para lograr alguna ventaja estratégica para la línea de productos o áreas de negocios que opera. Un buen ejemplo de estos son las líneas aéreas donde mejor información acerca de tendencias del mercado y preferencias de los clientes pueden llevar a costos de pasajes e itinerarios de aerolíneas más eficientes.

    A continuación se presentan dos tópicos importantes en el modelo ambiental:

    Herramientas usadas para definir el ambiente

    Construcción del modelo ambiental

    3.2.1 Herramientas usadas para definir el ambiente.


    El modelo ambiental consta de tres componentes:

    1.- Declaración de propósitos.

    2.- Diagrama de contexto.

    3.- Lista de acontecimientos.


    La declaración de propósitos consiste en la declaración textual breve y concisa del propósito del sistema, dirigida al nivel administrativo superior, la administración de los usuarios, y otros que no están directamente involucrados con el desarrollo del sistema.

    El siguiente es un ejemplo de la declaración de propósito típica:

    El propósito del Sistema de Procesamiento de Libros Ajax es manejar todos los detalles de los pedidos de los libros de los clientes, además del envío, facturación y cobro retroactivo a clientes con facturas vencidas. La información acerca de los pedidos de los libros debe estar disponible para otros sistemas, tales como mercadeo, ventas y contabilidad.


    El diagrama de contexto es un caso especial de diagrama de flujo de datos, en donde una sola burbuja representa todo el sistema. La figura 3.2.1 muestra un diagrama de contexto de un sistema de pedidos de libros.

    Figura 3.2.1: Diagrama de contexto

    El diagrama de contexto enfatiza varias características importantes del sistema:

    • Las personas, organizaciones y sistemas con los que se comunica el sistema. Se conocen como terminadores.
    • Los datos que el sistema recibe del mundo exterior y que deben procesarse de alguna forma.
    • Los datos que el sistema produce y que se envían al mundo exterior.
    • 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.
    • La frontera entre el sistema y el resto del mundo.

    La lista de acontecimientos es una lista narrativa de los estímulos que ocurren en el mundo exterior a los cuales el sistema debe responder. A continuación se muestra una lista de acontecimientos para el sistema de pedidos de libros.

    1.- Un cliente hace un pedido (F).

    2.- Un cliente cancela un pedido (F).

    3.- La administración pide un reporte de ventas (T).

    4.- Llega un pedido de reimpresión de un libro a la bodega (C).

    Obsérvese que cada acontecimiento se etiqueta como F,T,C. Con ello se muestra si es de tipo de flujo, temporal, o de control. El orientado a flujos es el que se asocia con un flujo de datos; es decir, el sistema se da cuenta de que ha ocurrido el acontecimiento cuando llega algún dato (o posiblemente varios). Los acontecimientos temporales arrancan con la llegada de un momento dado en el tiempo. Algunos ejemplos de acontecimientos temporales pudieran ser:

    A las 9:00 de la mañana se requiere un reporte diario de todos los pedidos de libros.

    Las facturas deben generarse a las 3:00 PM.

    Se deben generar reportes administrativos una vez por hora.

    Los acontecimientos de control deben considerarse un caso especial del acontecimiento temporal: un estímulo externo que ocurre en algún momento impredecible. A diferencia de un acontecimiento temporal normal, el acontecimiento de control no se asocia con el paso regular del tiempo, por lo que el sistema no puede anticiparlo utilizando un reloj interno.

    3.2.2 Construcción del modelo ambiental


    Construcción del diagrama de contexto

    El diagrama de contexto consiste en terminadores, flujos de datos y flujos de control, almacenes de datos y un solo proceso que representa a todo el sistema. Se analizan uno por uno a continuación.

    La parte más fácil del diagrama de contexto es el proceso; como hemos visto, consiste en una sola burbuja. El nombre dentro del proceso suele ser el nombre del sistema completo o un acrónimo convenido. En la figuras 3.2.2 se muestra un ejemplo.

    Figura 3.2.2: Nombre tipico de proceso para un diagrama de contexto

    Los terminadores se representan con rectángulos en el diagrama de contexto. Se comunican directamente con el sistema a través de flujos de datos o de control, como muestra la figura 3.2.3(a),

    Figura 3.2.3(a):Comunicación directa entre terminado y sistema

    o a través de almacenes externos, como se muestra en la figura 3.2.3(b).

    Figura 3.2.3(b):Comunicación a traves de un almacen externo

    Los terminadores no se comunican entre sí. En realidad, los terminadores si se comunican entre sí pero, dado que por definición son externos al sistema, la naturaleza y contenido de las interacciones terminador-terminador son irrelevantes para el sistema.

    Hay que tomar tres punto mas en consideración de los terminadores:

    1. Algunos terminadores tienen un buen número de entradas y salidas. Para evitar un diagrama innecesariamente atiborrado conviene dibujar el terminador más de una vez. Los terminadores duplicados se marcan con un asterisco.

    1. Cuando el terminador es una persona individual, generalmente es preferible indicar el rol que desempeña, más que su identidad.

    1. Dado que estamos interesados en desarrollar un modelo esencial del sistema, es importante distinguir entre fuente y manejadores. Un manejador es un mecanismo, dispositivo, medio físico usado para transportar datos hacia o fuera del sistema. Dado que a menudo, dichos manejadores son familiares y visibles para los usuarios de la implantación actual de un sistema, existe la tendencia a mostrar al manejador, en lugar de la verdadera fuente de los datos.

    Los flujos que aparecen en el diagrama de contexto modelan datos que entran y salen del sistema, además de las señales 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.


    Construcción de la lista de acontecimiento

    La lista de acontecimiento es un listado textual sencillo de los acontecimientos del ambiente a los cuales debe responder el sistema. Al crear la lista de acontecimiento se debe asegurar de distinguir entre un acontecimiento y un flujo relacionado con un acontecimiento. Por ejemplo, lo siguiente probablemente no sea un acontecimiento:

    "El sistema recibe el pedido del cliente"

    Mas bien, sea el flujo de datos de entrada mediante el cual el sistema se da cuenta de que ha ocurrido el acontecimiento. Un nombre más apropiado para el acontecimiento sería:

    "El cliente hace un pedido"

    La manera más fácil de identificar los acontecimientos para un sistema es visualizarlo en acción: examinar cada terminador y preguntar qué efecto pueden tener sus acciones sobre el sistema.

    La lista de acontecimiento debe incluir no sólo las interacciones normales ente el sistema y sus terminadores sino también situaciones de falla. Como señalan Paul Ward y Stephen Mellor en Structured Development for Real-Time System :

    Puesto que los terminadores están por definición fuera de las fronteras del intento de construcción de sistema representado por el modelo, los realizadores no pueden modificar la tecnología 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 terminadores 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 acontecimiento para el Sistema de Pedido de Libros Ajax incluía un acontecimiento llamado "el pedido de reimpresión de libro llega a la bodega". Pero ¿Qué tal si no llega a tiempo (por ejemplo, una semana después de la fecha prometida por el impresor)? ¿Qué debería hacer el sistema?, Por lo que se necesitaría un acontecimiento adicional iniciado por el sistema para hacer que se comunique con el impresor y localice el origen del retraso.