Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Ein Automatensimulator Klaus Becker 2004. KB Automatensimulator 2 Automatensimulator Tag AusAusAn.

Ähnliche Präsentationen


Präsentation zum Thema: "Ein Automatensimulator Klaus Becker 2004. KB Automatensimulator 2 Automatensimulator Tag AusAusAn."—  Präsentation transkript:

1 Ein Automatensimulator Klaus Becker 2004

2 KB Automatensimulator 2 Automatensimulator Tag AusAusAn

3 KB Automatensimulator 3 Teil 1 Endliche Automaten

4 KB Automatensimulator 4 Beispiel: Ampelsteuerung Ziel ist es, eine steuerbare Ampel zu modellieren. /1/ Die Ampel kann mit Hilfe eines Steuersignals auf Tag- und Nachtbetrieb eingestellt werden. /2/ Im Tagbetrieb durchläuft die Ampel die üblichen Phasen. Alle Phasen sollen der Einfachheit halber gleich lang sein. /3/ Im Nachtbetrieb soll nur die gelbe Lampe blinken.

5 KB Automatensimulator 5 Zustandsbasierte Modellierung Erstellt mit Violet

6 KB Automatensimulator 6 Zustandsbasierte Modellierung

7 KB Automatensimulator 7 Automat als Datenverarbeitungsmodell Tag AusAusAn Eingabe Verarbeitung Ausgabe

8 KB Automatensimulator 8 Präzisierung des Automatenbegriffs Zustandsmenge: Z = {rot, rotgelb, gruen, gelb, aus} Anfangszustand:z a = gelb Eingabemenge: E = {Tag, Nacht} Ausgabemenge: A = {AnAusAus, AnAnAus, AusAusAn,...} Überführungsfunktion: : (rot, Tag) rotgelb,... Ausgabefunktion: : (rot, Tag) AnAnAus,... Ein endlicher Automat ist ein Tupel A = (Z, z a, E, A,, ) bestehend aus - einer endlichen Menge Z von Zuständen, - einem Anfangszustand z a Z, - einer endlichen Menge E von Eingabezeichen, - einer endlichen Menge A von Ausgabezeichen, - einer Überführungsfunktion : Z x E Z und - einer Ausgabefunktion : Z x E A.

9 KB Automatensimulator 9 Beispiel: Steuerung einer Klimaanlage Aus der Bedienungsanleitung: Die Klimaanlage hat drei Schaltstufen: 1. Aus: Es leuchtet keine Kontrollleuchte. 2. Halbe Kühlleistung: Eine Kontrollleuchte ist an. 3. Volle Kühlleistung: Beide Kontrollleuchten sind an. Drücken Sie jeweils auf den Schalter, um zwischen den Schaltstufen umzuschalten. nach D. Jonietz: Lehrprobenentwurf

10 KB Automatensimulator 10 Übung Beschreiben Sie das Verhalten der Klimaanlage mit Hilfe eines endlichen Automaten. Geben Sie für Ihren Automaten auch die einzelnen Automatenbestandteile (Zustandsmenge etc.) an.

11 KB Automatensimulator 11 Teil 2 Auftrag und Pflichtenheft

12 KB Automatensimulator 12 Auftrag Es soll ein Programm zur Simulation von endlichen Automaten entwickelt werden. Mit Hilfe dieses Programms soll der Benutzer einen beliebigen Automaten festlegen und sein Verhalten simulieren können.

13 KB Automatensimulator 13 Prototyp

14 KB Automatensimulator 14 Pflichtenheft /0/ Der Benutzer kann einen beliebigen Automaten (in einer vorgegebenen Sprache) festlegen. /1/ Die Beschreibung des Automaten soll ein standardisiertes Format besitzen. Wir orientieren uns an der Automatendefinition und die benutzen die Sprache XML. /2/ Die Automatenbeschreibung kann gespeichert und wieder geladen werden. /3/ Zur Simulation des Automatenverhaltens kann der Benutzer beliebige Eingaben vorgeben und den Automaten diese Eingabe verarbeiten lassen. Das Programm zeigt dann die vom Automaten erzeugte Ausgabe an. /4/ Der jeweilige aktuelle Zustand des Automaten soll dem Benutzer angezeigt werden.

