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,k2Kunde:
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