Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Berthold Goldschmidt Geändert vor über 5 Jahren
1
5.4 Endliche Automaten und UML-Zustands-diagramme
Ein endlicher Automat ist ein mathematisches Modell eines Systems mit Ein- und Ausgaben. Ein solches System befindet sich immer in einem bestimmten internen Zustand. Beispiele Ein Register mit n Binärstellen befindet sich in einem von 2n möglichen Zuständen. Ein Zigarettenautomat merkt sich die bisher eingeworfene Geldsumme als internen Zustand. Lexikalische Analysatoren von Compilern kann man als endliche Automaten modellieren. Auch ein Computer ist ein endlicher Automat. Allerdings ist hier das Modell wegen der riesengroßen Anzahl möglicher interner Zustände nicht besonders hilfreich.
2
Definition Ein endlicher Automat ist ein Fünftupel mit
Z = Menge der Zustände E = Menge der Eingabezeichen Übergangsfunktion Anfangszustand Menge der Endzustände. Da die Zustandsübergangsfunktion ein Paar (z,a) auf genau einen Folge-zustand abbildet, sprechen wir auch von einem deterministischen end-lichen Automaten, abgekürzt DEA.
3
Diagrammdarstellung In der Regel veranschaulicht man endliche Automaten in Form von Diagrammen. Kreise stellen die Zustände dar, Pfeile zwischen den Kreisen repräsentieren die Über-gänge (Transitionen). Jeder Übergang wird mit dem Eingabezeichen beschriftet, das ihn auslöst.
4
UML-Zustandsdiagramme
In der UML gibt es eine (leicht modifizierte) Notation für Zustandsdiagramme. Die Zu- stände werden hier als Rechtecke mit abgerundeten Ecken dargestellt. Wie die Aktivitätsdiagramme (und anders als die Klassendigramme) zeigen die UML- Zustandsdiagramme eine dynamische Sicht des Objektes, das entworfen wird. Wir werden im Folgenden UML-Zustandsdiagramme für endliche Automaten ver- wenden.
5
Beispiel 1 für ein UML-Zustandsdiagramm
Telefon Startzustand Zustand Ruhezustand aktiv Hörer aufnehmen Hörer auflegen Ereignis Zustandsübergang (Transition)
6
Zustand, Ereignis, Übergang
Ein Zustand (engl. state) beschreibt die Gesamtverfassung eines Objekts während einer Zeitspanne, nämlich der Zeit zwischen zwei Ereignissen. Im Beispiel 1 Ein Telefon ist in dem Zustand „Ruhezustand“, nachdem der Hörer auf die Gabel gelegt worden ist und bis er wieder von der Gabel genommen wird. Ein Ereignis (engl. event) ist ein relevantes Vorkommnis. Im Beispiel 1: Der Telefonhörer wird von der Gabel genommen. Ein Übergang (engl. transition) ist eine Beziehung zwischen zwei Zuständen, die anzeigt, dass der Automat beim Eintreten eines Ereignisses von seinem jetzigen Zustand in den nachfolgenden Zustand übergeht. Wenn das Ereignis „Hörer aufnehmen“ eintritt, geht das Telefon aus dem Zustand „Ruhezustand“ in den Zustand „aktiv“ über.
7
Wofür sind Zustandsdiagramme nützlich? (1)
Beispiele für endliche Automaten Geräte, die durch Software gesteuert werden. Telefon, Waschmaschine, Mikrowellenherd: Sie verfügen über ein komplexes Repertoire an Reaktionen auf Ereignisse, und die Reaktionen hängen vom aktu- ellen Zustand ab. Transaktionen aus dem Geschäftsleben Wie reagiert ein Geschäftsobjekt (Verkauf, Auftrag, Zahlung) auf ein Ereignis? Ein Beispiel: Was sollte mit einer „Order“ (einem Auftrag) passieren, wenn ein Ereignis „stornieren“ eintritt? Oder: Alle Zustände und Ereignisse zu modellieren, die ein Auftrag in einem Versandhandel durchlaufen kann, kann sehr dabei helfen, den Prozess zu entwerfen, zu validieren, softwaretechnisch zu imple-mentieren und zu verbessern.
8
Wofür sind Zustandsdiagramme nützlich? (2)
Kommunikationsprotokolle Kommunikationsprotokolle wie TCP können leicht anhand eines Zustandsdia- gramms verstanden werden. Das Diagramm zeigt, wann welche Operationen (Er- eignisse) im jeweiligen Zustand gültig sind. Ein Beispiel: Eine TCP-“close“-Anforderung soll ignoriert werden, wenn sich der Teilnehmer bereits im Zustand „closed“ befindet. User-Interface-Seiten, Fenster Bei der Modellierung von Benutzerschnittstellen kann es nützlich sein, die zulässige Abfolge von Webseiten oder Fenstern als Zustandsdiagram aufzuschreiben; sie ist häufig komplex.
9
Beispiel 2: ein Geschäftsprozess
Prozess Sale WaitingForSale makeNewSale EnteringItems enterItem endSale authorization-Arrives makeCashPayment WaitingForPayment makeCreditPayment AuthorizingPayment makeCheckPayment
10
Unterzustände Ein Zustand kann eingebettete Unterzustände enthalten; ein Unterzustand erbt dann die Übergänge seines Oberzustands. Unterzustände können grafisch gezeigt werden, indem sie in eine „Superstate-Box“ eingebettet werden, also ein Kasten um sie herum gezeichnet wird..
11
Beispiel 3: Zustandsdiagramm für einen DEA
Ein deterministischer endlicher Automat für Nullen und Einsen Start z0 z1 Der Startzustand ist mit „Start“ markiert. Der Doppelkreis bezeichnet den Endzustand. Man überlege: Welche speziel-len Folgen von Nullen und Ein-sen akzeptiert dieser Automat? 1 1 z2 z3 1 1
12
Beispiel 4: Das Bit-Stuffing-Verfahren
Zur Anwendung von fehlererkennenden und fehlerkorrigierenden Codes in der Kommunikationstechnik muss der binäre Datenstrom in einzelne Rahmen unterteilt werden. Problem Wie kann man solche Rahmen im kontinuierlichen Bitstrom begrenzen, wenn grund-sätzlich jedes beliebige Bitmuster in den Nutzdaten vorkommen kann?
13
Bit Stuffing Lösung: Bit Stuffing (Bitstopfen)
Als Begrenzer wählt man Der Sender fügt nach fünf Einsen im Nutzdaten-strom immer eine 0 ein. Wenn der Empfänger nach fünf Einsen eine Null sieht, entfernt er diese aus dem Datenstrom. Sender 1 Leitung Empfänger
14
Die Funktionsweise des Bit Stuffing
15
Ein Mealy-Automat für das Bit Stuffing
Sender (Ereignis: zu übermittelndes Bit) Empfänger (Ereignis: eintreffendes Bit) Mealy-Automaten (Ausgaben an den Transitionen) für Sen-der und Empfänger bei einer Übertragung mit Bit Stuffing 0/0 0/0 A A 0/0 1/1 0/0 1/1 B B 0/0 1/1 0/0 1/1 C C 0/0 1/1 0/0 1/1 D D Notation: e/a e = Ereignis a = Ausgabe 0/0 0/0 0/0 0/0 1/1 1/1 E E 1/1 1/1 1/10 1/1 F F 1/1 G H eingefügtes 0-Bit entfernen Begrenzer (Fehler)
16
Zusammenfassung Endliche Automaten sind ein sehr nützliches Werkzeug zur Modellierung von Algo-rithmen. Zustandsdiagramme in der UML dienen zur Darstellung von endlichen Automaten.
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.