140 likes | 265 Views
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.
E N D
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 KundeZuordnen() auswählen() k speisenZuordnen() * anlegen() : Bestellposition speiseZuordnen () auswählen () s berechneSumme () *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 : Bestellposition : Bestellung 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 ) :Entfernungs-bereich :Straße 5.1: fahrtdauer ( ) 1: k := auswählen ( ) Kunde k:Kunde 0: aufnehmen ( ) :Bestellung 5: fahrtdauer ( ) 2.1: s:=auswählen ( ) 2: * anlegen ( ) 4: new ( ) :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 • Objekte der Klasse Speise können die zwei Zustände verfügbar und ausgegangen einnehmen Ändern sich in der Regel nicht, beschreibenkeine Zustände Boolesche Variable False : Speise ist verfügbar True: Speise ist ausgegangen Ändern dasObjekt nicht Statusänderung (verfügbar odernicht verfügbar), setzt den Wert für das Attribut „ausgegangen“ 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 Operation der Klasse Fahrer tageseinnahmenAbrechnen ( ) abgerechnet gelöscht 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