15 KB Automatensimulator 15 Exkurs: XML XML (Abk. für extended markup language) ist eine Metasprache zur Beschreibung von Auszeichnungssprachen für allgemeine Dokumente. XML wurde 1996 entworfen und 1998 eingeführt. XML ist aus SGML und HTML entstanden. (Duden Informatik) XML erlaubt es, neue Sprachen zu entwerfen, z. B. um eine Dokumentenstruktur festzulegen. rot rotgelb Informationen zu XML:

16 KB Automatensimulator 16 Exkurs: XML Die Informationen in einem XML-Dokument werden mit Hilfe von sog. Tags eingeschlossen. Z. B.: rot Ein Tag kann mit Attributen versehen werden. Z. B.: rot rotgelb Das gesamte XML-Dokument ist hierarchisch aus Tags und Texten aufgebaut.

17 KB Automatensimulator 17 Automatenbeschreibung mit XML rot rotgelb... gelb Tag Nacht AusAusAus AnAusAus......

18 KB Automatensimulator 18 Automatenbeschreibung mit XML... rot,Tag,rotgelb rot,Nacht,aus rotgelb,Tag,gruen rotgelb,Nacht,aus gruen,Tag,gelb gruen,Nacht,aus... rot,Tag,AnAnAus rot,Nacht,AusAusAus rotgelb,Tag,AusAusAn rotgelb,Nacht,AusAusAus gruen,Tag,AusAnAus gruen,Nacht,AusAusAus gelb,Tag,AnAusAus...

19 KB Automatensimulator 19 Vereinfachte Automatenbeschreibung rot rotgelb... gelb Tag Nacht AusAusAus AnAusAus linksbündig Muss festgelegt werden Kann festgelegt werden

20 KB Automatensimulator 20 Vereinfachte Automatenbeschreibung... rot,Tag,rotgelb rot,Nacht,aus rotgelb,Tag,gruen rotgelb,Nacht,aus gruen,Tag,gelb gruen,Nacht,aus... rot,Tag,AnAnAus rot,Nacht,AusAusAus rotgelb,Tag,AusAusAn rotgelb,Nacht,AusAusAus gruen,Tag,AusAnAus gruen,Nacht,AusAusAus gelb,Tag,AnAusAus... Trennung mit Komma, keine Leerzeichen, alle Informationen in eine Zeile

21 KB Automatensimulator 21 Übung Beschreiben Sie den Klimaanlage-Automaten mit Hilfe der vereinfachten Automatensprache. Diese Automatenbeschreibung wird später zu Testzwecken benötigt.

22 KB Automatensimulator 22 Übung Die vorgestellte XML-Beschreibung eines Automaten kann auf verschiedene Weisen modifiziert und verbessert werden. - Die Tag-Bezeichner sind recht lang (viel Schreibarbeit). Man könnte hier geeignete Abkürzungen einführen. - Die Überführungs- und Ausgabefunktion können gemeinsam erfasst werden. - Die durch das Komma dargestellte innere Struktur der - und -Einheiten sollte durch XML selbst erfasst werden. Entwickeln Sie einen geeigneten Vorschlag.

23 KB Automatensimulator 23 Teil 3 Objektorientierte Analyse

24 KB Automatensimulator 24 Zielsetzung der OOA - Unabhängig von der späteren Implementierung wird die Miniwelt mit Hilfe von Objekten, Klassen sowie deren Beziehungen beschrieben. - Die Miniwelt wird dabei soweit abstrahiert, dass alle für den Auftraggeber relevanten Bestandteile des Problembereichs abgebildet sind. - Das Ergebnis einer OOA ist also eine präzise, abstrahierende Beschreibung der Miniwelt. Modellierung des Problembereichs (Miniwelt), der vom zu entwickelnden Informatiksystem erfasst werden soll.

25 KB Automatensimulator 25 Beschreibung der Miniwelt Tag AusAusAn

26 KB Automatensimulator 26 Beschreibung der Miniwelt Tag... rot rotgelb... gelb Tag Nacht AusAusAus AnAusAus... rotgelb

