1 / 14

11. Vorlesung: Dynamische Konzepte am Fallbeispiel

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.

Download Presentation

11. Vorlesung: Dynamische Konzepte am Fallbeispiel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. Zustandsdiagramm für Klasse Speise new ( ) ausgegangenMelden ( ) verfügbarMelden ( ) delete ( ) delete ( ) Hans-Jürgen Steffens Systemanalyse SS 04

  11. 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

  12. 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

  13. 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

  14. Ü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

More Related