Sistema de Programas (CI-3711)

Tema de la clase del día 04/02/99

Tópico: MODELO DINAMICO


Integrantes

Tulio Arends 96-28179

Di Nardo Manuel 96-28385


[Introducción ] [Traza de eventos ] [Diagrama de estados] [Links] [Bibliografía ]

 

Introducción:

El modelo dinámico, es el que describe comó responde la comunidad de objetos a un estimulo especifico, ya sea este un estimulo interno, es decir generado dentro de la misma clase, o un estimula externo.

Si vemos el estímulo como una perturbación al sistema, queremos ver como reacciona este, es decir, a qué objetos afecta y en que orden lo hace.

Por ejemplo, en el GUI que se ha visto (Ver ejemplos clases anteriores), sólo conocemos la estructura de las clases que conforman el sistema no conocemos ni qué afecta un click de ratón (estimulo externo) ni el comportamiento que desencadena, directamente e indirectamente, en los distintos objetos que conforman la comunidad del GUI.

De hecho, hay áreas donde los requerimientos para el comportamiento dinámico del sistema afecta el diseño estructural propuesto inicialmente. Tipicamene tal es el caso de los sistemas de control en tiempo real.

Estados y Eventos

Ejemplos:

Lo más importante de un evento, es que tiene que ser una acción instantánea, si no es instantánea, entonces no es un evento.

EJEMPLO: SISTEMA DE TELEFONO

Traza de eventos:

  1. Llamador
  2. Destinatario
  3. Línea de teléfono.

El siguiente grafico, representa los diferentes eventos que ocurren al momento de realizar una llamada telefonica comun.

Las tres lineas verticales, representan cada una de las clases que intervienen al momento de realizar la llamada, y las lineas horizontales representan cada uno de los eventos que ocurren a lo largo del tiempo, y la direccion en la que ocurren, es decir quien origina el evento y a cual clase afecta.

Otro punto importante a destacar, es que el tiempo transcurre de arriba hacia abajo, es decir los eventos que se originan primero se encuentran arriba y los que se originan de ultimo estan en la parte inferior del grafico. Los espacios que se encuentran entre cada una de las linea horizontales , representa un estado en particular en el cual se encuentra una clase determinada.

 

Eventos que ocurren al momento de realizar una llamada telefonica.

  1. El llamador descuelga el teléfono.
  2. La línea devuelve una señal de tono para marcar
  3. El llamador manda una señal con cada uno de los dígitos a marcar.
  4. Si el teléfono está desocupado, la línea manda una señal al llamador indicando que esta repicando el teléfono, y manda otra al teléfono del destinatario para que comience a repicar.
  5. El destinatario descuelga el teléfono y manda una señal a la línea.
  6. La línea manda una señal a llamador, finalizando la señal de repique, y manda otra al destinatario para que deje de repicar el teléfono, luego establece la conexión entre el llamador y el destinatario.
  7. Luego de realizar la llamada, el destinatario cuelga y manda una señal a la línea.
  8. Luego el llamador cuelga y manda otra señal a la línea.

NOTA: Este es un ejemplo ficticio, para ilustrar brevemente como se realiza la traza de eventos, sin embargo el proceso de realizar una llamada telefonica es mucho más complejo que lo aqui descrito, y varia segun la compañias involucradas.

DIAGRAMA DE ESTADOS:


Un diagrama de estados relaciona sucesos y estados. Cuando se recibe un suceso, el estado siguiente depende del actual, así como del suceso un cambio de estado es causado por suceso es lo que se llama una transición. Un diagrama de estados es un grafo cuyos nodos son estados, y cuyos arcos dirigidos son transiciones rotuladas con los nombres de los sucesos. Los estados se representan como cuadros redondeados que tienen el nombre del estado, Las transiciones se representan en forma de flechas desde el estado receptor hasta el estado de destino. El rótulo de la flecha es el nombre del suceso que da lugar a la transición. Todas las transiciones que salgan de un estado deben de corresponder a sucesos distintos.

