You are on page 1of 6

Universidad Tecnológica Nacional – Facultad Regional Concepción del Uruguay Análisis de Sistemas

Máquinas de Estados
Introducción El comportamiento reactivo de los objetos en un determinado contexto puede ser descrito formalmente en términos de estados y eventos, usando una máquina de estados. Los objetos que no presentan un pronunciado comportamiento reactivo pueden ser considerados como si siempre estuvieran en el mismo estado. En este caso, no es necesario realizar una máquina de estados. Una máquina de estados es una abstracción de todos los posibles comportamientos de un elemento del dominio de estudio. Todo objeto sigue el comportamiento descrito en la máquina de estados, en un momento dado, en un estado que caracteriza sus evolución interna. Por ejemplo, un semáforo pasa sucesivamente de verde a amarillo, luego a rojo, entonces vuelve a amarillo y luego a verde. Esto es durante toda su vida operacional.

Máquina de estados asociada a un objeto semáforo

Tipos de maquinas de estados En la especificación de UML 2 existen dos tipos de maquinas de estados: ✔ Maquina de estado de comportamoiento ✔ Maquina de estado de protocolo La maquina de estado de comportamiento utiliza estados, transiciones y eventos para definir el comportamiento de un objeto del contexto. Solamente se puede utilizar si el elemento tiene un comportamiento a modelar. La maquina de estado de comportamiento pueden especificar una o mas acciones que se ejecutan cuando se entra al estado, se esta en el estado o se sale de esté. La maquina de estado de protocolo utiliza estados, transiciones y eventos para definir el protocolo del objeto (elemento) en el contexto. Este protocolo incluye lo siguiente: ✔ ✔ ✔ Las condiciones bajo las cuales se pueden invocar operaciones en el objeto. Los resultados de las llamadas de operación. El orden de las llamadas de operación.

La maquina de estado de protocolo no dicen nada sobre la implementación del comportamiento. No especifican acciones. En este tipo de diagrama de estados nos concentraremos en este apunte, con el fin de definir el protocolo de los elementos (objetos) encontrados en el contexto (dominio) del sistema en estudio. Estados Todo objeto (elemento del dominio) está en un estado particular en un momento dado. Los estados se representan con rectángulos de ángulos redondeados. Cada estado tiene un nombre que lo identifica y que debe ser único para evitar ambigüedad.

Representación de estados

Página 1 de 6

desempleado. En cambio. Para un nivel jerárquico dado. pueden haber varios estados finales donde cada uno corresponde a una condición de fin diferente o puede no haber ningún estado final (por ejemplo. siempre hay un y un sólo un estado inicial. está empleado. Juan no tiene ninguna relación con una empresa y tiene 78 años.Universidad Tecnológica Nacional – Facultad Regional Concepción del Uruguay Análisis de Sistemas Los estados están caracterizados por los conceptos de duración y estabilidad. siendo Juan un jubilado. Posibles estados de una persona Para conocer la situación particular de una persona. Relación entre empleados y una empresa Construcción de los estados Las máquinas de estado empleadas en UML son determinísticas y por eso no deben dejar ningún espacio a construcciones ambiguas. ✔ Presencia de una relación a una empresa. no hay ninguna relación entre José. En el siguiente diagrama. en momento dado. El siguiente diagrama representa personas que trabajan para empresas: Personas que trabajan para empresas No todas las personas tienen trabajo (esto se deduce de la cardinalidad de la relación). es necesario estudiar: ✔ Edad de la persona. en uno de los siguientes estados: {empleado. en el caso que el sistema nunca pare). en cambio. Esto significa en particular que siempre es necesario describir el estado inicial del sistema. entonces. Pedro. y una empresa: por lo tanto. Un estado es la imagen de una combinación instantánea de los valores contenidos en los atributos del objeto y de la presencia o ausencia de relaciones con otros objetos. Un objeto no está siempre en el mismo estado y no puede estar en un estado desconocido o indefinido. Por último. está relacionado con una empresa y tiene 44 años: Pedro. José está desempleado. quien tiene 36 años. Los estados finales se representan con un punto negro Página 2 de 6 . El estado inicial se representa mediante un punto negro grande. Asimismo todas las personas están. jubilado}.

