Topic
Prev Next

Transition

Description

If you need to define the logical movement from one State to another in a StateMachine diagram, you can drag a Transition connector from the Toolbox onto the diagram. You control the Transition through the connector 'Properties' dialog.

Field

Action

See also

Guard

Type in the expression to be evaluated after an Event is dispatched but before the corresponding Transition is triggered.

If the guard is true at that time, the Transition is enabled; otherwise, it is disabled.

Effect is a Behavior

Convert the 'Effect' field from a free-text field to the definition of a specific Activity or behavior.

The 'Select <Item>' dialog displays, prompting you to select the Activity or behavior element from the model.

Select Dialog

Effect

Either:

  • Type a description of the effect of the Transition, or
  • If you have selected the 'Effect is a Behavior' check box, select an Activity or behavior to be performed during the Transition (to change this subsequently, click on the button to redisplay the 'Select <Item>' dialog)

Trigger Name

Specify the name of the trigger; either:

  • Type the name, or
  • Select an existing trigger in the model from the Select <Item> dialog, which you display by clicking on the button

Trigger Type

Specify the type of trigger:

  • Call - specifies that the event is a CallEvent, which sends a message to the associated object by invoking an operation
  • Change - specifies that the event is a ChangeEvent, which indicates that the transition is the result of a change in value of an attribute
  • Signal - specifies that the event is a SignalEvent, which corresponds to the receipt of an asynchronous signal instance
  • Time - corresponds to a TimeEvent; which specifies a moment in time

Code generation for StateMachines expects a specification value for any of the four types.

Specification

Specify the event instigating the Transition; either:

  • Type the event (time or change), or
  • Select an existing specification in the model using the 'Select <Item>' dialog, which you display by clicking on the button

New

Clear the fields ready to begin defining a new trigger.

Save

Save the newly created or edited trigger.

Delete

Remove the selected trigger from the list.

<trigger list>

List the existing triggers, which might or might not have names and types, and which can include triggers created in older models.

Notes

  • Fork and Join segments can have neither triggers nor guards
  • You can identify hidden triggers and locate triggers in the Project Browser, using the 'Find Triggers Associated' option on the Transition connector context menu; if one trigger exists for the Transition it is immediately highlighted in the Project Browser, if more than one trigger exists the 'Element Usage' dialog displays - select the required trigger and click on the Open button to highlight the trigger in the Project Browser
  • You can define a self-Transition as an Internal Transition, and represent the connector and its properties in a compartment of the State element

Toolbox icon

Learn more

OMG UML Specification

The OMG UML specification (UML Superstructure Specification, v2.1.1, p.568) states:

A transition is a directed relationship between a source vertex and a target vertex. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to an occurrence of an event of a particular type.