5.4 Endliche Automaten und UML-Zustands-diagramme

Slides:



Advertisements
Ähnliche Präsentationen
Statistische Aspekte der PSG
Advertisements

Modellbasierte Software-Entwicklung eingebetteter Systeme
7. Automaten Ein Automat ist ein Sechstupel A= (I, O, Q, , q0, F).
Suche in Texten (Stringsuche )
Institut für Informatik Abt. Intelligente Systeme
Hauptseminar Modellüberprüfung Kathrin Ott
Kapitel 7 State-Machines/Zustandsautomaten
Checklisten dynamisches Modell
Proseminar “Software Pioneers” (Prof. Dr. Heike Wehrheim)
Seminar Rechtsinformatik
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Ziel: externe Systemverhalten aus Anwendersicht
Sequenzdiagramm.
Objektorientierte Analyse (OOA) Verhaltensmodellierung
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
FH-Hof Deadlocks Richard Göbel. FH-Hof Deadlock - Definition Menge von Prozessen ist an einem Deadlock beteiligt: wenn jeder Prozess in dieser Menge auf.
Parser für CH3-Sprachen
Motivation Richard Göbel.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (02 – Endliche Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (04 – Automaten mit ε-Transitionen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (03 – Nichtdeterminierte endliche Automaten) Prof. Dr. Th. Ottmann.
Lösungen
Objektorientierte Konzepte
Vortrag im Rahmen des Seminars
Symbolisches Model Checking mit Binary Decision Diagrams
Christian Schindelhauer
Christian Schindelhauer
Kurzüberblick über ereignisgesteuerte Prozessketten (EPK)
11. Vorlesung: Dynamische Konzepte am Fallbeispiel
12. Vorlesung: Aktivitätsdiagramme
Endliche Automaten Informatik JgSt. 13, Abitur 2009
Unified Modeling Language Repetition / Einführung zu UML
UML-Kurzüberblick Peter Brusten.
Eine Präsentation von Lena Sauter & Corinna Nawatzky
UML Modellierung des Verhaltens von Klassen und Objekten
Grundlagen der Informatik - Prof. Slany 1 Grundlagen der Informatik Prof. Wolfgang SLANY.
Akzeptor & Sprache.
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
Zustandsübergangsdiagramme (1)
Beispiele: KFG 2.Teil Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln: S  Ac | Bd A  aAb | ab B  aBbb | abb Definieren Sie.
Technische Informatik II
Technische Informatik II Übung 7: Automaten Implementierungsaspekte
Petrinetze 1. Einführung Informatik : wesentlich Modellierung von
Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Softwareengineering Endliche Automaten
Rechnerstrukturen 3b. Endliche Automaten.
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele (Frist: ) Beispiel 1: Sei  = {a, b} ein Alphabet und Q = {q 0, q 1 } eine.
Übungsaufgabe 1: Getränkeautomat
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Technische Informatik II (INF 1211) Aufgabenteil (Mit Unterlagen)
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Aufgabe 4 Betrachten Sie das unten dargestellte Klassendiagramm, das für eine Bibliothek zur Verwaltung ihrer Buchbestände modelliert wurde. Modellieren.
X. Übungsblatt – Aufgabe X Das Bild zeigt ein Diagramm, dass die Nachbarschafsbeziehungen für einen Code mit 3 Binärstellen darstellt. a)Welche Hamming-Distanz.
Name des Vortragenden ‌ Klasse ‌‌‌ Ort / tt.mm.jjjj Anwendungsfalldiagramm.
Excel-Tool: Beschwerdeanalyse  Folie 1 von Bitte Makros aktivieren Das Excel-Tool funktioniert nur mit eingeschalteten Makros. Eventuell erhalten.
Class HelloWorldApp { public static void main(String[] args) {... } Grundkurs Inf - wie einsteigen ?
Tutorium Software-Engineering SS14 Florian Manghofer.
A nwendungsfalldiagramm. Ü berblick  Allgemein  Anwendungsfalldiagramm in Stichpunkten  Zusammenhang  Anwendungsbereich  Diagramm.
UML – Unified Modeling Language
Einführung DI Harald Sander.
Gliederung 0. Motivation und Einordnung 1. Endliche Automaten
Kommunikationsdiagramme
Technische Informatik II
4. Modellieren und Diagrammarten
So einfach geht Smarthome
 Präsentation transkript:

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.

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.

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.

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.

Beispiel 1 für ein UML-Zustandsdiagramm Telefon Startzustand Zustand Ruhezustand aktiv Hörer aufnehmen Hörer auflegen Ereignis Zustandsübergang (Transition)

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.

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.

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.

Beispiel 2: ein Geschäftsprozess Prozess Sale WaitingForSale makeNewSale EnteringItems enterItem endSale authorization-Arrives makeCashPayment WaitingForPayment makeCreditPayment AuthorizingPayment makeCheckPayment

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

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

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?

Bit Stuffing Lösung: Bit Stuffing (Bitstopfen) Als Begrenzer wählt man 01111110. 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

Die Funktionsweise des Bit Stuffing

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)

Zusammenfassung Endliche Automaten sind ein sehr nützliches Werkzeug zur Modellierung von Algo-rithmen. Zustandsdiagramme in der UML dienen zur Darstellung von endlichen Automaten.