Los diagramas de máquinas de estado son útiles para describir el comportamiento de clases y sistemas que han sido concebidos haciendo uso de un modelo de estados. En un modelo de estados se identifican las situaciones en la que el comportamiento o capacidad de respuesta con cualitativamente diferentes, así como los eventos o condiciones bajos las que se pasa de una situación a otra (transiciones de estados).
Los diagramas de estados son intensivamente utilizados en:
- Sistemas de tiempo real y críticos.
- La descripción de sistemas reactivos.
- La descripción de sistemas basados en protocolos
Un estado puede cualificarse:
- Estáticamente en función del valor que tienen sus atributos.
- Dinámicamente, esto es en función de la actividad que ejecuta.
Comportamiento completo de un estado
El comportamiento describe las acciones que se producen mientras que el sistema se
encuentra en un estado:
• entrry/behavior => Acción que se realiza cuando se llega a un estado.
• do/behavior => Actividad que se ejecuta mientras se está en un estado.
• Exit/behavior => Acciones que se ejecuta cuando se abandona un estado.
• Transiciones internas => Se formulan como trigger[guard]/behavior.
Transiciones
Una transición representa las causas circunstancias y efectos de un cambio entre dos
estados.
Una transacción tiene un nombre y una descripción completa del tipo
trigger[guard]/behavior :
- Trigger: Es el evento que da origen a una transición.
- Guard:Es una función booleana que esevaluada cuando ocurre el trigger. Si es True la transición se produce. Si vale False la transición no ocurre.
- Behavior: Es una acción ininterrumpible que tiene lugar cuando se produce la transición.
Múltiples transiciones
La posibles combinación de triggers y condiciones de guardas dan lugar a
diferentes conjuntos de transiciones entre estados:
Si una transición no tiene trigger ni guarda, la transición se produce por
finalización de la actividad asociada al estado.
Trigger, guardas y repuesta en programas
Es muy frecuente cuando se modela software que:
- El trigger puede ser la invocación de un metodo de la clase modelada.
- La guarda es la invocación de un metodo booleano o una relación entre los atributos.
- La respuesta puede ser la invocación de un metodo sobre el propio objeto o sobre un objeto al que tenga acceso.
Estados compuestos
UML permite que varias máquinas de estados se asocien a una misma clase o
sistema. Su situación puede estar descrita en un mismo instante por varios estados,
cada uno de ellos pertenecientes a diferentes máquinas.
Un estado de inicio histórico asociado a una región de estado
representa que cuando se accede a la región se accede al
estado en que se encontraba la región cuando se abandonó.
Pseudoestados
Recepción y transmisión de señales
Máquinas de estados de protocolo
Una máquina de estados de protocolos es un tipo especial de máquina de estados
que se utiliza para describir un protocolo de interacción.
No describe el comportamiento asociado a los estados y a las transiciones.
Resalta las secuencias de estados que son posibles y los eventos que dan lugar a
esas transiciones.
Se representa en una caja rectangular con una pestaña que contiene el estereotipo
<<protocolo>>