01.07.2013 Aufrufe

UML@Work Interaktionsdiagramme

UML@Work Interaktionsdiagramme

UML@Work Interaktionsdiagramme

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!