Das Kefk Network Wiki befindet sich im Testbetrieb.


Klassendiagramm

Aus Kefk.

Wechseln zu: Navigation, Suche
Strukturdiagramme der UML
Klassendiagramm
Komponentendiagramm
Kompositionsstrukturdiagramm
Objektdiagramm
Paketdiagramm
Verteilungsdiagramm
Verhaltensdiagramme der UML
Aktivitätsdiagramm
Anwendungsfalldiagramm
Interaktionsübersichtsdiagramm
Kommunikationsdiagramm
Sequenzdiagramm
Zeitverlaufsdiagramm
Zustandsdiagramm
Wikipedia
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.

Bild:Class-1.png
Einfachste Form der Darstellung für eine Klasse
Bild:Class-2.png
Zusätzliche Darstellung von Attributen


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.

Bild:Class-3.png
Detaillierte Darstellung einer Klasse


Bild:Class-6.png
Beispiel einer aktiven Klasse mit zwei Signalempfängern

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.

Bild:Interface-1.png
Eine Schnittstelle wird mit dem Schlüsselwort <<interface>> markiert
Bild:Interface-3.png
Angebotene Schnittstelle, dargestellt mit einer Schnittstellenrealisierungsbeziehung



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“.

Bild:Generalization-1.png
Beispiel einer Generalisierungsbeziehung zwischen zwei Klassen

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.

Bild:Association-1.png
Beispiel für eine binäre Assoziation
Bild:Association-2.png
Beispiel für eine reflexive Assoziation


Komposition und Aggregation

Bild:Association-6.png
Zwei Beispiele für 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
Wikipedia
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.
Persönliche Werkzeuge