Está en la página 1de 2

Diagramas de estado

Los aspectos de un sistema que estn relacionados con el tiempo y con los cambios
constituyen el modelo dinmico (vase [1]). El control es aquella parte del sistema que
describe las secuencias de operaciones que se producen en respuesta a estmulos
externos, sin tener en cuenta los que hagan las operaciones, aquello a lo que afectan, ni
la forma en que sean implementadas.
Los conceptos ms importantes del modelado dinmico son los eventos que
representan estmulos externos, y los estados, que representan los valores de los objetos.
El diagrama de estado es un concepto estndar de las ciencias de la computacin (una
representacin grfica de las mquinas de estados finitos) que ha sido manejado de
distintas maneras en la literatura, dependiendo de su aplicacin.

Eventos y estados
Los valores de los atributos y de los enlaces mantenidos por un objeto son lo que se
denomina su estado. A lo largo del tiempo, los objetos se estimulan unos a otros, dando
lugar a una serie de cambios en sus estados. Un estmulo individual proveniente de un
objeto y que llega a otro es un evento, la respuesta a un evento depende del estado del
objeto que lo recibe, y puede incluir un cambio de estado o el envo de otro evento al
remitente o aun tercer objeto. La trama de eventos, estados, y transiciones de estados
para una clase dada se puede abstraer y representar en forma de un diagrama de estado.
Un diagrama de estado es una red de estados y eventos. El modelo dinmico de un
sistema consta de mltiples diagramas de estado, con un diagrama de estado para cada
clase que posea un comportamiento dinmico importante, y muestra la trama de
actividad para todo el sistema. Todas las mquinas de estado se ejecutan
concurrentemente, y pueden cambiar de estados independientemente. Los diagramas de
estado para las distintas clases se combinan en un nico modelo dinmico a travs de
los eventos compartidos.

Eventos
Un evento es algo que transcurre durante un periodo de tiempo, como el usuario pulsa
el botn izquierdo o bien el vuelo 123 sale para Valencia. Los eventos no tienen
duracin. Por supuesto, no hay nada que sea realmente instantneo; un evento no es ms
que algo que se produce muy rpidamente en comparacin con la granularidad de la
escala temporal de una abstraccin dada.
Un evento puede preceder o seguir lgicamente a otro, o bien los dos eventos pueden
no estar relacionados. El vuelo 123 debe salir de Madrid antes de que pueda llegar a
Valencia; los dos eventos estn relacionados causalmente. El vuelo 123 puede salir
antes o despus que el vuelo 456 salga para Roma. Los dos eventos carecen de relacin
causal. Se dice que dos eventos que no tienen relacin causal son concurrentes; no
tienen efecto entre s. Al modelar un sistema, no intentamos establecer un orden entre
eventos concurrentes, porque pueden producirse en cualquier orden. Todo modelo
realista de un sistema distribuido debe incluir los eventos y actividades concurrentes.

Un evento es una transmisin de informacin de direccin nica entre un objeto y


otro. No es como un llamado a subrutina, que proporciona un valor. En el mundo real,
todos los objetos existen concurrentemente. Un objeto que enva un evento a otro objeto
puede esperar una respuesta, pero la respuesta es otro evento distinto, bajo el control del
segundo objeto, que puede decidir si lo enva o si no.
Todo evento es una ocasin nica, pero aqu se agruparn en clases de eventos a las
que se les dar un nombre para indicar una comunidad de estructura y de
comportamiento. Esta estructura es jerrquica, del mismo modo que una estructura de
clases de objetos. Por ejemplo, el vuelo 123 sale de Valencia y el vuelo 456 sale de
Roma son ambas instancias de la clase de evento salida de vuelo.
Todo evento aporta informacin de un objeto a otro. Algunos eventos pueden ser
simplemente seales de que ha sucedido algo. Mientras que otras clases de eventos
aportan valores de datos. Los valores de datos aportados por un evento son sus
atributos, al igual que los valores de datos que contienen los objetos. Los atributos se
muestran entre parntesis despus del nombre de la clase de evento. La figura siguiente
muestra algunos ejemplos de clases de evento con atributos. Mostrar o no los atributos
es opcional.
Salida de vuelo(lneas areas, nmero de vuelo, ciudad)
Botn del ratn pulsado(botn, situacin)
Cadena tecleada(texto)
Telfono descolgado
Dgito marcado(dgito)
FIG. 5.1 Clases de eventos y atributos
Entre los eventos se cuentan las condiciones de error, as como las circunstancias
normales. Por ejemplo, motor atascado, transaccin abortada y tiempo agotado son
eventos de error tpicos. Los eventos de error no tienen nada distinto; slo nuestra
interpretacin hace de ellos un error.

[1] Rumbaugh et al, Modelado y diseo orientado a objetos, Prentice Hall, 1997.