Concurrent substates, synchronization, and splitting of control
An object that performs two or more tasks at the same time is modeled in a state diagram by showing the concurrent substates that it is in. Control is split into the concurrent substates, and merges later when all substates have executed.
Concurrent activities within a single superstate are shown by partitioning the superstate into regions with dotted lines.
The tool automatically partitions substates within the superstate by dashed lines. Once transition lines are drawn between concurrent substates, the dashed line separating those particular substates is removed.
Rules of modeling concurrent substates
▪Each region of a superstate may have initial pseudostates and final states.
▪A transition to the enclosing superstate represents a transition to the initial pseudostate.
▪A transition to the final state represents the completion of activity in the enclosing region.
Complex transitions: Synchronization and splitting of control
When modeling concurrent state behavior, a transition will split into two or more threads of control, and multiple transitions will join into a single transition. This is considered splitting of control and synchronization of control.
Splitting of control into concurrent substates is shown by an arrow that forks. When this transition fires, the two or more concurrent substates become active and execute independently. Synchronization of control is shown by a number of transition lines that join to form a single transition arrow.
To model these behaviors in a UML State diagram, use the Synchronization Bar symbol.