kapitel 7 state-machines/zustandsautomaten page 175-205 vorgetragen von: ulrich dinger
TRANSCRIPT
![Page 1: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/1.jpg)
Kapitel 7 State-Machines/Zustandsautomaten
Page 175-205
Vorgetragen von:
Ulrich Dinger
![Page 2: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/2.jpg)
Inhalt
(1) Einfacher Zustandsautomat+Statecharts
(2) Anwendung auf Objektorientierte Software
(3) Das „FREE-state“- Modell(4) Das „fault“- Modell
(5) Test- Modell- Entwicklung
(6) N+ als Beispiel
(7) Macht und Grenzen der Zustandsautomaten
![Page 3: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/3.jpg)
(1)(1)Was ist ein Zustandsautomat?
Ein System, dessen Ausgabe durch aktuelle und vergangene Eingaben bestimmt wird.
Effekt vergangener Eingaben wird durch Zustand symbolisiert.
Hintergrund ist mathematisches Model der „endlichen Automaten“
![Page 4: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/4.jpg)
Aufbau eines Zustandsautomaten(Mealy- Automat)
Zustand (state) Übergang (transition) =
Ausgelöst duch Ereignis Ereignis (event) Aktion (action) = Ergebnis
oder Ausgabe
![Page 5: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/5.jpg)
Weitere Erläuterungen (1/2)
Begonnen wird mit „Start-Zustand“ Zu einem Übergang gehört ein Paar von
Zuständen: akzeptierender und resultierender Zustand (können identisch sein)
Der Automat kann nur in genau einem Zustand zu einem bestimmten Zeitpunkt sein
Im Endzustand werden keine Ereignisse mehr akzeptiert
![Page 6: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/6.jpg)
Weitere Erläuterungen (2/2)
Der Automat wartet auf Ereignis für unbestimmte Zeit
Ereignisse präsentieren sich dem Automaten selbst Nicht akzeptiertes Ereignis wird ignoriert Wenn Ereignis akzeptiert, wird Übergang ausgeführt
und resultierender Zustand wird aktueller Zustand Wiederholt sich, bis der aktuelle Zustand
Endzustand ist
![Page 7: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/7.jpg)
Beschränkungen
Prozess, von dem Ereignisse erzeugt, .. Ist nicht Teil des Modells
Ereignisse werden einmal erkannt, Übergang einmal ausgeführt
Aktuelle Zustand kann nur durch Übergang geändert werden
Modell ist statisch Algorithmen etc. nicht Teil des Modells Black-Box-
Prinzip Keine Angaben über Zeit
![Page 8: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/8.jpg)
Beispiele
Verhalten von GUI Lebenszyklen von Klassen Kommunikationsgeräten Geräte-Treibern Parsern
ist modellierbar.
![Page 9: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/9.jpg)
Zustands-Übergangs-Diagramm
Graphische Darstellung Knoten repräsentieren
Zustände (1 und 2) An Übergangen stehen
Ereignisse (A und B) und Aktionen (X,Y und Z)
(phi) als „keine Aktion“
![Page 10: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/10.jpg)
Bsp: Automatisches Füllen eines Wassertanks
![Page 11: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/11.jpg)
Einige Eigenschaften der endlichen Zustandsautomaten
Übergänge aller möglichen Ereignis/Zustand-Paare (sonst nicht komplett)
Äquivalenz von Zuständen
Minimale Zustandsautomaten
Erreichbarkeit
![Page 12: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/12.jpg)
Erreichbarkeit
Dead state – „tote“ Zustände
Dead loop – Unendliche Schleife
Magic state – extra Startzustand
![Page 13: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/13.jpg)
Überwachte Übergänge
Bevor Übergang ausgeführt wird muß erfüllt sein:
1. Zustand muß erreicht sein
2. Überwachtes Ereignis tritt auf
3. Überwachendes Prädikat gibt TRUE zurück
UML: ereignis-name argument-liste [ überwachungs-bedingung ] / aktions-ausdruck
![Page 14: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/14.jpg)
Arten von ZustandsautomatenMealy vs. Moore
Sind mathematisch äquivalent Gibt Algorithmen zur Umwandlung
untereinander Mealy- Automaten werden bevorzugt
angewandt
![Page 15: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/15.jpg)
Mealy: Eigenschaften
Nur Übergänge können Ausgaben produzieren Jede Ausgabe kann in mehreren Übergängen
benutzt werden Keine Ausgaben in Zuständen erlaubt
Zustände sind passiv
![Page 16: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/16.jpg)
Moore: Eigenschaften
Übergänge haben keine Ausgaben Ausgaben sind mit Zuständen verbunden
Zustände sind aktiv Jede Ausgabe hat mindestens einen
entsprechenden Zustand
![Page 17: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/17.jpg)
Zustands- Übergangs- Tabellen
Diagramme nur für relative wenige (bis max. 20) Zustände geeignet
Deshalb tabellarische Form:
1. Zustand- zu- Zustand- Tabelle (state to state)
2. Ereignis- zu Zustand- Tabelle (event to state)
3. Erweitertes Zustand- zu- Zustand- Tabelle (expanded state to state)
Alle Modelle gleichen Informationsgehalt
![Page 18: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/18.jpg)
Grenzen des einfachen Modells
(1) Ist nicht spezifisch für OO-Systeme (später)
(2) Begrenzte Skalierbarkeit (bei großen Projekten schwer, Namen für Zustände zu finden, ...) Lösung ist Hierarchiebildung
(3) Keine Nebenläufigkeit modellierbar (Lösung wäre „product machine“ oder Statecharts)
![Page 19: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/19.jpg)
Statecharts – Erweiterterung der Zustandsautomaten
Modellierung von „control requirements of complex reactive systems“
Zustand kann Zusammenfassung mehrerer Zustände (=superstate) oder alleinstehender Zustand sein
Repräsentieren „single-thread“ und nebenläufige Zustandsautomaten
Modell innerhalb einer Zusammenfassung ist ein Prozess
![Page 20: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/20.jpg)
Nebenläufigkeit mit Statecharts
2 oder mehr unabhängige aber verwandte Prozesse
dargestellt durch geteilte „superstates“ AND-decomposition
![Page 21: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/21.jpg)
Statecharts - Zusammenfassung
Statecharts = Zustandsdiagramm + Tiefe + Orthogonalität + Broadcast Kommunikation– Tiefe: Vereinfachung, die durch Hierarchiebildung
erreicht wird– Orthogonalität: Nebenläufigkeit von 2 oder mehr
Prozessen– Broadcast: Alle Automaten sehen sich
untereinander und Ausgabe des einen kann Eingabe des anderen sein
![Page 22: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/22.jpg)
(2)Zustandautomaten und OO-Entwicklung
Statecharts wurden in verschiedenen Analysesystemen und UML eingebunden
Gibt verschiedene Umsetzungen, z.B. Harel, UML, ...; z.B. bei Umsetzung der Nebenläufigkeit
In diesem Buch wird UML benutzt
![Page 23: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/23.jpg)
Implementierung von Zustandsautomaten
1. „hard-code“ der Tabellenstruktur mit switch und ifelse- Ausdrücken (aber: fehleranfällig und schwer zu übersehen)
2. Object for state pattern3. Martin‘s Tree-Level FSM4. State-pattern5. Schmidt‘s Reactor pattern6. Dyson und Anderson
![Page 24: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/24.jpg)
(3)Das „FREE-state“-Modell (Überblick)
Flattened Regular Expression (FREE) = „abgeflachter regulärer Ausdruck“
Klasse, die getestet wird, wird „abgeflacht“ Jeder Zustandsautomat hat äquivalenten
regulären Ausdruck FREE-state-Modell-Beschränkungen und –
Definitionen nicht in UML festgehalten
![Page 25: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/25.jpg)
Objekt-Zustand bei Methoden-Aktivierung und –Deaktivierung von Interesse
Ausgehende Nachricht zu Server modelliert als Übergang mit Aktion
![Page 26: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/26.jpg)
Grenzen des OOA-Verhaltensmodellen
Nützlich für Entwurf, nicht ausreichend für Testen
Testbares Modell muß folgendes erfüllen:– Komplett (alles zu Testende enthalten)– Abstraktion dessen, was Test unmöglich machen
würde– Enthält essentiell wichtige Details– Enthält alle Ereignisse, auf die geantwortet werden
muß
![Page 27: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/27.jpg)
– Definiert Zustand so, daß Folgezustand automatisch gecheckt werden kann
– Wächter in ausführbarem Syntax– Manuelles Testen nicht ausschließen
Wenn Modell in UML diesen Bedürfnissen entspricht, folgt es den FREE-Defininitonen und Conventionen.
![Page 28: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062512/55204d6349795902118b8c9e/html5/thumbnails/28.jpg)
Fin