Das Kefk Network Wiki befindet sich im Testbetrieb.
Klassendiagramm
Aus Kefk.
| Strukturdiagramme der UML |
|---|
| Klassendiagramm |
| Komponentendiagramm |
| Kompositionsstrukturdiagramm |
| Objektdiagramm |
| Paketdiagramm |
| Verteilungsdiagramm |
| Verhaltensdiagramme der UML |
| Aktivitätsdiagramm |
| Anwendungsfalldiagramm |
| Interaktionsübersichtsdiagramm |
| Kommunikationsdiagramm |
| Sequenzdiagramm |
| Zeitverlaufsdiagramm |
| Zustandsdiagramm |
| Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort Klassendiagramm, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation. |
Ein Klassendiagramm ist in der Informatik eine grafische Darstellung von Klassen sowie der Beziehungen zwischen diesen Klassen. Eine Klasse ist in der Objektorientierung ein abstrakter Oberbegriff für die Beschreibung der gemeinsamen Struktur und des gemeinsamen Verhaltens von Objekten (Klassifizierung). Sie dient dazu Objekte zu abstrahieren. Im Zusammenspiel mit anderen Klassen ermöglichen sie die Modellierung eines abgegrenzten Systems in der Objekt-orientierten Analyse und Entwurf.
Seit den 1990er Jahren werden Klassendiagramme meistens in der Notation der Unified Modeling Language (UML) dargestellt. Das Klassendiagramm ist eine der dreizehn Diagrammarten der UML, einer Modellierungssprache für Software und andere Systeme. Es gehört zu den Strukturdiagrammen.
Inhaltsverzeichnis |
Notation in der Unified Modeling Language
Klassen
Klassen werden durch Rechtecke dargestellt, die entweder nur den Namen der Klasse (fett gedruckt) tragen oder zusätzlich auch Attribute, Operationen und Eigenschaften. Dabei werden diese vier Rubriken (engl. compartment) – Klassenname, Attribute, Operationen und Eigenschaften – jeweils durch eine horizontale Linie getrennt. Wenn die Klasse keine Eigenschaften oder Operationen besitzt, kann die unterste horizontale Linie entfallen. Oberhalb des Klassennamens können Schlüsselwörter (engl. keyword in Guillemets und unterhalb des Klassennamens in geschweiften Klammern zusätzliche Eigenschaften (z. B. {abstrakt}) stehen.
Die Sichtbarkeit von Operationen und Attributen wird wie folgt gekennzeichnet:
- "+" für public
- "#" für protected
- "~" für package
- "−" für private
Die folgenden Abbildungen zeigen zwei Varianten der grafischen Notation für eine Klasse. Abhängig davon, ob eine Klasse in einem Klassendiagramm für ein Design- oder für ein Analysemodell gezeichnet wird, können mehr oder weniger Details dargestellt werden.
Abstrakte Klassen sind Klassen, von denen keine Exemplare angelegt werden können. Abstrakte Klassen sehen in UML wie normale Klassen aus. Um sie zu unterscheiden, steht unterhalb des Klassennamens das Wort abstract in geschweiften Klammern. Alternativ kann der Klassenname auch kursiv geschrieben werden, wenn dies gut erkennbar ist.
Eine aktive Klasse wird mit einem doppelten linken und rechten Rand gezeichnet.
Manche Programmiersprachen ermöglichen eine Parametrisierung von Schablonenklassen (Template Classes) um Objekte basierend auf diesen Vorlagenparametern zu erzeugen. Die UML bietet dafür die Notation für Template Arguments an. Dabei werden die Vorlagenparameter in einem gestrichelten Rechteck überlappend an die rechte obere Ecke der Klasse eingetragen. Im Beispiel ist eine Klasse „Vector“ mit dem Vorlagenparametertype „int“ und dem Parameternamen „T_VALUE“ eingetragen.
Schnittstellen
Eine Schnittstelle wird ähnlich wie eine Klasse mit einem Rechteck dargestellt, zur Unterscheidung aber mit dem Schlüsselwort interface dekoriert.
Wichtige Beziehungen
Generalisierung
Eine Generalisierung in der UML ist eine gerichtete Beziehung zwischen einer generelleren und einer spezielleren Klasse. Exemplare der spezielleren Klasse sind damit auch Exemplare der generelleren Klasse. Konkret bedeutet dies, dass die speziellere Klasse implizit über alle Merkmale (Struktur- und Verhaltensmerkmale) der generelleren Klasse verfügt - implizit deshalb, weil diese Merkmale in der spezielleren Klasse nicht explizit deklariert werden. Man sagt, dass sie sie von der generelleren Klasse „erbt“.
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.
Assoziation
Eine Assoziation beschreibt eine Beziehung zwischen zwei oder mehr Klassen.
Komposition und Aggregation
Eine Beziehung zwischen Klassen, die relativ häufig modelliert wird, ist die Beziehung zwischen einem Ganzen und seinen Teilen. Die UML sieht dafür zwei spezielle Assoziationen vor: die Komposition und die Aggregation, siehe ausführlicher unter Assoziation (UML)#Komposition und Aggregation.
In der grafischen Darstellung einer Komposition dekoriert eine ausgefüllte Raute das Ende, das mit dem Ganzen verbunden ist. Im Fall der Aggregation ist es eine nicht ausgefüllte Raute.
Die Aggregation ist ein Spezialfall der Komposition und bildet den Fall ab, bei dem die Teile ohne das Ganze existieren können. Daher wird sie auch schwache Komposition genannt.
Beispieldiagramm
Siehe auch
Literatur
- Heide Balzert: "Lehrbuch der Objektmodellierung - Analyse und Entwurf mit der UML 2" Elsevier Spektrum Akademischer Verlag, 2005, ISBN 3-8274-1162-9
- Christoph Kecher: "UML 2.0 - Das umfassende Handbuch" Galileo Computing, 2006, ISBN 3-89842-738-2
| Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort Klassendiagramm, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation. |
