Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
Zustandsorientierte Modellierung
Klaus Becker 2017
2
Zustandsorientierte Modellierung
1
3
Zustandsbasierte Systeme
Teil 1 Zustandsbasierte Systeme
4
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.
5
Aufgabe Untersuche das Verhalten der Türschaltsysteme 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:
6
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:
7
Verhaltensbeschreibung – System 1
Gedrückter Schalter Türkonstellation 1 XXO 2 XOX 3 OXX Tabelle / Zuordnung / Funktion
8
Verhaltensbeschreibung – System 2
Gedrückter Schalter Türkonstellation 1 XOX 2 XXO 3 OXX Tabelle / Zuordnung / Funktion
9
Verhaltensbeschreibung – System 3
Zustandsdiagramm
10
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
11
Verhaltensbeschreibung – System 4
Zustandsdiagramm
12
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
13
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
14
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
15
Teil 2 Endliche Automaten
16
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:
17
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.
18
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
19
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?
20
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.
21
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
22
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
23
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.
24
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).
25
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.
26
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.
27
Übungen Beschreibe das abgebildete zustandsbasierte System als endlichen Automaten. Gibt hierzu die Bestandteile des endlichen Automaten genau an.
28
Übungen Das Verhalten einer Digitaluhr wird textuell so beschrieben:
Beschreibe das Verhalten der Digitaluhr mit einem Automaten.
29
Exkurs – Simulation endlicher Automaten
Teil 3 Exkurs – Simulation endlicher Automaten
30
Simulation endlicher Automaten
Ziel ist es, Automaten mit Hilfe geeigneter Programme zu simulieren. >>> a = Lampe() >>> a.initialisieren() >>> a.getZustand() 'aus' >>> a.verarbeiten('E') 'O' >>>
31
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)
32
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)
33
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.
34
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.
35
Systemmodellierung mit Zustandsautomaten
Teil 4 Systemmodellierung mit Zustandsautomaten
36
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
37
Beispiel - Lampe Als Beispiel soll hier ein Lampensystem betrachtet werden (vgl. inf-schule: ).
38
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.
39
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.
40
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.
41
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.
42
Übungen Benutze ein Lampensystem (vgl. inf-schule: ), 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.
43
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:
44
Fallstudie - Digitaluhr
Beschreibe das Verhalten der Digitaluhr mit einem Zustandsautomaten. Implementiere die Digitaluhr mit Scratch. Entwickle analog (oder zusätzlich) eine Stoppuhr. Beschreibe das Systemverhalten mit einem Zustandsautomaten. Implementiere das System mit Scratch.
45
Aufgabe Entwickle eine Systemmodellierung und implementiere ein Systemsimulation in Scratch.
46
Lösung Entwickle eine Systemmodellierung und implementiere ein Systemsimulation in Scratch.
47
Lösung
48
Lösung
49
Fallstudien - Aufzug Ziel ist es, ein Programm zur Simulation eines Aufzugs zu entwickeln. Benutze die Hinweise auf inf-schule.
50
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.
51
Fallstudien - Autorennen
Ziel ist es, ein Programm zu entwickeln, mit dem man ein Autorennen simulieren kann. Benutze die Hinweise auf inf-schule.
52
Zustandsorientierte Programmierung mit Kara
Teil 5 Zustandsorientierte Programmierung mit Kara
53
Kara - ein steuerbarer Marienkäfer
Kara ist ein Marienkäfer. Kara lebt in einer Welt mit unbewegliche Baumstümpfen, Pilzen, die Kara verschieben kann und Kleeblättern, die Kara legen und aufnehmen kann.
54
Kara´s Sicht der Welt Kara hat Sensoren, mit denen
er/sie die Umwelt wahrnimmt: Kara versteht einige Befehle, die er/sie folgsam ausführt: stehe ich vor einem Baumstumpf? mache einen Schritt vorwärts! ist links von mir ein Baumstumpf? drehe um 90° nach links! ist rechts von mir ein Baumstumpf? drehe um 90° nach rechts! stehe ich vor einem Pilz? lege ein Kleeblatt hin! stehe ich auf einem Kleeblatt? nimm ein Kleeblatt auf!
55
Kara soll ein Problem lösen
Kara steht auf dem ersten Kleeblatt einer Reihe von Kleeblättern. Kara soll ein Kleeblatt am Ende der Reihe hinzufügen und zurück zur Ausgangsposition laufen.
56
Steuerung von Kara Akt. Zustand: Bedingung: Aktionen: Neuer Zustand:
endeSuchen ja endeSuchen endeSuchen nein anfangSuchen anfangSuchen ja anfangSuchen anfangSuchen nein stop Auf Blatt? ja / vorwärts Auf Blatt? ja / vorwärts Auf Blatt? nein / hinlegen; ... Auf Blatt? nein / links; links ende Suchen zurück stop
57
Steuerung von Kara ende Suchen zurück stop Akt. Zustand: Bedingung:
Auf Blatt? ja / vorwärts Auf Blatt? ja / vorwärts Auf Blatt? nein / hinlegen; ... Auf Blatt? nein / links; links ende Suchen zurück stop Akt. Zustand: Bedingung: Aktionen: Neuer Zustand: endeSuchen ja endeSuchen endeSuchen nein anfangSuchen anfangSuchen ja anfangSuchen anfangSuchen nein stop
58
Aufgabe Kara soll bis zum nächsten Baumstumpf, einmal um ihn herum und anschließend zurück zum Ausgangspunkt laufen. AZ: ... ZZ:
59
Aufgabe Entwickeln Sie einen "Kara-Algorithmus" zur Lösung des Problems: AZ: Kara sieht in Blickrichtung eine beliebig lange Baumstumpfreihe. ZZ: Kara umläuft die Baumstümpfe und bleibt stehen.
60
Aufgabe Entwickeln Sie einen "Kara-Algorithmus" zur Lösung des Problems: AZ: Kara sieht in Blickrichtung eine beliebig lange vertikale Baumstumpfreihe. ZZ: Kara umläuft die Baumstumpfreihe und bleibt in der Verlängerung seines Wegs stehen.
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.