27 KB Automatensimulator 27 Übung Überlegen Sie sich, wie ein Objekt zur Beschreibung eines Automaten strukturiert sein könnte. Beschreiben Sie die Zuständigkeiten dieses Objektes und modellieren Sie seine Attribute und Methoden. Stellen Sie die Ergebnisse mit Hilfe geeigneter Diagramme dar.

28 KB Automatensimulator 28 Der Automat als Objekt Zuständigkeiten: - verwaltet die Automatenbeschreibung - verwaltet den aktuellen Zustand Dienste: - in den Anfangszustand setzen - zu einer Eingabe eine Ausgabe bestimmen und zur Verfügung stellen - zu einer Eingabe den neuen Zustand setzen - den aktuellen Zustand zur Verfügung stellen

29 KB Automatensimulator 29 Erste Objektdiagramme Zuständigkeiten: - verwaltet die Automatenbeschreibung - verwaltet den aktuellen Zustand Version 1: Version 2:

30 KB Automatensimulator 30 Ein erstes Klassendiagramm Dienste: - in den Anfangszustand setzen - zu einer Eingabe eine Ausgabe bestimmen und zur Verfügung stellen - zu einer Eingabe den neuen Zustand setzen - den aktuellen Zustand zur Verfügung stellen - die Beschreibung festlegen

31 KB Automatensimulator 31 Teil 4 Objektorientiertes Design

32 KB Automatensimulator 32 Zielsetzung des OOD - Genaue Spezifikation der Attribute (Datentypen) und Methoden (Parameter und ihre Datentypen) - Modellierung der Benutzungsoberfläche Anpassung des OOA-Modells an die Rahmenbedingungen des zu erstellenden Systems

33 KB Automatensimulator 33 Spezifikation der Attribute und Methoden Datentypen: - Eingaben, Ausgaben und Zustände werden als Zeichenketten dargestellt. - Die Automatenbeschreibung wird als Liste von Zeichenketten dargestellt.

34 KB Automatensimulator 34 Benutzungsoberfläche

35 KB Automatensimulator 35 Ereignisbehandlung BenutzeraktionProgrammreaktionen Mausklick auf den Laden-Button Mausklick auf den Speichern-Button Mausklick auf den Löschen-Button Mausklick auf den Übernehmen-Button Mausklick auf den Initialisieren-Button Mausklick auf den Verarbeiten-Button Die Automatenbeschreibung wird in das Memo- Feld geladen. Die Automatenbeschreibung im Memo-Feld wird gespeichert. Das Memo-Feld wird gelöscht. Der Automat hat keine Beschreibung mehr. Der Automat übernimmt die Automaten- beschreibung. Der Automat wird in den Anfangszustand gesetzt. Der Automat übernimmt die Eingabe, berechnet die Ausgabe und geht in den neuen Zustand über. Die Ausgabe und der neue Zustand werden angezeigt.

36 KB Automatensimulator 36 Klasse TGUI

37 KB Automatensimulator 37 Übung Erstellen Sie mit Hilfe von UMLEd ein Klassendiagramm zur Klasse TAutomat mit integrierter Dokumentation.

38 KB Automatensimulator 38

39 KB Automatensimulator 39 Teil 5 Implementierung und Testen

40 KB Automatensimulator 40 Beispiel: TAutomat.anfangszustand gelb... ALGORITHMUS anfangszustand Suche die Zeile Gehe zur nächsten Zeile Bestimme die Zeichenkette zwischen den Tags Weise zustand den entsprechenden Wert zu

41 KB Automatensimulator 41 Exkurs: Stringverarbeitung mit Delphi function Length(S: string): integer; Beschreibung: Length gibt die Anzahl der im angegebenen String vorhandenen Zeichen zurück. Beispiel: L := Length(' ') // L 9 function Pos(Substr: string; S: string): integer; Beschreibung: Pos sucht in dem String S nach dem Teilstring Substr. Wird der Teilstring gefunden, gibt Pos den Integer-Index des ersten Zeichens von Substr in S zurück. Die Groß/Kleinschreibung wird von Pos nicht berücksichtigt. Ist Substr nicht vorhanden, wird der Wert 0 zurückgegeben. Beispiele: Position := Pos(' ', ' test ') // Position 8 Position := Pos('Hi', 'Delphibuch') // Position 5 Position := Pos('ihi', 'Delphibuch') // Position 0

