Architecting and designing > UML 2.0 Lite > UML models > UML state diagram > Composite states
  
Composite states
A composite state is a state that has two or more substates that are nested within it. The substates are either concurrent or sequential (mutually exclusive disjoint). Substates can be nested to any level.
Concurrent substates, synchronization, and splitting of control
This is considered an “and” relationship, in which multiple threads of control occur at the same time.
See Concurrent substates, synchronization, and splitting of control.
Sequential (mutually exclusive disjoint) substates
This is considered an “or” relationship, in which the object being modeled can be in one state or another state at a particular time.
See Sequential (mutually exclusive disjoint) substates.
Drawing nested states
Perform one of these actions:
Drop the state that will be the superstate down first, pull on its handlebars to enlarge it, and then draw substates within it.
Draw the substates first, and then draw the superstate. Drag the superstate's handlebars to make it encompass the substates.
This graphic is described in the surrounding text.
Note To draw a rounded, message-to-self for a nested state (see the digit(n) transition from/to the Partial Dial state above), here are some hints:
Set the line style (Format, Symbol Format, Line) to Elliptical Arcs.
Draw the rounded, message-to-self before you enclose the substate within the superstate. If you have already drawn the superstate around the substate, remove it and add it back later.
Before or after drawing the line, zoom in on the area of concern to enable you to effectively see the area.
As you draw the elliptical arc line, click the diagram workspace a number of times as you draw (even though a ghostbuster symbol is presented on the drawing pencil), each time adding a node to the line. The more nodes you place, the more rounded you can make the line.
After drawing the line, you can increase its roundedness by inserting line segments to the line. Right‑click the line and then click Insert Line Segment. Again, the more nodes the line has, the more rounded you can make it.
Hiding substates
Nested states can be suppressed, or hidden. To hide substates:
See also
UML state diagram