21
Hans-Jürgen Steffens Systemanalyse SS 04 1 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Embed Size (px)

Citation preview

Page 1: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 1

10. Vorlesung: Dynamische Konzepte

Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Page 2: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 2

Botschaften (Messages)

Objekte kommunizieren mit Hilfe von Botschaften (Messages)• Z. T. auch Nachricht, Operations- oder Methodenaufruf genannt

Ein Objekt sendet eine Botschaft an ein anderes Objekt Dieses Objekt muss über eine Operation gleichen Namens

verfügen, die es dann ausführt Das sendende Objekt weiß nicht, wie die entsprechende

Operation ausgeführt wird, es muss nur ihren Namen incl. Über- und Rückgabeparametern kennen

Menge der Botschaften, auf die Objekte einer Klasse reagieren können: Protokoll der Klasse

Interpretation von Botschaften bei Vererbung:• Das empfangende Objekt überprüft bei der Definition seiner

Klasse, ob eine entsprechende Operation definiert ist. Wenn ja, dann führt es diese aus. Andernfalls schaut es bei der direkten Oberklasse nach, anschließend bei deren Oberklasse usw.

Page 3: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 3

Botschaften

Wenn folgendes im Klassendiagramm definiert ist:

...ist folgende Botschaft möglich:

Klasse 1

Operation1()

Klasse 2

* *

: Klasse 1 : Klasse 2

Operation 1()

Page 4: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 4

Interaktionsdiagramme

Stellen den Fluss der Botschaften zwischen den Objekten bei der Durchführung bestimmter Szenarios dar

Szenario:• Ein abgeschlossener Ablauf (z. B. Durchführung eines Use Cases

bzw. ein beim Aufruf einer Operation in Gang gesetzter komplexerer Ablauf), wobei i.d.R. nur ein möglicher Fall betrachtet wird

• Z. B. werden der Erfolgsfall und der Misserfolgsfall eines Ablaufs meist in mehreren Diagrammen dargestellt

Typen von Interaktionsdiagrammen:• Collaboration Diagram

– Fokus auf dem Zusammenspiel der Objekte in Bezug auf ihre Assoziationen

• Sequence Diagram– Fokus auf dem zeitlichen Ablauf

Collaboration Diagram und Sequence Diagram sind inhaltlich sehr ähnlich.

Page 5: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 5

Collaboration Diagrams

Object Diagrams mit Botschaften-Austausch an den Beziehungen Botschaften werden in der Reihenfolge ihres Versands nummeriert

• Wird während der Durchführung einer Operation eine weitere Botschaft versandt, so erfolgt verschachtelte Nummerierung

2 OperationA ()2.1 OperationB () - innerhalb der Operation A versandte Botschaft2.1.1 Operation C () - innerhalb der Operation B versandte Botschaft

Es werden nur diejenigen Objekte angegeben, die an dem Szenario beteiligt sind

Als ursprünglicher Auslöser kann ein Akteur angegeben werden Werden Klassenoperationen aufgerufen, so wird anstatt des Objekts die

Klasse eingetragen Neu erzeugte und gelöschte Objekte können gekennzeichnet werden:

{new} – neues Objekt{destroyed} – gelöschtes Objekt{transient} – neu erzeugtes und wieder gelöschtes Objekt

Page 6: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 6

Elemente der Collaboration Diagrams

:Klasse 11: Operation 1 ()

1.1: Operation 2 ()

:Klasse 2

1.1.1: Operation 3 ()

:Klasse 3

:Klasse 4

1.2: Operation 4 ()

Objekt

AssociationNachricht

Nummerierung(Reihenfolgeund Schachtelung)

{transient}

{new}

{new}

Page 7: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 7

Beispiel: Autoverleih (Class Diagram)

AusleiheKunde Fahrzeug

Fahrzeugtyp

Preis......

fzg_suchen():fzgreservieren()preis()...

...

...

ausleihen ()gesamtpreis_ermitteln()...

ausleihDatumrueckgabeDatum...

...

1 * * 1

1

*

Page 8: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 8

