/
Klassen

Klassen

Klassen werden durch Rechtecke dargestellt, die entweder nur den Namen der Klasse (fett gedruckt) tragen oder zusätzlich auch AttributeOperationen und Eigenschaften spezifiziert haben. Dabei werden diese drei Rubriken (engl. compartment) – Klassenname, Attribute, Operationen/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 (wie {abstrakt}) stehen.

Die Attribute werden wie folgt spezifiziert:

[Sichtbarkeit] [/] name [: Typ] [ ] [= Vorgabewert] [{eigenschaftswert*}]

Daraus folgt, dass in der UML ausschließlich der Name eines Attributs angegeben werden muss, und zwar eindeutig innerhalb einer Klasse. Klassenattribute werden unterstrichen. Darüber hinaus sind bei Attributnamen sämtliche Zeichen erlaubt, auch wenn in einigen Programmiersprachen beispielsweise Umlaute verboten sind.

Operationen werden in ähnlicher Art und Weise spezifiziert:

[Sichtbarkeit] name [({Parameter})] [: Rückgabetyp] [{eigenschaftswert*}]

Zudem wird ein Parameter wie folgt aufgebaut:

[Übergaberichtung] name : Typ [ ] [= Vorgabewert] [{eigenschaftswert*}]

Die Namensgebung und der Zeichenraum sind hier genauso wie bei den Attributsspezifikationen. Klassenoperationen werden auch hier unterstrichen. Den „Pseudotyp“ void gibt es in der UML nicht, daher muss in einem solchen Fall der Rückgabetyp weggelassen werden. Ansonsten können bei Attributen und Operationen sämtliche primitiven Typen sowie selbst definierte Klassen oder Interfaces als Typ bzw. Rückgabetyp verwendet werden.

Die Sichtbarkeit von Operationen und Attributen wird wie folgt gekennzeichnet:

  • „+“ für public – (engl. öffentlich), unbeschränkter Zugriff

  • „#“ für protected – (engl. geschützt), Zugriff nur von der Klasse sowie von Unterklassen (Klassen, die erben)

  • „−“ für private – (engl. privat), nur die Klasse selbst kann es sehen

  • „~“ für package – (engl. Paket), innerhalb des Pakets sichtbar (nur in wenigen Programmiersprachen, etwa Java und C#, implementierbar)

Mögliche Eigenschaften sind:

ordereddie Daten werden geordnet zurückgegebenredefines <Operationsname> (nur bei Operationen)diese Operation überschreibt die geerbte Operation <Operationsname>read-onlyauf diese Variable kann nur lesend zugegriffen werden

Die Übergaberichtungen:

inDer übergebene Parameter wird nur gelesen (Standard, wenn nichts angegeben wurde).outDer übergebene Parameter wird beschrieben, ohne ihn vorher zu lesen.inoutDer übergebene Parameter wird gelesen bzw. verarbeitet und beschrieben, beispielsweise um das Ergebnis zurückzugeben.

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.

  • Einfachste Form der Darstellung für eine Klasse

  •  

  • Zusätzliche Darstellung von Attributen und Operationen

Detaillierte Darstellung einer Klasse

Abstrakte Klassen sind Klassen, von denen keine Instanz angelegt werden kann. 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.

Beispiel einer aktiven Klasse mit zwei Signalempfängern

Eine aktive Klasse wird mit einem doppelten linken und rechten Rand gezeichnet.

Klassenschablone

Einige Programmiersprachen ermöglichen eine Parametrisierung von Klassenschablonen (Class Templates), 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 Vorlagenparametertyp „int“ und dem Parameternamen „T_VALUE“ eingetragen.

Quelle: Klassendiagramm – Wikipedia

Related content

Klassendiagramm
Klassendiagramm
More like this
Klassendiagramm UML detaillierte Beschreibung
Klassendiagramm UML detaillierte Beschreibung
More like this
Lerneinheit Objektdiagramm (Object Diagram)
Lerneinheit Objektdiagramm (Object Diagram)
More like this
Lerneinheit UML Komponentendiagramm (Component Diagram)
Lerneinheit UML Komponentendiagramm (Component Diagram)
More like this
Modellierung von Struktur und Daten (Klassendiagramm UML)
Modellierung von Struktur und Daten (Klassendiagramm UML)
More like this