62
2 Spezifikation und Modellierung
Reaktion des Übergangs beschrieben. Externe Ereignisse werden üblicherweise in
der Systemumgebung beschrieben. Beispiele:
• Einschalten / Ein:=1 (Test auf ein Ereignis und Wertzuweisung an eine Variable),
• [Ein=1] (Überprüfung eines Variablenwerts),
• Ausschalten [not in Lproc] / Ein:=0 (Ereignistest, Überprüfung eines Zustands,
Variablenzuweisung. Die Zuweisung wird nur durchgeführt, wenn das Ereignis
stattgefunden hat und die Bedingung erfüllt ist).
Die Semantik der Kantenbeschriftungen kann nur im Zusammenhang mit der
generellen Semantik von StateCharts erklärt werden. Die StateMate-Implementierung von StateCharts [141] geht von einer schrittweisen Ausführung von StateChartsBeschreibungen aus, wie in Abb. 2.20 gezeigt. Schritte werden jedes Mal ausgeführt,
3 Phasen
3 Phasen
3 Phasen
Schritt
Schritt
Schritt
Status
Status
Status
Status
Abb. 2.20 Schritte während der Ausführung eines StateMate-Modells
wenn ein Ereignis eintritt oder sich ein Variablenwert geändert hat. Unter dem Status
verstehen wir die Menge aller Variablenwerte, die Menge der erzeugten Ereignisse,
die Menge der aktuellen Zustände und die aktuelle Zeit.
Das Konzept der Schritte erlaubt es, die Semantik von Ereignissen genauer zu definieren. Die Sichtbarkeit von Ereignissen ist auf denjenigen Schritt beschränkt,
der auf den Schritt folgt, in dem das Ereignis erzeugt wurde. Somit verhalten
sich Ereignisse wie Bitwerte, die bei einer Taktflanke in Registern abgelegt werden
und einen Einfluss auf die bei der nächsten Taktflanke gespeicherten Werte haben.
Ereignisse „leben“ nur bis zum nächsten Schritt bzw. bis zur nächsten Taktflanke.
Im Gegensatz dazu behalten Variablen ihren Wert, bis ihnen ein neuer Wert
zugewiesen wird. Nach der StateMate-Semantik sind neue Werte von Variablen in
allen Teilen des Modells sichtbar, und zwar ab demjenigen Schritt, der auf den
Schritt folgt, in dem die Wertzuweisung erfolgt ist. Das bedeutet, dass die Semantik
von StateMate neue Variablenwerte zwischen zwei Schritten überall im Modell
propagiert und sichtbar macht. Jeder Schritt besteht aus drei Phasen:
1. In der ersten Phase wird der Einfluss von externen Bedingungen und Ereignissen
ausgewertet. Das beinhaltet auch die Auswertung von Funktionen, die von externen Ereignissen abhängen. In dieser Phase gibt es keine Zustandsübergänge. In
unseren einfachen Beispielen wird diese Phase nicht unbedingt benötigt.
2. Die nächste Phase besteht darin, die Menge der Zustandsübergänge zu bestimmen, die im aktuellen Schritt ausgeführt werden sollen. Variablenzuweisungen
werden ausgewertet, aber die neuen Werte werden nur temporären Hilfsvariablen
zugewiesen.
2 Spezifikation und Modellierung
Reaktion des Übergangs beschrieben. Externe Ereignisse werden üblicherweise in
der Systemumgebung beschrieben. Beispiele:
• Einschalten / Ein:=1 (Test auf ein Ereignis und Wertzuweisung an eine Variable),
• [Ein=1] (Überprüfung eines Variablenwerts),
• Ausschalten [not in Lproc] / Ein:=0 (Ereignistest, Überprüfung eines Zustands,
Variablenzuweisung. Die Zuweisung wird nur durchgeführt, wenn das Ereignis
stattgefunden hat und die Bedingung erfüllt ist).
Die Semantik der Kantenbeschriftungen kann nur im Zusammenhang mit der
generellen Semantik von StateCharts erklärt werden. Die StateMate-Implementierung von StateCharts [141] geht von einer schrittweisen Ausführung von StateChartsBeschreibungen aus, wie in Abb. 2.20 gezeigt. Schritte werden jedes Mal ausgeführt,
3 Phasen
3 Phasen
3 Phasen
Schritt
Schritt
Schritt
Status
Status
Status
Status
Abb. 2.20 Schritte während der Ausführung eines StateMate-Modells
wenn ein Ereignis eintritt oder sich ein Variablenwert geändert hat. Unter dem Status
verstehen wir die Menge aller Variablenwerte, die Menge der erzeugten Ereignisse,
die Menge der aktuellen Zustände und die aktuelle Zeit.
Das Konzept der Schritte erlaubt es, die Semantik von Ereignissen genauer zu definieren. Die Sichtbarkeit von Ereignissen ist auf denjenigen Schritt beschränkt,
der auf den Schritt folgt, in dem das Ereignis erzeugt wurde. Somit verhalten
sich Ereignisse wie Bitwerte, die bei einer Taktflanke in Registern abgelegt werden
und einen Einfluss auf die bei der nächsten Taktflanke gespeicherten Werte haben.
Ereignisse „leben“ nur bis zum nächsten Schritt bzw. bis zur nächsten Taktflanke.
Im Gegensatz dazu behalten Variablen ihren Wert, bis ihnen ein neuer Wert
zugewiesen wird. Nach der StateMate-Semantik sind neue Werte von Variablen in
allen Teilen des Modells sichtbar, und zwar ab demjenigen Schritt, der auf den
Schritt folgt, in dem die Wertzuweisung erfolgt ist. Das bedeutet, dass die Semantik
von StateMate neue Variablenwerte zwischen zwei Schritten überall im Modell
propagiert und sichtbar macht. Jeder Schritt besteht aus drei Phasen:
1. In der ersten Phase wird der Einfluss von externen Bedingungen und Ereignissen
ausgewertet. Das beinhaltet auch die Auswertung von Funktionen, die von externen Ereignissen abhängen. In dieser Phase gibt es keine Zustandsübergänge. In
unseren einfachen Beispielen wird diese Phase nicht unbedingt benötigt.
2. Die nächste Phase besteht darin, die Menge der Zustandsübergänge zu bestimmen, die im aktuellen Schritt ausgeführt werden sollen. Variablenzuweisungen
werden ausgewertet, aber die neuen Werte werden nur temporären Hilfsvariablen
zugewiesen.
