Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm...

15
Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm Aktivitätsdiagramm

Transcript of Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm...

Page 1: Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm Aktivitätsdiagramm.

Objektorientierte Konzepte

Dynamische Konzepte:

Zustandsautomat

UML-Diagramme:

Zustandsdiagramm

Aktivitätsdiagramm

Page 2: Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm Aktivitätsdiagramm.

Zustandsautomat

• Zustandsautomat= Zustände+ Übergänge (Transitionen)

• Zustand: Zeitspanne, in der ein Objekt auf ein Ereignis wartet (andauernde Aktivität)

• Ereignis: tritt zu einem bestimmten Zeitpunkt auf und hat (konzeptionell) keine Dauer; kann Aktion innerhalb eines Zustands auslösen (durch Operationen realisiert)

• Transition: Durch ein Ereignis ausgelöster Zustandswechsel (Aktion)

• Ein Objekt kann sukzessive mehrere Zustände durchlaufen

• Momentaner Zustand und eintretendes Ereignis konstituieren den Folgezustand

Page 3: Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm Aktivitätsdiagramm.

Zustandsdiagramm

• Engl.: state chart diagram, UML 2.0: state machine diagram

• Beschreibt die Zustandsfolgen eines Objekts einer Klasse in seinem gesamten Lebenszyklus oder während der Ausführung einer Operation

• Modellierung des Intraobjektverhaltens (Interaktionsdiagramme: Interobjektverhalten)

Page 4: Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm Aktivitätsdiagramm.

Basisnotation• Zustand= Rechteck mit

abgerundeten Ecken• Zweiteilung möglich: Name

(optional: anonymer Z.) + Aktivität (do/ Aktivität) oder Aktion (entry-,exit-Aktion)

• Transition: Pfeil, beschriftet mit Ereignis; Ereignisarten: Signal (Ereignisname: left button down), Nachricht (Operationsaufruf: bearbeite()), Bedingung (wenn x<10), Zeitpunkt ( after(6 seconds), when(datum=10.11.04))

• Guard condition: Bedingung die nach Eintritt des Ereignisses überprüft wird

• Anfangszustand: ausgefüllter Kreis, Endzustand: „Bullauge“ (auch optional)

• Implizites Ereignis: tritt ein, wenn Verarbeitung beendet ist

Page 5: Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm Aktivitätsdiagramm.

Beispiel 1: Lebenszyklus eines Buchs

Page 6: Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm Aktivitätsdiagramm.

Beispiel 2: Kassenautomat: Parkgebühren zahlen

Page 7: Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm Aktivitätsdiagramm.

Übung 1

Ziel: Zustandsdiagramm erstellen

Modellieren Sie einen zyklischen Zustandsautomaten.

Folgende Situation: Es wird ein Einweihungsfest gegeben. Da es Hochsommer ist und die Gäste sehr durstig sind, muß häufig für

Getränkenachschub aus dem Keller gesorgt werden.

Der Gastgeber befindet sich zunächst in einem Zustand „mit Gast kommunizieren“. Der Forderung eines Gastes nach

Getränkenachschub gibt der Gastgeber dann nach, wenn der Kühlschrank tatsächlich leer ist. Er kümmert sich dann um den Nachschub, der sich im Keller befindet. Nachdem er die neuen

Getränke geholt und den Keller wieder abgeschlossen hat, macht er sich ans Auffüllen des Kühlschranks. Indem er seinem durstigen Gast ein neues Getränk überreicht, tritt wieder sein anfänglicher

kommunizierender Zustand ein. Die gelungene Aktion wird durch ein Prosit abgeschlossen (bedenken Sie, dass es viele Gelegenheiten

für ein Prosit gibt…).

Im Zustandsdiagramm sollen die nebenstehenden Operationen eingebunden sein.

öffneKeller()

schließeKeller()

holeGetränke()öffneKühlschrank()

schließeKühlschrank()

ladeKühlschrank()

Gastgeber

zuprosten()

Page 8: Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm Aktivitätsdiagramm.

