Diagrama de estados

Los diagramas de estado proporcionan una representación visual de los distintos estados en los que puede encontrarse un sistema o un objeto, así como de las transiciones entre esos estados. Son esenciales para modelar el comportamiento dinámico de los sistemas, ya que reflejan cómo responden a diferentes eventos a lo largo del tiempo. Los diagramas de estado representan el ciclo de vida del sistema, lo que facilita la comprensión, el diseño y la optimización de su comportamiento.

Uso de PlantUML para crear diagramas de estado ofrece varias ventajas:

Estado simple

Puede utilizar [*] para el punto inicial y el punto final de el diagrama de estado.

Utilice --> para las flechas

Cambiar la representación del estado

Puede utilizar hide empty description para representar el estado como una caja simple.

Estado compuesto

Un estado también puede ser compuesto. Hay que definirlo utilizando las palabras clave state y los corchetes.

Subestado interno

Subestado a subestado

[Ref. QA-3300]

WARNING
 This translation need to be updated. 
WARNING

Nombres largos

También puedes usar la palabra reservada state para definir nombres largas en un estado.

Histórico [[H], [H*]]

Puedes usar [H] para el histórico y [H*] para el histórico profundo de un subestado.

Bifurcación

También puedes bifurcan y unir usando <<fork>> y <<join>> respectivamente.

Estados concurrentes [--, ||]

Puedes definir estados concurrentes dentro de un estado compuesto usando los símbolos -- o || como separadores.

Separador horizontal --

Separador vertícal ||

[Ref. QA-3086]
WARNING
 This translation need to be updated. 
WARNING

Condicional [choice]

El estereotipo <<choice>> puede ser usado para uso de estado condicional.

Ejemplo completo de etereotipos [start, choice, fork, join, end]

[Ref. QA-404, QA-1159 and GH-887]

[Ref. QA-19174]
WARNING
 This translation need to be updated. 
WARNING

Punto [entryPoint, exitPoint]

Puedes agregar punto con los esterotipos <<entryPoint>> y <<exitPoint>>:

WARNING
 This translation need to be updated. 
WARNING

Pin [inputPin, outputPin]

Puedes agregar pin con los estereotipos <<inputPin>> y <<outputPin>>:

[Ref. QA-4309]

WARNING
 This translation need to be updated. 
WARNING

Expansión [expansionInput, expansionOutput]

Puedes agregar expansión con los estereotipos <<expansionInput>> y <<expansionOutput>>:

[Ref. QA-4309]

WARNING
 This translation need to be updated. 
WARNING

Dirección de flecha

Puedes usar -> para flechas horizontales. Es posible forzar la dirección de las flechas usando la siguiente sintaxis:

Puedes acortar la definición de la flecha usando sólamente el primer carácter del nombre de la dirección (por ejemplo, -d- en lugar de-down-) o los dos primeros caracteres (-do-).

Por favor tenga en cuenta que no debería abusar de esta esta funcionalidad : Graphviz usualmente devuelve buenos resultados sin necesidad de ajustes.

Cambiar el color y estilo de la línea

Puedes cambiar el color y/o el estilo de la línea.

[Ref. Incubation: Change line color in state diagrams]

[Ref. QA-93]
WARNING
 This translation need to be updated. 
WARNING

Change head or tail of arrow line

Notas

También puedes definir notas usando las palabras reservadas note left of, note right of, note top of, note bottom of .

También puedes definir notas de varias líneas.

También puedes tener notas flotantes.

WARNING
 This translation need to be updated. 
WARNING

Notas sobre conexiones

Puedes poner notas sobre la transición de estados o conexiones, con la palabra reservada note on link.

Más sobre notas

Puedes colocar notas en estados compuestos.

Color entre-línea

[Ref. QA-1812]

Personalización (Skinparam)

Puedes usar el comando skinparam para cambiar los colores y las fuentes de los dibujos

Puedes usar este comando:

Puedes definir colores y fuentes específicas para estados estereotipados.

Prueba de todos los skinparam especificos de los diagramas de estado

Cambiando estilo

Puedes cambiar el estilo.

[Ref. GH-880]
WARNING
 This translation need to be updated. 
WARNING

Change state color and style (inline style)

You can change the color or style of individual state using the following notation:

With background color first (#color), then line style and line color (##[style]color ).

[Ref. QA-1487]

FIXME
🚩 text:color seems not to be taken into account
FIXME

[Adapted from QA-3770]

Alias

With State you can use alias, like:

or:

[Ref. QA-1748, QA-14560]

Display JSON Data on State diagram

Simple example

[Ref. QA-17275]

For another example, see on JSON page.

State description

You can add description to a state or to a composite state.

[Ref. QA-16719]

Style for Nested State Body

[Ref. QA-16774]