Generalisierung (UML)

Generalisierung (engl. Generalization) ist ein Modellelement in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme. Sie beschreibt eine taxonomische Beziehung zwischen einem speziellen und einem generellen Classifier.[1]

## Beschreibung

[Bearbeiten | Quelltext bearbeiten]

Eine Generalisierung in der UML ist eine gerichtete Beziehung zwischen einem speziellen und einem generellen Classifier. Instanzen des speziellen Classifiers sind damit auch Instanzen des generellen Classifiers. Konkret bedeutet dies, dass der spezielle Classifier implizit über alle Merkmale (Struktur- und Verhaltensmerkmale) des generellen Classifiers verfügt – implizit deshalb, weil diese Merkmale im speziellen Classifier nicht explizit deklariert werden. Man sagt, dass er sie vom generellen Classifier „erbt“.[1][2]

Eine Generalisierungsbeziehung kann zwischen zwei Classifiern gleichen Typs, also beispielsweise zwei Klassen, zwei Komponenten, zwei Schnittstellen, zwei Assoziationen oder zwei Anwendungsfällen bestehen. Nicht möglich die Vererbung zwischen Paketen (die auch keine Classifier sind). Die UML2 kennt jedoch mit der Paketverschmelzung eine Beziehung, die eng mit der Generalisierung verwandt ist, und die zwei Pakete in Beziehung setzen kann.[3][2]

Wenn zwischen einer Klasse `KGenerell` und einer Klasse `KSpeziell` eine Generalisierungsbeziehung besteht, sagt man auch, `KGenerell` ist eine Generalisierung von `KSpeziell`, oder umgekehrt, `KSpeziell` ist eine Spezialisierung von `KGenerell` bzw. `KSpeziell` spezialisiert `KGenerell`.

Ein Classifier kann mehr als einen Classifier spezialisieren.

## Notation

[Bearbeiten | Quelltext bearbeiten]

Beispiel einer Generalisierungsbeziehung zwischen zwei Klassen

Eine Generalisierung wird als durchgezogene Linie zwischen den beiden beteiligten Classifiern dargestellt. Am Ende mit dem generellen Classifier wird eine geschlossene, nicht ausgefüllte Pfeilspitze gezeichnet.[3][1]

Im Beispiel rechts ist die Klasse `Privatkunde` eine Spezialisierung von `Person`. Sie deklariert das Attribut `kundennummer` und verfügt zusätzlich implizit über die Attribute `name` und `vorname` aus der Klasse `Person`.

## Siehe auch

[Bearbeiten | Quelltext bearbeiten]

* Entity-Relationship-Modell
* Paketverschmelzung
* Schnittstellenrealisierungsbeziehung
* Vererbung (Programmierung)

## Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]

1. ↑ a b c DHBW-Stuttgart: Unified Modeling Language – Generalisierung. Abgerufen am 18. September 2018.
2. ↑ a b TU Graz:UML_Generalisierung. Abgerufen am 18. September 2018.
3. ↑ a b TU Dortmund-Generalisierung. Archiviert vom Original (nicht mehr online verfügbar) am 18. September 2018; abgerufen am 18. September 2018. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/ls12-www.cs.tu-dortmund.de