Objektorientierte Modellierung mit UML 2

Download Report

Transcript Objektorientierte Modellierung mit UML 2

Objektorientierte
Modellierung mit UML 2
Nichtrelationale Datenbanken
-Historisch kulturwissenschaftliche Informationsverarbeitung-
Universität zu Köln
Sommersemester 2006
unter Leitung von: Prof. Manfred Thaller
Tanja Lange
Objektorientierte Modellierung mit UML2
UML
Was ist UML ?
 „Unified (vereinheitlichte) Modeling Language“
 auf objektorientierten Konzepten basierende
grafische Modellierungssprache
 dient zur Modellierung bestimmter
Realitätsausschnitte und ermöglicht das
spezifizieren, konstruieren, visualisieren
und dokumentieren
eines Softwaresystems
 grafische Repräsentation der Modelle in Form
von Diagrammen
01.06.2006
Objektorientierte Modellierung mit UML2
Prinzip
Diagramme
als grafische Repräsentation der
Modelle
als abstrakte Sicht auf die
Realität
Diagramme
cdA
cdA
cdA
rolle1
rolle2
rolle2
rolle1
rolle2
rolle2
rolle1
rolle2
rolle2
01.06.2006
Sicht
Modell
Sicht
Realitätsausschnitt
Objektorientierte Modellierung mit UML2
Diagramme
Diagramme
Diagramm
Strukturdiagramm
K
P
O
Verhaltensdiagramm
Kt
V
Awf
Kst
Z
I
S
01.06.2006
Ak
K
Zt
Iü
Strukturmodellierung
Statische Aspekte
Objektorientierte Modellierung mit UML2
Diagramme
Diagrammarten
Diagramm
Strukturdiagramm
Klassendiagramm
PaketKomponenten- Verteilungsdiagramm
diagramm
diagramm
Objektdiagramm
01.06.2006
Kompositionsstrukturdiagramm
Klassendiagramm
Objektorientierte Modellierung mit UML2
Klassendiagramme
Basisnotation von Klassen
Klasse
01.06.2006
 Namensfeld
Attribut
…
 Attributliste
Operation()
…
 Operationsliste
Objektorientierte Modellierung mit UML2
Klassendiagramme
«Stammdaten»
Mitarbeiter
{abstract}
Klasse
 Klassenname
 Stereotype/
Schlüsselwörter
 Eigenschaftsangaben {abstract}
(=true)
01.06.2006
Objektorientierte Modellierung mit UML2
Klassendiagramme
Attribut
Mitarbeiter
-personalnr
-name
-gehalt
-alter
-/hyperlink:URL[0..1]
01.06.2006
 Attribute beschreiben
Eigenschaften
 Instanzattribut
(=Instanzvariable)
in Standardschrift
 Klassenattribut
(= Klassenvariable)
unterstrichen
Objektorientierte Modellierung mit UML2
Klassendiagramme
Attribut
 evtl. Abschnittsname
