05.01.2014 Aufrufe

Zustandsmodelle - Gymnasium Pegnitz

Zustandsmodelle - Gymnasium Pegnitz

Zustandsmodelle - Gymnasium Pegnitz

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Zustandsmodelle</strong><br />

M. Jakob<br />

<strong>Gymnasium</strong> <strong>Pegnitz</strong><br />

9. April 2013<br />

0<br />

speichern<br />

T=0<br />

toggeln<br />

T=1<br />

1<br />

0<br />

speichern<br />

T=0<br />

toggeln<br />

T=1<br />

1


Inhaltsverzeichnis<br />

1 Einführung<br />

2 Zustandsdiagrame in der Unified-Modelling-Language —<br />

UML-Diagramme<br />

3 Implementation<br />

4 Bedingungen und ausgelösten Aktionen in ZÜD


Gliederung<br />

Einführung<br />

1 Einführung<br />

2 Zustandsdiagrame in der Unified-Modelling-Language —<br />

UML-Diagramme<br />

3 Implementation<br />

4 Bedingungen und ausgelösten Aktionen in ZÜD<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 3 / 28


Das Inselspiel<br />

Einführung<br />

Inselspiel<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 4 / 28


Das Inselspiel<br />

Einführung<br />

Inselspiel<br />

Kristallfähre<br />

Totenkopffähre<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 4 / 28


Einführung<br />

Das Inselspiel — Zustandsdiagramm<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 5 / 28


Einführung<br />

Mikrobetriebsysteme<br />

Elektronische Geräte (Handy, mp3-Player,...) brauchen zur<br />

Funktion eine kleines Betriebssystem, das festlegt wie sich das<br />

Gerät sich verhalten soll.<br />

Zur Entwicklung solcher Betriebssysteme werden zuerst<br />

Zustandsdiagramme entworfen.<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 6 / 28


Einführung<br />

Beispiel: Einfache Stoppuhr<br />

T1 und T2<br />

T1<br />

Stoppuhr läuft<br />

Uhrzeitanzeige 00:00:00<br />

T1<br />

T1<br />

T1 und T2<br />

T2<br />

Stoppuhr steht<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 7 / 28


Einführung<br />

Beispiel: Einfache Stoppuhr mit ausgelösten Aktionen<br />

T1 und T2<br />

/Anz. auf 0<br />

stellen<br />

T1 /Stoppuhr<br />

starten<br />

Stoppuhr läuft<br />

Uhrzeitanz. 00:00:00<br />

T1 /St.<br />

starten<br />

T1 /St.<br />

anhalten<br />

T1 und T2<br />

/Anz. auf UZ<br />

stellen<br />

T2 /Anz.<br />

auf 0 stellen<br />

Stoppuhr steht<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 8 / 28


Einführung<br />

Übung<br />

➥Ü1: Zustandsübergänge mit ausgelösten Aktionen, Vorlage:<br />

ZUEDUbg.graphml<br />

Nachfolgend sind Zustände, Ereignisse oder ausgelöste Aktionen<br />

angegeben. Ergänze die fehlenden Bausteine<br />

(a) Telefonhörer abheben.<br />

(b) Eine Waschmaschine hat die Waschtemperatur erreicht.<br />

(c) Eine Heizung soll aufhören zu heizen.<br />

(d) Bei einem Getränkeautomat soll ein Getränk im Ausgabefach<br />

liegen.<br />

(e) Eine Braut soll heiraten.<br />

(f) Peter Lustig soll eine E-Mail von seinem Provider abrufen können.<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 9 / 28


Gliederung<br />

UML-Diagramme<br />

1 Einführung<br />

2 Zustandsdiagrame in der Unified-Modelling-Language —<br />

UML-Diagramme<br />

3 Implementation<br />

4 Bedingungen und ausgelösten Aktionen in ZÜD<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 10 / 28


UML-Diagramme<br />

