The StateMachinesshown so far only had Transitionsbetween Stateson the same level, that is, on the same StateMachine. Of cause, it is possible and often required to have Transitionsbetween Statesof the StateMachineand Statesof its SubStateMachine.

Because a SubStateMachinecan be defined by another StateMachineTypeand this type can be used in several places, it is not possible to add a bi-directional Referencefrom one of the shared Statesof the SubStateMachineto another StateMachine. In this case it is suitable to expose the FromStateor ToState Referencesuni-directional, that is, only pointing from the Transitionto the Stateand not being able to browse to the other direction. If a Transitionpoints from a Stateof a SubStateMachineto a Stateof another sub-machine, both, the FromStateand the ToState Reference, are handled uni-directional.

A Client shall be able to handle the information of a StateMachineif the ToStateand FromState Referencesare only exposed as forward Referencesand the inverse Referencesare omitted.

Figure B.10gives an example of a state machine having a transition from a sub-state to a state.

image021.png

Figure B.10– Example of a state machine with transitions from sub-states

In Figure B.11, the representation of this example as StateMachineTypein the AddressSpaceis given. The “Transition1”, part of the definition of “MyStateMachineType”, points to the “StateX” of the StateMachineType“AnotherStateMachineType”. The Referenceis only exposed as forward Referenceand the inverse Referenceis omitted. Thus, there is no Referencefrom the “StateX” of “AnotherStateMachineType” to any part of “MyStateMachineType” and “AnotherStateMachineType” can be used in other places as well.

image022.png

Figure B.11– Example of a StateMachineType having Transition to SubStateMachine