Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Kapitel 7 State-Machines/Zustandsautomaten

Ähnliche Präsentationen


Präsentation zum Thema: "Kapitel 7 State-Machines/Zustandsautomaten"—  Präsentation transkript:

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

2 Inhalt Einfacher Zustandsautomat+Statecharts
Anwendung auf Objektorientierte Software Das „FREE-state“- Modell Das „fault“- Modell Test- Modell- Entwicklung N+ als Beispiel Macht und Grenzen der Zustandsautomaten

3 (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“

4 Aufbau eines Zustandsautomaten (Mealy- Automat)
Zustand (state) Übergang (transition) = Ausgelöst duch Ereignis Ereignis (event) Aktion (action) = Ergebnis oder Ausgabe

5 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

6 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

7 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

8 Beispiele Verhalten von GUI Lebenszyklen von Klassen
Kommunikationsgeräten Geräte-Treibern Parsern ist modellierbar.

9 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) F (phi) als „keine Aktion“

10 Bsp: Automatisches Füllen eines Wassertanks

11 Einige Eigenschaften der endlichen Zustandsautomaten
Übergänge aller möglichen Ereignis/Zustand-Paare (sonst nicht komplett) Äquivalenz von Zuständen Minimale Zustandsautomaten Erreichbarkeit

12 Erreichbarkeit Dead state – „tote“ Zustände
Dead loop – Unendliche Schleife Magic state – extra Startzustand

13 Überwachte Übergänge Bevor Übergang ausgeführt wird muß erfüllt sein:
Zustand muß erreicht sein Überwachtes Ereignis tritt auf Überwachendes Prädikat gibt TRUE zurück UML: ereignis-name argument-liste [ überwachungs-bedingung ] / aktions-ausdruck

14 Arten von Zustandsautomaten Mealy vs. Moore
Sind mathematisch äquivalent Gibt Algorithmen zur Umwandlung untereinander Mealy- Automaten werden bevorzugt angewandt

15 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

16 Moore: Eigenschaften Übergänge haben keine Ausgaben
Ausgaben sind mit Zuständen verbunden  Zustände sind aktiv Jede Ausgabe hat mindestens einen entsprechenden Zustand

17 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

18 Grenzen des einfachen Modells
Ist nicht spezifisch für OO-Systeme (später) Begrenzte Skalierbarkeit (bei großen Projekten schwer, Namen für Zustände zu finden, ...)  Lösung ist Hierarchiebildung Keine Nebenläufigkeit modellierbar (Lösung wäre „product machine“ oder Statecharts)

19 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

20 Nebenläufigkeit mit Statecharts
2 oder mehr unabhängige aber verwandte Prozesse dargestellt durch geteilte „superstates“  AND-decomposition

21 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

22 (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

23 Implementierung von Zustandsautomaten
„hard-code“ der Tabellenstruktur mit switch und ifelse- Ausdrücken (aber: fehleranfällig und schwer zu übersehen) Object for state pattern Martin‘s Tree-Level FSM State-pattern Schmidt‘s Reactor pattern Dyson und Anderson

24 (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

25 Objekt-Zustand bei Methoden-Aktivierung und –Deaktivierung von Interesse
Ausgehende Nachricht zu Server modelliert als Übergang mit Aktion

26 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ß

27 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.

28 Fin


Herunterladen ppt "Kapitel 7 State-Machines/Zustandsautomaten"

Ähnliche Präsentationen


Google-Anzeigen