UML-Klassendiagramm: Assoziationen

Download Report

Transcript UML-Klassendiagramm: Assoziationen

UML-Klassendiagramm: Assoziationen (1)
1
 Objektverbindung: Beziehung zwischen individuellen
Objekten.
 Assoziation: Klassifikation einer Menge von
Objektverbindungen, definiert zwischen Klassen.
Gewöhnlich zwischen verschiedenen Klassen, darf aber
auch rekursiv sein.
 Stelligkeit einer Assoziation: Anzahl der Objekte, die an
den individuellen Objektverbindungen teilhaben. Nicht
beschränkt, binärer Fall jedoch am häufigsten.
 Notation:
Flug
Flugzeugtyp
UML-Klassendiagramm: Assoziationen (2)
2
 Jede Assoziation wird mit einem Assoziationsnamen
versehen, der beschreibt, worin die Beziehung besteht.
 Assoziationsnamen haben dann natürliche Leserichtung
von einem Klassennamen zum anderen, die man durch
einen Pfeil neben dem Namen kennzeichnet.
 Assoziationsnamen können für beide Leserichtungen notiert
werden:
WirdGeflogenMit
Flug
Gibt SitzeinteilugVorFür
Flugzeugtyp
UML-Klassendiagramm: Assoziationen (3)
3
 Bei drei- und mehrstelligen Assoziationen entfällt
Leserichtung.
 Assoziationen können als eigene Assoziationsklasse
ausgebildet und mit Attributen versehen werden:
Buchung
platzCode: string
datum: date
Kunde
Ticket
Flug
UML-Klassendiagramm: Assoziationen (4)
4
 Assoziationen belassen viel Spielraum für die Modellierung.
 Gleiche Sachverhalte können unterschiedlich modelliert
werden:
TicketNr: string
Kunde
Bucht
Flug
UML-Klassendiagramm: Assoziationen (5)
5
 Multiplizität der Assoziation bezüglich einer Klasse: Anzahl
der individuellen Objektverbindungen, die eine Instanz
dieser Klasse eingehen kann.
 Im zweistelligen Fall: mit wie vielen Objekten der
gegenüberliegenden Klasse kann ein Objekt der Klasse
verbunden sein?
 Vermerk in Leserichtung, also bei der gegenüberliegenden
Klasse.
Flug
1..
WirdGeflogenMit
Gibt SitzeinteilugVorFür
1
Flugzeugtyp
UML-Klassendiagramm: Assoziationen (6)
6
 Multiplizität bei mehrstelligen Assoziationen hat wenig
intuitive UML-Definition: Betrachte bei Stelligkeit n
Kombination von n-1 Objekten und bestimme, mit wie vielen
Objekten der verbleibenden Klasse sie verbunden sein
kann.
Buchung
platzCode: string
datum: date
Kunde
1
Lösbar, wenn Datum zur
Differenzierung mit
einbezogen werden könnte.
In UML nicht vorgesehen!
0..1
0..5
Flug
Ticket
Multiplizität gilt für Flugbewegung,
nicht für Flugplanung!
UML-Klassendiagramm: Assoziationen (7)
7
 Anbindung von Zusicherungen an Assoziationen:
{k1,k2Kunde:
k1.Buchung.TicketNr = k2.Buchung.TicketNr
 k1=k2}
Buchung
platzCode: string
datum: date
Kunde
1
Erst jetzt gilt, das dasselbe
Ticket unabhängig vom Flug
zu genau 1 Kunden gehört!
0..1
0..5
Flug
Ticket
UML-Klassendiagramm: Assoziationen (8)
8
 Rolle: Sichtweise eines Objektes durch das
gegenüberliegende Objekt.
 Besonders bei rekursiven Assoziationen interessant.
Flug
0..
Ausgehend
1
Ankommend
Anschlussflug
UML-Klassendiagramm: Assoziationen (9)
9
 Gerichtete Assoziation: Assoziation, die nur in einer
Richtung traversiert werden muss. (Als
Optimierungshinweis für Implementierung aufzufassen.)
 Notation durch offene Pfeilspitze:
Flug
0..
Ausgehend
1
Ankommend
Anschlussflug
UML-Klassendiagramm: Aggregationen
10
 Aggregation: Ganzes-Teile-Beziehung als Sonderfall einer
Assoziation.
 Aggregationen dürfen Multiplizitäten aufweisen, jedoch
gehört ein Teil nur zu höchstens einem Ganzen.
 Existenzgebunden , andernfalls .
Flughafen
1..5
Terminal
1..20
Flugsteig