Sie sind auf Seite 1von 51

Objektorientierte Modellierung

Sequenzdiagramm

Business Informatics Group


Institute of Software Technology and Interactive Systems
Vienna University of Technology
Favoritenstrae 9-11/188-3, 1040 Vienna, Austria
phone: +43 (1) 58801-18804 (secretary), fax: +43 (1) 58801-18896
office@big.tuwien.ac.at, www.big.tuwien.ac.at
Literatur

Die Vorlesung basiert auf folgendem Buch:


UML @ Classroom:
Eine Einfhrung in die objekt-
orientierte Modellierung
Martina Seidl, Marion Brandsteidl,
Christian Huemer und Gerti Kappel
dpunkt.verlag
Juli 2012
ISBN 3898647765

Anwendungsfalldiagramm
Strukturmodellierung
Zustandsdiagramm
Sequenzdiagramm
Aktivittsdiagramm
Inhalt

Interaktionen und Nachrichten


berblick Interaktionsdiagramme
Basiselemente des Sequenzdiagramms
Diagrammrahmen
Lebenslinie
Nachrichten
Parameter, Lokale Attribute
Zeiteinschrnkungen und Zustandsinvarianten
Kombinierte Fragmente
Verzweigungen und Schleifen
Nebenlufigkeit und Ordnung
Filterungen und Zusicherungen

BIG / TU Wien 2
Interaktionen und Nachrichten

Interaktion
Zusammenspiel mehrerer Kommunikationspartner
Nachrichten- und Datenaustausch

Interaktionen durch
Signale
Operationsaufrufe
Aufruf einer Operation einer Klasse
Antwort: Ergebnis der aufgerufenen Operation

Steuerung der Interaktionen durch


Bedingungen
Zeitereignisse

BIG / TU Wien 3
Interaktionsdiagramme

Zeigen wie Nachrichten zwischen verschiedenen Interaktionspartnern


in einem bestimmten Kontext ausgetauscht werden

Beschreibung von Kommunikationssituationen durch:


Kommunikationspartner und deren Lebenslinien
Interaktionen
Nachrichten
Mittel zur Flusskontrolle

Unterschiedliche Anforderungen und Betonung unterschiedlicher


Aspekte
4 verschiedene Typen von
Interaktionsdiagrammen

BIG / TU Wien 4
Interaktionsdiagramme Arten (1/2)

Die 4 Arten von Interaktionsdiagrammen sind fr einfache Interaktionen


semantisch quivalent
rolle:Typ rolle:Typ rolle:Typ rolle:Typ
Betonung unterschiedlicher Aspekte
Sequenzdiagramm zeigt den m1()
m2()
zeitlichen und logischen
m3()
Nachrichtenfluss
Zeit ist eigene Dimension

Kommunikationsdiagramm ist
strukturell orientiert
1.1: m2()
Zeigt die Beziehungen zwischen Rolle3

Interaktionspartnern Kontextaspekt Rolle1 1: m1()


Rolle2
Reihenfolge von Nachrichten Rolle4
nur ber Dezimalklassifikation
1.2: m3()
ausgedrckt
Zeit ist keine eigene Dimension

BIG / TU Wien 5
Interaktionsdiagramme Arten (2/2)

Zeitdiagramm zeigt Zustandsnderungen

rolle4 rolle3 roll2 rolle1


z1
der Interaktionspartner aufgrund von z2
m1
Zeitereignissen z3
z4
Vertikale Dimension reprsentiert m2 m3
z5
Interaktionspartner und z6

ihre mglichen Zustnde z7


z8
Horizontale Dimension z9

reprsentiert die Zeitachse

Interaktionsbersichtsdiagramm
zeigt das Zusammenspiel von
verschiedenen Interaktionen
Visualisiert in welcher Reihenfolge
und unter welchen Bedingungen
Interaktionsablufe stattfinden

BIG / TU Wien 6
Einsatzbereiche

Modellierung der Interaktionen eines Systems mit seiner Umwelt