Zustandsdiagrame in der UnifiedModelling Language<br />

UML (Unified Modelling Language) bei Zustandsdiagrammen<br />

Zustände werden durch abgerundete Rechtecke dargestellt.<br />

Ein Zustandsübergang wird durch ein (Übergangs-)Ereignis<br />

hervorgerufen und durch einen Pfeil dargestellt.<br />

Bei jedem Zustandsübergang kann eine Aktion ausgelöst werden.<br />

Jedes Zustandsdiagramm muss genau einen Anfangszustand<br />

haben (Symbol: ).<br />

Endzustände (Symbol:<br />

) darf es beliebig viele geben.<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 11 / 28


Übung<br />

UML-Diagramme<br />

Ü2: Buch, Aufgabe 2.6<br />

TA8(a) in yEd-Textfeld bearbeiten, yEd-Datei hochmoodeln<br />

Ü3: Buch, Aufgabe 2.13<br />

Mit ausgelösten Aktionen ausführen. yEd-Datei hochmoodeln<br />

Ü4: Buch, Aufgabe 2.14<br />

Texteditor eingemoodelt<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 12 / 28


UML-Diagramme<br />

Übung<br />

Ü5: Zahnbürste<br />

Eine elektrische Zahnbürste lässt sich als Automat mit genau zwei<br />

Zuständen (an und aus) darstellen. Das Ereignis für einen<br />

Zustandsübergang ist das Drücken den An-/Ausknopfes, die<br />

ausgelöste Aktion das Laufen bzw. Stoppen des Motors.<br />

(a) Zeichne das ZÜD.<br />

(b) Ergänze das ZÜD um einen dritten Zustand lädt, im dem sich die<br />

Bürste beim Laden befindet. Trage auch die dazugehörigen<br />

Ereignisse und ausgelösten Aktionen ein.<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 13 / 28


Übung<br />

UML-Diagramme<br />

Ü6: verliebt-verlobt-verheiratet-getrennt<br />

Bekanntlich können zwei Personen verliebt, verlobt, verheiratet oder<br />

getrennt sein. Erstelle ein dazu passendes ZÜD mit<br />

Übergangsereignissen und ausgelösten Aktionen.<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 14 / 28


Gliederung<br />

Implementation<br />

1 Einführung<br />

2 Zustandsdiagrame in der Unified-Modelling-Language —<br />

UML-Diagramme<br />

3 Implementation<br />

4 Bedingungen und ausgelösten Aktionen in ZÜD<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 15 / 28


Bespiel: Speiseaufzug<br />

Implementation<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 16 / 28


Bespiel: Speiseaufzug<br />

Implementation<br />

Die Zustände werden in der<br />

Variable zustand<br />

gespeichert, die Übergänge<br />

durch die Methode<br />

abschickenZu modelliert<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 16 / 28


Implementation<br />

Speiseaufzug Attributdeklaration<br />

1 public class Speiseaufzug(){<br />

2<br />

3 private int zustand;<br />

4<br />

5 //Konstruktor<br />

6 //Methoden<br />

7 }<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 17 / 28


Implementation<br />

Speiseaufzug — Konstruktor<br />

1 public Speiseaufzug(){<br />

2 zustand = 0;<br />

3 }<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 18 / 28


Implementation<br />

Speiseaufzug — Methode abschicken(stockwerk)<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 19 / 28


Implementation<br />

Speiseaufzug — Methode abschicken(stockwerk)<br />

1 public void abschickenZu(int stockwerk){<br />

2<br />

3 if ( zustand == 0 ){<br />

4 if ( stockwerk==1 ){ zustand = 1; }<br />

5 else {<br />

6 if ( stockwerk==2 ){zustand = 2; }<br />

7 }<br />

8 }<br />

9 if ( zustand == 1; ){<br />

10 ...<br />

11 }<br />

12 }<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 19 / 28


Implementation<br />

Zusammenfassung<br />

