2.4 Kommunizierende endliche Automaten
61
Abb. 2.18 Zeitgeber
in StateCharts
a
20 ms
timeout
Abb. 2.19 zeigt eine mögliche Beschreibung für diesen Zustand. Die Spezifikation ist damit leicht anders als die in Abb. 2.11. Da das Auflegen des Anrufers in
Abb. 2.19 Behandlung von eingehenden Anrufen in L pr oc
Piep
Piep
Lproc
reden
tot
nehmen
Hörer absage
Anaufnehmen still
(Angerufener)
auflegen
8 s
timeout
4 s
timeout
Abb. 2.16 in Form einer Ausnahmebehandlung realisiert ist, wird der Zustand Lproc
immer erst dann verlassen, wenn der Anrufer auflegt. Wenn allerdings der Angerufene auflegt, hat der Entwurf des Zustands Lproc einen Schönheitsfehler: wenn
der Angerufene zuerst auflegt, ist das Telefon solange tot (und still), bis der Anrufer
ebenfalls aufgelegt hat.
StateCharts beinhalten noch weitere Sprachelemente, die beispielsweise im Buch
von Harel [204] zu finden sind. Zusammen mit Drusinsky gibt Harel [141] in einem
Artikel eine genauere Beschreibung der Semantik von StateMate, einer StateChartsImplementierung.
Kantenbeschriftungen und die StateMate-Semantik
Die Ausgabe der erweiterten Automatenmodelle wurde bislang noch nicht betrachtet. Solche Ausgaben können mit Hilfe von Kantenbeschriftungen realisiert werden.
Die allgemeine Form einer Kantenbeschriftung ist „Ereignis [Bedingung] / Reaktion“. Alle drei Bestandteile der Beschriftung sind optional. Die Reaktion beschreibt
die Reaktion des Automaten auf den Zustandsübergang. Mögliche Reaktionen beinhalten das Erzeugen von Ereignissen oder die Zuweisung von Variablenwerten.
Bedingung und Ereignis beschreiben zusammen die Eingaben an den Automaten.
Die Bedingung beschreibt das Überprüfen von Werten von Variablen oder des Zustands des Gesamtsystems. Der Ereignisteil symbolisiert, auf welches Ereignis zu
prüfen ist. Solche Ereignisse können entweder intern oder extern erzeugt werden.
Interne Ereignisse werden als Ergebnis von Zustandsübergängen erzeugt und in der
61
Abb. 2.18 Zeitgeber
in StateCharts
a
20 ms
timeout
Abb. 2.19 zeigt eine mögliche Beschreibung für diesen Zustand. Die Spezifikation ist damit leicht anders als die in Abb. 2.11. Da das Auflegen des Anrufers in
Abb. 2.19 Behandlung von eingehenden Anrufen in L pr oc
Piep
Piep
Lproc
reden
tot
nehmen
Hörer absage
Anaufnehmen still
(Angerufener)
auflegen
8 s
timeout
4 s
timeout
Abb. 2.16 in Form einer Ausnahmebehandlung realisiert ist, wird der Zustand Lproc
immer erst dann verlassen, wenn der Anrufer auflegt. Wenn allerdings der Angerufene auflegt, hat der Entwurf des Zustands Lproc einen Schönheitsfehler: wenn
der Angerufene zuerst auflegt, ist das Telefon solange tot (und still), bis der Anrufer
ebenfalls aufgelegt hat.
StateCharts beinhalten noch weitere Sprachelemente, die beispielsweise im Buch
von Harel [204] zu finden sind. Zusammen mit Drusinsky gibt Harel [141] in einem
Artikel eine genauere Beschreibung der Semantik von StateMate, einer StateChartsImplementierung.
Kantenbeschriftungen und die StateMate-Semantik
Die Ausgabe der erweiterten Automatenmodelle wurde bislang noch nicht betrachtet. Solche Ausgaben können mit Hilfe von Kantenbeschriftungen realisiert werden.
Die allgemeine Form einer Kantenbeschriftung ist „Ereignis [Bedingung] / Reaktion“. Alle drei Bestandteile der Beschriftung sind optional. Die Reaktion beschreibt
die Reaktion des Automaten auf den Zustandsübergang. Mögliche Reaktionen beinhalten das Erzeugen von Ereignissen oder die Zuweisung von Variablenwerten.
Bedingung und Ereignis beschreiben zusammen die Eingaben an den Automaten.
Die Bedingung beschreibt das Überprüfen von Werten von Variablen oder des Zustands des Gesamtsystems. Der Ereignisteil symbolisiert, auf welches Ereignis zu
prüfen ist. Solche Ereignisse können entweder intern oder extern erzeugt werden.
Interne Ereignisse werden als Ergebnis von Zustandsübergängen erzeugt und in der
