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 04 1
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.
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()
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.
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
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}
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
*
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}
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.
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
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
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
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.
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
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
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
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
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()
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
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.
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?