Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Pseudostates

PseudostateSyntaxSymbol
Initial[*] --> xFilled circle
Final statex --> [*]Bull’s-eye
Choicechoice cDiamond
Junctionjunction jSmall filled circle
Forkfork fSolid bar, one in and at least two out
Joinjoin jSolid bar, at least two in and one out
Terminateterminate tCross
Shallow history[H], Name[H]Circle with H
Deep history[H*], Name[H*]Circle with H*
diagram state "Choice, fork, join"
[*] --> Ready
Ready --> c : request
choice c
c --> f : [ok]
c --> [*] : [denied]
fork f
f --> A
f --> B
A --> j
B --> j
join j
j --> Done
Done --> [*]
Choice, fork, join A B Done Ready request [ok] [denied]

The final state is not strictly a pseudostate but is listed here because it is drawn with them.

Syntax

choice|junction|fork|join|terminate <name>
[*] --> a    a --> [*]    [H]    [H*]    Name[H]    Name[H*]

Specification

UML 2.5.1, 14.2.4.6 (p. 327). FinalState: 14.2.4.5 (p. 327). Multiplicities of fork, join, choice and junction, and the forbidden triggers on pseudostate transitions, are constraints of clause 14.5, which drumlin checks and reports as errors.

Used in

OTA firmware update, State diagrams: pseudostates.