(Systemgrenzen festlegen, System als Black-Box)
Modellierung der Realisierung eines Anwendungsfalls
Modellierung des Zusammenspiels der internen Struktur einer Klasse,
Komponente oder Kollaboration
Modellierung der Spezifikation von Schnittstellen zwischen
Systemteilen (Zusammenspiel angebotene/benutzte Schnittstelle)
Modellierung der Operationen einer Klasse

BIG / TU Wien 7
Sequenzdiagramm

Darstellung von Interaktionen in 2 Dimensionen:


"horizontal": Interaktionspartner in Form von Rollen
Reihenfolge der Partner wird fr eine mglichst
bersichtliche Darstellung gewhlt
"vertikal": Zeitachse
Darstellung des zeitlichen Ablaufs der Kommunikation

wichtigste Notationselemente:
Lebenslinien: Kommunikationspartner Interaktionspartner
Nachrichten: Pfeile sd InteraktionsName

Zeitachse

BIG / TU Wien 8
Lebenslinie

Eine Lebenslinie beschreibt genau einen Interaktionspartner


Als Interaktionspartner knnen alle Rollen des Kontext-Classifiers
auftreten
Rollen sind vom Typ ConnectableElement (z.B. Klassen, Attribute oder
Ports)

Metamodell Notation im
Sequenzdiagramm
Lifeline Rolle: Typ

* Kopf der
Lebenslinie
represents
1 Lebenslinie
ConnectableElement
(from InternalStructures) Lschsymbol

BIG / TU Wien 9
Typ- vs. Instanzebene

Modellierung des Nachrichtenaustauschs zwischen Rollen und damit


prinzipiell auf Rollenebene
Kontext der Interaktion durch strukturierte Classifier festgelegt = Kontext-
Classifier
Die Rollen der Classifier stellen die Interaktionspartner dar
Tatschliche Interaktion findet selbstverstndlich auf Instanzebene
zwischen Objekten statt

Modellierung auf Instanzebene mglich, um eine Abfolge von


Nachrichten zwischen konkreten Objekten darzustellen = Trace

BIG / TU Wien 10
Lebenslinie: Ereignisspezifikation (1/2)

Interaktionen werden als Folge von Ereignisspezifikationen auf


Lebenslinien betrachtet
Beispiel fr Ereignisspezifikationen
Senden und Empfangen von Nachrichten auf verschiedenen
Lebenslinien oder der gleichen Lebenslinie

:Sender :Empfaenger

Sende- Empfangs-
ereignis ereignis
Nachricht()

BIG / TU Wien 11
Lebenslinie: Ereignisspezifikation (2/2)

Reihenfolge von Ereignisspezifikationen


Vertikale Zeitachse bestimmt nur die Ordnung der Ereigniseintritte pro
Lebenslinie
Jedoch nicht die Reihenfolge von Ereigniseintritten auf verschiedenen
Lebenslinien
Erst durch Nachrichten zwischen Lebenslinien wird eine Ordnung ber
Lebenslinien hinweg erzwungen

BIG / TU Wien 12
Lebenslinie: Reihenfolge von Ereigniseintritten

auf einer Lebenslinie auf verschiedenen Lebenslinien

m1 m1
m3 m3

Ereignisfolge 1: m1 m3 Ereignisfolge 1: m1 m3
Ereignisfolge 1: m3 m1
zeitlich vor
auf verschiedenen Lebenslinien,
verbunden durch Nachrichtenaustausch

m1
m2
m3

Ereignisfolge 1: m1 m2 m3

BIG / TU Wien 13
Lebenslinie: Ausfhrungsspezifikation

Die Ausfhrung einer Aktivitt/Operation wird durch zwei


Ereignisspezifikationen (Start und Ende) auf der gleichen Lebenslinie
definiert
Diese sogenannte Ausfhrungsspezifikation Startereignis-
kann durch einen Balken dargestellt werden spezifikation
Ausfhrungs-
Ausfhrungsarten spezifikation
Direkt
Endereignis-
Interaktionspartner fhrt spezifikation
Verhalten selbst aus

