6.6 Dynamische Validierung

Die dynamische Validierung prüft während einer laufenden Simulation das Statechart und stellt dabei Problemfälle fest, die in der statischen Validierung ausgespart werden. Mehr zur statischen Validierung erfahren Sie in Abschnitt 4.4.

Während eine GUI simuliert wird, kann es passieren, dass diese in eine im Statechart beschriebene Endlosschleife gerät. Dazu kann es kommen, wenn die durch ein Ereignis (Signal) ausgelöste Berechnung eines Folgezustands in eine Schleife von Epsilon-Transitionen gelangt, die dann endlos durchlaufen werden würde. Dieses Verhalten wird durch die dynamische Validierung erkannt und abgefangen. Sollte also eine solche Endlosschleife entdeckt werden, so erhalten Sie die in Abbildung 6.6 dargestellte Meldung, in der Sie darüber informiert werden, dass die Simulation aus diesem Grund terminiert wurde. Eine Terminierung entspricht dem automatischen Anhalten der Simulation und erlaubt es Ihnen, terminierte GUIs im Anschluss erneut zu simulieren, sofern Sie das wünschen.

Figure 6.6: Abbruch der Simulation durch Endlosschleife
 
simulation_infinite_loop.png

Einen weiteren Grund für die Terminierung der laufenden Simulation stellt eine Verletzung der deterministischen Ausführung dar. Sollte aufgrund eines Ereignisses (Signals) mehr als ein Folgezustand in Frage kommen und damit der Folgezustand nicht eindeutig bestimmt werden können, handelt es sich um ein ungültiges Statechart, das erst gar nicht hätte simuliert werden dürfen. Deshalb werden die meisten Fehler, die zu einem nicht deterministischen Statechart führen, im Vorfeld bereits in der statischen Analyse aufgedeckt. Nur einige wenige Problemfälle werden erst zur Simulationszeit erkannt, da der Zeitaufwand, diese in einer statischen Analyse zu entdecken, den praktischen Nutzen übersteigt.

Figure 6.7: Ungültiges Statechart
 
trace.png

Die Simulation wird auch dann terminiert, wenn die deterministische Ausführung dadurch verloren geht, dass mehrere Pfade von Transitionsübergängen genommen werden können, die nicht zueinander äquivalent sind. Ein Beispiel für dieses Problem finden Sie in Abbildung 6.7. Es lässt sich nicht feststellen, ob die Transition von State3 nach State4 schaltet, bevor die Transition von State2 zum Endpunkt schaltet, und damit der Zustand State1 verlassen wird, ohne dass die zuvor bereits genannte Transition schalten konnte. In einem Verlauf wird also das Ausgabesignal A ausgegeben, im anderen Verlauf nicht.

Figure 6.8: Abbruch der Simulation bei ungütligem Statechart
 
simulation_invalid.png

In jedem Fall werden Sie durch eine Meldungsbox wie in Abbildung 6.8 auf den gefundenen Fehler und die daraus resultierte Terminierung hingewiesen.


i3D. Hannwacker - A. Gebel - M. Dürksen