42 KB Automatensimulator 42 Exkurs: Stringverarbeitung mit Delphi function Copy(S; Index, Count: Integer): string; Beschreibung: S ist ein Ausdruck des Typs String. Index und Count sind Integer-Ausdrücke. Copy gibt einen Substring zurück, das Count Zeichen ab S[Index] enthält. Ist Index größer als die Länge von S, gibt Copy einen leeren String zurück. Gibt Count mehr Zeichen an, als verfügbar sind, werden nur die Zeichen von S[Index] bis zum Ende von S zurückgegeben. Beispiele: Hilf := Copy(' test ',8,4) // Hilf ' ' Hilf := Copy(' test ',4,4) // Hilf 'test' Hilf := Copy(' test ',8,6) // Hilf ' '

43 KB Automatensimulator 43 Exkurs: Die Delphi-Klasse TStringList TStringList verwaltet eine Liste, die Strings enthält. Beschreibung: TStringList-Objekte dienen zum Speichern und Verwalten von String-Listen. TStringList implementiert die von TStrings eingeführten abstrakten Eigenschaften und Methoden und führt selbst neue Eigenschaften, Ereignisse und Methoden ein, die - die in der Liste enthaltenen Strings sortieren. - doppelte Strings aus sortierten Listen entfernen. - auf Änderungen des Listeninhalts reagieren. (Quelle: Delphi-Hilfe)

44 KB Automatensimulator 44 Exkurs: Die Delphi-Klasse TStringList rot rotgelb gruen gelb aus gelb... beschreibung[0]: ' beschreibung[1]: ' beschreibung[2]: '... Zugriff auf die Listenelemente

45 KB Automatensimulator 45 Exkurs: Die Delphi-Klasse TStringList ' procedure Add(S: string); - fügt die Zeichenkette S am Ende der Liste an procedure Clear; - löscht die gesamte Liste procedure Delete(Index: Integer); - löscht nur den Eintrag mit dem übegebenen Index procedure Insert(Index: Integer; S: string); - fügt die Zeichenkette S an die durch Index beschriebenen Zeile in der Liste ein procedure LoadFromFile(FileName: string); procedure SaveToFile(FileName: string); - lädt eine Liste aus einer Datei / speichert eine Liste in eine Datei beschreibung.Count-1' Methoden Attribut

46 KB Automatensimulator 46 Übung Implementieren Sie zunächst die Klasse TAutomat gemäß der modellierten Klassenbeschreibung. Testen Sie das entwickelte System. Zum Testen soll zum einen der vorgefertigte Ampelautomat, zum anderen ein selbst erstellter Klimaanlagenautomat benutzt werden.

47 KB Automatensimulator 47 Teil 6 Erweiterung und Überarbeitung

48 KB Automatensimulator 48 Verarbeitung von Eingabefolgen TagNacht...Tag AusAusAnAusAusAus...AnAnAusAnAusAus

49 KB Automatensimulator 49 Verarbeitung von Eingabefolgen rot rotgelb... gelb Tag Nacht AusAusAus AnAusAus... gelb TStringList Tag Tag Tag Nacht... AnAusAus AnAnAus AusAusAn AusAusAus... TStringList

50 KB Automatensimulator 50 Aufgabe Erweitern Sie den Automatensimulator um die Möglichkeit, ganze Eingabefolgen zu verarbeiten.

51 KB Automatensimulator 51 Aufgabe Der entwickelte Automatensimulator arbeitet recht ineffizient. Woran liegt das? Wie könnte man diesen Mangel beheben? Lösungsvorschlag von K. Merkert:


Herunterladen ppt "Ein Automatensimulator Klaus Becker 2004. KB Automatensimulator 2 Automatensimulator Tag AusAusAn."

Ähnliche Präsentationen


Google-Anzeigen