Indirekt
Ausfhrung wird an andere
Interaktionspartner delegiert

BIG / TU Wien 14
Lebenslinie: Aktives Objekt

Aktive Objekte verfgen ber eigenen Kontrollfluss (Prozess oder


Thread)
Knnen unabhngig von anderen Objekten operieren

Notation b1:Benutzer
Kopf der Lebenslinie wird
links und rechts mit doppeltem b1 :Benutzer
Rand versehen
durchgehender Balken
ber gesamte Lebenslinie

BIG / TU Wien 15
Nachricht

Arten der Kommunikation

Synchrone Kommunikation
Der Sender wartet bis zur Beendigung der Interaktion,
m1(p1,p2)
die durch die Nachricht ausgelst wurde

Asynchrone Kommunikation
Die Nachricht wird als Signal betrachtet m2
Der Sender wartet nicht auf das Ende der Interaktion

Antwortnachricht (optional)
att: Name eines Attributs, dem der Rckgabewert
zugewiesen werden soll att=m1:wert
m1: Name der Nachricht, auf die geantwortet wird
wert: Rckgabewert

BIG / TU Wien 16
Nachricht: Spezielle Nachrichtenarten

Objekterzeugung
Ermglicht, einen Interaktions-
partner erst im Laufe der
new

Interaktion zu erzeugen
Verlorene Nachricht
Senden einer Nachricht an lost
unbekannten oder nicht
relevanten Interaktionspartner
Gefundene Nachricht found
Empfang einer Nachricht von einem
unbekannten oder nicht relevanten
Interaktionspartner
Zeitkonsumierende bertragung

17
Basiskonzepte Parameter, lokale Attribute

Darstellung von Parametern und lokalen Attributen


Beispiel: Modellierung der
Operation func: void func (int par1, int par2)
{
int x = 0;
String y = "Test";
...
}
Parameter

Variante 1: sd func (int par1, int par2)


x:int = 0
lokale Attribute
y:String = "Test"

Variante 2:

sd func (int par1, int par2)


x:int = 0
y:String = "Test"
18
Zeiteinschrnkungen

Arten
Zeitpunkt (time constraint)
Bezieht sich auf einzelne Ereignisspezifikationen
relativ: z.B. after(5sec); absolut: z.B. at(12.00)
Zeitdauer (duration constraint)
Bezieht sich auf Zeitintervall zwischen zwei Ereigniseintritten
z.B. {12.00 .. 13.00}
Vordefinierte Aktionen zur Zeitberechnung
now: Berechnung der aktuellen Zeit
duration: Berechnung einer Zeitdauer
Erhaltene Werte mssen Variablen zugewiesen werden
Variablen knnen in Zeitausdrcken verwendet werden

Zeitpunkte zw. t d=duration


und t+3 {d..3*d}
t=now
{t..t+3} 19
Zustandsinvariante

Zusicherung, dass eine bestimmte Bedingung zu einem bestimmten


Zeitpunkt erfllt ist
Bezieht sich immer auf eine bestimmte Lebenslinie
Wird vor Eintritt des darauf folgenden Ereignisses ausgewertet
Falls Zustandsinvariante nicht erfllt ist - Fehler

Notationsvarianten Beispiel: Schloss (Lock)


Zustnde, die ein Schloss l : Lock
l:Lock
annehmen kann:
p=15
unlock
locked unlocked p=15
locked
lock
locked

BIG / TU Wien 20
Kombinierte Fragmente

Modellierung von Kontrollstrukturen


Bestandteile: Operator und Operanden
Operator
Definiert Art des kombinierten Fragments
12 vordefinierte Operatoren
Operand
Ein Operator enthlt 1 oder mehrere Operanden, je nach Operatorart
Kann Interaktionen, kombinierte Fragmente (Schachtelung!) und
Referenzen auf Sequenzdiagramme umfassen