Mitarbeiter
-personalnr
-name
-gehalt
-alter
-/hyperlink:URL[0..1]
Sichtbarkeit:
öffentlich (public/+)
paket (package/~)
geschützt (protcted/#)
privat (private/-)
01.06.2006
(A-Name) bsw. attributes
 zeilenweise
 evtl. in Gruppen
 Sichtbarkeitsangabe
 abgeleitete Attribute„/“
 Attribute nehmen
einen Wert an (Daten)
 Multiplizitätsangabe =
Anzahl Werte
 Attributtyp nicht
festgelegt
 Eigenschaftsliste { }
Objektorientierte Modellierung mit UML2
Klassendiagramme
Operation
 = ausführbare
Mitarbeiter
-personalnr
-name
-gehalt
-/alter
-hyperlink: URL[0..1]
+einstellen()
+erhöheGehalt()
+druckeAusweis()
+typ()
01.06.2006

Tätigkeit
 evtl. Abschnittsname
(AName)bsw.operations
 Parameterliste
 Sichtbarkeit
 Multiplizität
 Eigenschaftsliste { }
 Art eines Parameters
(in, out, inout, return)
= Datanflussrichtung
 Notiz
Objektorientierte Modellierung mit UML2
Klassendiagramme
Aktive Klassen
Klasse
{active}
=
Klasse
 Klassen, für die ein eigenes Verhalten
definiert ist, z.B. mit Zustands- oder
Aktivitätsdiagramm
 Instanzen weisen Kontrollfluss auf
 Reaktionen auf Ereignisse
(Operationsaufrufe)
 Notation: {active}, vertikal doppelter Rahmen
01.06.2006
Objektorientierte Modellierung mit UML2
Klassendiagramme
Geschachtelte Klassen
Äußere Klasse
«nestedClassifier»
Geschachtelte Klasse
 Gehören zum Namensraum der Klasse, in der
sie deklariert sind
01.06.2006
Objektorientierte Modellierung mit UML2
Klassendiagramme
Objekt
m1:Mitarbeiter
 Instanzen von Klassen als Objekt bezeichnet
 = Ausprägungen der von der Klasse
definierten Struktur (Attribute) und weisen
definierte Verhalten (Operationen) auf
 Notation: dem Klassennamen kann
Objektname vorangestellt werden und beides
unterstrichen
01.06.2006
Objektorientierte Modellierung mit UML2
Klassendiagramme
Assoziation
Termin
Datum
Mitarbeiter
*
 /nimmtTeilAn
{ordered}
2
Name
+ teilnehmer
 Verbindungen zwischen Objekten einer
Klasse
 Darstellung als Verbindungslinie (Kanten)
zwischen Klassen/Objekten
 Assoziationsnamen, Leserichtung
 Rolle (Bedeutung der Klasse in der
Assoziation) - Rollenname
 Sichtbarkeit, Multiplizität, Ordnung
01.06.2006
Objektorientierte Modellierung mit UML2
Klassendiagramme
Assoziation
Termin
Datum
Mitarbeiter
*
 /nimmtTeilAn
{ordered}
*
*
* Name
/ teilnehmer
{union}
*
geladeneTn {subsets teilnehmer}
*
eingeladeneTn {subsets teilnehmer}
 Teilmengen von Assoziationen {subsets
<role-name>}
 Vereinigung {union}
01.06.2006
Objektorientierte Modellierung mit UML2
Klassendiagramme
Termin
Assoziation
X*
0..1
zusatzInfo
HypertextDokument
 Navigierbare Assoziationsenden „“
 Nicht navigierbares A.ende „x“
Termin
HypertextDokument
zusatzInfo: HypertextDokument [0..1]
 Navigierbare Assoziation als Attribut
01.06.2006
Objektorientierte Modellierung mit UML2
Klassendiagramme
Person
Qualifizierte Assoziation
1..*
angestelltBei
angestellter
* Unternehmen
abteilung
 qualifiziertes Attribut zur Charakterisierung
der Assoziation
 dienen auch zur Reduzierung der
Multiplizität
01.06.2006
Objektorientierte Modellierung mit UML2
Klassendiagramme
Assoziationsklasse
Termin
Datum
Mitarbeiter
* Name
*
{ordered}
teilnehmer
Teilnahme
warnZeit: DatumZeit
 eigenes Klassensymbol
 durch gestrichelte Linie mit Assoziationskante
verbunden
 Klassenname = Assoziationsname
01.06.2006
Objektorientierte Modellierung mit UML2
Klassendiagramme
n-äre Assoziation
Person
Datum
Kalender
* Berechtigter
Bewilliger
*
Name
Berechtigung
Termintyp
bezeichnung
*
erlaubt: Recht
 mehrstellige Assoziation
 durch Raute dargestellt
 mit allen Klassen durch Kante verbunden
 evtl. mit zugeordneter Assoziationsklasse
01.06.2006
Objektorientierte Modellierung mit UML2
Klassendiagramme
Aggregation/Komposition
Buch
Titel
Erscheinungsjahr
Verzeichnis
Aggregat klasse  Name
Erstellung
1
*
Aggregation
Komposition
*
Kapitel
Autor
AnzahlSeiten

Teilklasse
*
Datei
 Name
Erstellung
letzteÄnderung
 Spezialfälle
 beschreiben eine „Teile-Ganzes-Beziehung“(part-of-relationship)
 asym. Assoziation zw. nicht gleichwertigen Partnern
 Komposition = „strengere“ Form der Aggregation
 Multiplizität max. 1
 wird das Ganze gelöscht, werden alle Teile gelöscht
01.06.2006
Objektorientierte Modellierung mit UML2
Klassendiagramme
Generalisierung (Vererbung)
Angestellter
Vollzeit
Teilzeit
Manager
Programmierer
Sekretärin
 Beziehung zwischen einer allgemeinen Basis-
oder Superklasse und einer spezialisierteren
Unter- oder Subklasse
 fasst gemeinsame Eigenschaften und
Verhalten zusammen
 Klassenhierarchiebildung
01.06.2006
Objektorientierte Modellierung mit UML2
Klassendiagramme
Generalisierung (Vererbung)
Arbeitszeit
Angestellter
{complete}
Tätigkeit
Manager
Programmierer
Vollzeit
Teilzeit
Sekretärin
 Diskriminatoren = eine Art „virtuelles“ Attribut -
Kriterium der Vererbungsstruktur
 Zusammengefasste Generalisierungen =
Generalisierungsmenge
 Einschränkungen { }
01.06.2006
Objektorientierte Modellierung mit UML2
Klassendiagramme
Generalisierung – weitere Begriffe
 Objekt ist „direkte Instanz“ der Klasse
 Jede „direkte Instanz“ einer Klasse ist
„indirekte Instanz“ jeder Superklasse
 Mehrfachvererbung: eine Klasse besitzt
mehrere Oberklassen
 Mehrfachklassifikation: Objekt kann direkte
Instanz mehrer Klassen sein
 Klassifikationstyp: Typ eines Diskriminators
Klasse 1
pt
- wird als Klasse dargestellt, die
a.pt
mit Superklasse in Generalisierungsmenge
durch Assoziation verbunden ist
Klasse 2 Klasse 3
01.06.2006
Objektorientierte Modellierung mit UML2
Klassendiagramme
Redefinition
Eintrag
typ: Eintragstyp
1
daten
0..1
X B_Eintrag
Termin
1
typ = termin
{redefines typ} terminDaten
X
B_Termin
{redefines daten}
 durch Eigenschaft {redefines <feature>}
notiert
 Überschreiben des Verhaltens der
Oberklasse
 muss explizit angegeben werden
01.06.2006
Objektdiagramm
Objektorientierte Modellierung mit UML2
Objektdiagramme
Objektdiagramme
Objektbezeichner Klasse des Objekts
m1:Mitarbeiter
Waisenobjekt
:Mitarbeiter
m1
anonymes Objekt
personalnr = 1234
name = Bernd Meier
 formaler Teil der Klassendiagramme
 von Klassen können beliebig viele Objekte
als Instanzen gebildet werden
 ein Objekt hat einen Zustand, ein Verhalten
und eine unveränderliche Identität
 können den Attributen Werte zuordnen
01.06.2006
Objektorientierte Modellierung mit UML2
Objektdiagramme
t1:Termin
Links
m1:Mitarbeiter
m2:Mitarbeiter
 Instanzen einer Assoziation = Links (Kanten)
 nicht zu verwechseln mit Objekten der
Laufzeitumgebung
 modellierte Instanzen = Instanzspezifikationen
01.06.2006
Paketdiagramm
Objektorientierte Modellierung mit UML2
Paketdiagramme
Paketdiagramm
Paketname
Paketname
A
B
Paketname
Termin
Benutzer
 Zusammenfassung von UML-
Modellelementen (meist Klassen)
 Gruppierung und Strukturierung des
Gesamtsystems / Systemteilen
 3 Notationsvarianten
01.06.2006
Objektorientierte Modellierung mit UML2
Paketdiagramme
Namensraum
Benutzerschnittstelle
B_Termin
Terminverwaltung::Termin
Terminverwaltung
Termin
B_Kalender
termine: B_Termin[*]
benutzer: Benutzer
Kalender
Benutzer
 1 Element kann zu max. 1 Paket gehören
 Paket definiert Namenraum
 Qualifizierter Name eines Elements
 Referenzieren eines Elements
01.06.2006
Objektorientierte Modellierung mit UML2
Sichtbarkeit
Paketdiagramme
x
Y
«access»
+E
«import»
Z
{import Z}
+C
U
+D
-G
V
+A
+B
-F
 Elementen können Sichtbarkeiten
zugeordnet werden (nur privat/“-“ oder
öffentlich/“+“)
 Jedem Element muss eine Sichtbarkeit
zugeordnet werden
01.06.2006
Objektorientierte Modellierung mit UML2
Import
Paketdiagramme
x
Y
«access»
+E
«import»
Z
{import Z}
+C
U
+D
-G
V
+A
+B
-F
 Element-Import, Paket-Import, Klassen-Import
(z.B. X::Z::D importiert Klasse X::Y::U::A)
 Sichtbarkeit muss öffentlich sein - «import» =
öffentliche Import-Beziehung
 «access» = private Import-Beziehung
01.06.2006
Objektorientierte Modellierung mit UML2
Paketdiagramme
Paketverschmelzung
P
R
«merge»
Basispakete
A
B
Q
A
A
R
^
=
«merge»
C
A
B
C
Effektiver
Inhalt
Verschmelzungspaket
 wie Paket-Import mit Beziehung --> + Schlüssel-
wort «merge» = (Verschmelzungsbeziehung)
 verschmilzt Inhalt des Basispakets mit Inhalt des
Verschmelzungspakets
 gleiche Inhalte = Effektiver Inhalt =
Vereinigungsmenge
 Vorteil: min. Modellierungsaufwand
01.06.2006
Komponentendiagramm
Objektorientierte Modellierung mit UML2
Komponentendiagramm
Komponentendiagramm
 modellieren die Struktur eines Systems zur
Laufzeit und beschreiben, aus welchen
Bestandteilen das System aufgebaut ist.
 zeigen Definition von Komponenten und
Abhängigkeiten zwischen diesen
01.06.2006
Objektorientierte Modellierung mit UML2
Komponentendiagramm
 Notation:
Komponente
«component»
Name
Interne Sicht
 Externe Sicht
Externe Sicht
 Interne Sicht
Ports
 Ports: Verteilerzentrum
zur Nachrichtenübermittlung (in, out, inout)
«component»
Name
«component»
öffentlicher
Port
Name
privater
Port
 Verknüpfung einer Komponente mit anderer
Komponente gleicher Ebene
 Typkonformität Voraussetzung
01.06.2006
Objektorientierte Modellierung mit UML2
Komponentendiagramm
Interface
 Interfaces: („Schnittstelle“) zur
Datenübertragung und Abfrage des
Verhaltens anderer Komponenten
(Verhaltensspezifikation)
A, B
Port mit angebotenen Interfaces
X, Y
Port mit benötigten Interfaces
A, B
Stecker-/
Buchsensymbol
Kombinierter Port
01.06.2006
X, Y
Objektorientierte Modellierung mit UML2
Externe Sicht
Komponentendiagramm
 Umfasst Interfaces, a) Interface-Realisierungs-/Benutzungsabhängigkeit:
Ports, öffentliche
Attribute &
Operationen der
Komponente,
Verknüpfung von
Komponenten
gleicher Ebene
b) Buchse/Stecker-Notation:
Verknüpfung durch
(Benutzungs-)Abhängigkeiten =
allgemeine Kopplung zweier
c) Separater Abschnitt:
UML-Modellelemente;
Änderungen in einem Element
(Anbieter) zieht Änderungen im
anderen Element (Klient) mit sich
«use»
01.06.2006
Klient
Anbieter
Objektorientierte Modellierung mit UML2
Interne Sicht
Komponentendiagramm
a) Komponenten-Realisierungs-/Manifestationsabhängigkeit:
 Umfasst private
Attribute & Operationen,
interne Realisierung
(welche Elemente
für die Realisierung
des Verhaltens der
b) Schachtelung:
Komponente
zuständig sind)
 direkte
Implementierung
 indirekte
Implementierung
01.06.2006
c) Separate Abschnitte:
Kompositionsstrukturdiagramm
Objektorientierte Modellierung mit UML2
Kompositionsstrukturd.
Kompositionsstrukturdiag.
 Kompositionsstrukturdiagramm modelliert
innere Struktur einer Komponente oder
Klassen
 Beziehungen zwischen Rollen der internen
Struktur werden durch Konnektoren
modelliert, die Kommunikationspfade
repräsentieren
 die verbundenen Instanzen interagieren
zur Laufzeit miteinander
ungerichtet
 Notation:
gerichtet
01.06.2006
Objektorientierte Modellierung mit UML2
Kompositionsstrukturd.
Kollaboration
 Kollaboration beschreibt , wer mit wem
kommuniziert, um best. Verhalten
auszuführen (nicht wie und wann!)
 Notation:
