5 Aufrufverhalten - Transitionsaktion
![]() | Aufbauendes Beispiel Dieses „UML Statechart“-Beispiel basiert auf dem Beispiel 4 Aufrufverhalten - Basis. Alle Elemente und Aufrufaspekte des Beispiels 4 sind auch in diesem Beispiel enthalten, sodass auch die dortigen Erläuterungen für dieses Beispiel gelten und für das Verständnis dieses Beispiels erforderlich sind. Im Folgenden sind lediglich die Ergänzungen zu Beispiel 4 beschrieben. Bitte lesen Sie daher zuerst die Beschreibung von Beispiel 4. |
Ergänzend zu Beispiel 4 Aufrufverhalten - Basis verdeutlicht dieses „UML Statechart“-Beispiel einen weiteren Aspekt des Aufrufverhaltens vom UML-Zustandsdiagramm. Dazu sind die folgenden UML SC-Elemente zusätzlich enthalten:
- Transitionen mit Transitionsaktionen (Transition, Abschlusstransition, Ausnahmetransition)
Beispielprojekt: TF1910_UmlSC_Sample5_CallingBehaviour_Transitions.zip
Überblick:
Mithilfe der folgenden Teilaspekte wird das Aufrufverhalten von Zuständen, zusammengesetzten Zuständen und Transitionen veranschaulicht. Mithilfe von verschiedenen Programmiermitteln werden die unterschiedlichen Aufrufaspekte veranschaulicht (Programmiermittel => Aufrufaspekt).
- Zähler => Aufrufhäufigkeit
- Eintragung der aufgerufenen Zustandsaktion in ein Array => Aufrufreihenfolge
- Taskzyklus-IDs => Zuordnung des Aufrufs zur Zyklus-ID
Die jeweilige Zuordnung des Programmiermittels zum Aufrufaspekt wird im Folgenden erläutert.
Zähler => Aufrufhäufigkeit:
Eine Transitionsaktion wird einmal aufgerufen, wenn der Zustandsübergang über die Transition ausgeführt wird.
Eintragung der aufgerufenen Zustandsaktion in ein Array => Aufrufreihenfolge:
Jede Aktion, die in einem Zustand, einem zusammengesetzten Zustand oder einer Transition aufgerufen wird, trägt ihren Namen (z. B. „State1__Entry“ oder „Transition_LeaveState1“) in ein Array ein. Dadurch wird die Aufrufreihenfolge der verschiedenen Aktionen veranschaulicht, sodass ersichtlich ist:
- dass die prinzipielle Aufrufreihenfolge bei einem Zustand lautet: erst ENTRY, DO, EXIT und dann die Transitionsaktion. Anschließend wird die ENTRY-Aktion des neu aktivierten Zustands aufgerufen. Im Beispielprojekt:
- State2__Exit
- Transition_LeaveState2
- State3__Entry
- dass, wenn ein innerer Zustand eines zusammengesetzten Zustands mit einer Region (Anwendungsfall Gruppierung/Verschachtelung) aktiviert wird und wenn damit auch der zusammengesetzte Zustand aktiviert wird, die Aufrufreihenfolge „von außen nach innen“ lautet: äußerer Zustand EXIT, Transitionsaktion, zusammengesetzter Zustand ENTRY, innerer Zustand ENTRY, zusammengesetzter Zustand DO, innerer Zustand DO. Im Beispielprojekt:
- State1__Exit
- Transition_LeaveState1
- Comp1_Entry
- State2__Entry
- Comp1_Do
- State2__Do
- dass, wenn ein zusammengesetzter Zustand z. B. über eine (Pseudo-) Ausnahmetransition verlassen wird, die Aufrufreihenfolge „von innen nach außen“ lautet: innerer Zustand EXIT, ggf. innerer zusammengesetzter Zustand EXIT, äußerer zusammengesetzter Zustand EXIT, Transitionsaktion, äußerer Zustand ENTRY. Im Beispielprojekt:
- State4__Exit
- Comp2_Exit
- Comp1_Exit
- Transition_LeaveComp1_ToComp3
- State7__Entry
Taskzyklus-IDs => Zuordnung des Aufrufs zur Zyklus-ID:
Jede Aktion, die in einem Zustand, einem zusammengesetzten Zustand oder einer Transition aufgerufen wird, speichert die Zyklus-ID des jeweils ersten und letzten Aufrufs. Dadurch wird veranschaulicht, in welchem Zyklus welcher Aufruf stattfindet, sodass ersichtlich ist:
- dass der Zustandsübergang im darauffolgenden Zyklus ausgeführt wird, nachdem die Transitionsbedingung erfüllt ist,
und dass, wenn ein Zustand verlassen wird, die Transitionsaktion im selben Zyklus aufgerufen wird wie die EXIT-Aktion des verlassenen Zustands und wie die ENTRY- und DO-Aktion des aktivierten Zustands.
Im Screenshot „Visu_CallingOrder_CycleNr“ des ZIPs: - State2 / DO-Last Call: 1233 (ID des Zyklus, in dem der Aufruf stattfand)
- Transition / Rising Edge: 1233
- State2 / EXIT-Call: 1234
- Transition-Call: 1234
- State3 / ENTRY-Call: 1234
- State3 / DO-First Call: 1234
- dass, wenn ein Zustand verlassen und ein zusammengesetzter Zustand mit einer Region und eigenen Aktionen aktiviert wird, die Transitionsaktion im selben Zyklus aufgerufen wird wie die EXIT-Aktion des verlassenen Zustands und wie die ENTRY- und DO-Aktion des aktivierten (zusammengesetzten) Zustands.
Im Screenshot „Visu_CallingOrder_CycleNr“ des ZIPs: - State1 / DO-Last Call: 1055
- Transition / Rising Edge: 1055
- State1 / EXIT-Call: 1056
- Transition / Call: 1056
- CompositeState1 / ENTRY-Call: 1056
- State2 / ENTRY-Call: 1056
- CompositeState1 / DO-First Call: 1056
- State2 / DO-First Call: 1056
- dass, wenn ein zusammengesetzter Zustand mit einer Region und eigenen Aktionen deaktiviert wird, die Transitionsaktion im selben Zyklus aufgerufen wird wie die EXIT-Aktion des verlassenen (zusammengesetzten) Zustands und wie die ENTRY- und DO-Aktion des aktivierten Zustands.
Im Screenshot „Visu_CallingOrder_CycleNr“ des ZIPs: - CompositeState1 / DO-Last Call: 1743
- CompositeState2 / DO-Last Call: 1743
- State4 / DO-Last Call: 1743
- Transition / Rising Edge: 1743
- State4 / EXIT-Call: 1744
- CompositeState2 / EXIT-Call: 1744
- CompositeState1 / EXIT-Call: 1744
- Transition / Call: 1744
- State7 / ENTRY-Call: 1744
- State7 / DO-First Call: 1744
- State6 / ENTRY-Call: 1744
- State6 / DO-First Call: 1744
Visualisierung:
Ergänzend zu dem komfortablen Online-Modus des UML SC-Diagramms können das Verhalten der Zustandsmaschine sowie die Werte der Zähler, der Tabelle und der Taskzyklus-IDs über die Visualisierung verfolgt werden. Außerdem befinden sich auf der Visualisierung Schalter, um zwischen den Zuständen hin- und herzuschalten sowie um die Werte zurückzusetzen.
![]() | Die Werte der Transitionsbedingungen können Sie nicht nur über die Visualisierung oder über den Deklarationseditor des FBs, sondern auch direkt über das UML SC Diagramm verändern. |
Falls eine Transition aus nur einer Transitionsvariablen besteht, kann der Wert der Variablen per Doppelklick auf den Monitoring-Wert für das Schreiben oder Forcen verändert werden. Ist ein Wert für das Schreiben oder Forcen vorbereitet worden, ist dies an der oberen rechten Ecke des Monitoring-Bereichs sichtbar (siehe auch: Online-Modus).