11. Vorlesung: Dynamische Konzepte am Fallbeispiel Sequence Diagram für Bestellung Aufnehmen Variante: Kunde muss erst angelegt werden Collaboration Diagram für Bestellung Aufnehmen Zustandsdiagramm für die Klasse Speise Zustandsdiagramm für die Klasse Bestellung Hans-Jürgen Steffens Systemanalyse SS 04
Sequence Diagram für Bestellung aufnehmen Grundlage für die Entwicklung des Sequence Diagrams ist das Klassendiagramm mit den Operations Reihenfolge und Logik des Botschaftenaustauschs lässt sich z.T. aus den Use Cases ableiten Für jede Operation muss bei ihrer Modellierung klar sein, wie deren grundlegender Ablauf ist Für komplexere, nicht aus sich selbst heraus verständliche Operationen sollten daher kurze Beschreibungen erstellt werden Sequence und Collaboration Diagramme können und sollten bereits während der Entwicklung der Klassendiagramme erstellt werden Dokumentation der geplanten Abläufe Verifizierung und ggf. Überarbeitung des Klassendiagramms: Kann das so funktionieren? Wurde nichts vergessen? Hans-Jürgen Steffens Systemanalyse SS 04
Sequence Diagram Bestellung aufnehmen (1) Kunde Speise aufnehmen() : Bestellung Kunde Zuordnen() auswählen() k speisen Zuordnen() * anlegen() : Bestellposition speise Zuordnen () auswählen () s berechne Summe () *errechneGesamtpreis () Gesamtpreis Fortsetzung nächste Folie Summe Hans-Jürgen Steffens Systemanalyse SS 04
Sequence Diagram Bestellung aufnehmen (2) Fortsetzung von vorheriger Folie : Entfernungs- bereich : Bestellung : Bestellposition k : Kunde : Straße s : Speise tourAnlegen() new () : Tour dauerErmitteln() fahrtdauer () fahrtdauer ( ) get (fahrtdauer) fahrtdauer fahrtdauer fahrtdauer auftragFürKücheDrucken * positionFürKücheDrucken() get(MussGekochtWerden) MussGekochtWerden Hans-Jürgen Steffens Systemanalyse SS 04
Variante: Kunde muss erst angelegt werden aufnehmen ( ) : Bestellung :Straße kundeZuordnen ( ) anlegen( ) : Kunde adresseZuordnen ( ) adresseAuswählen ( ) Anschließend weiter wie in Folie 2 mit Operation „Speisen zuordnen“ Hans-Jürgen Steffens Systemanalyse SS 04
Collaboration Diagram In der Regel entwickelt man entweder ein Sequence oder ein Collaboration Diagram – je nachdem welche Aspekte im Vordergrund stehen Die Vorgehensweise ist die gleiche wie beim Sequence Diagram Sequence Diagramme lassen sich direkt in Collaboration Diagramme umsetzen. Assoziationen zwischen Objekten aus Klassendiagramm Zeitliche Reihenfolge mit Hilfe der Nummerierung der Botschaften ausgedrückt Anmerkung: Im folgenden Beispiel wurden aus Gründen der Übersichtlichkeit der Versand von Botschaften eines Objekts an sich selbst weg gelassen Hans-Jürgen Steffens Systemanalyse SS 04
Collaboration Diagram für Bestellung aufnehmen 5.1.1: get (fahrtdauer ) :Straße :Entfernungs- bereich 5.1: fahrtdauer ( ) 1: k := auswählen ( ) Kunde k:Kunde 0: aufnehmen ( ) :Bestellung 5: fahrtdauer ( ) 2.1: s:=auswählen ( ) 4: new ( ) 2: * anlegen ( ) :Bestellposition Speise :Tour 3: * errechneGesamtpreis ( ) 6: * positionFürKücheDrucken ( ) 6.1: get (MussGekochtWerden ) s:Speise Hans-Jürgen Steffens Systemanalyse SS 04
Ermittlung des Zustandsdiagramms Betrachtung des Lebenszyklus eines Objekts Welche Zustände lassen sich unterscheiden? Berücksichtigung der Operationen, die ein Objekt verändern: Anlegen Änderung von Attributwerten und Assoziationen Löschen Hans-Jürgen Steffens Systemanalyse SS 04
Zustände von Objekten der Klasse Speise Ändern sich in der Regel nicht, beschreiben keine Zustände Boolesche Variable False : Speise ist verfügbar True: Speise ist ausgegangen Ändern das Objekt nicht Statusänderung (verfügbar oder nicht verfügbar), setzt den Wert für das Attribut „ausgegangen“ Objekte der Klasse Speise können die zwei Zustände verfügbar und ausgegangen einnehmen Hans-Jürgen Steffens Systemanalyse SS 04
Zustandsdiagramm für Klasse Speise new ( ) ausgegangenMelden ( ) verfügbarMelden ( ) delete ( ) delete ( ) Hans-Jürgen Steffens Systemanalyse SS 04
Zustandsdiagramm der Klasse Bestellung Klasse Bestellung enthält bereits eine Operation, die den Status ermittelt Der Status hängt hier nicht alleine von Attributwerten der Bestellung selbst ab, sondern auch von den Attributwerten der zugehörigen Tour Diese Attributwerte (z. B. Werte des Attributs abgerechnet) gelten für alle Bestellungen einer Tour Beispiel: Eine Bestellung befindet sich in Auslieferung, wenn bei der zugehörigen Tour eine Abfahrtszeit eingetragen ist, aber noch keine Rückkunft-Zeit Der Status wird nicht nur durch die Operation der Bestellungen geändert, sondern auch durch die Operationen anderer Klassen Tour Fahrer Es wurde entschieden, dass Stornierungen nur möglich sind, wenn die Bestellung noch nicht fertig gemeldet ist Übergang zum Zustand gelöscht daher nur vom Zustand aufgenommen aus möglich Wichtig für die Implementierung der Operation stornieren: Es ist eine Überprüfung erforderlich, ob Stornierung noch zulässig ist. Hans-Jürgen Steffens Systemanalyse SS 04
Zustandsdiagramm für Klasse Bestellung Bestellung aufgenommen, Attribut „UhrzeitFertigmeldung“ ist noch leer aufnehmen ( ) Attribut „UhrzeitFertigmeldung“ hat einen Wert, Attribut „UhrzeitAbfahrt“ der zugehörigen Tour hat noch keinen Wert fertigMelden ( ) Operation der Klasse Tour stornieren ( ) Attribut „UhrzeitAbfahrt“ der zugehörigen Tour hat einen Wert, Attribut „UhrzeitRückkunft“ der hat noch keinen Wert inAuslieferungMelden ( ) Operation der Klasse Tour rückkunftMelden ( ) Attribut „UhrzeitRückkunft“ der Tour hat einen Wert, Attribut „abgerechnet“ ist False tageseinnahmenAbrechnen ( ) Operation der Klasse Fahrer gelöscht abgerechnet Attribut „abgerechnet“ der Tour ist True Hans-Jürgen Steffens Systemanalyse SS 04
Zusammenfassung Grundlage für die Entwicklung von Sequence und Collaboration Diagrammen ist das Klassendiagramm mit den Operationen, der Ablauf lässt sich u. a. mit Hilfe der Use Case Diagramme ermitteln Für etwas komplexere Varianten können mehrere Diagramme erstellt werden Für die Identifikation von Zuständen und Transitionen werden für den Lebenszyklus eines Objekts relevante Attributwerte betrachtet sowie Operationen, die Attributwerte verändern Zustände können auch von anderen, verbundenen Objekten abhängen Hans-Jürgen Steffens Systemanalyse SS 04
Übungsfragen Versuchen Sie, Sequence und Collaboration Diagram für die Klasse Bestellung noch einmal selbstständig herzuleiten und vergleichen Sie diese mit der Lösung aus der Vorlesung Versuchen Sie, das Zustandsdiagramm für die Klasse Bestellung noch einmal selbstständig herzuleiten und vergleichen Sie diese mit der Lösung aus der Vorlesung Entwickeln Sie das Sequence und das Collaboration Diagram für die Fertigmeldung einer Bestellung Incl. Ausdruck der Rechnung (vgl. den entsprechenden Use Case und seine Umsetzung in das Klassendiagramm in der entsprechenden Vorlesung) Entwickeln Sie das Zustandsdiagramm für die Klasse Tour Hans-Jürgen Steffens Systemanalyse SS 04