Architecting and designing > UML 2.0 Lite > UML models > UML state diagram > Concurrent substates, synchronization, and splitting of control
  
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.
This graphic is described in the surrounding text.
Modeling concurrent substates
To draw concurrent substates, select Is concurrent the superstate’s Symbol tab (see Modeling concurrent substates).
The tool automatically partitions substates within the superstate by dashed lines. When 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 can 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.
See also
UML state diagram