From RAD Studio
Jump to: navigation, search

Go Up to UML 2.0 State Machine Diagrams

A single transition comes out of each state or activity, connecting it to the next state or activity.

A transition takes operation from one state to another and represents the response to a particular event. You can connect states with transitions and create internal transitions within states.

Internal transition

An internal transition is a way to handle events without leaving a state (or activity) and dispatching its exit or entry actions. You can add an internal transition to a state or activity element.

An internal transition is shorthand for handling events without leaving a state and dispatching its exit or entry actions.


A self-transition flow leaves the state (or activity) dispatching any exit action(s), then reenters the state dispatching any entry action(s). You can draw self-transitions for both activity and state elements on an Activity Diagram.

Multiple transition

A transition can branch into two or more mutually-exclusive transitions.

A transition may fork into two or more parallel activities. A solid bar indicates a fork and the subsequent join of the threads coming out of the fork.

A transition may have multiple sources (a join from several concurrent states) or it may have multiple targets (a fork to several concurrent states).

You can show multiple transitions with either a vertical or horizontal orientation in your State and Activity Diagrams. Both the State and Activity Diagram toolbars provide separate horizontal and vertical fork/join buttons for each orientation. The two orientations are semantically identical.

Guard expressions

All transitions, including internal ones, are provided with the guard conditions (logical expressions) that define whether this transition should be performed. Also you can associate a transition with an effect, which is an optional activity performed when the transition fires. The guard condition is enclosed in the brackets (for example, "[false]") and displayed near the transition link on a diagram. Effect activity is displayed next to the guard condition. You can define the guard condition and effect using the Object Inspector.

Guard expressions (inside [ ]) label the transitions coming out of a branch. The hollow diamond indicates a branch and its subsequent merge that indicates the end of the branch.

See Also