Zustandsorientierte Modellierung

Slides:



Advertisements
Ähnliche Präsentationen
Sortieren I - Bubblesort -
Advertisements

Modellbasierte Software-Entwicklung eingebetteter Systeme
7. Automaten Ein Automat ist ein Sechstupel A= (I, O, Q, , q0, F).
Institut für Informatik Abt. Intelligente Systeme
Kapitel 7 State-Machines/Zustandsautomaten
Objektorientierter Entwurf
Objektorientierte Analyse (OOA) Verhaltensmodellierung
Hörsaalübung 1: Textuelle Beschreibung von Use Cases
Parser für CH3-Sprachen
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 (03 – Nichtdeterminierte endliche Automaten) Prof. Dr. Th. Ottmann.
Lösungen
Objektorientierte Konzepte
1 Teil 4 Übung: Uhr. 2 Zielsetzung Ziel ist es, mit Hilfe objektorientierter Modellierung ein System zu entwickeln, mit dem eine einfache Uhr simuliert.
Spezifikation von Anforderungen
Delphi II - OOP IFB Fortbildung
Ein Automatensimulator
1.) Programmaufruf und Einloggen:
Endliche Automaten Informatik JgSt. 13, Abitur 2009
Excel 97 Einführung - Start -.
Beispiel Getränkeautomat
Datenreihen erzeugen –
UML-Kurzüberblick Peter Brusten.
© Gabriele Sowada © Gabriele Sowada 2 Emulation Emulation der Siemens 2002 auf dem PC unter Windows von Volker Dahrendorf Für alle.
Zustandsübergangsdiagramme (1)
Bedienung der Maus.
Programmieren - wie einsteigen ?
PHP: Operatoren und Kontrollstrukturen
Technische Informatik II
Das Entity-Relationship-Modell
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
Musterlösung zum Arbeitsblatt Nr. 1
Bienert EDV Software für das 21. Jahrhundert Der Vermieter ist eine universelle Lösung für jeden Vermieter. Durch reichhaltige Anpassungsmöglichkeiten.
Unified Modeling Language UML
Berechenbarkeit Klaus Becker Berechenbarkeit.
Ü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
Endliche Automaten Klaus Becker 2010.
2.1 Grundprinzipien der Bewegung: Die Newton‘schen Axiome
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Pool Informatik, Sj 11/12 GZG FN W.Seyboldt 1 Pool Informatik 5 GZG FN Sj. 11/12 Kopieren, Daten, Programme.
Einleitung NEVARIS FINANCE ist das ideale Programm für mittlere und größere Baufirmen. In Verbindung mit unseren zuverlässigen DMS- Ergänzungen (DMS =
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Der Taskmanager ist Bestandteil des Betriebssystems, der als Prozessmanager Prozessmanager unter anderem die aktuell laufenden Programme und Prozesse.
Excel-Tool: Beschwerdeanalyse  Folie 1 von Bitte Makros aktivieren Das Excel-Tool funktioniert nur mit eingeschalteten Makros. Eventuell erhalten.
 Am Ende der letzten Stunde hatten wir über die Grenzen unserer Automaten-Modell gesprochen. Dr. Lars Ettelt2  Tipp: Parkhaus.  Einfahrt erst wenn.
Class HelloWorldApp { public static void main(String[] args) {... } Grundkurs Inf - wie einsteigen ?
J. Nürnberger2007 / 081 Tabellenkalkulation (1) Einführung in die Arbeit mit Tabellenkalkulationen am Beispiel von OpenOffice.org Calc.
Die Maus Bilder: Microsoft Cliparts. Maustasten linke Maustaste rechte Maustaste Scrollrad.
Anlegen einer Freitextbestellung Klick auf „Warenkorb anlegen“ In welchen Fällen legen Sie eine Freitextbestellung an: Fall 1: Der gewünschte Artikel befindet.
Anforderungen an die neue Datenstruktur
Konzepte objektorientierter Programmierung: Datenmodell und GUI
Zustandsorientierte Modellierung
Titel: Quelle: Übungsart: Titel: Quelle: Uhr Die Uhr lesen lernen
HCS Übung 3 Von: Patrick Denk Oleg Arenz
Einführung DI Harald Sander.
Gliederung 0. Motivation und Einordnung 1. Endliche Automaten
Spracherkennung mit Automaten
Straße * besteht aus Flurstück 1 Masche 2 begrenzt 3..* Kante 2 2..* begrenzt Lösung der Aufgabe 1: Die Ergänzung (grau) des Diagramms besteht.
verkettete Strukturen
Technische Informatik II
Präsentation DBD-KostenKalkül IFC Stand Oktober 2016.
4. Modellieren und Diagrammarten
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
Datenstrukturen und Softwareentwicklung
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
Wie bewerbe ich mich über diniLehr.ch?
E-Aufgaben in Stud.IP mit ViPS – erste Schritte –
LED und Pin Projekt INGOLSTADT.
 Präsentation transkript:

Zustandsorientierte Modellierung Klaus Becker 2019

Zustandsorientierte Modellierung 1

Zustandsbasierte Systeme Teil 1 Zustandsbasierte Systeme

Ein Türschaltsystem Wir betrachten ein System bestehend aus drei Türen und drei Schaltern. Mit den drei Schaltern kann man Türen gezielt öffnen (und die anderen dann schließen). Noch nicht ganz klar ist, wie man die Schalter bedienen muss.

Aufgabe Untersuche das Verhalten der Türschaltsysteme 1 .. 4. Gehe zunächst experimentell vor und beobachte, wie sich die Türen beim Drücken der Schalter verhalten. Nach dieser experimentellen Lernphase, deren Länge du selbst festlegen kannst, kommt die Überprüfungsphase, in der du vorgegebene Türkonstellationen schalten sollst. Hier zeigt sich dann, ob du das Schaltsystem durchschaut hast. Siehe I: 3.1.1.1.1

Aufgabe Ziel ist es jetzt, das Verhalten der vorgestellten Türschaltsysteme möglichst ganau zu beschreiben. Bearbeite hierzu die entsprechenden Aufgaben auf inf-schule. Siehe I: 3.1.1.1.2

Verhaltensbeschreibung – System 1 Gedrückter Schalter Türkonstellation 1 XXO 2 XOX 3 OXX Tabelle / Zuordnung / Funktion

Verhaltensbeschreibung – System 2 Gedrückter Schalter Türkonstellation 1 XOX 2 XXO 3 OXX Tabelle / Zuordnung / Funktion

Verhaltensbeschreibung – System 3 Zustandsdiagramm

Verhaltensbeschreibung – System 3 Aktueller Zustand Gedrückter Schalter Türkonstellation Neuer Zustand Alle Türen zu 1 XXX Alle Türen zu Alle Türen zu 2 XOX Mittlere Tür auf Alle Türen zu 3 XXX Alle Türen zu Mittlere Tür auf 1 OXX Linke Tür auf … … … … Zustandstabelle

Verhaltensbeschreibung – System 4 Zustandsdiagramm

Verhaltensbeschreibung – System 4 Aktueller Zustand Gedrückter Schalter Türkonstellation Neuer Zustand Nichts gedrückt 1 XXX S1 1-mal gedrückt Nichts gedrückt 2 XXX S2 1-mal gedrückt Nichts gedrückt 3 XXX S3 1-mal gedrückt S1 1-mal gedrückt 1 OXX S1 2-mal gedrückt … … … … Zustandstabelle

Zuordnungsbasierte Systeme Das Verhalten des Systems hängt nur von der aktuellen Eingabe ab. Mit einer Zuordnung bzw. Funktion kann man hier beschreiben, wie die Verarbeitung der Eingabe erfolgt. Tabelle / Zuordnung / Funktion Gedrückter Schalter Türkonstellation 1 XXO 2 XOX 3 OXX

Zustandsbasierte Systeme Das Verhalten des Systems hängt nicht nur von der aktuellen Eingabe ab, sondern auch vom Zustand, in dem sich das System aktuell befindet. Zustandsdiagramm Zustandsübergang

Teil 2 Endliche Automaten

Automaten Viele Automaten, die uns im Alltag begegnen, können als zustandbasierte Systeme beschrieben werden. Mit Eingaben (wie z.B. "Geld einwerfen", "Taste drücken") kann man sie dazu bringen, Ausgaben (wie z.B. eine Ware oder auch gar nichts) zu erzeugen. Die Ausgaben hängen in der Regel von internen Zuständen des Automaten ab. Unser Ziel hier ist es, das Verhalten eines Automaten mit den Mitteln der Informatik zu beschreiben. Wir betrachten stellvertretend für viele andere Automaten den gezeigten Kunstautomaten. (siehe auch: http://www.youtube.com/watch?v=PKLj-ckIqpE

Ein Kunstautomat Der Automat verfügt über einen Münzeinwurf, in den man bestimmte Münzen einwerfen kann. Wir nehmen hier einmal an, dass man nur 1-Euro-Münzen und 2-Euro-Münzen hier in den Münzeinwurf werfen kann. Mit einem Korrekturknopf kann man die bereits eingeworfenen Münzen wieder ausgeben lassen. Mit einem Warenknopf kann man die Ware (hier ein Kunstwerk) anfordern. Natürlich erhält man nur dann die gewünschte Ware, wenn man genügend Geld (hier sollen es der Einfachheit halber 3 Euro sein) eingeworfen hat. Zu viel eingezahltes Geld wird nicht akzeptiert. Wenn man z.B. eine 2-Euro Münze einwirft, nachdem man schon 2 Euro eingegeben hat, so wird die zuletzt eingeworfene Euro-Münze wieder ausgegeben.

Aufgabe Beschreibe das Verhalten des Getränkeautomaten mit einem Zustandsdiagramm. Benutze dabei folgende Abkürzungen: Zustände: z0: 0 Euro eingezahlt z1: 2 Euro eingezahlt z2: 2 Euro eingezahlt z3: 3 Euro eingezahlt Eingaben: e1: 1-Euro-Münze einwerfen e2: 2-Euro-Münze einwerfen eKorrektur: Korrektur-Taste drücken eWare: Ware-Taste drücken Ausgaben: aNichts: nichts auswerfen a1: 1 Euro auswerfen a2: 2 Euro auswerfen a3: 3 Euro auswerfen aWare: Ware auswerfen

Verhaltensbeschreibung Welche Informationen lassen sich alle aus dem Zustandsdiagramm herauslesen? Welche Zustände werden zur Systembeschreibung benutzt? Was beuten sie? Auf welche Eingaben reagiert das System? Was bedeuten sie? Welche Ausgaben produziert das System? Was bedeuten sie? Wie erhält man die Ausgabe, die einem bestimmten Zustand und einer bestimmten Eingabe zugeordnet ist? Verdeutliche es an einem Beispiel. Wie erhält man den Folgezustand, der einem bestimmten Zustand und einer bestimmten Eingabe zugeordnet ist? Verdeutliche es an einem Beispiel. Gibt es hier auch Sonderfälle? In welchem Zustand befindet sich das System am Anfang?

Verhaltensbeschreibung Zustände: z0: 0 Euro eingezahlt z1: 1 Euro eingezahlt z2: 2 Euro eingezahlt z3: 3 Euro eingezahlt Eingaben: e1: 1-Euro-Münze einwerfen e2: 2-Euro-Münze einwerfen eKorrektur: Korrektur-Taste drücken eWare: Ware-Taste drücken Ausgaben: aNichts: nichts auswerfen a1: 1 Euro auswerfen a2: 2 Euro auswerfen a3: 3 Euro auswerfen aWare: Ware auswerfen Wie liest man die Tabelle rechts oben? Ergänze selbst die letzte Zeile.

Fachkonzept - endlicher Automat Der Kunstautomat wird als Verarbeitungseinheit modelliert, die aus Eingaben - in Abhängigkeit des aktuellen Zustands - Ausgaben erzeugt und gegebenenfalls in einen neuen Zustand wechselt. Die Verarbeitungslogik dieser Verarbeitungseinheit kann mit Hilfe eines Zustandsdiagramms oder einer Zustandstabelle festgelegt werden. Zustandsdiagramm Zustandstabelle

Fachkonzept - endlicher Automat Ein endlicher Automat (kurz: EA) ist eine Verarbeitungseinheit, die durch folgende Bestandteile festgelegt wird: eine nichtleere, endliche Menge Z von Zuständen eine nichtleere, endliche Menge E von Eingabesymbole eine nichtleere, endliche Menge A von Ausgabesymbole eine Überführungsfunktion f: Z x E -> Z, die jedem Paar aus aktuellem Zustand und Eingabe einen Folgezustand zuordnet eine Ausgabefunktion g: Z x E -> A, die jedem Paar aus aktuellem Zustand und Eingabe eine Ausgabe zuordnet ein ausgezeichnetes Element z0 aus Z, der sogenannte Anfangszustand Z = {z0, z1, z2, z3} E = {e1, e2, eKorrektur, eWare} A = {aNichts, a1, a2, a3, aGetränk} f: (z0, e1) -> z1; ... g: (z0, e1) -> aNichts; ... z0 = z0 formale Beschreibung eines endlichen Automaten

Der Becher-Zurück-O-Mat Der Becher-Zurück-O-Mat ist ein fiktiver Automat, mit dem man das Verhalten eines Automaten real durchgespielen kann.

Der Becher-Zurück-O-Mat Im Automat (d.h. hinter dem Karton) sitzt der Simulator, der die Arbeit des Automaten übernimmt. Der Simulator verfügt über ein Zustandsdiagramm, das seine Vorgehensweise regelt (man sieht einen Teil des Zustandsdiagramms in der Ecke rechts unten).

Der Becher-Zurück-O-Mat Vor dem Automat sitzen die Benutzer, die den Automaten bedienen. Der Simulator hat die Aufgabe, auf die Eingaben der Benutzer mit den im Zustandsdiagramm festgelegten Ausgaben zu reagieren. Die Benutzer können als Eingaben Becher übergeben oder einen Bon anfordern. Der Simulator produziert dann ggf. einen Bon oder auch gibt nichts zurück.

Ein Reverse-Engineering-Spiel Die Benutzer erhalten die Aufgabe, mit geeigneten Eingaben das Verhalten des Automaten zu analysieren. Wenn sie es durchschaut haben, soll das Verhalten mit einem Zustandsdiagramm beschrieben werden.

Übungen Beschreibe das abgebildete zustandsbasierte System als endlichen Automaten. Gibt hierzu die Bestandteile des endlichen Automaten (exemplarisch) genau an. Z = {…} E = {…} A = {...} f: ... g: ... z0 = …

Übungen Das Verhalten einer Digitaluhr wird textuell so beschrieben: Beschreibe das Verhalten der Digitaluhr mit einem Automaten.

Übungen Entwickle einen Automaten zur Beschreibung einer Bedarfsampel für Fußgänger.

Übungen Entwickle einen Automaten zur Beschreibung des Verhaltens eines Garagentors.

Exkurs – Simulation endlicher Automaten Teil 3 Exkurs – Simulation endlicher Automaten

Simulation endlicher Automaten Ziel ist es, Automaten mit Hilfe geeigneter Programme zu simulieren. >>> a = Lampe() >>> a.initialisieren() >>> a.getZustand() 'aus' >>> a.verarbeiten('E') 'O' >>>

Simulation spezieller Automaten Beispiel: Zustände: aus an Lampe Eingaben: E: einschalten A: ausschalten Ausgaben: X: dunkel O: hell aus E O an Eingabe A E Zustand aus (aus, X) (an, O) an (aus, X) (an, O)

Simulation spezieller Automaten Aufgabe: Modelliere und implementiere eine Klasse Lampe. Teste das Verhalten mit Python-Dialogen. Kombiniere mit der vorgegebenen GUI-Klasse. >>> a = Lampe() >>> a.initialisieren() >>> a.getZustand() 'aus' >>> a.verarbeiten('E') 'O' >>> Lampe aus E O an Eingabe A E Zustand aus (aus, X) (an, O) an (aus, X) (an, O)

Simulation beliebiger Automaten Ziel ist es, ein Programm zur Simulation beliebiger Automaten zu entwickeln. A E (aus, X) (an, O) aus an Zustand Eingabe Automat O Anforderungen an ein Objekt der Klasse Automat: Das Automat-Objekt verwaltet die Daten zum zu simulierenden Automaten: Zustände, möglichen Eigaben, mögliche Ausgaben, Automatentafel, Anfangszustand. Das Automat-Objekt verwaltet den aktuellen Zustand. Das Automat-Objekt kann in den Anfangszustand versetzt werden. Das Automat-Objekt kann eine Eingabe verarbeiten und dabei eine Ausgabe erzeugen.

Simulation endlicher Automaten >>> a = Automat() >>> a.setZustaende(['aus', 'an']) >>> a.setEingaben(['A', 'E']) >>> a.setAusgaben(['X', ‚O']) >>> a.setAutomatentafel([[('aus', 'X'), ('an', 'O')], [('aus', 'X'), ('an', 'O')]]) >>> a.setAnfangszustand('aus') >>> a.initialisieren() >>> a.getZustand() 'aus' >>> a.verarbeiten('E') 'O' 'an ' A E (aus, X) (an, O) aus an Zustand Eingabe Aufgabe: Modelliere und implementiere eine Klasse Automat. Teste das Verhalten mit Python-Dialogen. Kombiniere mit der vorgegebenen GUI-Klasse.

Systemmodellierung mit Zustandsautomaten Teil 4 Systemmodellierung mit Zustandsautomaten

Zielsetzung Ziel ist es, Systeme mit einem bestimmten Verhalten zu entwickeln und (in Scratch) zu implementieren. Ein entscheidender Schritt dabei ist die Systemmodellierung. Wir werden hier Systeme betrachten, die sich mit Zuständen und Zustandsübergängen modellieren lassen. Um die Systeme adäquat beschreiben zu können, müssen wir das Automatenmodell etwas verallgemeinern. Wir werden im Folgenden solche verallgemeinerten Automaten Zustandsautomaten nennen und mit UML-Zustandsdiagrammen beschreiben. Endlicher Automat Zustandsautomat

Beispiel - Lampe Als Beispiel soll hier ein Lampensystem betrachtet werden (vgl. inf-schule: 3.1.3.1.1).

Ereignisgesteuerte Zustandsübergänge Viele zustandsbasierte Systeme lassen sich adäquater als ereignisgesteuerte Systeme beschreiben. Zustandsübergänge werden hier durch Ereignisse ausgelöst. Wenn im aktuellen Zustand ein bestimmtes Ereignis eintritt, dann wird eine zum Ereignis festgelegte Aktion ausgeführt und das System wechselt in einen Folgezustand (wobei dies auch der aktuelle Zustand sein kann). Beachte, dass die auszuführende Aktion hier auch wegfallen kann. In einem solchen Fall führt das Ereignis zu einem Zustandsübergang, bei dem keine Aktion stattfindet.

Bedingte Zustandsübergänge Manchmal möchte man eine Situation erfassen, in der ein Ereignis nur dann einen Zustandsübergang auslöst, wenn eine zusätzliche Bedingung an das Ereignis erfüllt ist.

Zustände mit Aktionen und Aktivitäten Eine weitere Verallgemeinerung des Automatenkonzepts erhält man, wenn Automaten innerhalb der Zustände Aktionen bzw. Aktivitäten ausführen können. Eine Entry-Aktion wird beim Eintritt in einen Zustand ausgeführt, eine Exit-Aktion beim Verlassen eines Zustands. Eine Do-Aktivität wird während der gesamten Zeit durchgeführt, in der das System sich im betreffenden Zustand befindet. Beachte, dass hier zwischen Aktionen und Aktivitäten unterschieden wird. Eine Aktion ist ein Vorgang im System, der nur sehr kurz dauert und für die Modellierung des Verhaltens unbedeutend ist. Aktionen können als (nahezu) zeitlose Vorgänge angesehen werden. Eine Aktivität ist dagegen ein zeitbehafteter Vorgang im System.

Zustände mit Aktionen und Aktivitäten In einem zustandsbasierten System werden Zustandsübergänge durch Ereignisse ausgelöst. Ein Ereignis beschreibt dabei eine Begebenheit, die vom System registriert werden kann. Ereignisse können z.B. durch Benutzereingaben (wie z.B. mit der Maus eine Stelle anklicken oder eine bestimmte Taste drücken) oder durch das Erreichen bestimmter Systemzustände (wie z.B. eine Bedingung ist erfüllt oder ein Fehler tritt auf oder ein Zeitpunkt wird erreicht) ausgelöst werden.

Übungen Benutze ein Lampensystem (vgl. inf-schule: 3.1.3.1.1), um die Modellierungsmöglichkeiten beim Zustandsautomaten zu erkunden. Entwickle jeweils selbst die Lampensysteme mit Scratch. Variiere die Systeme und beschreibe das jeweilige Verhalten mit Zustandsautomaten.

Fallstudie - Digitaluhr In den Bildungsstandards Informatik wird das Verhalten einer Digitaluhr so beschrieben: Ergänzung: Im Normalzustand tickt die Uhr und erhöht jede Sekunde die Uhrzeit. Quelle: http://www.informatikstandards.de/index.htm?section=standards&page_id=26&PHPSESSID=06gp3esiptsqf2sloqkta3l7k6

Fallstudie - Digitaluhr Das Verhalten der Digitaluhr lässt sich mit dem folgenden Zustandsautomaten beschreiben. Implementiere die Digitaluhr mit Scratch. Entwickle analog (oder zusätzlich) eine Stoppuhr. Beschreibe das Systemverhalten mit einem Zustandsautomaten. Implementiere das System mit Scratch.

Lösung

Lösung

Fallstudien - Aufzug Ziel ist es, ein Programm zur Simulation eines Aufzugs zu entwickeln. Benutze die Hinweise auf inf-schule.

Fallstudien - Zeichenstift Ziel ist es, ein Programm mit einem Zeichenstift zu entwickeln, mit dem man auf dem Bildschirm Zeichnungen erstellen kann. Benutze die Hinweise auf inf-schule.

Fallstudien - Autorennen Ziel ist es, ein Programm zu entwickeln, mit dem man ein Autorennen simulieren kann. Benutze die Hinweise auf inf-schule.