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