El diagrama de estados especifica la secuencia de estados que causa una cierta secuencia de sucesos. Si un objeto se encuentra en un cierto estado y se produce un suceso cuyo nombre corresponda a una de las transiciones, entonces el objeto pasa al estado que se encuentra en el extremo de destino de la transición. Se dice que la transición se dispara. Si hay más de una transición que sale de un estado, entonces el primer suceso que se produzca dará lugar a que se dispare la transición correspondiente. Si se produce un suceso que no tienen ninguna transición que salga del estado actual, entonces el suceso es ignorado. Una secuencia de sucesos, corresponde a un camino a través del grafo.

Un diagrama de estados describe el comportamiento de una sola clase de objetos. Dado que todas las instancias de una clase tienen el mismo comportamiento, todas ellas comparten el mismo diagrama de estados, por cuanto todas ellas comparten las mismas características de la clase. Pero dado que todo objeto posee sus propios valores y atributos, cada objeto posee su propio estado, que es el resultado de la especial secuencia de sucesos que haya recibido. Y todo objeto es independiente de los demás objetos, y procede a su paso.

Para la construcción del mismo es recomendable, primero realizar los casos de uso, indicando quienes son los actores que van actuar sobre el sistema, y cuales son las acciones que eston realizan, ya que es necesario especificar como responde el sistema ante los estimulos producidos por los usuarios.

 

 

El grafo anterior representa el diagrama de estados de una línea telefónica sencilla, todas las casillas, representan los diferentes estados en los que se puede encontrar la misma, que pueden ser:

  1. LIBRE: libre para poder llamar
  2. TONO DE MARCA: devuelve el tono para empezar a marcar
  3. MARCADO: Se esta marcando un numero
  4. CONECTANDO: Ya se marcó, el numero y la línea esta tratando de conectar la llamada.
  5. REPICANDO: luego que se conecta la llamada, comienza a repicar el teléfono del destinatario.
  6. CONECTADO: Si el destinatario atiende el teléfono, la línea conecta ambos teléfono y comienza la llamada.
  7. DESCONECTADO: Si el destinatario cuelga, pero el llamador no se pasa a un estado de desconectado, en el cual la línea esta ocupada pero no se esta hablando.
  8. # NO VALIDO: Si cuando se esta en el proceso de marcado, se coloca un numero invalido, la línea pasa a un estado de # no valido, en el cual se escucha un todo "especial".
  9. LINEA OCUPADA: Si cuando la línea intenta conectar la llamada, el teléfono del destinatario esta ocupado, la línea pasa a un estado de línea ocupada, en el cual se emite un tono intermitente.
  10. CENTRAL OCUPADA: Si cuando la línea intenta comunicar la llamada, las centrales están sobresaturadas, y no se puede realizar la conexión, la línea pasa a un estado de central ocupada, en el cual se emite un tono parecida al de "línea ocupada" pero más rápida.
  11. LIMBO: este es el estado en el que se encuentra la línea, cuando se levanta el auricular, y no se obtiene una señal para pode empezar al marcar el numero deseado.
  12. TIEMPO AGOTADO: este es un estado "especial", al cual pasa la línea, si se ocupa la misma durante mucho tiempo, pero sin estar conectado a otro teléfono.

En cuanto a las transiciones del grafo, representan los diferentes eventos que pueden ocurrir cuando la linea se encuentra en un determinado estado.

Cuando la linea se encuentra en un estado, y ocurre un evento, se pasa a un nuevo estado, a traves de la transición que representa el evento que acaba de ocurrir.

Por ejemplo, si nos encontramos en el estado de "linea libre", (ver ejemplo linea telefonica) y se descuelga el telefono y hay linea, al seguir esa transición, se llega a un nuevo estado, que en este caso seria el de "tono para marcar", y asi sucesivamente, uno se va trasladando de estado en estado, según los eventos que ocurran.


Enlaces de interes:

 

Roger S. Pressman Web Site

Cetus: El Repositorio de Información sobre Orientación a Objetos

Object Management Group

Página del Taller de Sistemas de Programas (CI3791)

Documentación pagina prof. Theoktisto

Bibliografía :


[Anterior] | [Indice] | [Siguiente]