Zustände mit Aktionen und Aktivitäten
Struktur
Eine weitere Verallgemeinerung des Automatenkonzepts erhält man, wenn Automaten innerhalb der Zustände Aktionen bzw. Aktivitäten ausführen können.
Eine Entry-Aktion wird beim Eintritt in einen Zustand ausgeführt, eine Exit-Aktion beim Verlassen eines Zustands.
Eine Do-Aktivität wird während der gesamten Zeit durchgeführt, in der sich das System im betreffenden Zustand befindet.
Beachte, dass hier zwischen Aktionen und Aktivitäten unterschieden wird.
Eine Aktion ist ein Vorgang im System, der nur sehr kurz dauert und für die Modellierung des Verhaltens unbedeutend ist. Aktionen können als (nahezu) zeitlose Vorgänge angesehen werden. Eine Aktivität ist dagegen ein zeitbehafteter Vorgang im System.
Beispiel
Wir betrachten zunächst noch einmal das folgende einfache Lampensystem.
Quelle: lampe1.sb
Das Verhalten des Lampensystems lässt sich auch so beschreiben:
Anstatt die Aktionen bei den Zustandsübergängen festzulegen, kann man sie hier auch als Entry-Aktionen in den Zuständen darstellen. Im vorliegenden Lampensystem hat das auch den Vorteil, dass festgelegt wird, dass Kostüm1 angezogen werden soll, wenn der Automat zu Beginn in den Anfangszustand versetzt wird.
Teste auch das folgende Lampensystem.
Quelle: lampe3.sb
Im Zustand "an" wird hier die Aktivität "lampe.flackern()" ausgeführt:
Implementierung in Scratch
Hier eine Implementierung der flackernden Lampe:
Aufgabe 1
Probiere das selbst aus.