Prev | Next |
Internal Transition
If you need to define an internal Transition in a State, you can do so by creating an external self-Transition connector (where the Source and Target are the same State) and then changing the connector 'kind' property. The self-Transition connector is then removed from the diagram and the internal Transition displays in a compartment inside the State element.
Define an Internal Transition
Step |
Action |
See also |
---|---|---|
1 |
In the Browser window, double-click on the StateMachine diagram containing the State element to open it. |
|
2 |
On the State element, create a Transition connector issuing from and terminating in the element (a 'self Transition'). In the Diagram Toolbox, select the Transition connector, then click and release on the State element. |
|
3 |
Right-click on the connector and select the 'Properties' option to display the 'Properties' dialog. |
|
4 |
Select the 'Constraints' tab and define any guard, effect and trigger for the Transition. |
Transition |
5 |
Select the 'General' tab, then select the child tab 'Advanced'. Click on the drop-down arrow in the value field for the kind property and select 'internal'. |
|
6 |
Click on the . The Transitions display in the same compartment as internal activities (exit/, do/, entry/). ![]() |
Notes
- To view or edit the properties of the internal Transition, double-click on the entry in the compartment within the State
- If you need multiple internal transitions, including those with the same Trigger but different guards, you create them separately with each Transition having its own guard
- You can create further transitions and internal triggers by clicking on the State element, displaying the Features window at the 'Internal Triggers' tab, right-clicking on the tab and selecting the 'New Internal Triggers' option
OMG UML Specification
The OMG UML specification (UML Superstructure Specification, v2.4.1, p.583) states:
An internal transition executes without exiting or re-entering the state in which it is defined. This is true even if the state machine is in a nested state within this state.