a)
KalenderAktualisierung
auslöser:Kalender
b)
Kalender
1
1
1..*
auslöser
zuAktualisierende:Kalenderansicht
zuAktualisierende
…
01.06.2006
Kalenderansicht
…
Kalender
Aktualisierung
1..*
Verteilungsdiagramm
Objektorientierte Modellierung mit UML2
Verteilungsdiagramm
Verteilungsdiagramm
 Modellieren der physischen Struktur eines
Systems
 zeigt die eingesetzte Hard- und
Softwaretopologie und das zugeordnete
Laufzeitsystem
01.06.2006
Objektorientierte Modellierung mit UML2
Verteilungsdiagramm
Verteilungsdiagramm
 Knoten sind Hard-,
Softwareelemente
«device»
«device»
 KommunikationscalClient:PC
calServer:Host
beziehungen =
Verbindung zw.
Knoten
 Artefakte =
«deploy»
Modellelemente, die
«artifact»
calServerProgram:jar
für die Ausführung
auf die Knoten verteilt
werden (physische
Manifestation der Software,
z.B. exe-files)
01.06.2006
Verhaltensmodellierung
Dynamische Aspekte
Objektorientierte Modellierung mit UML2
Diagramme
Diagrammarten
Diagramm
Verhaltensdiagramm
Anwendungsfalldiagramm
Aktivitätsdiagramm
Zustandsdiagramm
Interaktionsdiagramm
InteraktionsübersichtsSequenz- KommunikationsZeitdiagramm
diagramm
diagramm diagramm
01.06.2006
Anwendungsfalldiagramm
Objektorientierte Modellierung mit UML2
Anwendungsfalldiagramm
Anwendungsfalldiagramm
 beschreibt Funktionalität des zu
entwickelnden Systems in Form von
Anwendungsfällen aus Sicht des Benutzers
 Sonderstellung, da es strukturelle
Darstellung des erwarteten Verhaltens
repräsentiert und keine dynamischen
Aspekte aufweist
01.06.2006
Objektorientierte Modellierung mit UML2
Anwendungsfalldiagramm
 Notation:
Anwendungsfälle
Termin
löschen
Termin
löschen
Termin
löschen
 beschreiben Systemfunktionalitäten
 Akteure (=Classifier) interagieren mit dem
System
verfügen über Klasseneigenschaften
befinden sich außerhalb des Systems und
werden nicht implementiert
Benutzer
01.06.2006
Objektorientierte Modellierung mit UML2
Anwendungsfalldiagramm
Anwendungsfälle
 können zur Erfüllung