Beispiel: Autoverleih (Collaboration Diagram)

:Ausleihe :Fahrzeug

Fahrzeug

:Fahrzeugtyp

1: ausleihen ()

1.1: fzg_suchen ()

1.2: reservieren ()1.3: preis ()

1.3.1: get_preis ()

{new}

Page 9: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 9

Sequence Diagrams

Darstellung der zeitlichen Reihenfolge• Zeit wird nach unten aufgetragen

Für jedes beteiligte Objekt wird eine gestrichelte Lebenslinie eingezeichnet, die die Dauer seiner Existenz repräsentiert

• Neu entstehende Objekte: Botschaft auf Objekt-Symbol• Gelöschte Objekte: großes X

Botschaftenaustausch• Gerichtete Kanten vom sendenden zum empfangenden Objekt mit

Angabe der Operation• Die Aktivierung des Objekts wird mit Hilfe eines Rechtecks

dargestellt• Rückgabe des Kontrollflusses kann mit Hilfe eines gestrichelten

Pfeils dargestellt werden Die Beziehungen der Objekte sind im Sequence Diagram nicht

ersichtlich.

Page 10: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 10

Darstellung von Bedingungen und Iterationen

Bedingung

• Bedingter Versand von Botschaften: Bedingung wird in eckiger Klammer vorangestellt

• Hierdurch können auch Verzweigungen dargestellt werden

• Es sollten aus Gründen der Übersichtlichkeit nicht zu viele Verzweigungen in ein Diagramm eingezeichnet werden, ggf. kann man mehrere Diagramme erstellen

Wiederholungen (Iterationen)

• Sternchen vor der Operation, ggf. mit Bedingung in eckiger Klammer

Page 11: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 11

Elemente der Sequence Diagrams

Objekt1:Klasse Objekt2:Klasse

Objekt3:Klasse

botschaft()

antwort

botschaft()

botschaft()

antwort

*botschaft()

antwort

[x>0]botschaft()[x<0]botschaft()

Objekt4:Klasse

Objekt

Lebenslinie

Aktivierung

Iteration

Bedingung

NeuesObjektangelegt

Objektgelöscht

Zeit

Page 12: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 12

Beispiel: Autoverleih (Sequence Diagram)

:Ausleiheausleihen()

reservieren()

gesamtpreis

f:Fahrzeug

preis ()

:Fahrzeugtyp

get_preis ()

preispreis

Fahrzeug

fzg_suchen()

f

Klasse

Objekt-name

Klassen-name

Page 13: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 13

Einsatz von Interaktionsdiagrammen

Interaktionsdiagramme werden i.d.R. nicht zur kompletten Dokumentation des Gesamtsystems eingesetzt

Werden eingesetzt zur Dokumentation und Untersuchung von besonders komplexen, schwer durchschaubaren und erklärungsbedürftigen Abläufen

In der Analyse sollten derartige Abläufe so detailliert beschrieben werden, dass ihre fachliche Korrektheit diskutiert werden kann und dass eine geeignete Vorgabe für Entwurf und Implementierung vorliegt.

Page 14: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 14

Zustandsdiagramme (State Chart Diagrams)

Zustandsautomat (finite state machine)

• Besteht aus Zuständen und Zustandsübergängen (Transitionen) Zustand

• Zeitspanne, in der Objekt auf ein Ereignis wartet

• Objekt kann mehrere Zustände durchlaufen

• Zu jedem Zeitpunkt ist das Objekt in genau einem Zustand

• Dieser wird durch seine aktuellen Attributwerte und Beziehungen definiert

• Mit einem Zustand können Aktionen verbunden sein– /entry: Aktionen, die beim Eintritt in den Zustand ausgeführt werden

– /exit: Aktionen, die beim Austritt aus dem Zustand ausgeführt werden

– /do: Aktionen, die während des Zustandes ausgeführt werden

• Zustände können weiter in Sub-Zustände zerlegt sein, für die wiederum Zustandsdiagramme gezeichnet werden können

Page 15: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 15

Zustandsdiagramme (State Chart Diagrams)

