UML@Work Interaktionsdiagramme
UML@Work Interaktionsdiagramme
UML@Work Interaktionsdiagramme
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>UML@Work</strong><br />
Übersicht<br />
Kapitel 3:<br />
Strukturmodellierung<br />
Kapitel 3.1:<br />
Klassendiagramm<br />
Kapitel 3.2:<br />
Objektdiagramm<br />
Kapitel 3.3:<br />
Paketdiagramm<br />
Kapitel 3.4:<br />
Komponentendiagramm<br />
Kapitel 3.5:<br />
Kompositionsstrukturdiagramm<br />
Kapitel 3.6:<br />
Verteilungsdiagramm<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Kapitel 6:<br />
Modellgetriebene Softwareentwicklung<br />
in der Praxis<br />
Kapitel 5:<br />
Die Spracharchitektur von UML<br />
Kapitel 2:<br />
Was bringt UML2?<br />
Kapitel 1:<br />
Einleitung<br />
<strong>Interaktionsdiagramme</strong><br />
Einführung<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Kapitel 4.1:<br />
Anwendungsfalldiagramm<br />
Kapitel 4.2:<br />
Aktivitätsdiagramm<br />
Kapitel 4.3:<br />
Zustandsdiagramm<br />
<strong>Interaktionsdiagramme</strong><br />
Verhaltensmodellierung<br />
Kapitel 4:<br />
Verhaltensmodellierung<br />
K4-132<br />
Verhaltensmodellierung<br />
Zeigen wie Nachrichten zwischen verschiedenen<br />
Interaktionspartnern in einem bestimmten Kontext<br />
ausgetauscht werden<br />
Einsatzbereiche<br />
Modellierung der Interaktionen eines Systems mit seiner<br />
Umwelt (Systemgrenzen festlegen, System als Black-Box)<br />
Modellierung der Realisierung eines Anwendungsfalls<br />
Modellierung des Zusammenspiels der internen Struktur<br />
einer Klasse, Komponente oder Kollaboration<br />
Modellierung der Spezifikation von Schnittstellen zwischen<br />
Systemteilen (Zusammenspiel angebotene/benutzte<br />
Schnittstelle)<br />
Modellierung der Operationen einer Klasse<br />
K4-133
<strong>Interaktionsdiagramme</strong><br />
Einführung – Typ- vs. Instanzebene<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Modellierung des Nachrichtenaustauschs zwischen Rollen<br />
und damit prinzipiell auf Rollenebene<br />
Kontext der Interaktion durch strukturierte Classifier<br />
festgelegt = Kontext-Classifier<br />
Deren Rollen stellen die Interaktionspartner dar<br />
Tatsächliche Interaktion findet selbstverständlich auf<br />
Instanzebene zwischen Objekten statt<br />
Modellierung auf Instanzebene möglich, um eine Abfolge<br />
von Nachrichten zwischen konkreten Objekten darzustellen =<br />
Trace<br />
<strong>Interaktionsdiagramme</strong><br />
Einführung – Arten 1/2<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
K4-134<br />
Verhaltensmodellierung<br />
4 Arten von <strong>Interaktionsdiagramme</strong>n<br />
Für einfache Interaktionen semantisch äquivalent<br />
Betonung unterschiedlicher Aspekte<br />
Sequenzdiagramm zeigt den<br />
zeitlichen und logischen<br />
Nachrichtenfluss<br />
Reihenfolge von Nachrichten grafisch<br />
ersichtlich<br />
Zeit ist eigene Dimension<br />
Kommunikationsdiagramm ist<br />
»strukturell« orientiert<br />
Zeigt die Beziehungen zwischen<br />
Interaktionspartnern – Kontextaspekt<br />
Reihenfolge von Nachrichten<br />
nur über Dezimalklassifikation<br />
ausgedrückt<br />
Zeit ist keine eigene Dimension<br />
sd P<br />
rolle1 rolle2 rolle3 rolle4<br />
m1<br />
m2<br />
m3<br />
comm P<br />
1:m1<br />
rolle1 rolle2<br />
1.1:m2<br />
1.2:m3<br />
rolle3<br />
c<br />
rolle4<br />
d<br />
K4-135
<strong>Interaktionsdiagramme</strong><br />
Einführung – Arten 2/2<br />
Zeitdiagramm zeigt Zustandsänderungen<br />
der Interaktionspartner aufgrund von<br />
Zeitereignissen<br />
Vertikale Dimension repräsentiert<br />
Interaktionspartner und<br />
ihre möglichen Zustände<br />
Horizontale Dimension<br />
repräsentiert die Zeitachse<br />
Interaktionsübersichtsdiagramm<br />
zeigt das Zusammenspiel von<br />
verschiedenen Interaktionen<br />
Visualisiert in welcher Reihenfolge<br />
und unter welchen Bedingungen<br />
Interaktionsabläufe stattfinden<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
<strong>UML@Work</strong><br />
Übersicht<br />
Kapitel 3:<br />
Strukturmodellierung<br />
Kapitel 3.1:<br />
Klassendiagramm<br />
Kapitel 3.2:<br />
Objektdiagramm<br />
Kapitel 3.3:<br />
Paketdiagramm<br />
Kapitel 3.4:<br />
Komponentendiagramm<br />
Kapitel 3.5:<br />
Kompositionsstrukturdiagramm<br />
Kapitel 3.6:<br />
Verteilungsdiagramm<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Kapitel 6:<br />
Modellgetriebene Softwareentwicklung<br />
in der Praxis<br />
Kapitel 5:<br />
Die Spracharchitektur von UML<br />
Kapitel 2:<br />
Was bringt UML2?<br />
Kapitel 1:<br />
Einleitung<br />
timing P<br />
rolle1<br />
rolle2<br />
rolle3 z5<br />
z6<br />
z7<br />
rolle4 z8<br />
z9<br />
intover Q<br />
sd P<br />
z1<br />
z2<br />
z3<br />
z4<br />
Kapitel 4.1:<br />
Anwendungsfalldiagramm<br />
Kapitel 4.2:<br />
Aktivitätsdiagramm<br />
Kapitel 4.3:<br />
Zustandsdiagramm<br />
Kapitel 4.4:<br />
Sequenzdiagramm<br />
Kapitel 4.5:<br />
Kommunikationsdiagramm<br />
Kapitel 4.6:<br />
Zeitdiagramm<br />
Verhaltensmodellierung<br />
m1<br />
rolle1 rolle2 rolle3 rolle4<br />
m1<br />
m2<br />
m3<br />
Kapitel 4.7:<br />
Interaktionsübersichtsdiagramm<br />
m2 m3<br />
K4-136<br />
Verhaltensmodellierung<br />
Kapitel 4:<br />
Verhaltensmodellierung<br />
K4-137
Sequenzdiagramm<br />
Inhalt<br />
Basiskonzepte<br />
Überblick<br />
Diagrammrahmen<br />
Lebenslinie<br />
Nachricht<br />
Zeiteinschränkungen<br />
Zustandsinvariante<br />
Kombinierte Fragmente<br />
Verzweigungen und Schleifen<br />
Parallelität und Ordnung<br />
Filterungen und Zusicherungen<br />
Modularisierung<br />
Interaktionsreferenz<br />
Fortsetzungsmarke<br />
Verknüpfungspunkt<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Exkurs: Sequenzdiagramm versus Aktivitätsdiagramm<br />
Zusammenfassendes Beispiel<br />
Sequenzdiagramm<br />
Basiskonzepte – Überblick<br />
Diagrammrahmen<br />
sd Interak tion (param)<br />
Lebenslinie<br />
Nachricht<br />
Zustandsinvariante<br />
{p=15}<br />
{locked<br />
}<br />
p=15<br />
locked<br />
Kombiniertes Fragment<br />
loop (1,*)<br />
[a
Sequenzdiagramm<br />
Basiskonzepte – Diagrammrahmen 1/2<br />
Rahmennotation<br />
Für alle UML2 Diagrammarten<br />
möglich<br />
Pentagon<br />
Diagrammtyp<br />
sd für Sequenzdiagramm<br />
Interaktionsname<br />
Optionale Parameter<br />
Zwei Darstellungsdimensionen<br />
Vertikale Dimension repräsentiert Zeitachse<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Horizontale Dimension repräsentiert Interaktionspartner in<br />
Form von Rollen<br />
Zeitachse<br />
Sequenzdiagramm<br />
Basiskonzepte – Diagrammrahmen 2/2<br />
Darstellung lokaler Attribute<br />
Variante 1:<br />
Variante 2:<br />
sd name (par1,par2)<br />
x:Integer = 0<br />
y:Char = "Test"<br />
sd name (par1,par2)<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
x:Integer = 0<br />
y:Char = "Test"<br />
Interaktionspartner<br />
sd InteraktionsName (p1, p2)<br />
K4-140<br />
Verhaltensmodellierung<br />
K4-141
Sequenzdiagramm<br />
Basiskonzepte – Lebenslinie<br />
Eine Lebenslinie beschreibt genau einen<br />
Interaktionspartner<br />
Als Interaktionspartner können alle Rollen des<br />
Kontext-Classifiers auftreten<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Rollen sind vom Typ ConnectableElement (z.B. Klassen,<br />
Attribute oder Ports)<br />
Metamodell<br />
Lifeline<br />
*<br />
1<br />
represents<br />
ConnectableElement<br />
(from from InternalStructures<br />
Notation<br />
Kopf der<br />
Lebenslinie<br />
Lebenslinie<br />
Löschsymbol<br />
Sequenzdiagramm<br />
Basiskonzepte – Lebenslinie: Ereignisspezifikation<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Rolle:Typ<br />
K4-142<br />
Verhaltensmodellierung<br />
Interaktionen werden als Folge von<br />
Ereignisspezifikationen auf Lebenslinien betrachtet<br />
Beispiel für Ereignisspezifikationen<br />
Senden und Empfangen von Nachrichten auf verschiedenen<br />
Lebenslinien oder der gleichen Lebenslinie<br />
Sendeereignis<br />
Empfangsereignis<br />
K4-143
Sequenzdiagramm<br />
Basiskonzepte – Lebenslinie: Ereignisspezifikation<br />
Reihenfolge von Ereignisspezifikationen<br />
Vertikale Zeitachse bestimmt nur die Ordnung von<br />
Ereigniseintritten pro Lebenslinie<br />
Jedoch nicht die Reihenfolge von Ereigniseintritten auf<br />
verschiedenen Lebenslinien<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Erst durch Nachrichten zwischen Lebenslinien wird eine<br />
Ordnung über Lebenslinien hinweg erzwungen<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
K4-144<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
Basiskonzepte – Lebenslinie: Reihenfolge von Ereigniseintritten<br />
… auf einer Lebenslinie<br />
m3<br />
m1<br />
Trace1: m1 ⌫ m3<br />
»zeitlich vor«<br />
… auf verschiedenen Lebenslinien<br />
… auf verschiedenen Lebenslinien,<br />
verbunden durch Nachrichtenaustausch<br />
m3<br />
m2<br />
m1<br />
Trace1: m1 ⌫ m2 ⌫ m3<br />
m3<br />
m1<br />
Trace1: m1 ⌫ m3<br />
Trace2: m3 ⌫ m1<br />
K4-145
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
Basiskonzepte – Lebenslinie: Ausführungsspezifikation<br />
Die Ausführung einer Aktivität/Operation wird durch zwei<br />
Ereignisspezifikationen (Start und Ende) auf der gleichen<br />
Lebenslinie definiert<br />
Diese sogenannte Ausführungsspezifikation<br />
kann durch einen Balken dargestellt werden<br />
Ausführungsarten<br />
Direkt<br />
Interaktionspartner führt<br />
Verhalten selbst aus<br />
Indirekt<br />
Ausführung wird an andere<br />
Interaktionspartner delegiert<br />
Sequenzdiagramm<br />
Basiskonzepte – Lebenslinie: Aktives Objekt<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
StartereignisspezifikationAusführungsspezifikation<br />
Endeereignisspezifikation<br />
K4-146<br />
Verhaltensmodellierung<br />
Aktive Objekte verfügen über eigenen Kontrollfluss<br />
(Prozess oder Thread)<br />
Können unabhängig von anderen Objekten operieren<br />
Notation<br />
Kopf der Lebenslinie wird<br />
links und rechts mit doppeltem<br />
Rand versehen<br />
durchgehender Balken<br />
über gesamte Lebenslinie<br />
K4-147
Sequenzdiagramm<br />
Basiskonzepte – Nachricht<br />
Arten der Nachrichtenübermittlung<br />
Synchroner Kontrollfluss<br />
Der Sender wartet bis zur Beendigung der<br />
Interaktion, die durch die Nachricht<br />
ausgelöst wurde<br />
Asynchroner Kontrollfluss<br />
Die Nachricht wird als Signal betrachtet<br />
Der Sender wartet nicht auf das Ende<br />
der Interaktion<br />
Antwortnachricht (optional)<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
m1(p1,p2)<br />
Verhaltensmodellierung<br />
m2<br />
att=m1:wert<br />
K4-148<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
Basiskonzepte – Nachricht: Spezielle Nachrichtenarten<br />
Objekterzeugung<br />
Ermöglicht, einen Interaktionspartner<br />
erst im Laufe der<br />
Interaktion zu erzeugen<br />
Verlorene Nachricht<br />
Senden einer Nachricht an<br />
unbekannten oder nicht<br />
relevanten Interaktionspartner<br />
Gefundene Nachricht<br />
Empfang einer Nachricht von einem<br />
unbekannten oder nicht relevanten<br />
Interaktionspartner<br />
Zeitkonsumierende Übertragung<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
new<br />
lost<br />
found<br />
K4-149
Sequenzdiagramm<br />
Basiskonzepte – Beispiel<br />
Beispiel: Berechnung der Dauer eines Termins<br />
sd Dauer berechnen<br />
b1<br />
:benutzer<br />
gesDauer<br />
gesDauer:<br />
gesamt<br />
:Kalender<br />
dauer<br />
dauer:<br />
sitzungszeit<br />
dauer<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
besprechung<br />
[1]:Termin<br />
dauer:<br />
sitzungszeit<br />
Sequenzdiagramm<br />
Basiskonzepte – Zeiteinschränkungen<br />
Arten<br />
Zeitpunkt (time constraint)<br />
Bezieht sich auf einzelne Ereignisspezifikation<br />
Zeitdauer (duration constraint)<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
besprechung<br />
[2]:Termin<br />
Verhaltensmodellierung<br />
K4-150<br />
Verhaltensmodellierung<br />
Bezieht sich auf Zeitintervall zwischen zwei Ereignisauftritten<br />
Vordefinierte Aktionen zur Zeitberechnung<br />
now: Berechnung der aktuellen Zeit<br />
duration: Berechnung einer Zeitdauer<br />
Erhaltene Werte können Variablen zugewiesen werden<br />
Variablen können in Zeitausdrücken verwendet werden<br />
{d..3*d}<br />
{t..t+3}<br />
d=duration<br />
t=now<br />
K4-151
Sequenzdiagramm<br />
Basiskonzepte – Zeiteinschränkungen<br />
Beispiel: Aufbau eines Telefongesprächs<br />
sd Telefongesprächsaufbau<br />
{
Sequenzdiagramm<br />
Inhalt<br />
Basiskonzepte<br />
Überblick<br />
Diagrammrahmen<br />
Lebenslinie<br />
Nachricht<br />
Zeiteinschränkungen<br />
Zustandsinvariante<br />
Kombinierte Fragmente<br />
Verzweigungen und Schleifen<br />
Parallelität und Ordnung<br />
Filterungen und Zusicherungen<br />
Modularisierung<br />
Interaktionsreferenz<br />
Fortsetzungsmarke<br />
Verknüpfungspunkt<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Exkurs: Sequenzdiagramm versus Aktivitätsdiagramm<br />
Zusammenfassendes Beispiel<br />
Sequenzdiagramm<br />
Kombinierte Fragmente<br />
Modellierung von Kontrollstrukturen<br />
Bestandteile: Operator und Operanden<br />
Operator<br />
Definiert Art des kombinierten Fragments<br />
12 vordefinierte Operatoren<br />
Operand<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
K4-154<br />
Verhaltensmodellierung<br />
Ein Operator enthält 1 oder mehrere Operanden, je nach<br />
Operatorart<br />
Kann Interaktionen, kombinierte Fragmente<br />
(Schachtelung!) und Referenzen auf Sequenzdiagramme<br />
umfassen<br />
K4-155
Sequenzdiagramm<br />
Kombinierte Fragmente – Notation<br />
Kombiniertes Fragment<br />
wird wie Sequenzdiagramm<br />
mit Rahmen<br />
dargestellt<br />
Art des Fragments<br />
wird durch Operator<br />
im Pentagon festgelegt<br />
(default: seq)<br />
Operanden werden<br />
durch gestrichelte<br />
Linien voneinander<br />
getrennt<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Operatoren<br />
sd Beispiel<br />
alt<br />
loop<br />
Sequenzdiagramm<br />
Kombinierte Fragmente – Operatorarten<br />
Verzweigungen<br />
und Schleifen<br />
Parallelität<br />
und Ordnung<br />
Filterungen und<br />
Zusicherungen<br />
Operator<br />
alt<br />
opt<br />
break<br />
loop<br />
seq<br />
strict<br />
par<br />
critical<br />
ignore<br />
consider<br />
assert<br />
neg<br />
Zweck<br />
Alternative Interaktionen<br />
Optionale Interaktionen<br />
Ausnahme Interaktionen<br />
Iterative Interaktionen<br />
Parallele Interaktionen<br />
Atomare Interaktionen<br />
Irrelevante Interaktionen<br />
Relevante Interaktionen<br />
Zugesicherte Interaktionen<br />
Ungültige Interaktionen<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Sequentielle Interaktionen mit schwacher Ordnung<br />
(Default-Operator)<br />
Sequentielle Interaktionen mit strenger Ordnung<br />
Verhaltensmodellierung<br />
Operand1<br />
Kombinierte<br />
Fragmente<br />
Operand1<br />
Operand2<br />
K4-156<br />
Verhaltensmodellierung<br />
K4-157
Sequenzdiagramm<br />
KF – Verzweigungen und Schleifen: alt-Operator<br />
alt<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Darstellung von zwei oder mehreren alternativen<br />
Interaktionsabläufen<br />
Zur Laufzeit wird maximal ein Operand ausgeführt<br />
Auswahl eines Operanden anhand von<br />
Überwachungsbedingungen<br />
Boolscher Ausdruck in eckigen Klammern<br />
Vordefinierte else-Bedingung: Operand wird ausgeführt,<br />
falls die Bedingungen aller anderen Operanden nicht erfüllt<br />
sind<br />
Überwachungsbedingung<br />
[a
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
KF – Verzweigungen und Schleifen: opt- und break-Operator<br />
Überwachungsbedingung steuert Durchlauf der Interaktionen<br />
Optionale Interaktionen<br />
opt [a
Sequenzdiagramm<br />
KF – Verzweigungen und Schleifen: Beispiel 2/4<br />
sd Termin löschen<br />
b1<br />
:benutzer<br />
melde<br />
Abbrechen<br />
:Termin-<br />
Maske<br />
te[i]<br />
:Termin<br />
break [falsches<br />
Passwort]<br />
anzeige<br />
Kalender<br />
lösche(te[i])<br />
Abbrechen<br />
anzeige<br />
Kalender<br />
lösche(te[i])<br />
benutzer<br />
b<br />
:Calendarium<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
te[i]<br />
:Termin<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
n[j]<br />
:Notifikation<br />
:Queue<br />
Verhaltensmodellierung<br />
tn[k]<br />
:Teilnehmer<br />
Sequenzdiagramm<br />
KF – Verzweigungen und Schleifen: Beispiel 3/4<br />
sd Termin löschen<br />
b1<br />
:benutzer<br />
:Termin-<br />
Maske<br />
alt<br />
melde<br />
kein<br />
Löschrecht<br />
kein<br />
Löschrecht<br />
[b ist nicht<br />
berechtigt]<br />
:Calendarium<br />
n[j]<br />
:Notifikation<br />
:Queue<br />
K4-162<br />
Verhaltensmodellierung<br />
tn[k]<br />
:Teilnehmer<br />
[b ist<br />
berechtigt]<br />
loop (0,anzahlNotifikationen) j:=nrAkt-<br />
Durchlauf<br />
lösche<br />
loop<br />
... siehe nächste Folie<br />
deq(n[j])<br />
x<br />
K4-163
Sequenzdiagramm<br />
KF – Verzweigungen und Schleifen: Beispiel 4/4<br />
sd Termin löschen<br />
b1<br />
:benutzer<br />
alt<br />
:Termin-<br />
Maske<br />
te[i]<br />
:Termin<br />
Operand 1<br />
... siehe vorige Folie<br />
Operand 2<br />
... siehe teilweise vorige Folie<br />
x x<br />
:Calendarium<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
n[j]<br />
:Notifikation<br />
loop (1,anzahlTeilnehmer)<br />
löscheTermin(self)<br />
info(self,te[i])<br />
:Queue<br />
Verhaltensmodellierung<br />
tn[k]<br />
:Teilnehmer<br />
k:=nrAkt-<br />
Durchlauf<br />
opt [tn[k] ist online] f<br />
:Infonew(hinweis)<br />
Fenster<br />
Sequenzdiagramm<br />
KF – Verzweigungen und Schleifen: seq-Operator<br />
Sequentielle Interaktion mit schwacher Ordnung<br />
seq<br />
:A :B :C :D<br />
a1<br />
a2<br />
b1<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
c1<br />
c2<br />
Trace1: a1 ⌫ a2 ⌫ c1 ⌫ b1 ⌫ c2<br />
Trace2: a1 ⌫ c1 ⌫ a2 ⌫ b1 ⌫ c2<br />
Trace3: c1 ⌫ a1 ⌫ a2 ⌫ b1 ⌫ c2<br />
K4-164<br />
Verhaltensmodellierung<br />
K4-165
Sequenzdiagramm<br />
KF – Parallelität und Ordnung: strict-Operator<br />
Sequentielle Interaktion mit strenger Ordnung<br />
strict<br />
:A :B :C :D<br />
a1<br />
a2<br />
b1<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
c1<br />
c2<br />
Trace1: a1 ⌫ a2 ⌫ c1 ⌫ b1 ⌫ c2<br />
Sequenzdiagramm<br />
KF – Parallelität und Ordnung: par-Operator<br />
Nebenläufige Interaktionen<br />
par<br />
:A :B :C :D<br />
a1<br />
a2<br />
b1<br />
c1<br />
c2<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
K4-166<br />
Verhaltensmodellierung<br />
Lokale Reihenfolge pro Operand muss erhalten bleiben<br />
Trace1: a1 ⌫ a2 ⌫ c1 ⌫ b1 ⌫ c2<br />
Trace2: a1 ⌫ c1 ⌫ a2 ⌫ b1 ⌫ c2<br />
Trace3: a1 ⌫ c1 ⌫ b1 ⌫ a2 ⌫ c2<br />
Trace4: a1 ⌫ c1 ⌫ b1 ⌫ c2 ⌫ a2<br />
Trace5: c1 ⌫ a1 ⌫ a2 ⌫ b1 ⌫ c2<br />
Trace6: c1 ⌫ a1 ⌫ b1 ⌫ a2 ⌫ c2<br />
Trace7: c1 ⌫ a1 ⌫ b1 ⌫ c2 ⌫ a2<br />
Trace8: c1 ⌫ b1 ⌫ a1 ⌫ a2 ⌫ c2<br />
Trace9: c1 ⌫ b1 ⌫ a1 ⌫ c2 ⌫ a2<br />
Trace10: c1 ⌫ b1 ⌫ c2 ⌫ a1 ⌫ a2<br />
K4-167
Nebenläufige Interaktionen durch Coregions<br />
Sequenzdiagramm<br />
KF – Parallelität und Ordnung: Coregion<br />
Nebenläufige Interaktionen durch Coregions<br />
sd<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Auswirkung einer<br />
Coregion<br />
Sequenzdiagramm<br />
KF – Parallelität und Ordnung: critical-Operator<br />
Kritischer Bereich<br />
par<br />
:A :B :C :D<br />
a1<br />
a2<br />
critical<br />
b1<br />
c1<br />
c2<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
K4-168<br />
Verhaltensmodellierung<br />
Trace1: a1 ⌫ a2 ⌫ c1 ⌫ b1 ⌫ c2<br />
Trace2: a1 ⌫ c1 ⌫ b1 ⌫ a2 ⌫ c2<br />
Trace3: a1 ⌫ c1 ⌫ b1 ⌫ c2 ⌫ a2<br />
Trace4: c1 ⌫ b1 ⌫ a1 ⌫ a2 ⌫ c2<br />
Trace5: c1 ⌫ b1 ⌫ a1 ⌫ c2 ⌫ a2<br />
Trace6: c1 ⌫ b1 ⌫ c2 ⌫ a1 ⌫ a2<br />
K4-169
Sequenzdiagramm<br />
KF – Parallelität und Ordnung: Beispiel 1/3<br />
sd Termin löschen<br />
b1<br />
:benutzer<br />
lösche(te[i])<br />
:Termin-<br />
Maske<br />
alt<br />
... siehe nächste Folie<br />
te[i]<br />
:Termin<br />
lösche(te[i])<br />
benutzer<br />
b<br />
:Calendarium<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
n[j]<br />
:Notifikation<br />
:Queue<br />
Sequenzdiagramm<br />
KF – Parallelität und Ordnung: Beispiel 2/3<br />
sd Termin löschen<br />
b1<br />
:benutzer<br />
alt<br />
melde<br />
kein<br />
Löschrecht<br />
:Termin-<br />
Maske<br />
kein<br />
Löschrecht<br />
te[i]<br />
:Termin<br />
par<br />
[b ist nicht<br />
berechtigt]<br />
[b ist<br />
berechtigt]<br />
:Calendarium<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
n[j]<br />
:Notifikation<br />
loop (0,anzahlNotifikationen)<br />
lösche<br />
deq(n[j])<br />
x<br />
loop<br />
... siehe nächste Folie<br />
:Queue<br />
Verhaltensmodellierung<br />
tn[k]<br />
:Teilnehmer<br />
K4-170<br />
Verhaltensmodellierung<br />
tn[k]<br />
:Teilnehmer<br />
j:=nrAkt-<br />
Durchlauf<br />
K4-171
Sequenzdiagramm<br />
KF – Parallelität und Ordnung: Beispiel 3/3<br />
sd Termin löschen<br />
b1<br />
:benutzer<br />
alt<br />
:Termin-<br />
Maske<br />
te[i]<br />
:Termin<br />
Operand 1 ... siehe vorige Folie<br />
[b ist<br />
berechtigt]<br />
par<br />
x x<br />
:Calendarium<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
n[j]<br />
:Notifikation<br />
Operand 1 ... siehe vorige Folie<br />
loop (1,anzahlTeilnehmer)<br />
löscheTermin(self)<br />
info(self,te[i])<br />
:Queue<br />
Verhaltensmodellierung<br />
tn[k]<br />
:Teilnehmer<br />
k:=nrAkt-<br />
Durchlauf<br />
opt [tn[k] ist online] f<br />
new(hinweis)<br />
:Info-<br />
Fenster<br />
K4-172<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
KF – Filterungen und Zusicherungen: ignore-Operator<br />
Irrelevante Interaktionen<br />
ignore {m3, m4}<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
:A :B :C<br />
m1<br />
m3<br />
m2<br />
m5<br />
K4-173
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
KF – Filterungen und Zusicherungen: consider-Operator<br />
Relevante Interaktionen<br />
consider {m1, m5}<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
:A :B :C<br />
m1<br />
m4<br />
m3<br />
K4-174<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
KF – Filterungen und Zusicherungen: assert-Operator<br />
Zugesicherte Interaktionen<br />
consider {m1, m5}<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
:A :B :C<br />
m7<br />
m4<br />
m5<br />
assert<br />
m1<br />
:D<br />
K4-175
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
KF – Filterungen und Zusicherungen: neg-Operator<br />
Ungültige Interaktionen<br />
sd PrüfePasswort<br />
neg<br />
b1<br />
:benutzer<br />
loop (4,*)<br />
prüfe<br />
Passwort<br />
(pwd)<br />
anzeige<br />
(ergebnis)<br />
Sequenzdiagramm<br />
Inhalt<br />
Basiskonzepte<br />
Überblick<br />
Diagrammrahmen<br />
Lebenslinie<br />
Nachricht<br />
Zeiteinschränkungen<br />
Zustandsinvariante<br />
Kombinierte Fragmente<br />
:Termin-<br />
Maske<br />
Verzweigungen und Schleifen<br />
Parallelität und Ordnung<br />
Filterungen und Zusicherungen<br />
Modularisierung<br />
Interaktionsreferenz<br />
Fortsetzungsmarke<br />
Verknüpfungspunkt<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
prüfe<br />
Passwort(pwd)<br />
ergebnis=<br />
prüfePasswort(pwd)<br />
:Calendarium<br />
K4-176<br />
Verhaltensmodellierung<br />
Exkurs: Sequenzdiagramm versus Aktivitätsdiagramm<br />
Zusammenfassendes Beispiel<br />
K4-177
Sequenzdiagramm<br />
Modularisierung<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Zweck: Wiederverwendung und Reduktion der Komplexität<br />
Interaktionsreferenz<br />
Zur Referenzierung anderer Sequenzdiagramme<br />
Dadurch können Interaktionsabläufe und Lebenslinien zerlegt<br />
werden<br />
Fortsetzungsmarke<br />
Zur Zerlegung der Operanden eines alt-Operators<br />
Verknüpfungspunkt<br />
Zur Verbindung von Nachrichten zwischen<br />
Sequenzdiagrammen, Interaktionsreferenzen oder<br />
kombinierten Fragmenten<br />
Sequenzdiagramm<br />
Modularisierung – Interaktionsreferenz 1/3<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
K4-178<br />
Verhaltensmodellierung<br />
Interaktionen des referenzierten Sequenzdiagramms<br />
werden ausgeführt, so als wären sie direkt in das<br />
referenzierende Diagramm eingebettet<br />
Eventuell vorhandene Parameter werden gebunden<br />
Nach Ausführung der referenzierten Interaktionen wird<br />
unterhalb der Interaktionsreferenz fortgesetzt<br />
K4-179
Sequenzdiagramm<br />
Modularisierung – Interaktionsreferenz 2/3<br />
Zerlegung von Interaktionsabläufen<br />
Rahmen mit Pentagon in der linken oberen Ecke<br />
Pentagon enthält Schlüsselwort ref<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Rahmen enthält Namen der referenzierten Interaktion, optional<br />
Parameter und Rückgabewerte<br />
sd Beispiel<br />
ref<br />
sdName(par1, par2):<br />
rückgabeWert<br />
Sequenzdiagramm<br />
Modularisierung – Interaktionsreferenz 3/3<br />
Zerlegung von Lebenslinien<br />
Lebenslinien können interne<br />
Strukturen aufweisen, für die<br />
eigene Sequenzdiagramme<br />
spezifiziert werden können<br />
Schlüsselwort ref im Kopf der<br />
Lebenslinie<br />
sd b1 sd b2<br />
t<br />
v1<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
v2<br />
z:u<br />
ref b2<br />
v1<br />
v2<br />
rolle[selektor]:Typ<br />
ref Interaktionsname<br />
Alternative:<br />
:teil1 :teil2<br />
K4-180<br />
Verhaltensmodellierung<br />
rolle[selektor]:Typ<br />
K4-181
Sequenzdiagramm<br />
Modularisierung – Fortsetzungsmarke<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Zweck: Zerlegung der Operanden eines alt-Fragments<br />
Startmarke am Ende eines Interaktionsteils verweist auf<br />
Zielmarke am Beginn eines anderen Interaktionsteils<br />
Gleiche Markennamen<br />
Überdeckung gleicher<br />
Menge an Lebenslinien<br />
Rechtecke mit<br />
abgerundeten Ecken<br />
Erreicht die Ausführung<br />
die Startmarke, wird<br />
mit den Interaktionen<br />
unterhalb der<br />
Zielmarke fortgefahren<br />
Achtung: kein<br />
Rücksprung zur<br />
Startmarke möglich!<br />
Sequenzdiagramm<br />
Modularisierung – Verknüpfungspunkt 1/2<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
alt<br />
alt<br />
A<br />
B<br />
B<br />
A<br />
Startmarken<br />
Zielmarken<br />
K4-182<br />
Verhaltensmodellierung<br />
Zweck: ermöglicht den Nachrichtenfluss zwischen<br />
Sequenzdiagrammen und/oder<br />
kombinierten Fragmenten und/oder<br />
Interaktionsreferenzen<br />
Dadurch können hereinkommende oder<br />
hinausgehende Nachrichten modelliert werden<br />
Verknüpfungspunkte zwischen Sequenzdiagrammen<br />
können<br />
entweder implizit über Namensgleichheit<br />
oder explizit über eine Interaktionsreferenz<br />
modelliert werden<br />
K4-183
Sequenzdiagramm<br />
Modularisierung – Verknüpfungspunkt 2/2<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Spitze oder Ende eines Nachrichtenpfeils berührt Rand<br />
des Rahmes<br />
Optional: Name für Verknüpfungspunkt wird neben<br />
Schnittpunkt von Nachrichtenpfeil und Rahmen<br />
angegeben<br />
Verknüpfungspunktesd<br />
b1<br />
Sequenzdiagramm<br />
Verknüpfungspunkte-<br />
Interaktionsreferenz<br />
Verknüpfungspunktekombiniertes<br />
Fragment<br />
te[i]<br />
:Termin<br />
t u<br />
v1<br />
v2<br />
m1<br />
ref<br />
opt<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
b2<br />
v1<br />
v2<br />
sd b2<br />
v1<br />
v2<br />
X Y<br />
K4-184<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
Modularisierung – Beispiel: Interaktionsreferenzen 1/2<br />
sd Termin löschen<br />
b1<br />
:benutzer<br />
ref<br />
melde<br />
Löschen<br />
Abbrechen<br />
:Termin-<br />
Maske<br />
löschen<br />
Abbrechen<br />
:Calendarium<br />
break [falsches<br />
Passwort]<br />
anzeige<br />
Kalender<br />
lösche(te[i])<br />
PrüfePasswort<br />
anzeige<br />
Kalender<br />
lösche(te[i])<br />
benutzer<br />
b<br />
sd PrüfePasswort<br />
b1<br />
:benutzer<br />
:Termin-<br />
Maske<br />
:Calendarium<br />
loop (1,3)<br />
n[j]<br />
tn[k]<br />
[richtiges<br />
Passwort]<br />
:Notiprüfe<br />
:Queue :Teilfikation<br />
Passwort(pwd) nehmer<br />
prüfe<br />
Passwort(pwd)<br />
anzeige<br />
(ergebnis)<br />
ergebnis=<br />
prüfePasswort(pwd)<br />
K4-185
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
Modularisierung – Beispiel: Interaktionsreferenzen 2/2<br />
sd Termin löschen<br />
b1<br />
:benutzer<br />
alt<br />
melde<br />
kein<br />
Löschrecht<br />
:Termin-<br />
Maske<br />
kein<br />
Löschrecht<br />
te[i]<br />
:Termin<br />
par<br />
x x<br />
[b ist nicht<br />
berechtigt]<br />
[b ist<br />
berechtigt]<br />
:Calendarium<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Sequenzdiagramm<br />
Inhalt<br />
Basiskonzepte<br />
Überblick<br />
Diagrammrahmen<br />
Lebenslinie<br />
Nachricht<br />
Zeiteinschränkungen<br />
Zustandsinvariante<br />
Kombinierte Fragmente<br />
n[j]<br />
:Notifikation<br />
ref LöscheNotifikation<br />
:Queue<br />
ref BenachrichtigeTeilnehmer<br />
Verzweigungen und Schleifen<br />
Parallelität und Ordnung<br />
Filterungen und Zusicherungen<br />
Modularisierung<br />
Interaktionsreferenz<br />
Fortsetzungsmarke<br />
Verknüpfungspunkt<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
tn[k]<br />
:Teilnehmer<br />
K4-186<br />
Verhaltensmodellierung<br />
Exkurs: Sequenzdiagramm versus Aktivitätsdiagramm<br />
Zusammenfassendes Beispiel<br />
K4-187
Pfeil im Aktivitätsdiagramm<br />
Zeigt Abhängigkeiten zwischen Aktionen<br />
Zeigt NICHT: Nachrichten zwischen Objekten<br />
Entspricht einer, mehreren oder keiner Nachricht<br />
Pfeil im Sequenzdiagramm<br />
Zeigt Nachrichten zwischen Objekten<br />
Entspricht Operation einer Klasse<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
Exkurs: Sequenzdiagramm versus Aktivitätsdiagramm 1/5<br />
«class»<br />
Firma<br />
«property»<br />
kundendienst<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
K4-188<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
Exkurs: Sequenzdiagramm versus Aktivitätsdiagramm 2/5<br />
Beispiel: Aktivitätsdiagramm<br />
«property»<br />
vertrieb<br />
Bestellung<br />
Zusammenstellen<br />
Bestellung<br />
Ausliefern<br />
Bestellung<br />
Annehmen<br />
Rechnung<br />
Senden<br />
Bestellung<br />
Abschließen<br />
«property»<br />
buchhaltung<br />
Zahlung<br />
Abwickeln<br />
[basierend auf: C. Bock, UML2 Activity and Action Models,<br />
Journal of Object Technology, 3 (7), 43-53, Juli-August 2004]<br />
K4-189
vertrieb: kundendienst: buchhaltung:<br />
Bestellung<br />
Zusammenstellen<br />
Bestellung<br />
Ausliefern<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
BestellungAnnehmen<br />
RechnungSenden<br />
ZahlungAbwickeln<br />
BestellungAbschließen<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
Exkurs: Sequenzdiagramm versus Aktivitätsdiagramm 3/5<br />
Beispiel: Sequenzdiagramm – falsche Transformation<br />
Pfeile können nicht zu Nachrichten transformiert werden<br />
Beispielsweise kann RechnungSenden nicht das Abschicken der<br />
Nachricht ZahlungAbwickeln beinhalten<br />
RechnungSenden ist zu Ende, bevor ZahlungAbwickeln<br />
gestartet wird<br />
Damit wird sichergestellt, dass RechnungSenden<br />
wiederverwendbar ist, ohne festzulegen, was vorher und<br />
nachher passieren muss<br />
K4-190<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
Exkurs: Sequenzdiagramm versus Aktivitätsdiagramm 4/5<br />
Beispiel: Sequenzdiagramm – Alternative 1<br />
par<br />
koordinator: vertrieb: kundendienst: buchhaltung:<br />
Bestellung<br />
Zusammenstellen<br />
Bestellung<br />
Ausliefern<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
BestellungAnnehmen<br />
RechnungSenden<br />
BestellungAbschließen<br />
ZahlungAbwickeln<br />
K4-191
par<br />
vertrieb: kundendienst: buchhaltung:<br />
Ausführen<br />
Bestellung<br />
Zusammenstellen<br />
Bestellung<br />
Ausliefern<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Bestellung<br />
Annehmen<br />
RechnungSenden<br />
Bestellung<br />
Abschließen<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
Exkurs: Sequenzdiagramm versus Aktivitätsdiagramm 5/5<br />
Beispiel: Sequenzdiagramm – Alternative 2<br />
Sequenzdiagramm<br />
Inhalt<br />
Basiskonzepte<br />
Überblick<br />
Diagrammrahmen<br />
Lebenslinie<br />
Nachricht<br />
Zeiteinschränkungen<br />
Zustandsinvariante<br />
Kombinierte Fragmente<br />
Verzweigungen und Schleifen<br />
Parallelität und Ordnung<br />
Filterungen und Zusicherungen<br />
Modularisierung<br />
Interaktionsreferenz<br />
Fortsetzungsmarke<br />
Verknüpfungspunkt<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
ZahlungAbwickeln<br />
K4-192<br />
Verhaltensmodellierung<br />
Exkurs: Sequenzdiagramm versus Aktivitätsdiagramm<br />
Zusammenfassendes Beispiel<br />
K4-193
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
Beispiel: Interaktionen, Komponenten, Kollaborationen 1/5<br />
1 benötigt 1<br />
SuperKlasseB SuperKlasseC<br />
kompArolle1<br />
KlasseB KlasseC<br />
2 2 kompArolle2<br />
1 1<br />
«component»<br />
KompA<br />
att1:attTyp1<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
K4-194<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
Beispiel: Interaktionen, Komponenten, Kollaborationen 2/5<br />
Komponente enthält<br />
Einen Abschnitt für ein Sequenzdiagramm und<br />
Einen Abschnitt für ein Kompositionsdiagramm, in dem<br />
eine Kollaboration verwendet wird<br />
Sd<br />
SdKompA<br />
kollXrolle1<br />
2<br />
kompArolle1:KlasseB<br />
«component»<br />
KompA<br />
1 :benötigt 1<br />
port1 port2<br />
VerwendungInKompA:KollX<br />
kompArolle2:KlasseC 2<br />
kollXrolle2<br />
K4-195
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
Beispiel: Interaktionen, Komponenten, Kollaborationen 3/5<br />
Kollaboration enthält<br />
Einen Abschnitt für ein Sequenzdiagramm und<br />
Einen Abschnitt für ein Kompositionsstrukturdiagramm<br />
Sd<br />
SdKollX<br />
kollXrolle1:SuperklasseB<br />
2<br />
«collaboration»<br />
KollX<br />
1 :benötigt 1<br />
port1 port2<br />
kollXrolle2:SuperklasseC 2<br />
K4-196<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
Beispiel: Interaktionen, Komponenten, Kollaborationen 4/5<br />
Sequenzdiagramm für Komponente A<br />
Sd SdKompA<br />
self<br />
att1<br />
:attTyp1<br />
m1(outParam1)<br />
m2<br />
m5<br />
outParam1<br />
m3<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
kompArolle1<br />
[1]:KlasseB<br />
ref<br />
m4<br />
port1<br />
m4<br />
SdKollX<br />
port2<br />
m4<br />
kompArolle2<br />
[1]:KlasseC<br />
K4-197
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Sequenzdiagramm<br />
Beispiel: Interaktionen, Komponenten, Kollaborationen 5/5<br />
Sequenzdiagramm für Kollaboration X<br />
Sd SdKollX<br />
kollXrolle1<br />
[1]:SuperKlasseB<br />
<strong>UML@Work</strong><br />
Übersicht<br />
Kapitel 3:<br />
Strukturmodellierung<br />
n3<br />
Kapitel 3.1:<br />
Klassendiagramm<br />
Kapitel 3.2:<br />
Objektdiagramm<br />
Kapitel 3.3:<br />
Paketdiagramm<br />
port1<br />
Kapitel 3.4:<br />
Komponentendiagramm<br />
Kapitel 3.5:<br />
Kompositionsstrukturdiagramm<br />
Kapitel 3.6:<br />
Verteilungsdiagramm<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
n2<br />
port2<br />
Kapitel 6:<br />
Modellgetriebene Softwareentwicklung<br />
in der Praxis<br />
Kapitel 5:<br />
Die Spracharchitektur von UML<br />
Kapitel 4.6:<br />
Zeitdiagramm<br />
Kapitel 2:<br />
Was bringt UML2?<br />
Kapitel 1:<br />
Einleitung<br />
Kapitel 4.2:<br />
Aktivitätsdiagramm<br />
Kapitel 4.3:<br />
Zustandsdiagramm<br />
Kapitel 4.4:<br />
Sequenzdiagramm<br />
kollXrolle2<br />
[1]:SuperKlasseC<br />
n1<br />
Kapitel 4.1:<br />
Anwendungsfalldiagramm<br />
Kapitel 4.5:<br />
Kommunikationsdiagramm<br />
Kapitel 4.7:<br />
Interaktionsübersichtsdiagramm<br />
K4-198<br />
Verhaltensmodellierung<br />
Kapitel 4:<br />
Verhaltensmodellierung<br />
K4-199
Kommunikationsdiagramm<br />
Inhalt<br />
Einführung<br />
Lebenslinie und Kommunikationsbeziehung<br />
Nachrichten<br />
Synchron vs. asynchron vs. Rückgaben<br />
Sequentiell vs. parallel<br />
Schachtelungsebenen<br />
Iterationen<br />
Bedingungen<br />
Exkurs: Einsatz kombinierter Fragmente<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Kommunikationsdiagramm<br />
Einführung<br />
Zeigt die für einen bestimmten Zweck notwendigen<br />
Interaktionen zwischen verschiedenen<br />
Interaktionspartnern<br />
Unterschiede zum Sequenzdiagramm<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
K4-200<br />
Verhaltensmodellierung<br />
Der strukturelle Kontext der Interaktionspartner wird<br />
durch Konnektoren dargestellt<br />
Die Zeitachse ist keine eigene Dimension, daher<br />
explizite Nummerierung durch Sequenznummern<br />
notwendig<br />
Dadurch beliebige (platzsparende) Anordnung der<br />
Interaktionspartner möglich<br />
K4-201
Kommunikationsdiagramm<br />
Einführung – Basiskonzepte<br />
Diagrammrahmen<br />
comm name<br />
Lebenslinie<br />
rolle[selektor]:Typ<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Kommunikationsbeziehung<br />
Nachricht<br />
Kommunikationsdiagramm<br />
Inhalt<br />
Einführung<br />
2.1:m0<br />
Lebenslinie und Kommunikationsbeziehung<br />
Nachrichten<br />
Synchron vs. asynchron vs. Rückgaben<br />
Sequentiell vs. parallel<br />
Schachtelungsebenen<br />
Iterationen<br />
Bedingungen<br />
Exkurs: Einsatz kombinierter Fragmente<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
K4-202<br />
Verhaltensmodellierung<br />
K4-203
Kommunikationsdiagramm<br />
Lebenslinie und Kommunikationsbeziehung<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Interaktionspartner wird durch eine auf ein Rechteck<br />
reduzierte Lebenslinie dargestellt<br />
Keine eigene Zeitdimension<br />
Enthält Name und Typ der Rolle<br />
Bei mehrwertigen Rollen können Selektoren zur Auswahl<br />
eines bestimmten Objekts verwendet werden<br />
Kommunikationsbeziehungen zwischen Interaktionspartnern<br />
werden in Form von Konnektoren definiert<br />
:R s[k]:B<br />
s[u]:B<br />
Kommunikationsdiagramm<br />
Inhalt<br />
Einführung<br />
Lebenslinie und Kommunikationsbeziehung<br />
Nachrichten<br />
Synchron vs. asynchron vs. Rückgaben<br />
Sequentiell vs. parallel<br />
Schachtelungsebenen<br />
Iterationen<br />
Bedingungen<br />
Exkurs: Einsatz kombinierter Fragmente<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
rolle[selektor]:Typ<br />
K4-204<br />
Verhaltensmodellierung<br />
K4-205
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Kommunikationsdiagramm<br />
Nachrichten – synchron vs. asynchron vs. Rückgabe<br />
Arten der Nachrichtenübermittlung<br />
Synchroner Kontrollfluss<br />
analog zum Sequenzdiagramm<br />
Asynchroner Kontrollfluss<br />
analog zum Sequenzdiagramm<br />
Antwortnachrichten werden nicht explizit<br />
hervorgehoben, können aber durch asynchrone<br />
Nachrichten modelliert werden<br />
Reihenfolge der Nachrichten wird über die<br />
Nachrichtenspezifikationen definiert<br />
Sequenznummern<br />
Alternativen [...] und Schleifen *[...]<br />
Parallelität || und Synchronisation /<br />
Kommunikationsdiagramm<br />
Nachrichten – sequentiell vs. parallel<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
K4-206<br />
Verhaltensmodellierung<br />
Nachrichtenspezifikation beginnt mit einer eindeutigen<br />
Sequenznummer<br />
Sequentielle Nachrichten<br />
Werden fortlaufend (z.B.: 1, 2, ...) durchnummeriert<br />
Nachrichtenschachtelung wird durch Dezimalklassifikation<br />
ausgedrückt (z.B.: 1.1, 1.2, …)<br />
Parallele Nachrichten werden durch Kleinbuchstaben<br />
gekennzeichnet (z.B.: 1a, 1b)<br />
sequentiell geschachtelte<br />
Nachrichten<br />
2.3.4.1:m0<br />
parallel geschachtelte<br />
Nachrichten<br />
2.3.4.a:m0<br />
2.3.4.2:m1 2.3.4.b:m1<br />
K4-207
Kommunikationsdiagramm<br />
Nachrichten - Schachtelungsebenen<br />
Kommunikationsdiagramm vs. Sequenzdiagramm<br />
comm b1<br />
1:m0<br />
1.b:m2<br />
:R<br />
1.a:m1<br />
1.b.1:m3<br />
s[u]:B<br />
s[k]:B<br />
1.a.1:m4<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Zeit<br />
Kommunikationsdiagramm<br />
Nachrichten - Iterationen<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Schachtelungsebenen<br />
1. Ebene 2. Ebene 3. Ebene<br />
1:m0<br />
:R<br />
par<br />
1.b:m2<br />
1.a:m1<br />
s[u]:B<br />
1.b.1:m3<br />
1.a.1:m4<br />
s[k]:B<br />
K4-208<br />
Verhaltensmodellierung<br />
Iteration wird durch * nach der Sequenznummer angedeutet<br />
Schleifenbedingung in eckigen Klammern<br />
Parallele Schleifendurchgänge durch Angabe von || vor der<br />
Schleifenbedingung<br />
Schleifenbedingung Parallelität<br />
2.3*[i=1..n]:machsMit(i) 2.3*||[i=1..n]:machsMit(i)<br />
K4-209
Kommunikationsdiagramm<br />
Nachrichten – Bedingungen<br />
Überwachungsbedingung<br />
Bedingte Nachrichtenübermittlung<br />
Logische Bedingung in eckigen<br />
Klammern<br />
Synchronisationsbedingung<br />
Bei parallelen Nachrichten möglich<br />
Liste von Sequenznummern jener<br />
Nachrichten, die vor der betreffenden<br />
Nachricht gesendet sein müssen<br />
Nachricht C wird erst dann gesendet,<br />
wenn Nachrichten A + B gesendet<br />
wurden<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Kommunikationsdiagramm<br />
Nachrichten – Beispiel: Kollisionsprüfung<br />
comm Kollisionsprüfung<br />
1.1.1.1.1.a: beginn<br />
1.1.1.1.1.b: dauer<br />
kandidat:Termin<br />
te[t]:Termin<br />
1.1: hatKollision (kandidat)<br />
1*||[für alle Teilnehmer tn[b]]:prüfe(tn[b])<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
2.3[x>0]:teileDurch(x)<br />
1.1.1.1 [te[t] kandidat]:<br />
kollidiertMit(kandidat)<br />
tn[b]:Teilnehmer<br />
A,B/C:starteC()<br />
K4-210<br />
Verhaltensmodellierung<br />
1.1.1*||<br />
[für alle Termine te[t]]:<br />
prüfe(te[t])<br />
K4-211
Kommunikationsdiagramm<br />
Inhalt<br />
Einführung<br />
Lebenslinie und Kommunikationsbeziehung<br />
Nachrichten<br />
Synchron vs. asynchron vs. Rückgaben<br />
Sequentiell vs. parallel<br />
Schachtelungsebenen<br />
Iterationen<br />
Bedingungen<br />
Exkurs: Einsatz kombinierter Fragmente<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Kommunikationsdiagramm<br />
Exkurs: Einsatz kombinierter Fragmente<br />
comm P<br />
:X<br />
:Y<br />
1:m1<br />
5:m5<br />
alt<br />
2:m2<br />
opt<br />
3:m3<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
:X<br />
:Y<br />
:X<br />
:Y<br />
4:m4<br />
sd P<br />
alt<br />
opt<br />
:X :Y<br />
m1<br />
m2<br />
m3<br />
m4<br />
m5<br />
Verhaltensmodellierung<br />
K4-212<br />
Verhaltensmodellierung<br />
K4-213
<strong>UML@Work</strong><br />
Übersicht<br />
Kapitel 3:<br />
Strukturmodellierung<br />
Kapitel 3.1:<br />
Klassendiagramm<br />
Kapitel 3.2:<br />
Objektdiagramm<br />
Kapitel 3.3:<br />
Paketdiagramm<br />
Kapitel 3.4:<br />
Komponentendiagramm<br />
Kapitel 3.5:<br />
Kompositionsstrukturdiagramm<br />
Kapitel 3.6:<br />
Verteilungsdiagramm<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Zeitdiagramm<br />
Inhalt<br />
Einführung<br />
Basiskonzepte<br />
Lebenslinie<br />
Kapitel 6:<br />
Modellgetriebene Softwareentwicklung<br />
in der Praxis<br />
Kapitel 5:<br />
Die Spracharchitektur von UML<br />
Kapitel 4.6:<br />
Zeitdiagramm<br />
Kapitel 2:<br />
Was bringt UML2?<br />
Kapitel 1:<br />
Einleitung<br />
Kapitel 4.1:<br />
Anwendungsfalldiagramm<br />
Kapitel 4.2:<br />
Aktivitätsdiagramm<br />
Kapitel 4.3:<br />
Zustandsdiagramm<br />
Kapitel 4.4:<br />
Sequenzdiagramm<br />
Kapitel 4.5:<br />
Kommunikationsdiagramm<br />
Zustandsverlaufslinien und Nachrichten<br />
Nachrichtenmarke<br />
Werteverlaufslinien<br />
Beispiel<br />
Zeit- versus Sequenzdiagramm<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Kapitel 4.7:<br />
Interaktionsübersichtsdiagramm<br />
Exkurs: Einsatz kombinierter Fragmente<br />
Verhaltensmodellierung<br />
Kapitel 4:<br />
Verhaltensmodellierung<br />
K4-214<br />
Verhaltensmodellierung<br />
K4-215
Zeitdiagramm<br />
Einführung<br />
Spezielle Form des Sequenzdiagramms<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Zeigt Zustandsänderungen der Interaktionspartner<br />
aufgrund von Zeitereignissen<br />
Verwendung zur Modellierung von zeitkritischem<br />
Verhalten wie z.B. bei Echtzeitsystemen<br />
Zwei Darstellungsdimensionen<br />
Horizontale Dimension repräsentiert Zeitachse<br />
Vertikale Dimension repräsentiert Interaktionspartner<br />
in Form von Rollen<br />
Interaktionspartner<br />
Zeitdiagramm<br />
Basiskonzepte<br />
Diagrammrahmen<br />
timing name<br />
Lebenslinie<br />
rolle:Typ<br />
Zustandsverlaufslinie<br />
rolle:Typ<br />
Zustand1<br />
Zustand2<br />
Zustand3<br />
Zustand1<br />
Zustand2<br />
Zustand3<br />
timing Interaktion (p1, p2)<br />
Zeichtachse<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Nachrichten<br />
rolle:Typ<br />
rolle:Typ<br />
Nachrichtenmarke<br />
m1<br />
Zustand1<br />
Zustand2<br />
Zustand3<br />
Zustand7<br />
Zustand8<br />
Zustand9<br />
m1<br />
Werteverlaufslinie<br />
K4-216<br />
Verhaltensmodellierung<br />
m1<br />
m2<br />
idle lifting dailing connecting<br />
K4-217
Zeitdiagramm<br />
Basiskonzepte – Lebenslinie<br />
»Lebenslinie« wird durch<br />
Bereich dargestellt<br />
Rollenname und/oder Typ<br />
werden am linken Rand des<br />
Bereichs vertikal notiert<br />
Zustände eines Interaktionspartners<br />
können pro<br />
Bereich angegeben werden<br />
Zeitmetrik kann als eigene<br />
Achse angegeben werden<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
timing name<br />
rolle:Typ rolle:Typ<br />
Zustand2<br />
Zustand1<br />
Zustand5<br />
Zustand4<br />
Zustand3<br />
Verhaltensmodellierung<br />
Lebenslinie 1<br />
0 1 2 3 4 5 6<br />
Lebenslinie 2<br />
K4-218<br />
Verhaltensmodellierung<br />
Zeitdiagramm<br />
Basiskonzepte – Zustandsverlaufslinien und Nachrichten<br />
Aktuelle Zustände sowie Zustandsänderungen<br />
werden durch<br />
Zustandsverlaufslinien<br />
ausgedrückt<br />
Waagrechte Linie für<br />
aktuellen Zustand<br />
Senkrechte Linie für<br />
Zustandsänderung<br />
Nachrichten können durch<br />
Pfeile zwischen Zustandsverlaufslinien<br />
notiert werden<br />
timing name<br />
rolle:Typ rolle:Typ<br />
Zustand2<br />
Zustand1<br />
Zustand5 m1<br />
Zustand4<br />
Zustand3<br />
Synchrone und asynchrone Antwortnachrichten<br />
Empfang oder Versand oft mit Zustandsänderung<br />
gekoppelt<br />
0 1 2 3 4 5 6<br />
K4-219<br />
m2
Zeitdiagramm<br />
Basiskonzepte – Nachrichtenmarke<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
Nachrichtenmarken erleichtern das Versenden von<br />
Nachrichten über mehrere Lebenslinien hinweg<br />
Verbessern Lesbarkeit ohne Semantik zu ändern<br />
Notation<br />
Zustandssymbol, das den Namen<br />
der Nachricht beinhaltet<br />
Im Empfängerbereich entspringt<br />
Pfeil aus Nachrichtenmarke<br />
Im Versenderbereich mündet<br />
Pfeil in Nachrichtenmarke<br />
Zeitdiagramm<br />
Basiskonzepte – Wertverlaufslinien<br />
timing name<br />
rolle3<br />
rolle1 rolle2<br />
Zustand6<br />
Zustand5<br />
Zustand4<br />
Zustand3<br />
Zustand2<br />
Zustand1<br />
Wertverlaufslinien stellen alternative Notation zu<br />
Zeitverlaufslinien dar<br />
Sollten genutzt werden bei der Darstellung von<br />
vielen Lebenslinien und/oder<br />
vielen unterschiedlichen Zuständen<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
m1<br />
m1<br />
0 1 2 3 4 5 6<br />
K4-220<br />
Verhaltensmodellierung<br />
Erlauben horizontale, wabenförmige Anordnung von<br />
Zuständen<br />
Breite beschreibt die Dauer eines bestimmten Zustandes<br />
Kreuzungspunkt kennzeichnet die Zustandsänderung<br />
timing Telefongesprächsaufbau<br />
{0 .. 1}<br />
{0 .. 5}<br />
caller idle lifting dailing connecting ringing talking<br />
K4-221
Zeitdiagramm<br />
Beispiel<br />
timing Telefongesprächsaufbau<br />
receiver<br />
exchange<br />
caller<br />
talking<br />
lifting<br />
ringing<br />
idle<br />
active<br />
idle<br />
talking<br />
ringing<br />
connecting<br />
dialing<br />
lifting<br />
idle<br />
lift receiver<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
t=now {t..t+10}<br />
{0..1}<br />
Zeitdiagramm<br />
... versus Sequenzdiagramm<br />
sd P<br />
{0..3s}<br />
{t...t+5s}<br />
:A :B<br />
m1<br />
m2 {0..1s}<br />
m3<br />
t=now<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
dial tone<br />
dial digit<br />
route {0 .. 5}<br />
phone rings<br />
Verhaltensmodellierung<br />
stop ringing<br />
0 1 2 3 4 5 6 7 21<br />
timing P<br />
x<br />
:A y<br />
z<br />
ringing tone<br />
m2<br />
{0..1s}<br />
u m1<br />
:B v<br />
w<br />
t=now<br />
{0..3}<br />
m3<br />
answer phone<br />
stop tone<br />
K4-222<br />
Verhaltensmodellierung<br />
{t...t+5}<br />
s<br />
K4-223
Zeitdiagramm<br />
Exkurs: Einsatz kombinierter Fragmente<br />
timing P<br />
alt<br />
opt<br />
:X<br />
m1 m2 m3 m4 m5<br />
:Y<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
<strong>UML@Work</strong><br />
Übersicht<br />
Kapitel 3:<br />
Strukturmodellierung<br />
Kapitel 3.1:<br />
Klassendiagramm<br />
Kapitel 3.2:<br />
Objektdiagramm<br />
Kapitel 3.3:<br />
Paketdiagramm<br />
Kapitel 3.4:<br />
Komponentendiagramm<br />
Kapitel 3.5:<br />
Kompositionsstrukturdiagramm<br />
Kapitel 3.6:<br />
Verteilungsdiagramm<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
sd P<br />
alt<br />
opt<br />
Kapitel 4.6:<br />
Zeitdiagramm<br />
Kapitel 2:<br />
Was bringt UML2?<br />
Kapitel 1:<br />
Einleitung<br />
:X :Y<br />
m1<br />
m2<br />
m3<br />
m4<br />
m5<br />
Kapitel 6:<br />
Modellgetriebene Softwareentwicklung<br />
in der Praxis<br />
Kapitel 5:<br />
Die Spracharchitektur von UML<br />
Kapitel 4.1:<br />
Anwendungsfalldiagramm<br />
Kapitel 4.2:<br />
Aktivitätsdiagramm<br />
Kapitel 4.3:<br />
Zustandsdiagramm<br />
Kapitel 4.4:<br />
Sequenzdiagramm<br />
Kapitel 4.5:<br />
Kommunikationsdiagramm<br />
Kapitel 4.7:<br />
Interaktionsübersichtsdiagramm<br />
Verhaltensmodellierung<br />
K4-224<br />
Verhaltensmodellierung<br />
Kapitel 4:<br />
Verhaltensmodellierung<br />
K4-225
Interaktionsübersichtsdiagramm<br />
Inhalt<br />
Einführung<br />
Basiskonzepte<br />
Interaktionsübersichts- versus Sequenzdiagramm<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Interaktionsübersichtsdiagramm<br />
Einführung<br />
Zeigt in welcher Reihenfolge und unter welchen<br />
Bedingungen verschiedene Interaktionsabläufe<br />
stattfinden<br />
Einzelne <strong>Interaktionsdiagramme</strong> können dadurch in<br />
logische Reihenfolge gebracht werden<br />
Darstellung des Kontrollflusses durch Konzepte des<br />
Aktivitätsdiagramms<br />
Anstatt Aktionen oder Aktivitäten werden ganze<br />
<strong>Interaktionsdiagramme</strong> sowie<br />
Interaktionsreferenzen als Knoten verwendet<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Verhaltensmodellierung<br />
K4-226<br />
Verhaltensmodellierung<br />
K4-227
Interaktionsübersichtsdiagramm<br />
Basiskonzepte<br />
Diagrammrahmen<br />
intover name lifelines :x, :y<br />
Interaktion/<br />
Interaktionsreferenz<br />
sd b X Y<br />
ref<br />
Start-/Endknoten<br />
sdName<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Kontrollflusskante<br />
Vereinigungs-/<br />
Verzweigungsknoten<br />
Verhaltensmodellierung<br />
Synchronisations-/<br />
Parallelisierungsknoten<br />
Interaktionsübersichtsdiagramm<br />
Basiskonzepte – Beispiel: Termin erfassen<br />
intover Termin erfassen<br />
sd BenutzerId prüfen<br />
b1:<br />
Benutzer<br />
:Termin-<br />
Maske<br />
T[i]<br />
:Termin<br />
:Calendarium<br />
[falsches<br />
prüfe<br />
Passwort(pwd)<br />
passwort]<br />
prüfe<br />
loop (1,3)<br />
Passwort(pwd)<br />
anzeige<br />
(ergebnis)<br />
.<br />
ergebnis=<br />
prüfePasswort(pwd)<br />
. ref<br />
Eckdaten des<br />
Termins erfassen<br />
ref<br />
Teilnehmer<br />
zuordnen<br />
K4-228<br />
Verhaltensmodellierung<br />
K4-229
Interaktionsübersichtsdiagramm<br />
... versus Sequenzdiagramm<br />
Äquivalenz zwischen Kontrollkonstrukten des<br />
Interaktionsübersichtsdiagramms und kombinierten<br />
Fragmenten des Sequenzdiagramms<br />
Interaktionsübersichtsdiagramm<br />
intover a<br />
ref<br />
X<br />
ref<br />
© 2005 M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger<br />
Y<br />
sd b<br />
Sequenzdiagramm<br />
par<br />
ref<br />
ref<br />
X<br />
Verhaltensmodellierung<br />
[basiert auf: M. Jeckle et al., “UML 2 glasklar”, Hanser Verlag 2004]<br />
Y<br />
K4-230