Beispiel: Unterzustände

Page 9: Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm Aktivitätsdiagramm.

Übung 2Ziel: Zustandsdiagramm erstellen

Anhand der folgenden Problembeschreibung ist ein Zustandsdiagramm zu erstellen, um das Abheben von Geld an einem - vereinfachten - Geldautomaten zu beschreiben.

Zu Beginn ist der Automat im Zustand »bereit«. Wird eine Karte eingegeben, so wird die Karte eingezogen. Falsche Karten werden sofort ausgeworfen und der Geldautomat ist wieder bereit. Ist die Karte korrekt, dann wartet der Automat auf die Eingabe der Geheimzahl. Wird eine falsche Geheimzahl eingegeben, dann bricht der Automat die Verarbeitung ab (d.h. Auswerfen der Karte) und ist wieder bereit. Bei korrekter Geheimzahl wartet der Automat auf die Eingabe des Betrags. Ist der gewünschte Betrag zu hoch, kann er erneut eingegeben werden. Weist das Konto die notwendige Deckung auf, dann wird die Karte aktualisiert ausgegeben und anschließend der Kundenauftrag bearbeitet. Anschließend ist der Automat bereit für den nächsten Kunden. Solange der Automat den Auftrag noch nicht bearbeitet, kann jederzeit die Rückgabetaste gedrückt werden. Der Automat wirft die Karte aus und ist wieder bereit.

Page 10: Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm Aktivitätsdiagramm.

Aktivitätsdiagramm

• Einsatz: Beschreibung eines Ablaufs

- Anwendungsfall

- Workflow

- Operation

Page 11: Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm Aktivitätsdiagramm.

Notation

• Kreis (ausgefüllt/ bullaugig): Start/Ende

• Rechteck mit abgerundeten Ecken: Aktivität

• Pfeil: Übergang• Raute: Entscheidung• Balken: Teilung (Splitting) und

Synchronisation• Partition, „swimlane“:

Verantwortlichkeitsbereiche; alternative Notation: (Partition)• Gabel: Unteraktionsdiagramm

swimlane

Bereich A Bereich B

Page 12: Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm Aktivitätsdiagramm.

Beispiel 3: Auftrag bearbeiten

Page 13: Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm Aktivitätsdiagramm.

Beispiel 4: Kaffee vom Automaten ziehen

Kafeetrinker Automat

Page 14: Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm Aktivitätsdiagramm.

Übung 3

Ziel: Aktivitätsdiagramm erstellen

Wir schauen nochmal beim Einweihungsfest vorbei. Stellen Sie nun den Ablauf des Falles „Durst stillen“ durch ein Aktivitätsdiagramm dar.

Beachten Sie dabei jetzt folgende Rahmenvoraussetzungen: Der Gast kann sich selbst bedienen, indem er aus dem Kühlschrank ein Bier holt.

Er kann wahlweise den Gastgeber auch bitten, einen Tee zuzubereiten. Falls kein Bier mehr im Kühlschrank ist, holt der Gastgeber Bier aus dem Keller.

Beachten Sie auch den Fall, dass es gar nichts mehr gibt und der Gast durstig bleibt.

Versuchen Sie möglichst viele verschiedene Basisnotationselemente in das Diagramm einzubringen.

Page 15: Objektorientierte Konzepte Dynamische Konzepte: Zustandsautomat UML-Diagramme: Zustandsdiagramm Aktivitätsdiagramm.

Weitere Übungen

Übung 4: Ziel: Zustandsdiagramm erstellen Versuchen Sie einen Kaffeeautomaten als Zustandsdiagramm zu

modellieren.

Übung 5: Ziel: Aktivitätsdiagramm erstellen Erweitern Sie den Lebenszyklus eines Buchs aus Beispiel 1,

indem Sie die Akteure Entleiher und Bibliotheksangestellte mit einbeziehen. Entwickeln Sie daraus ein Aktivitätsdiagramm „Buch am Schalter entleihen“.