BIG / TU Wien 21
Kombinierte Fragmente Notation

Kombiniertes Fragment wird wie Sequenzdiagramm mit Rahmen


dargestellt
Art des Fragments wird durch Operator im Pentagon festgelegt
default: seq
Operanden werden durch gestrichelte Linien voneinander getrennt

Kombiniertes
Fragment 1

Kombiniertes
alt Fragment 2
Operand1

loop
Operand2 Operand1

22
Kombinierte Fragmente Operatorarten
Operator Zweck
Alternative Interaktionen
Verzweigungen
alt

und Schleifen
opt Optionale Interaktionen

break Ausnahme Interaktionen

loop Iterative Interaktionen

seq Sequentielle Interaktionen mit schwacher Ordnung


Nebenlufigkeit

(Default-Operator)
und Ordnung

strict Sequentielle Interaktionen mit strenger Ordnung

par Nebenlufige Interaktionen

critical Atomare Interaktionen

Irrelevante Interaktionen
Filterungen und
Zusicherungen

ignore
consider Relevante Interaktionen

assert Zugesicherte Interaktionen

neg Ungltige Interaktionen

BIG / TU Wien 23
Verzweigungen und Schleifen: alt-Operator

Darstellung von zwei oder mehreren alternativen


Interaktionsablufen (mind. 2)
Zur Laufzeit wird maximal ein Operand ausgefhrt
Auswahl eines Operanden anhand von berwachungsbedingungen
Boolescher Ausdruck in eckigen Klammern
Vordefinierte else-Bedingung: Operand wird ausgefhrt, falls die
Bedingungen aller anderen Operanden nicht erfllt sind
default: true

alt
berwachungs- [a<1]
bedingung
[else]

24
Verzweigungen u. Schleifen: loop-Operator

Darstellung einer Schleife ber einen bestimmten Interaktionsablauf


Fragment enthlt nur einen Operanden
Ausfhrungshufigkeit wird durch Zhler mit Unter- und Obergrenze
dargestellt
Optional: berwachungsbedingung; wird bei jedem Durchlauf berprft,
sobald die minimale Anzahl an Durchlufen stattgefunden hat

Min Max

loop (1,*) Notationsvarianten:


berwachungs-
[a<1]
bedingung loop(3,8) = loop(3..8)
loop(8,8) = loop (8)
loop = loop(0,*)
Die Schleife wird
solange durchlaufen,
bis a >= 1
25
Verzweigungen u. Schleifen: opt-Operator

Optionale Interaktionen
berwachungsbedingung steuert Durchlauf der Interaktionen
Fragment wird nur aktiv, wenn Bedingung erfllt ist
Modellierung von "wenn ..., dann ..."

Interaktionen, die
opt unabhngig von der
Bedingung des opt-
[a<1]
Fragments ausgefhrt
werden

26
Opt-Operator - Beispiel

27
Verzweigungen u. Schleifen: break-Operator

Ausnahme-Interaktionen
berwachungsbedingung steuert Durchlauf der Interaktionen
Behandlung von Sonderfllen und Ausnahmen

break
[a<1]

Interaktionen, die im Falle


des break ([a<1]) nicht
ausgefhrt werden

BIG / TU Wien 28
Break-Operator - Beispiel

29
Nebenlufigkeit u. Ordnung: seq-Operator

Sequentielle Interaktion mit schwacher Ordnung (default!)


mind. 1 Operand
Reihenfolge der Ereigniseintritte:
Reihenfolge der Ereignisse pro Lebenslinie gilt ber Operandengrenze
hinaus (Reihenfolge der Operanden im Diagramm ist relevant)
Reihenfolge auf unterschiedlichen Lebenslinien von unterschiedlichen
Operanden ist nicht signifikant
Reihenfolge auf unterschiedlichen Lebenslinien in einem Operanden ist
nur signifikant, wenn hier ein Nachrichtenaustausch stattfindet

seq
1
2 Operand 1

3
4 Operand 2
5