El siguiente ejemplo describe un fragmento de un analizador léxico. El reconocimiento de unidades léxicas se realiza en el estado ‘Leyendo’. La máquina de estado se mantiene en ese estado mientras todos los caracteres leídos son no separadores. Notación para representar estados especiales Transiciones Cuando evolucionan las condiciones dinámicas. Los eventos determinan qué camino debe ser seguido. Un evento es usado para disparar el pasaje de un estado a otro. dado que el sistema siempre debe estar en un estado conocido. Parte de un analizador léxico Eventos Un evento corresponde a la ocurrencia de una situación dada dentro del dominio del problema.Universidad Tecnológica Nacional – Facultad Regional Concepción del Uruguay Análisis de Sistemas grande rodeado por un círculo. Las transiciones especifican los caminos en la máquina de estado. El cambio de un estado a otro es instantáneo. un evento es por naturaleza una información instantánea que debe ser tratada inmediatamente. El pasaje de un estado a otro es realizado cuando una transición es disparada por un evento que ocurre dentro del dominio del problema. En contraste con los estados que tienen duración. Transición entre el estado A y el estado B Las transiciones no necesariamente enlazan estados distintos. Los diagramas de máquinas de estado son grafos dirigidos. Los estados están enlazados mediante conexiones unidireccionales llamadas transiciones. Página 3 de 6 . los objetos cambian de estado siguiendo las reglas descritas en la máquina de estados asociada a su clase.

Universidad Tecnológica Nacional – Facultad Regional Concepción del Uruguay Análisis de Sistemas Transiciones y eventos en el estado laboral de una persona Guardas Una guarda es una condición booleana que puede validar o invalidar el disparo de la ocurrencia de un evento. Supongamos. La solución para esta situación es aplicar el principio de generalización de estados: los estados más generales son llamados estados compuestos y los estados más específicos. las guardas – las cuales deben ser mutuamente exclusivas – son evaluadas y entonces una transición es validada y disparada. por ejemplo. Página 4 de 6 . que si una persona mayor de 59 años pierde su empleo es automáticamente jubilada: Eventos y guardas en el ejemplo de la empresa El mismo ejemplo con el simbolo de condición Estados compuestos La lectura de los diagramas de estado puede dificultarse bastante cuando el número de conexiones entre estados pasa a ser alto. Cuando el evento toma lugar. Ejemplo de condición de disparo Las guardas hacen posible el mantenimiento del determinismo de una máquina de estado cuando muchas transiciones pueden ser disparadas por el mismo evento.

B1 y B2. que el estado B del siguiente diagrama es dividido en dos subestados. Los dos diagramas que le siguen son equivalentes y válidos: Diagramas de estados equivalentes Estados concurrentes La composición de un estado mediante varios estados independientes.Universidad Tecnológica Nacional – Facultad Regional Concepción del Uruguay Análisis de Sistemas subestados. La composición es de tipo conjuntivo (composición de tipo ‘and’) lo que implica que el objeto debe estar simultáneamente en todos Página 5 de 6 . Los siguientes dos diagramas ilustran la simplificación que resulta de aplicar generalización de estados: Estado Laboral de una persona utilizando estados compuestos Observe que utilizando subestados se simplifica y clarifica sensiblemente la notación. Supongamos por ejemplo. Las transiciones de entrada no son heredadas por todos los estados. Esto facilita la representación y hace posible enmascarar detalles. Sólo un estado (el estado compuesto o alguno de sus subestados) puede ser el destino de esta transición.

En el siguiente ejemplo. Esto se indica mediante el símbolo H*. el estado A memoriza el último subestado activo. Mientras se esta procesando el pedido por un lado se comprueban los items del pedido y se realiza la preparación de la entrega. La maquina de estados recuerda lo último que estaba haciendo al abrir la puerta También es posible memorizar el último subestado activo. En el siguiente ejemplo se muestra una máquina de estados para un pedido. Para este ejemplo no se colocaron los eventos. El indicador de historia se aplica al nivel en el cual el símbolo está declarado. La notación ofrece un mecanismo para memorizar el último subestado visitado y volver a éste cuando una transición vuelve a entrar al superestado que lo contiene.Universidad Tecnológica Nacional – Facultad Regional Concepción del Uruguay Análisis de Sistemas los estados que constituyen la agregación. una máquina de estados no tiene ninguna memoria. La agregación de estados corresponde a un tipo de paralelismo entre máquinas de estado. independientemente del anidamiento de los subestados: Propagación del marcador de historia hacia los estados internos Página 6 de 6 . Indicador de memora. y al mismo tiempo se realiza el proceso de autorización del mismo. independientemente de su nivel de profundidad. Estados concurrentes Estados con Historia Por omisión.