05.01.2014 Aufrufe

Zustandsmodelle 1 0 0 1 Inhaltsverzeichnis - Gymnasium Pegnitz

Zustandsmodelle 1 0 0 1 Inhaltsverzeichnis - Gymnasium Pegnitz

Zustandsmodelle 1 0 0 1 Inhaltsverzeichnis - 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 />

Notes<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<br />

<strong>Inhaltsverzeichnis</strong><br />

Notes<br />

Einführung<br />

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

UML-Diagramme<br />

Implementation<br />

Bedingungen und ausgelösten Aktionen in ZÜD


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

Einführung<br />

Notes<br />

Gliederung<br />

Einführung<br />

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

UML-Diagramme<br />

Implementation<br />

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

3 / 25<br />

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

Einführung<br />

Notes<br />

Das Inselspiel<br />

Inselspiel<br />

Kristallfähre<br />

Totenkopffähre<br />

4 / 25


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

Einführung<br />

Notes<br />

Das Inselspiel — Zustandsdiagramm<br />

5 / 25<br />

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

Einführung<br />

Notes<br />

Mikrobetriebsysteme<br />

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

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

das Gerät sich verhalten soll.<br />

◮ Zur Entwicklung solcher Betriebssysteme werden zuerst<br />

Zustandsdiagramme entworfen.<br />

6 / 25


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

Einführung<br />

Notes<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 />

7 / 25<br />

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

Einführung<br />

Notes<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 />

8 / 25


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

Einführung<br />

Notes<br />

Übung<br />

• Ü1: Zustandsübergänge mit ausgelösten Aktionen, Vorlage: ZUEDUbg.graphml<br />

run:Arbeitsmaterial/ZUED/ZUEDUbg.graphml<br />

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

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 liegen.<br />

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

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

9 / 25<br />

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

UML-Diagramme<br />

Notes<br />

Gliederung<br />

Einführung<br />

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

UML-Diagramme<br />

Implementation<br />

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

10 / 25


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

UML-Diagramme<br />

Notes<br />

Zustandsdiagrame in der UnifiedModelling Language<br />

UML (Unified Modelling Language) bei<br />

Zustandsdiagrammen<br />

◮ Zustände werden durch abgerundete Rechtecke<br />

dargestellt.<br />

◮ Ein Zustandsübergang wird durch ein<br />

(Übergangs-)Ereignis hervorgerufen und durch einen Pfeil<br />

dargestellt.<br />

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

werden.<br />

◮ Jedes Zustandsdiagramm muss genau einen<br />

Anfangszustand haben (Symbol: ).<br />

◮ Endzustände (Symbol:<br />

) darf es beliebig viele geben.<br />

11 / 25<br />

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

UML-Diagramme<br />

Notes<br />

Übung<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 />

12 / 25


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

UML-Diagramme<br />

Notes<br />

Übung<br />

• Ü5: Zahnbürste<br />

Eine elektrische Zahnbürste lässt sich als Automat mit genau zwei Zuständen (an und<br />

aus) darstellen. Das Ereignis für einen Zustandsübergang ist das Drücken den<br />

An-/Ausknopfes, die 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 Bürste beim<br />

Laden befindet. Trage auch die dazugehörigen Ereignisse und ausgelösten<br />

Aktionen ein.<br />

13 / 25<br />

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

UML-Diagramme<br />

Notes<br />

Übung<br />

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

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

Erstelle ein dazu passendes ZÜD mit Übergangsereignissen und ausgelösten<br />

Aktionen.<br />

14 / 25


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

Implementation<br />

Notes<br />

Gliederung<br />

Einführung<br />

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

UML-Diagramme<br />

Implementation<br />

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

15 / 25<br />

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

Implementation<br />

Notes<br />

Bespiel: Speiseaufzug<br />

Die Zustände werden in<br />

der Variable zustand<br />

gespeichert, die<br />

Übergänge durch die<br />

Methode abschickenZu<br />

modelliert<br />

16 / 25


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

Implementation<br />

Notes<br />

Speiseaufzug Attributdeklaration<br />

1 public class Speiseaufzug<br />

(){<br />

2<br />

3 private int zustand;<br />

4<br />

5 //Konstruktor<br />

6 //Methoden<br />

7 }<br />

17 / 25<br />

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

Implementation<br />

Notes<br />

Speiseaufzug — Konstruktor<br />

1 public Speiseaufzug(){<br />

2 zustand = 0;<br />

3 }<br />

18 / 25


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

Implementation<br />

Notes<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 />

19 / 25<br />

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

Implementation<br />

Notes<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<br />

Zustände alle Übergänge implementiert werden.<br />

20 / 25


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

Implementation<br />

Notes<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 Konsole angibt,<br />

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

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

sogenannten switch-case-Anweisung umgesetzt. Beschreibe in Worte, wie sie<br />

funktioniert, worin ihr Vorteil besteht und welche Aufgabe der break-Befehl hat.<br />

(d) die Methode abschicken() kann noch einfacher geschrieben werden. Wie?<br />

21 / 25<br />

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

Implementation<br />

Notes<br />

Übung<br />

• Ü8: Kühlschrank<br />

22 / 25


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

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

Notes<br />

Gliederung<br />

Einführung<br />

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

UML-Diagramme<br />

Implementation<br />

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

23 / 25<br />

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

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

Notes<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<br />

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

Übergang findet nur statt, wenn die Bedingung den Wert true<br />

liefert.<br />

Mit dem dem Übergang kann eine Aktion ausgelöst werden<br />

(z.B. Getränk ausgeben)<br />

24 / 25


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

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

Notes<br />

Übung<br />

• Ü9: Getränkeautomat<br />

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

bereit und vervollständige das Diagramm durch Übergänge mit Bedingungen und<br />

ausgelösten Aktionen.<br />

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

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

25 / 25<br />

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

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

Notes<br />

Übung<br />

• Ü10: Tresor<br />

(a) Aufgabe 2.39<br />

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

Zustandsdiagramm.<br />

Hinweise<br />

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

anzahlFehlversuche und pin deklarieren<br />

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

übergeben werden.<br />

◮ Implementiere die Methoden oeffnen und verriegeln.<br />

26 / 25


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

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

Notes<br />

Übung<br />

• Ü11: Soziales Netzwerk<br />

run:./Arbeitsmaterial/SozialesNetzwerk/SozialesNetzwerk.pdf<br />

• Ü12: 2.51<br />

• Ü13: 2.52<br />

• Ü14: Wie Geht’s<br />

27 / 25<br />

Notes

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!