- 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 spezielleren und einem generelleren Classifier.
Beschreibung
Eine Generalisierung in der UML ist eine gerichtete Beziehung zwischen einem generelleren und einem spezielleren Classifier. Instanzen des spezielleren Classifiers sind damit auch Instanzen des generelleren Classifiers. Konkret bedeutet dies, dass der speziellere Classifier implizit über alle Merkmale (Struktur- und Verhaltensmerkmale) des generelleren Classifiers verfügt - implizit deshalb, weil diese Merkmale im spezielleren Classifier nicht explizit deklariert werden. Man sagt, dass er sie vom generelleren Classifier „erbt“.
Eine Generalisierungsbeziehung kann zwischen zwei Classifiern, also beispielsweise zwei Klassen, zwei Komponenten, zwei Schnittstellen, zwei Assoziationen oder zwei Anwendungsfällen bestehen, nicht aber zwischen zwei Paketen. Die UML2 kennt jedoch mit der Paketverschmelzung eine Beziehung, die eng mit der Generalisierung verwandt ist, und die zwei Pakete in Beziehung setzen kann.
Wenn zwischen einer Klasse
KGenerell
und einer KlasseKSpeziell
eine Generalisierungsbeziehung besteht, sagt man auch,KGenerell
ist eine Generalisierung vonKSpeziell
, oder umgekehrt,KSpeziell
ist eine Spezialisierung vonKGenerell
bzw.KSpeziell
spezialisiertKGenerell
.Ein Classifier kann mehr als einen Classifier spezialisieren.
Notation
Eine Generalisierung wird als durchgezogene Linie zwischen den beiden beteiligten Classifiern dargestellt. Am Ende mit dem generelleren Classifier wird eine geschlossene, nicht ausgefüllte Pfeilspitze gezeichnet.
Im Beispiel rechts ist die Klasse
Privatkunde
eine Spezialisierung vonPerson
. Sie deklariert das Attributkundennummer
und verfügt zusätzlich implizit über die Attributename
undvorname
aus der KlassePerson
.Siehe auch
Kategorie:- UML-Spracheinheit
Wikimedia Foundation.