Transition• Verbindet zwei Zustände• Ist atomar (kann nicht unterbrochen werden)• Wird ausgelöst von Ereignis• Welche Transition durchgeführt wird („feuert“), hängt vom

aktuellen Zustand und dem Ereignis ab Ereignisse

• Arten von Ereignissen:– Bedingung, die wahr wird– Signal– Botschaft (Aufruf einer Operation)– Verstrichene Zeit– Eintreten eines bestimmten Zeitpunkts

• Kann mit Wächter verbunden sein– Zusätzliche Bedingung, die ausgeführt wird, wenn Ereignis eintritt

Page 16: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 16

Zustandsdiagramme (State Chart Diagrams)

Zustandsdiagramme

• Werden in der Analyse benutzt, um den Lebenszyklus von ausgewählten Objekten zu beschreiben (dort wo dieser Lebenszyklus komplexer ist).

• Als Aktionen werden die Operationen der entsprechenden Klasse genutzt

Page 17: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 17

Zustandsdiagramme – Wichtige Konstrukte

Zustand 1do/ Aktivität

Zustand 2

Zustand 3entry/Aktion 3exit/Aktion 4

Zustand 4

Ereignis 1

Ereignis 2/ Aktion 2

Ereignis 3[Wächter]

Anfangszustand

Endzustand

Transition

Page 18: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 18

Beispiel: Zustandsdiagramm für Klasse Fahrzeug

frei

verliehenzurück-

gegeben

In Reparatur

Neues Fz./ erfassen()

Rückgabe/ zurück-nehmen()

Fz. okay/ freigeben()

Ausleihe/ reservieren()

Reparatur beendet/ ausReparaturzurückmelden()

Fz. nicht okay/ inReparatur

Melden()

Fz-Schaden/ inReparaturMelden() Fz. verkauft

/ löschen()

Fz-Schaden/ inReparaturMelden()

Fz. verkauft/ löschen()

Fz. verkauft/ löschen()

Page 19: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 19

Abbildung der Zustände für Klasse Fahrzeug

Attribut „Status“ dient der Abbildungder im Zustandsdiagramm verwendeten Zustände

Bemerkung:

• Der Zustand verliehen hängt mit der Existenz eines Ausleihe-Objekts zusammen, bei dem das Rückgabedatum noch leer ist

erfassen()reservieren()

zurücknehmen()freigeben()inReparaturMelden()ausReparaturZurückmelden()löschen()

Fahrzeug

fzg_suchen()

preis()

Status

Page 20: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 20

Zusammenfassung

Objekte kommunizieren mit Hilfe von Botschaften. Das empfangende Objekt führt seine Operation gleichen Namens durch.

Mit Hilfe von Sequence und Collaboration Diagrams lassen sich Abläufe anhand des Botschaften-Flusses darstellen und analysieren.

Beim Collaboration Diagram steht das Zusammenspiel der Objekte im Zusammenhang mit ihren Beziehungen im Vordergrund.

Im Sequence Diagram wird die zeitliche Reihenfolge dargestellt. Mit Hilfe von Zustandsdiagrammen kann der Lebenszyklus von

Objekten in Form von Zuständen und Zustandsübergängen (Transitionen) dargestellt werden.

Page 21: Hans-Jürgen Steffens Systemanalyse SS 041 10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme)

Hans-Jürgen Steffens Systemanalyse SS 04 21

Übungsfragen

Was ist eine Botschaft? Welche Botschaften versteht ein Objekt? Was bezeichnet man als Protokoll einer Klasse? Welche Arten von Interaktionsdiagrammen gibt es in der UML? Wozu dienen diese? Wie unterscheiden Sie sich? Wie können Varianten von Abläufen (z. B. erfolgreiche und nicht

erfolgreiche Durchführung) beschrieben werden? Was ist der Unterschied zwischen Lebenslinie und Aktivierung? Was ist der Zustand eines Objekts? Wie kann man herausfinden, in welchem Zustand sich ein Objekt

befindet? Was ist eine Transition? Wann wird diese durchgeführt? Wofür verwendet man Zustandsdiagramme?