2.4 Kommunizierende endliche Automaten
59
Beispiel 2.12: Das Diagramm für einen Anrufbeantworter in Abb. 2.16 enthält einen
UND-Superzustand. Ein Anrufbeantworter muss normalerweise zwei Aufgaben parAnrufbeantworter
ein
aus
Kproc
Lproc
Kwait
Lwait
Ausschalten
Einschalten
Tastenverarbeitung (außer Ein/Aus)
Anrufverarbeitung
fertig
Taste gedrückt
Klingeln
(Anrufer)
Auflegen
Abb. 2.16 Anrufbeantworter
allel ausführen: er wartet auf ankommende Anrufe und überprüft gleichzeitig, ob
der Benutzer etwas auf den Eingabetasten eingegeben hat. In Abb. 2.16 heißen die
entsprechenden Zustände Lwait und Kwait. Ankommende Anrufe werden im Zustand Lproc abgearbeitet, während Reaktionen auf die Eingabetasten im Zustand
Kproc erzeugt werden. Der Zustand Lproc wird verlassen, wenn der Anrufer auflegt.
Legt der Angerufene auf, so wird nicht automatisch zum Zustand Lwait zurückgekehrt. Bei unerwünschten Anrufen kann er also bei diesem Modell nicht einfach den
Anfangszustand wiederherstellen.
Der Ein/Ausschalter wird fürs Erste so modelliert, dass die von ihm erzeugten
Ereignisse (Einschalten und Ausschalten) separat dekodiert werden und somit nicht
in den Zustand Kproc gewechselt wird. Wird der Anrufbeantworter ausgeschaltet, so
werden die beiden im ein-Zustand enthaltenen Zustände verlassen. Sie werden erst
wieder betreten, wenn der Anrufbeantworter wieder eingeschaltet wird. Zu diesem
Zeitpunkt werden dann die Standardzustände Lwait und Kwait betreten. Solange die
Maschine eingeschaltet ist, befindet sie sich immer in den beiden Unterzuständen
des Zustands ein.
∇
Für UND-Superzustände können die Unterzustände, die als Reaktion auf ein Ereignis betreten werden, unabhängig voneinander beschrieben werden. Jede beliebige
Kombination von History-und Standardzuständen sowie expliziten Transitionen ist
möglich. Für das Verständnis von StateCharts ist es wichtig zu begreifen, dass immer
alle Unterzustände betreten werden, auch wenn es nur eine einzige explizite Transition zu einem der Unterzustände gibt. Analog dazu gilt, dass eine Transition aus
einem UND-Superzustand heraus immer dazu führt, dass alle seine Unterzustände
verlassen werden.
Précédent

- 82/485

Suivant