Estado
Un estado es una condición durante la vida de un objeto durante la cual satisface alguna condición, realiza alguna actividad o espera algún evento externo.
Ejemplo:
Características del Estado
- Los estados representan las condiciones de los objetos en ciertos puntos en el tiempo.
- Los objetos (o sistemas) pueden verse como moviéndose de un estado a otro
- Un punto en el ciclo de vida de un elemento del modelo que satisface alguna condición, donde se realiza alguna acción en particular o donde se espera algún evento
La siguiente figura muestra una descripción detallada de un estado. El estado se amplía con acciones internas (hacer, ayudar). A diferencia de otras acciones, estas acciones pueden interrumpirse. Si ocurre «cancelar», las acciones de hacer o ayudar se interrumpen. Las acciones internas se realizan después de la sección de «entrada» y se cancelan cuando se abandona el estado.
Estados inicial y final
- El estado inicial de un diagrama de máquina de estados, conocido como pseudoestado inicial, se indica con un círculo sólido. Una transición de este estado mostrará el primer estado real
- El estado final de un diagrama de máquina de estado se muestra como círculos concéntricos. Una máquina de estado de bucle abierto representa un objeto que puede terminar antes de que termine el sistema, mientras que un diagrama de máquina de estado de bucle cerrado no tiene un estado final; si es el caso, entonces el objeto vive hasta que todo el sistema termina.
Ejemplo:
Evento
Un evento es la especificación de un acontecimiento significativo. Para una máquina de estado, un evento es la ocurrencia de un estímulo que puede desencadenar una transición de estado.
Transición
Una transición es una relación entre dos estados que indica que un objeto en el primer estado, cuando se cumpla un conjunto específico de eventos y condiciones, realizará ciertas acciones y entrará en el segundo estado.
Una transición tiene: Componentes de transición que incluyen (1) un estado de origen (2) un desencadenante de eventos (3) una acción (4) un estado de destino
Autotransición
Una autotransición es una transición cuyos estados de origen y de destino son los mismos
Acción
Una acción es un cálculo atómico ejecutable (con referencia a la máquina de estado). Las acciones pueden incluir operaciones, la creación o destrucción de otros objetos o el envío de señales a otros objetos (eventos)
Ejemplo de biblioteca
La siguiente figura muestra un diagrama de máquina de estado simple. Los componentes principales de dicho diagrama son:
- Estado: el ejemplo tiene dos estados: ”En préstamo” y ”En el estante”.
- Estado inicial: este es el estado en el que se inicia el sistema.
- Transiciones: las transiciones describen posibles cambios de estado. El diagrama tiene dos transiciones: de ”En préstamo” a ”En el estante” y viceversa.
- Eventos: los eventos se etiquetan en las transiciones. Representan el evento realizado en una transición. Al pasar del estado «En préstamo» al estado «En el estante», se realiza el evento «devuelto ()».
Las acciones son modificaciones de las variables de estado. En el siguiente ejemplo, las acciones se especifican en las transiciones. Cuando se toma la transición de «En el estante» a «En préstamo», los libros variables estatales se reducen.
Las acciones se pueden especificar en las transiciones, pero también en los estados. En ese caso, se puede especificar si la acción debe realizarse al entrar o salir del estado. En la figura siguiente se muestran estas opciones.
- La primera opción muestra la especificación de acciones cuando se realiza una transición. La acción se realiza en el cambio de estado.
- La segunda opción muestra la especificación de una acción en un estado. La palabra clave «entrada» indica que la acción debe realizarse cuando se ingresa al estado.
- Finalmente, la tercera opción muestra cómo especificar que se realiza una acción al salir de un estado. Tenga en cuenta la palabra clave «salir».
Notación de diagrama de máquina de estado simple
Diagrama de máquina de estados — Conceptos avanzados
Restricciones
Es posible agregar restricciones a las transiciones. Considere la figura siguiente. Las restricciones ”[no es la última copia]” y ”[última copia]” se utilizan para distinguir las dos transiciones con el evento ”copiar prestado()”. La semántica es que una transición está habilitada cuando la restricción es verdadera.
Subestados
Un estado simple es aquel que no tiene subestructura. Un estado que tiene subestados (estados anidados) se llama estado compuesto. Los subestados se pueden anidar en cualquier nivel. Una máquina de estados anidados puede tener como máximo un estado inicial y un estado final. Los subestados se utilizan para simplificar máquinas complejas de estados planos al mostrar que algunos estados solo son posibles dentro de un contexto particular (el estado envolvente).
Ejemplo de subestado: calentador
Los diagramas de máquina de estados se utilizan a menudo para derivar casos de prueba, aquí hay una lista de posibles ideas de prueba:
- El estado inactivo recibe un evento demasiado caliente
- El estado inactivo recibe el evento Too Cool
- El estado de enfriamiento/arranque recibe el evento Compresor en funcionamiento
- El estado Enfriando/Listo recibe el evento Ventilador en marcha
- El estado de refrigeración/funcionamiento recibe un evento OK
- El estado de refrigeración/funcionamiento recibe un evento de falla
- El estado de falla recibe el evento de falla eliminada
- El estado de calefacción recibe un evento OK
- El estado de calefacción recibe un evento de falla
Estados históricos
A menos que se especifique lo contrario, cuando una transición entra en un estado compuesto, la acción de la máquina de estados anidados vuelve a empezar en el estado inicial (a menos que la transición se dirija directamente a un subestado). Los estados de historial permiten que la máquina de estado vuelva a ingresar al último subestado que estaba activo antes de abandonar el estado compuesto. En la siguiente figura se presenta un ejemplo del uso del estado histórico.
Estado concurrente
Como se mencionó anteriormente, los estados en los diagramas de máquinas de estado se pueden anidar. Los estados relacionados se pueden agrupar en un solo estado compuesto. Es necesario anidar estados dentro de otros cuando una actividad involucra subactividades concurrentes. El siguiente diagrama de máquina de estados modela una subasta con dos subestados simultáneos: procesar la oferta y autorizar el límite de pago.
Ejemplo de diagrama de máquina de estados concurrentes: proceso de subasta
En este ejemplo, la máquina de estado que ingresa primero a la Subasta requiere una bifurcación al comienzo en dos subprocesos de inicio separados. Cada subestado tiene un estado de salida para marcar el final del hilo. A menos que haya una salida anormal (Cancelado o Rechazado), la salida del estado compuesto ocurre cuando ambos subestados han salido.
enlaces relacionados
Hágalo usted mismo Ejemplos de diagramas de estado con Visual Paradigm Online
- Ejemplos de Diagrama de máquina de estado gratuitos y plantillas editables en un software de Diagrama de máquina de estado en línea: Visual Paradigm Online .
- Utilice las plantillas como punto de partida para crear su propio diagrama de máquina de estados.
Herramienta gratuita de software UML
Ha aprendido qué es un diagrama de máquina de estados y cómo dibujar un diagrama de máquina de estados. Es hora de dibujar un diagrama de máquina de estados propio. Obtenga Visual Paradigm Community Edition, un software UML gratuito, y cree su propio Diagrama de máquina de estados con la herramienta gratuita Diagrama de máquina de estados. Es fácil de usar e intuitivo.