Wikipedia · einfach zusammengefasst · Stand
Generalisierung (UML)
Generalisierung (engl. Generalization) ist ein Modellelement in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere …
Inhalt5 Abschnitte
Kernidee
Generalisierung (englisch Generalization) ist ein Modellelement der Unified Modeling Language (UML). UML ist eine Modellierungssprache für Software und andere Systeme. Eine Generalisierung beschreibt eine taxonomische Beziehung, also eine Einordnung nach allgemeineren und spezielleren Begriffen, zwischen einem speziellen und einem generellen Classifier.
Ein Classifier ist in UML ein Modellelement, dessen Instanzen gemeinsame Merkmale haben können, zum Beispiel eine Klasse, eine Komponente, eine Schnittstelle, eine Assoziation oder ein Anwendungsfall.
Bedeutung der Beziehung
Eine Generalisierung ist eine gerichtete Beziehung zwischen einem speziellen und einem generellen Classifier. Instanzen des speziellen Classifiers sind dadurch auch Instanzen des generellen Classifiers.
Der spezielle Classifier verfügt implizit über alle Merkmale des generellen Classifiers. Dazu gehören Strukturmerkmale und Verhaltensmerkmale. „Implizit“ bedeutet: Diese Merkmale müssen im speziellen Classifier nicht noch einmal ausdrücklich deklariert werden. Man sagt, der spezielle Classifier „erbt“ sie vom generellen Classifier.
Mögliche Beteiligte
Eine Generalisierungsbeziehung kann zwischen zwei Classifiern gleichen Typs bestehen. Beispiele sind zwei Klassen, zwei Komponenten, zwei Schnittstellen, zwei Assoziationen oder zwei Anwendungsfälle.
Zwischen Paketen ist Vererbung nicht möglich, weil Pakete keine Classifier sind. Die UML2 kennt jedoch die Paketverschmelzung als verwandte Beziehung, mit der zwei Pakete in Beziehung gesetzt werden können.
Ein Classifier kann mehr als einen anderen Classifier spezialisieren.
Begriffe Spezialisierung und Generalisierung
Wenn zwischen einer Klasse KGenerell und einer Klasse KSpeziell eine Generalisierungsbeziehung besteht, kann man die Beziehung in beide Richtungen beschreiben: KGenerell ist eine Generalisierung von KSpeziell. Umgekehrt ist KSpeziell eine Spezialisierung von KGenerell, oder KSpeziell spezialisiert KGenerell.
Darstellung und Beispiel
In UML-Diagrammen wird eine Generalisierung als durchgezogene Linie zwischen den beiden beteiligten Classifiern dargestellt. Am Ende mit dem generellen Classifier befindet sich eine geschlossene, nicht ausgefüllte Pfeilspitze.
Im Beispiel des Artikels ist die Klasse Privatkunde eine Spezialisierung von Person. Privatkunde deklariert das Attribut kundennummer. Zusätzlich verfügt Privatkunde implizit über die Attribute name und vorname aus der Klasse Person.