30
Nebenlufigkeit u. Ordnung: seq-Operator - Beispiel

:A :B :C :D

seq a1

a2

c1
b1
c2

Ereignisfolge 1: a1 a2 c1 b1 c2
Ereignisfolge 2: a1 c1 a2 b1 c2
31
Ereignisfolge 3: c1 a1 a2 b1 c2
Nebenlufigkeit u. Ordnung: seq-Operator Beispiel (2/2)
:Student :Studentenverwaltung vortragende
:Professor

seq
anmelden(pruefung)

break
[kein Platz frei]
vormerken(pruefung)

pruefen()

info()

BIG / TU Wien 32
Nebenlufigkeit und Ordnung: strict-Operator

Sequentielle Interaktion mit strenger Ordnung


Reihenfolge auf unterschiedlichen Lebenslinien von unterschiedlichen
Operanden ist signifikant

:A :B :C :D

strict
a1

a2

c1
b1
c2

Ereignisfolge 1: a1 a2 c1 b1 c2 33
Strict-Operator - Beispiel

:Student :Studentenverwaltung vortragende :Drucker


:Professor

strict
anmelden(pruefung)

drucken(pruefung)

BIG / TU Wien 34
Nebenlufigkeit und Ordnung: par-Operator

Nebenlufige Interaktionen
Lokale Reihenfolge pro Operand muss erhalten bleiben
Reihenfolge der Operanden im Diagramm ist irrelevant!
mind. 2 Operanden
:A :B :C :D Ereignisf. 1: a1 a2 c1 b1 c2
Ereignisf. 2: a1 c1 a2 b1 c2
Ereignisf. 3: a1 c1 b1 a2 c2
par a1
Ereignisf. 4: a1 c1 b1 c2 a2
a2 Ereignisf. 5: c1 a1 a2 b1 c2
Ereignisf. 6: c1 a1 b1 a2 c2
c1 Ereignisf. 7: c1 a1 b1 c2 a2
b1
Ereignisf. 8: c1 b1 a1 a2 c2
c2
Ereignisf. 9: c1 b1 a1 c2 a2
Ereignisf. 10: c1 b1 c2 a1 a2

BIG / TU Wien 35
Par-Operator - Beispiel
:Student :Studentenverwaltung vortragende
:Professor

par

anfrage

anmelden

PruefungAnkuendigen

HoersaalReservieren

BIG / TU Wien 36
Nebenlufigkeit und Ordnung: Coregion

Coregion: Darstellung von nebenlufigen Ablufen auf EINER


Lebenslinie
Reihenfolge der Ereigniseintritte innerhalb von Coregions ist auf keine
Weise beschrnkt ("Aufhebung der Zeitdimension")
Coregion kann weitere kombinierte Fragmente
beinhalten kombinierte Fragmente knnen als
Ganzes in bel. Reihenfolge ausgefhrt werden
Coregion

sd

Auswirkung einer
Coregion

37
Coregion Beispiel

:Student :Studentenverwaltung vortragende


:Professor

anfrage

anmelden

PruefungAnkuendigen

HoersaalReservieren

BIG / TU Wien 38
Nebenlufigkeit und Ordnung: critical-Operator

Kritischer Bereich: atomarer (nicht unterbrechbarer) Interaktionsablauf


Keine Beschrnkung auf Interaktionen auerhalb des kritischen
Bereichs

:A :B :C :D

par Ereignisf. 1: a1 a2 c1 b1 c2
a1
Ereignisf. 2: a1 c1 b1 a2 c2
a2 Ereignisf. 3: a1 c1 b1 c2 a2
Ereignisf. 4: c1 b1 a1 a2 c2
critical
Ereignisf. 5: c1 b1 a1 c2 a2
c1
b1 Ereignisf. 6: c1 b1 c2 a1 a2

c2

39
Critical-Operator - Beispiel
:Student :Studentenverwaltung vortragende
:Professor

par

critical

getPruefungstermin

anmelden

anmelden(matrNr)

