Folgende Pfeile werden in UML verwendet:
Klassendiagramme
Vererbung
![Class B erbt von Class A; Class A ist die Oberklasse](../images/2012/07/UML-vererbung.png)
Die Vererbung ist eines der wichtigsten Prinzipien der objektorientierten Programmierung. Sie zeigt eine "ist ein"-Beziehung an.
Beispiele sind:
Tiger
ist eineGroßkatze
ist eineKatze
ist einRaubtier
ist einTier
.Auto
ist einFortbewegungsmittel
.Auto
ist einLuxusgut
.
Beachte dass Auto
hier sowohl von Luxusgut
, als auch von Fortbewegungsmittel
erbt. Das geht in manchen Programmiersprachen (C++, Python), in anderen nicht (Java).
Assoziation
![Assoziation](../images/2012/07/UML-assoziation.png)
Die Assoziationzeigt eine Verbindung an, z.B.:
- Person - Termin: Eine Person hat Termine; Termine gehören zu einer Person.
- Lehrer - Schüler: Ein Schüler hat Lehrer; Lehrer haben Schüler.
- Auto - Fahrer: Ein Auto hat einen Fahrer; ein Fahrer hat ein Auto.
In einer Datenbank würde man für diese Relationen eine weitere Tabelle erstellen. Also eine Tabelle für Personen, eine für Termine und eine für Person-Termin-Verknüpfungen.
Aggregation
![Aggregation](../images/2012/07/UML-aggregation.png)
Die Aggregation ist eine spezielle Assoziation. Sie zeigt eine "hat"-Beziehung an. Dabei ist die Richtung wichtig und sollte angezeigt werden.
Aggregationen sind z.B.:
- PKW hat Räder
- Eltern haben Kinder
- Buchladen hat Bücher
Komposition
![Komposition](../images/2012/07/UML-komposition.png)
Die Komposition zeigt eine notwendige "ist-Teil-von" Beziehung an. Das Teil kann also nicht ohne das Ganze existieren.
Beispiele sind:
- Buch hat Buchseiten (Buchseiten gibt es nicht ohne Buch)
- Rechnung hat Posten (Rechnungsposten gibt es nicht ohne Rechnung)
- Graph hat Knoten (Knoten gibt es nicht ohne Graph)
Weitere
- Die Benutzt-Relation wird als gestrichelter Pfeil mit nicht-ausgefülltem Kopf dargestellt.
- Eine Implementierung wird als gestrichelter Pfeil mit rundem, nicht ausgefülltem Kopf dargestellt.
Objektdiagramme
![UML: instanceOf beziehung in einem Objektdiagramm](../images/2012/07/objektdiagramm-instance-of.png)
Sequenzdiagramme
Sequenzdiagramme haben wieder eigene Pfeile.
![UML Sequenzdiagramm](../images/2012/07/sequenzdiagram.png)
Der Pfeil mit der ausgefüllten Spitze ist eine Synchrone Nachricht, der gestrichelte mit der nicht-ausgefüllten Spitze ist eine Antwort und der durchgezogenen Pfeil mit der nicht-ausgefüllten Spitze ist eine asynchrone Nachricht. ACHTUNG: In der Vorlesung bei Herrn Prof. Tichy hat die Antwort (Folie 42) auch keinen ausgefüllten Kopf, im gegensatz zu dem hier gezeigtem Bild!