Вы находитесь на странице: 1из 2

DIAGRAMAS DE MÁQUINA DE ESTADOS: ¿QUÉ PASA DENTRO DE UN

OBJETO?
Los diagramas de secuencia y en general los diagramas de interacción son muy útiles al
momento de representar comportamientos dentro del sistema. Pero en los casos en
que el comportamiento que se quiere modelar consiste en o depende del estado de un
objeto particular, no resultan la mejor elección.

Por ejemplo, si en una aplicación particular es necesario modelar el comportamiento


de un documento que pasa por diferentes estadios recibiendo potencialmente en cada
uno de ellos modificaciones, el comportamiento del objeto encargado de modelar el
documento seguramente será diferente si se tiene en cuenta el estado en que se
encuentra en cada momento. Un objeto que modela una solicitud recién recibida
seguramente se comportará de manera distinta cuando la solicitud es aprobada, o
mientras está a la espera de la aprobación, o si se cancela…

En última instancia, el estado de un objeto es simplemente su condición actual y resulta


reflejado en los valores que tienen los atributos del objeto en un momento
determinado del tiempo. Los cambios en dichos valores, realizados a través de métodos
que los modifican y disparados por eventos externos e internos, representan cambios
en el estado del objeto.

Los modelos de máquinas de estados son utilizados de manera intensa en tipos


particulares de software, tales como sistemas de tiempo real (por ejemplo software
médico de monitoreo de pacientes), o videojuegos (dentro de los cuales por ejemplo es
necesario modelar el comportamiento de un personaje particular, que responde a
estímulos del ambiente, u otros personajes).

Si por ejemplo se quisiera modelar mediante un diagrama de máquina de estados un


aspecto del comportamiento de una puerta, el diagrama resultante podría ser:

En este caso se aprecian los elementos básicos de un diagrama de máquina de estados:


uno o más estados (representados mediante rectángulos de esquinas redondeadas)
unidos mediante transiciones (visualizadas a través de flechas que unen los estados). Se
dice que un estado es activo cuando se llega a él a través de alguna transición y se
convierte en inactivo cuando es abandonado mediante otra transición. El evento que
produce la transición o disparador aparece sobre la flecha correspondiente.
En el caso del ejemplo, una puerta tiene dos estados: abierta y cerrada. La puerta
cambia de estado cuando los disparadores picaporte a la derecha o picaporte a la
izquierda suceden.

El estado inicial de un objeto tiene una notación propia y particular: un círculo relleno
con una flecha que apunta al primer estado del objeto. Este estado inicial representa el
estado en el cual el objeto es creado o construido. Si se aplica este concepto al
diagrama de estados de una solicitud, podría tenerse:

Este diagrama de máquina de estados se leería una solicitud comienza en el estado


abierta. En otras palabras, el objeto solicitud comienza a existir para el sistema cuando
su estado es entregada, es decir cuando un cliente la entrega.

Como ya se definió con anterioridad, las flechas dentro de un diagrama de máquina de


estados representan eventos que causan el paso de un estado a otro. En el caso de la
solicitud que se está trabajando, se puede tener

En este caso, se está indicando que el evento chequeo inicial produce el tránsito del
estado entregada al estado en revisión.

Hasta ahora se han visto simples transiciones activadas por un disparador. Sin embargo,
las transiciones entre estados toman en la mayor parte de los casos formas más
complejas. La notación completa de una transición es de la forma:

Disparador [guarda] / comportamiento


Donde cada uno de los elementos es opcional y representa una parte bien diferenciada
del proceso, así:

Disparador. Define el evento que causa la transición.


Guarda. Es una condición booleana que permite o bloquea la transición. Si se incluye
una guarda en la definición de una transición, la expresión que define la guarda es
evaluada. Si la evaluación retorna un valor verdadero, la transición es efectuada. De lo
contrario, la transición se bloquea.

Вам также может понравиться