28
Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger

Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger

Embed Size (px)

Citation preview

Page 1: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger

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

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

(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

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

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

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

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

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

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

Bsp: Automatisches Füllen eines Wassertanks

Page 11: Kapitel 7 State-Machines/Zustandsautomaten Page 175-205 Vorgetragen von: Ulrich Dinger

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

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

Ü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

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

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

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

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

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

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

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

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

(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

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

(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

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

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

– 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

Fin