El diagrama de máquina de estados o, más comunmente llamado, el diagrama de estados es un diagrama de comportamiento usado para especificar el comportamiento de una parte del sistema diseñado a través de transiciones de estados finitos. El formalismo de esta diagramado utilizado en UML es una variante basada en objetos de los diagramas de estado de Harel. Es utilizado para mostrar los estados por los que pasa un componente de un sistema de información.
El comportamiento se modela utilizando una serie de nodos que representan estados y que están conectados a través de las llamadas transiciones. Estas transiciones se activan a través de eventos.
Elementos del diagrama de estados
El diagrama de estados está formado por tres elementos: estados, pseudoestados y transiciones:
Estados
En el diagrama de estados, el estado modela una situación durante la cual se cumple alguna condición invariante (generalmente implícita). Esta situación invariante puede representar una situación estática tal como un objeto que espera que ocurra algún evento externo o cualquier otra situación. Sin embargo, también puede modelar condiciones dinámicas tales como efectuar algún tipo de comportamiento (es decir, el elemento ingresa al estado cuando el comportamiento comienza y lo deja tan pronto como se completa).
UML define los siguientes tipos de estados:
- Simple.
- Compuesto.
- De submáquina.
El primero de ellos, el estado simple, es aquel que no tiene regiones ni estados de submáquina. Se representa utilizando un rectángulo con esquinas redondeadas con el nombre del estado en el interior:
Los estados simples tambien pueden representarse utilizando dos compartimentos, uno superior y otro inferior:
- Superior: Este compartimento contiene el nombre (opcional) del estado, como una cadena. Los estados sin nombres se llaman estados anónimos y se consideran estados distintos (diferentes). Los compartimentos de nombre no se deben usar si se usa una pestaña de nombre y viceversa. Se recomienda no usar el estado con el mismo nombre varias veces en el mismo diagrama.
- Inferior: Contiene una lista de acciones internas o actividades (comportamientos) de estado que se realizan mientras el elemento está en ese estado. La etiqueta de actividad identifica las circunstancias bajo las cuales se invocará el comportamiento especificado por la expresión de actividad. La expresión de comportamiento puede usar cualquier atributo y extremo de asociación que esté en el alcance de la entidad propietaria. Algunas etiquetas (entry, do, exit) están reservadas para propósitos especiales y no se pueden usar como nombres de eventos:
- entry: comportamiento realizado al entrar al estado
- do: comportamiento continuo siempre que se esté en el estado.
- exit: comportamiento realizado al salir del estado.
Su representación es la siguiente:
El estado compuesto es aquel que tiene subestados, se representa con un subdiagrama de estados en su interior:
Pseudoestados
Un pseudoestado es un vértice abstracto que abarca diferentes tipos de vértices transitorios en el gráfico de máquina de estado, siendo los más comunes los pseudoestados inicial y final.
Los pseudoestados se usan generalmente para conectar múltiples transiciones en rutas de transición de estado más complejas.
El pseudoestado inicial representa el comienzo de un diagrama, solo puede existir uno por diagrama.Se representa a través de un pequeño circulo relleno:
El pseudoestado final representa el final del diagrama, al contrario que el inicial pueden existir varios pseudoestados finales. Indica que se ha finalizado la máquina de estados. Se representa con un círculo que rodea un circulo negro relleno:
Transición
Una transición es una relación dirigida entre un estado de origen y un estado de destino. Puede ser parte de una estado compuesto. Se representa con una flecha que va desde el estado origen al estado destino. En ocasiones, si es relevante, se incluye una notación que indica la condición desencadenante para cambiar de estado.
¿Quieres colaborar con esta web? ¡Envíanos tus diagramas UML a la dirección aportaciones@diagramasuml.com para que sirvan de ejemplo a otras personas!
También puedes contactar con nosotros a través de la Página de contacto.