BIG / TU Wien 40
Filterungen u. Zusicherungen: ignore-Operator

Darstellung von irrelevanten Nachrichten


Modellierung von Nachrichten aus technischen Grnden oder wegen
syntaktischer Vollstndigkeit
Nachrichten, die zur Laufzeit auftreten knnen (z.B. keep-alive Signale)

:A :B :C

ignore {m3, m4}


m1
m2
m3
m4

m5

BIG / TU Wien 41
Filterungen u. Zusicherungen: consider-Operator

Gegenstck von Ignore


Spezifikation von besonders relevanten Nachrichten
andere Nachrichten im Operanden werden automatisch als nicht
relevant eingestuft
:A :B :C

consider {m1, m5}

m1

m4
m3

m5

42
Consider-Operator - Beispiel

:Student :Studentenverwaltung :Student :Studentenverwaltung

ignore {status} consider {login, anmelden}

login(user, pw) login(user, pw)

status("online") status("online")

anmelden(pruefung) anmelden(pruefung)

BIG / TU Wien 43
Filterungen u. Zusicherungen: assert-Operator

Zugesicherte Interaktionen: Kennzeichnung der Interaktion als


verpflichtend Abweichungen, die im Diagramm nicht bercksichtigt
sind, aber in der Realitt auftreten, sind nicht zulssig
Forderung von getreuer Abbildung in der Implementierung

:A :B :C :D

consider {m1, m5}


m7
m4
m5

assert
m1
44
Assert-Operator Beispiel Prfungsanmeldung

:Student :Studentenverwaltung

assert

anmelden

bestaetigungsMail

BIG / TU Wien 45
Filterungen und Zusicherungen: neg-Operator

Ungltige Interaktionen: Es darf nicht sein, dass sich ein Benutzer, der
logged out ist, zu einer Prfung anmeldet
:Studentenverwaltung

b1 : Benutzer

neg

logged out

anmelden(pruefung)

BIG / TU Wien 46
Basiselemente (1/3)
Name Syntax Beschreibung

Diagramm- sd
Begrenzung des Diagramms, Angabe
rahmen von Parametern

Rolle: Typ

Akteur 1

Lebenslinie Interaktionspartner

Rolle1:Typ1 Rolle2:Typ2

Ausfhrungs-
Periode, in der ein Interaktionspartner
spezifikation ein Verhalten (direkt/indirekt) ausfhrt
(direkt/indirekt)
direkt indirekt

BIG / TU Wien 47
Basiselemente (2/3)

Name Syntax Beschreibung

aktives Objekt Objekt mit eigenem Kontrollfluss

Zeitpunkt zu dem ein Objekt aus seiner


Lschsymbol Rolle gelscht wird

consider

Kombiniertes
Steuerung des Kontrollflusses
Fragment alt, opt, break, loop
seq, par, strict, critical
ignore, assert, consider, neg

BIG / TU Wien 48
Basiselemente (3/3)
Name Syntax Beschreibung

Nachricht
Synchrone
Kommunikation
Antwort

Asynchrone
Kommunikation Nachricht

Gefundene/ lost
spezielle Nachrichten von oder an
unbekannte Interaktionspartner
Verlorene found
(z.B. Modellierung von Fehlerfllen
Nachricht in der Kommunikation)

BIG / TU Wien 49
Zusammenfassung

Sie haben diese Lektion verstanden, wenn Sie wissen

wofr Interaktionsdiagramme verwendet werden.


welche Arten von Interaktionsdiagrammen es gibt.
aus welchen Komponenten ein Sequenzdiagramm besteht.
was mit einer Lebenslinie gemeint ist.
wie die Reihenfolge von Ereigniseintritten im Sequenzdiagramm
definiert ist.
was der Unterschied zwischen direkter und indirekter Ausfhrung,
sowie aktiven und passiven Objekten ist.
welche Operatoren im Sequenzdiagramm zur Verfgung stehen.
wie Nebenlufigkeit ausgedrckt werden kann.

BIG / TU Wien 50