Benutzer
Adminitrator
Eintrag
erfassen
Programm verwalten
extension points
Zugriffsrechte anpassen
Einstellungen anpassen
Generalisierungsbeziehung
Termin
erfassen
«include»
«extend»
«extend»
Einstellungen
verwalten
Condition: {Einstellungen ausgewählt}
Extension point: Einstellungen anpassen
01.06.2006
benutzter Anwendungsfall
ist unbedingt notwendig!)
extend-Beziehung (=
Zugriffsrechte
verwalten
Kalender
aktualisieren
include-Beziehung (=
Erweiterung eines
Anwendungsfalls
«include»
Teilnehmer
verständigen
ihrer Funktionalitäten
Beziehungen
untereinander haben
erweiternder
Anwendungsfall kann
übernommen werden)
Generalisierungsbeziehung
Erweiterungsstelle
(evtl. Notizsymbol als
Zuordnunghilfe)
Bedingung, die erfüllt sein muss um
Anwendungsfall einzufügen
Objektorientierte Modellierung mit UML2
Abstrakter Anwendungsfall
Anwendungsfalldiag.
Abstrakter Anwendungsfall,
nicht ausführbar!
Benutzer
Einstellungen
verwalten
Adminitrator
Benutzergruppen verwalten
{abstract}
«extend»
private
Benutzergruppen
verwalten
Benutzer
verwalten
«extend»
globale
Benutzergruppen
verwalten
konkreter Anwendungsfall,
ausführbar!
 Identische Teilaspekte in div. Anwendungs-
fällen werden mittels Generalisierungsbeziehung zusammengeschlossen
01.06.2006
Aktivitätsdiagramm
Objektorientierte Modellierung mit UML2
Aktivitätsdiagramm
Aktivitätsdiagramm
 spezifiziert Kontroll- und Datenfluss
zwischen verschiedenen Arbeitsschritten
(Aktionen), die zur Realisierung einer
Aktivität notwendig sind
 zur Modellierung objektorientierter und nicht
objektorientierter Systeme
01.06.2006
Objektorientierte Modellierung mit UML2
Aktivitätsdiagramm
Aktivitäten & Aktionen
 Aktivität umfasst gesamte Verhaltens-
beschreibung im Aktivitätsdiagramm
 atomare Bestandteile einer Aktivität = Aktionen
 Aktionen leisten „eigentliche Arbeit“
 gerichteter Graph mit Aktivitätsknoten
(repräsentieren Aktionen, Kontrollkonstrukte & Objektspeicher)
& Aktivitätskanten (drücken Abhängigkeiten in Form von
Weitergabe von Kontrolle bzw. Daten aus)
Aktivitäts Notation:
name
Eingabeparameter
01.06.2006
Aktivitätsknoten
Aktivitätskante
Ausgabeparameter
Objektorientierte Modellierung mit UML2
Aktivitätsdiagramm
Knoten
 Aktionsknoten: repräsentieren vordefinierte
UML-Aktionen, die Eingaben empfangen und
diese für Ausgaben für andere Knoten
verarbeiten
 Kontrollknoten: steuern Aktivitätsabläufe,
Festlegung Start und Ende einer gesamten
Aktivität
 Objektknoten: dienen als Ein- und
Ausgabeparameter (d.h. Bindeglied zwischen
Verhaltensmodellierung (Aktivitätsdiagramm)
und Strukturmodellieung (Klassendiagramm)),
sowie als zentraler Puffer
01.06.2006
Objektorientierte Modellierung mit UML2
Aktivitätsdiagramm
Kanten
 Legen mit Kontrollknoten zeitlich logische
Reihenfolge fest
Kontrollflusskanten: drücken reine
Kontrollabhängigkeit zwischen Vorgänger- und
Nachfolgerknoten aus
Objektflusskanten: transportieren zusätzlich
Daten von Vorgänger- zu Nachfolgerknoten
01.06.2006
Objektorientierte Modellierung mit UML2
Aktivitätsdiagramm
Token
 „virtueller Koordinationsmechanismus“
 beschreiben Abläufe einer Aktivität zur
Laufzeit
 Token fließen entlang der Kanten vom
Vorgängerknoten zum Nachfolgerknoten
 Kontroll- und Datentoken
 müssen an allen eingehenden Kanten eines
Knotens angeboten werden, um dessen
Ausführung zu ermöglichen
 „Ergebnisse einer Aktivität“
01.06.2006
Objektorientierte Modellierung mit UML2
Aktivitätsdiagramm
Kontrollknoten
 Initialknoten: kennzeichnet Beginn eines
Aktivitätsablaufs 
 Aktivitätsendknoten: beendet alle Abläufe
einer Aktivität  («bull´s eye»)
 Ablaufendknoten: beendet nur einen
bestimmten Ablauf einer Aktivität 
Einladung
adressieren
Einladung
drucken
[else]
01.06.2006
[alle
Einladungen
gedruckt]
Objektorientierte Modellierung mit UML2
Aktivitätsdiagramm
Alternative Abläufe
 Entscheidungsknoten: ermöglichen Ablauf in
alternative Zweige

=„Weiche“ für den Tokenfluss, Ankunft von
Token startet Entscheidungsverhalten
Überwachungsbedingungen wählen den Zweig
aus
 Vereinigungsknoten: führt alternative Abläufe
wieder zusammen
Termin
vorschlagen
[true]
[false]
01.06.2006

Termin
fixieren
«decision Input»
Teilnehmer mit Termin
einverstanden?
Teilnehmer
informieren
Objektorientierte Modellierung mit UML2
Aktivitätsdiagramm
Nebenläufige Abläufe
 Parallelisierungsknoten: Ablauf in beliebig
viele nebenläufige Zweige gleichzeitig
aufspalten I
eingehende Token werden für alle ausgehenden
Kanten dupliziert
 Synchronisierungsknoten: führt nebenläufige
Abläufe wieder zusammen
I
indem eingehende Token wieder vereinigt werden
BenutzerID
prüfen
[ok]
[else]
01.06.2006
Termin
erfassen
Teilnehmer
auswählen
Kollision
prüfen
Objektorientierte Modellierung mit UML2
Aktivitätsdiagramm
Objektknoten
 dienen als Ein- & Ausgabeparameter für
Aktivitäten
 oder als Ein- & Ausgabepins für Aktionen
 oder als Pufferknoten zur Pufferung von
Datentoken
Transiente Pufferknoten löscht weitergegebenen
Datentoken («centralBuffer»)
Persistenter Pufferknoten bewahrt sie auf und gibt
Duplikate weiter («datastore»)
Aktivitätsname
Aktion1
Eingabeparameter
01.06.2006
Ausgabepin
Teilnehmer
auswählen
Aktion2
Eingabepin
Ausgabeparameter
«datastore»
Benutzer
Einladung
versenden
«centralBuffer»
Ausgewählte
Teilnehmer
Objektorientierte Modellierung mit UML2
Aktivitätsdiagramm
Begriffe
 Parametersatz: Zusammenfassung /
Gruppierung von Parametern
 Steuerung des Objektflusses über
Objektflusskanten
 Reihenfolge der Tokenweitergabe über
Spezifikation in geschwungenen Klammern
Standard FIFO
{ordering = LIFO}
{ordering = ordered}
{ordering = unordered}
01.06.2006
Objektorientierte Modellierung mit UML2
Aktivitätsdiagramm
Begriffe
 Kapazitätsobergrenze: begrenzt Anzahl der
Token, die Objektknoten aufnehmen
kann
{upperBound=20}
«centralBuffer» {weight=20}
 Gewicht einer Objektflusskante
To-do´s
 Selektionsverhalten: bestimmte Token werden für
«selection»
Weitergabe ausgewählt (=Tokenfilter)
.......
bestimmt implizit auch Reihenfolge
≠ Überwachungsbedingungen, die über
Weitergabe aller Token entscheidet
 Transformationsverhalten:
Teilnehmer
auswählen
«datastore»
Benutzer
kann Datenwert eines Tokens austauschen
Referenz auf ein Objekt durch eine andere austauschen
eingehendes Datentoken in mehrere ausgehende
transformieren
01.06.2006
Objektorientierte Modellierung mit UML2
Aktivitätsdiagramm
Partitionen
 erlauben Gruppierung von Knoten und
Partitionsname
01.06.2006
Partitionsname
Kanten einer Aktivität nach bestimmten
Kriterien (gemeinsame Eigenschaften)
 Logische Sicht zur Erhöhung der
Übersichtlichkeit
 Notation: so genannte „Schwimmbahnen“
Objektorientierte Modellierung mit UML2
Aktivitätsdiagramm
Partitionen
 Hierarchische
Partition: Wurzel
(=Dimension) +
Subpartitionen
 Multidimensionale
Partition: orthogonale
Dimensionen
Dimensionsname
01.06.2006
Partitionsname
Partitionsname
Dimensionsname
Dimensionsname
Name
Name
Subpartition Subpartition
Partitionsname
Partitionsname
Objektorientierte Modellierung mit UML2
Aktivitätsdiagramm
Strukturierte Aktivitätsknoten
 Fassen Teile einer Aktivität zu einer in sich
abgeschlossenen & strukturierten
Ausführungseinheit zusammen
Aktionen innerhalb dessen werden erst gestartet,
wenn alle Token vorhanden sind
Token werden erst weitergegeben, wenn Aktion
abgearbeitet ist
«structured»
…
01.06.2006
…
Objektorientierte Modellierung mit UML2
Aktivitätsdiagramm
Strukturierte Aktivitätsknoten
 3 spezielle Formen:
Expansionsbereich: verarbeitet Elemente einer
Kollektion
Konditionalknoten:
dient zur Auswahl aus einer Reihe alternativer Zweige
(im Sinne einer „if-then-else-Anweisung“;
Testbereich (if bzw. else if) + Ausführungsbereich (then
& else))
Pendant zu Entscheidungsknoten
Vorteil durch Kompaktheit
Schleifenknoten: zur kompakten Modellierung
von Schleifen
01.06.2006
besteht aus Initialisierungsbereich (for), Testbereich
(while) und Ausführungsbereich (do)
Zustandsdiagramm
Objektorientierte Modellierung mit UML2
Zustandsdiagramm
Zustandsdiagramm
 Modellierung des Intraobjektverhaltens auf
Basis von Zuständen (Knoten) und
Zustandsübergängen = Transitionen
(Kanten), die von Ereignissen ausgelöst
werden
 Basiert auf „eigentlichem
Zustandsautomaten“ / Verhaltensautomaten
und Protokollautomaten
01.06.2006
Objektorientierte Modellierung mit UML2
Zustand
Zustandsdiagramm
 Zustand = Objekt in
BeginnBearbeiten
do / DatumZeit erfassen
entry / Schreibmarke setzen
exit / Abhängigkeiten aktualisieren
TAB
ENTER
DauerBearbeiten
do / Zeit erfassen
entry / Schreibmarke setzen
exit / Abhängigkeiten akt.
ENTER
bestimmter Situation
 kann auf äußere
TAB
Ereignisse reagieren
Abbruch
 Notation:
entry / Schaltfläche hervorheben
exit / Hervorhebung aufheben
Zustandsname +
ENTER
Aktivität
/Änderungen
ENTER
verwerfen
Fehler
entry / Fehlermeldung anzeigen
exit / Fehlermeldung löschen
ENTER
[Werte inkorrekt]
TAB
TAB
OK
entry / Schaltfläche hervorheben
exit / Hervorhebung aufheben
01.06.2006
ENTER
[Werte korrekt]
/Änderungen
akzeptieren
 do/ = Aktivitäten während
System im Zustand
 entry/ = wenn Objekt in
Zustand eintritt
 exit/ = sobald Zustand
verlassen wird
Objektorientierte Modellierung mit UML2
Pseudozustände
Zustandsdiagramm
BeginnBearbeiten
do / DatumZeit erfassen
entry / Schreibmarke setzen
exit / Abhängigkeiten aktualisieren
TAB
TAB
ENTER
DauerBearbeiten
do / Zeit erfassen
entry / Schreibmarke setzen
exit / Abhängigkeiten akt.
Abbruch
entry / Schaltfl. herv.
exit / Hervorhebg aufh.
ENTER
ENTER
Fehler
entry / Fehlermeldung anzeigen
exit / Fehlermeldung löschen
TAB
01.06.2006
 Startzustand 
 History-Zustand H
= Rücksprungadresse
 Verbindungsstellen 
 Entscheidungsknoten 
 Nebenläufigkeitsbalken ▬
 Einstiegs- O
ENTER
/Ausstiegspunkt 
= dienen der Verwendung von
Unterautomaten
 Terminierungsknoten X
ENTER
TAB
= gibt an, daß das Objekt,
[Werte inkorrekt]
ENTER
dessen Verhalten modelliert
OK
wird, aufhört zu existieren
entry / Schaltfläche hervorheben
exit / Hervorhebung aufheben
 Endzustand 
Objektorientierte Modellierung mit UML2
Zustandsdiagramm
Komplexe Zustände
BeginnBearbeiten
 Zusammengestzte,
entry / Schreibmarke setzen
exit / Abhängigkeiten aktualisieren
F1
/ pD = pT = 0
DatumErfassen
entry / Schreibmarke an Pos. pD setzen
H
When(pD = 8)
ZeitErfassen
entry / Schreibmarke an Pos. pT setzen
Z
01.06.2006
A
B
C
D
Hilfe
TAB
ENTER
geschachtelte Zustände
 ODER-Verfeinerung =
mit der ein komplexer
Zustand in Subzustände
zerlegt wird
 UND-Verfeinerung = mit
der die Zerlegung in
nebenläufige,
gleichzeitig aktive
Subzustände erfolgt
Objektorientierte Modellierung mit UML2
Zustandsdiagramm
Unterautomaten
 um mehrfach auftretende Verhaltensaspekte
herauszuheben und gesondert zu
beschreiben
 werden im „Hauptautomaten“ durch
Unterautomatenzustand referenziert
 Notation:
Rechteck
Name: Zustandsname:Unterautomatenname
mit Ein- und Ausstiegspunkten
01.06.2006
Objektorientierte Modellierung mit UML2
Zustandsdiagramm
Protokollautomaten
 legen fest, welche Operationsaufrufe unter
welchen Bedingungen von einem Classifier
akzeptiert werden
 beschreiben lediglich Sequenzen von
Ereignissen ohne jegliche Effekte (außer
Zustandsübergänge)
Telefongespräch {protocol}
Wahlbereit
Hörer
abnehmen
Nummer wählen
Verbindungsaufbau
01.06.2006
Grundzustand
Partner
hebt ab
Gespräch
beendet
Partner legt auf
Gespräch
Interaktionsdiagramme
Objektorientierte Modellierung mit UML2
Interaktionsdiagramme
 spezifizieren das Interobjektverhalten in
Form von Nachrichten zwischen Objekten in
bestimmten Rollen
01.06.2006
Sequenzdiagramm
Objektorientierte Modellierung mit UML2
Sequenzdiagramm
Sequenzdiagramm
 Modellierung von Interaktionen
 Interaktion spezifiziert die Art & Weise, wie
Nachrichten und Daten zwischen
verschiedenen Interaktionspartnern in einem
bestimmten Kontext ausgetauscht werden,
um eine bestimmte Aufgabe zu erfüllen
 Der Nachrichtenaustausch wird im
Allgemeinen zwischen Rollen auf Typebene
modelliert
 Interaktionen erfolgen durch Nachrichten in
Form von Signalen und Operationsaufrufen
oder werden durch Bedingungen und
Zeitereignisse gesteuert
01.06.2006
Objektorientierte Modellierung mit UML2
Sequenzdiagramm
Einsatzmöglichkeiten
 Modellierung der Interaktion eines Systems
mit seiner Umwelt, um Systemgrenzen
festzulegen
 Modellierung des Zusammenspiels der
internen Struktur einer Klasse, Komponente
oder Kollaboration
 Modellierung des Interaktionsaspekts der
Verknüpfung von verschiedenen
Systemteilen (z.B. Komponenten über Ports,
angebotene und benötigte Interfaces)
 Modellierung der Interaktionen der
Operationen einer Klasse
01.06.2006
Objektorientierte Modellierung mit UML2
Sequenzdiagramm
Notation
 Rechteck mit Pentagon
 darin Diagrammtyp als String sd
 gefolgt vom Interaktionsnamen und evtl.
Parametern in Klammern
 Zwei Dimensionen:
sd name (par1, par2)
vertikale = Zeitachse,
horizontale = Interaktionspartner
 Interaktionspartner durch vertikale
gestrichelte Lebenslinie dargestellt, oben
rolle:Typ
Kopf mit Name und Typ der Rolle
01.06.2006
Objektorientierte Modellierung mit UML2
Sequenzdiagramm
Begriffe
 Interaktionen = Abfolge so genannter
Ereignisspezifikationen
 Ereignisspezifikationen partitionieren eine
Lebenslinie in Zeitsegmente und definieren
einen potenziellen Ereigniseintritt zur
Laufzeit
 Folge von konkreten Ereigniseintritten =
Trace bestimmt den Ablauf einer Interaktion
zur Laufzeit
01.06.2006
Objektorientierte Modellierung mit UML2
Sequenzdiagramm
Ausführung einer Nachricht
 Periode, in der ein Interaktionspartner direkt
oder indirekt ein bestimmtes Verhalten
ausführt = Ausführungsspezifikation
 Die Ausführung wird durch Start und Ende
definiert
rolle:Typ
rolle:Typ
Startereignisspezifikation
Ausführungsspezifikation
Endereignisspezifikation
01.06.2006
indirekte
Ausführung
direkte
Ausführung
Objektorientierte Modellierung mit UML2
Sequenzdiagramm
Versenden einer Nachricht
 Synchrone Nachrichtenübermittlung: Sender
wartet bis die durch die Nachricht ausgelöste
Interaktion beendet ist
 Asynchrone Nachrichtenübermittlung: der
Sender der Nachricht wartet nicht auf die
Antwort des Empfängers
 Antwortnachrichten
 Verlorene Nachricht: eine Nachricht an einen
unbekannten oder nicht relevanten
lost
Interaktionspartner verschicken
 Gefundene Nachricht: von einem solchen
found
Interaktionspartner empfangen
01.06.2006
Objektorientierte Modellierung mit UML2
Sequenzdiagramm
Kombinierte Fragmente
 zur Modellierung komplexer Kontrollstrukturen
 beinhaltet einen Interaktionsoperator und einen
oder mehrere Interaktionsoperanden
sd Beispiel
Operatoren
alt
Kombinierte
Fragmente
Operand 1
loop
Schachtelung von
Interaktionen
Operand 2
 Operatoren dienen zur Festlegung der Auswahl
und Reihenfolge der gesendeten Nachrichten und
ihrer Häufigkeiten im kombinierten Fragment
01.06.2006
Objektorientierte Modellierung mit UML2
Sequenzdiagramm
Arten von Operatoren
Operator Zweck
alt
Alternative
Mehrere Operanden,
Interaktionen von denen einer zur Laufzeit anhand
von Überwachungsbedingung oder
else-Bedingung ausgewählt wird
opt
Optionale
Ein Operand,
Interaktionen Ausführung von Überwachungsbedingung abhängig; if-then -Konstrukt
break
AusnahmeEin Operand,
Interaktionen wird ausgeführt, wenn Bedingungen
erfüllt; wenn Bedingungen nicht erfüllt,
wird umgebendes Fragment ausgeführt
loop
Iterative
Ein Operand;
Interaktionen Ausführungshäufigkeit durch Zähler
und Überwachungsbedingung bestimmt
Verzweigungen
Schleifen
01.06.2006
Beschreibung
Objektorientierte Modellierung mit UML2
Sequenzdiagramm
Arten von Operatoren
Operator Zweck
seq
Sequenzielle
Interaktionen
mit
schwacher
Ordnung
Zwei oder mehrere Operanden mit
schwacher Ordnung;
best. Reihenfolge der Ereigniseintritte Traces
in Verbindung mit break-Operator einzelne
Interaktionen in Blöcke zusammenfassen
strict
Sequenzielle
Interaktionen
mit strenger
Ordnung
mehrere Operanden mit strenger Ordnung;
Reihenfolge der Ereigniseintritte muß exakt
der Anordnungsreihenfolge der
korrespondierenden Ereignisspezifikationen
entsprechen
par
Nebenläufige
Interaktionen
Zwei oder mehrere Operanden;
werden nebenläufig ausgeführt
critical
Atomare
Interaktionen
ein Operand;
erlaubt Spezifikation eines atomaren, d.h.
nichtunterbrechbaren Interaktionsablaufs
Nebenläufigkeiten
und
Ordnung
01.06.2006
Beschreibung
Objektorientierte Modellierung mit UML2
Sequenzdiagramm
Arten von Operatoren
Operator Zweck
ignore
Irrelevante
Interaktionen
ein Operand;
erlaubt Spezifikation von Nachrichten,
die als bedeutungslos eingestuft werden
consider
Relevante
Interaktionen
ein Operand;
erlaubt Spezifikation jener Nachrichten,
die für die Interaktion besonders
relevant sind
assert
Zugesicherte
Interaktionen
ein Operand;
Interaktionsablauf im Operanden ist
einzig gültiges Verhalten an diesem
Punkt der Interaktion und muss
vollständig ausgeführt werden
neg
Ungültige
Interaktionen
ein Operand;
Modellierung eines ungültigen
Interaktionsablaufs, d.h. eine Reihe von
Interaktionen, die zur Laufzeit nicht
auftreten dürfen (z.B. Fehler)
Filterungen
Zusicherungen
01.06.2006
Beschreibung
Objektorientierte Modellierung mit UML2
Sequenzdiagramm
Modularisierung
 Wiederverwendung wird erleichtert
 Komplexität von Diagrammen wird reduziert
 Folgende Konzepte:
Interaktionsreferenzen: Referenzierung anderer
Sequenzdiagramme
dadurch können ganze Interaktionsabläufe und auch
einzelne Lebenslinien zerlegt werden
ref
sdName (par1, par2):
rückgabeWert
Interaktionsreferenz zur Zerlegung
von Interaktionsabläufen
01.06.2006
rolle[selector]:Typ
ref Interaktionsname
Referenz der inneren Interaktion
einer Lebenslinie
Objektorientierte Modellierung mit UML2
Sequenzdiagramm
Modularisierung
Fortsetzungsmarken: Zerlegung der Operanden
eines alt-Operators
alt
A
B
Startmarken
alt
B
A
01.06.2006
Zielmarken
Objektorientierte Modellierung mit UML2
Modularisierung
Sequenzdiagramm
Verknüpfungspunkte: Verbindung von
Nachrichten zwischen Sequenzdiagrammen,
Interaktionsreferenzen oder kombinierten
Fragmenten
sd b1
t
sd b2
u
v1
v1
v2
v2
Verknüpfungspunkte
01.06.2006
x
y
Kommunikationsdiagramm
Objektorientierte Modellierung mit UML2
Kommunikationsdiag.
Kommunikationsdiagramm
 zusätzlich zu Interaktionen können auch die
zugrunde liegenden strukturellen
Zusammenhänge der Interaktionspartner
dargestellt werden
 Keine Zeitachse
 Anordnung der Nachrichten entspricht nicht
der Reihenfolge
 Explizite Nummerierung durch
Sequenznummern
comm name
rolle[selector]:Typ
 Notation:
01.06.2006
Interaktionspartner als Kopf
ohne Lebenslinie
Zeitdiagramm
Objektorientierte Modellierung mit UML2
Zeitdiagramm
Zeitdiagramm
 zeigt explizit zeitabhängige
Zustandsänderungen der Interaktionspartner
 stellt nur exemplarischen Ablauf dar, da
keine Kontrollkonstrukte zur Verfügung
stehen
01.06.2006
Objektorientierte Modellierung mit UML2
Zeitdiagramm
Notation
Zustandsverlaufslinie
Auslöser
rolle:Typ
Zustand 1
rolle:Typ
timing name
Zustand 3
Zustand 2
Zustand 4
Lebenslinien
01.06.2006
0 1
 Zeitachse horizontal, Lebenslinie
als Abschnitte untereinander
at(t=12.00)
 Zeitmetrik als eigene Achse mit
Zeiteinheit
 Zustände (Reihenfolge nicht
signifikant)
 Wechsel zwischen Zuständen
durch Zustandsverlaufslinie
 Auslöser von Zustandsänderungen (z.B. Empfang einer
Nachricht) entsprechend notiert
2 3 4 5 6 7 s  Nachrichtenaustausch zwischen
Interaktionspartnern als Pfeil
Zeitmetrik
 Nachrichtenmarken für weiter
auseinander liegende
Nachrichtenaustausch
Lebenslinien
Interaktionsübersichtsdiagramm
Objektorientierte Modellierung mit UML2
Interaktionsübersichtsd.
Interaktionsübersichtsd.
 Modellierung des
intover Termin erfassen
ref Eckdaten des
Termins erfassen
ref Teilnehmer
ref Kollision prüfen
[Kollisionen]
[else]
ref Terminvorschlag finden
und über Kollisionen
informieren
ref
01.06.2006
Notifikationen erzeugen
und Sichten aktualisieren
Kontrollflusses
zwischen
verschiedenen
Interaktionsabläufen,
d.h. in welcher
Reihenfolge und
unter welchen
Bedingungen
verschiedene
Interaktionsabläufe
stattfinden
Objektorientierte Modellierung mit UML2
Literatur
 Hitz, M., Kappel, G., Kapsammer, E.,
Retschitzegger, W. (2005).
UML @ Work. Objektorientierte Modellierung
mit UML 2 (3. Aufl.).
Heidelberg: dpunkt.verlag
01.06.2006