Implementation von Zustandsübergangsdiagrammen<br />

ZÜD werden wie folgt implementiert:<br />

ein Attribut zustand deklarieren,<br />

im Konstruktor dem Attribut zustand den Anfangszustand<br />

zuweisen,<br />

Methode(n) für die Zustandsübergänge implementieren.<br />

Dabei müssen in einer Fallunterscheidung für alle Zustände alle<br />

Übergänge implementiert werden.<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 20 / 28


Implementation<br />

Übung<br />

Ü7: Speiseaufzug<br />

Material: Paket Speiseaufzug2Vorlage für TA c und d.<br />

(a) Implementiere die Klasse Speiseaufzug wie oben beschrieben.<br />

(b) Ergänze die Methode positionGeben(), die dem Benutzer auf der<br />

Konsole angibt, in welchem Stockwerk sich der Aufzug befindet.<br />

(c) In dem Paket Speiseaufzug2Vorlage wurde die Methode<br />

abschicken() mit einer sogenannten switch-case-Anweisung<br />

umgesetzt. Beschreibe in Worte, wie sie funktioniert, worin ihr<br />

Vorteil besteht und welche Aufgabe der break-Befehl hat.<br />

(d) die Methode abschicken() kann noch einfacher geschrieben<br />

werden. Wie?<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 21 / 28


Übung<br />

Implementation<br />

Ü8: Kühlschrank<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 22 / 28


Gliederung<br />

Bedingungen und ausgelösten Aktionen in ZÜD<br />

1 Einführung<br />

2 Zustandsdiagrame in der Unified-Modelling-Language —<br />

UML-Diagramme<br />

3 Implementation<br />

4 Bedingungen und ausgelösten Aktionen in ZÜD<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 23 / 28


Bedingungen und ausgelösten Aktionen in ZÜD<br />

ZÜD mit Bedingungen und ausgelösten Aktionen<br />

ZÜD mit Bedingungen und ausgelösten Aktionen<br />

In ZÜD können Ereignisse (z.B. Getränk wählen) ergänzt werden<br />

durch Bedingungen (z.B. Getränk vorhanden). Der Übergang findet<br />

nur statt, wenn die Bedingung den Wert true liefert.<br />

Mit dem dem Übergang kann eine Aktion ausgelöst werden (z.B.<br />

Getränk ausgeben)<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 24 / 28


Übung<br />

Bedingungen und ausgelösten Aktionen in ZÜD<br />

Ü9: Getränkeautomat<br />

Ergänze das ZÜD des oben angegebenen Getränkeautomaten um<br />

den Zustand bereit und vervollständige das Diagramm durch<br />

Übergänge mit Bedingungen und ausgelösten Aktionen.<br />

Folgende Ereignisse, Bedingungen bzw. Aktionen müssen enthalten<br />

sein: genug bezahlt, Becher nehmen, Anzeige aktualisieren.<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 25 / 28


Bedingungen und ausgelösten Aktionen in ZÜD<br />

Übung<br />

Ü10: Tresor<br />

(a) Aufgabe 2.39<br />

(b) Implementiere die Klasse Tresor nach dem im Buch auf S. 55<br />

abgebildeten Zustandsdiagramm.<br />

Hinweise<br />

Du musst zumindest die Attribute zustand, anzahlFehlversuche<br />

und pin deklarieren<br />

Dem Konstruktor soll die notwendige PIN als Parameter übergeben<br />

werden.<br />

Implementiere die Methoden oeffnen und verriegeln.<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 26 / 28


Übung<br />

Bedingungen und ausgelösten Aktionen in ZÜD<br />

➥Ü11: Soziales Netzwerk<br />

Ü12: 2.51<br />

Ü13: 2.52<br />

Ü14: Wie Geht’s<br />

M. Jakob (<strong>Gymnasium</strong> <strong>Pegnitz</strong>) <strong>Zustandsmodelle</strong> 9. April 2013 27 / 28

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!