In der Softwaretechnik ist ein Unified Modeling Language (UML) Klassendiagramm ist ein statisches Strukturdiagramm das die Struktur eines Systems beschreibt, indem es seine Klassen, deren Attribute, Operationen (oder Methoden) und Beziehungen zwischen Objekten zeigt.

Zwecke von Klassendiagrammen
- Anzeigen der statischen Struktur von Klassifizierern im System
- Bietet eine grundlegende Notation für andere UML-Strukturdiagramme
- Sehr nützlich für Entwickler und andere Teammitglieder
- Business-Analysten können Klassendiagramme verwenden, um Systeme aus einer geschäftlichen Perspektive zu modellieren
UML-Klassendiagramme bestehen aus:
- Eine Menge von Klassen
- Eine Menge von Beziehungen zwischen Klassen
Was ist eine Klasse?
Eine Beschreibung einer Gruppe von Objekten mit ähnlichen Rollen, einschließlich:
- Strukturelle Merkmale (Attribute): definieren, was Objekte der Klasse „wissen“
- Stellt den Zustand des Objekts dar
- Beschreibt die Struktur oder statischen Eigenschaften der Klasse
- Verhaltensmerkmale (Operationen): definieren, was Objekte der Klasse „können“
- Definieren, wie Objekte interagieren
- Beschreiben das Verhalten oder dynamischen Eigenschaften der Klasse
Klassensymbolik
Die Klassensymbolik besteht aus drei Teilen:
- Klassenname
- Der Klassenname erscheint im ersten Fach.
- Klassenattribute
- Attribute werden im zweiten Fach angezeigt.
- Der Typ wird nach einem Doppelpunkt angezeigt.
- Attribute werden den Mitgliedsvariablen (Datenmember) im Code zugeordnet.
- Klassenoperationen (Methoden)
- Operationen werden im dritten Fach angezeigt. Sie stellen Dienstleistungen dar, die die Klasse bereitstellt.
- Der Rückgabetyp erscheint nach einem Doppelpunkt am Ende der Methodensignatur.
- Parameter-Typen erscheinen nach einem Doppelpunkt hinter dem Parameter-Namen.
- Operationen werden den Klassenmethoden im Code zugeordnet.

Graphische Darstellung der Klasse MeineKlasse wie oben gezeigt:
- MeineKlasse hat 3 Attribute und 3 Operationen
- Der Parameter p3 von op2 ist vom Typ int
- op2 gibt einen Float zurück
- op3 gibt einen Zeiger (gekennzeichnet durch *) auf Class6 zurück
Klassenbeziehungen
Eine Klasse kann an einer oder mehreren Beziehungen zu anderen Klassen beteiligt sein. Beziehungen können folgende Arten haben: (Siehe das Bild rechts für graphische Darstellungen).
| Beziehungstyp | Diagramm |
|---|---|
Vererbung (oder Generalisierung):
|
![]() |
Einfache Assoziation:
|
![]() |
Aggregation:
|
![]() |
Komposition:
|
![]() |
Abhängigkeit:
|
![]() |
Beziehungsnamen
- Beziehungsnamen werden in der Mitte der Assoziationslinie geschrieben.
- Gute Beziehungsnamen sind sinnvoll, wenn man sie laut vorliest:
-
- „Jedes Tabellenkalkulationsdokument enthält einige Zellen“
<li> Ausdruck ergibt einen Wert“
-
- Sie haben oft einen kleinen Pfeil, der die Leserichtung anzeigt, z. B. Ausdruck ergibt Wert, aber Wert ergibt nicht Ausdruck.kleinen Pfeil, der die Leserichtung anzeigt, z. B. Ausdruck ergibt Wert, aber Wert ergibt nicht Ausdruck.

Beziehung – Rollen
- Rolle definiert den Zweck der Richtung in einer Assoziation.
- Rolle wird am Ende der Assoziationslinie geschrieben und beschreibt die Rolle, die eine Klasse in dieser Beziehung spielt.
- Z. B. ist Cell mit Expression verbunden. Die Art der Beziehung ist, dass Expression die Formel der Zelle ist.
Sichtbarkeit von Klassenmitgliedern
In der objektorientierten Gestaltung wird die Sichtbarkeit von Attributen und Operationen dargestellt. UML definiert vier Arten der Sichtbarkeit: öffentlich, geschützt, privat, und Paket.
Symbole +, -, # und ~ vor Attribut- und Operationsnamen zeigen die Sichtbarkeit an:
- + zeigt ein öffentliches Attribut oder eine öffentliche Operation an
- – zeigt ein privates Attribut oder eine private Operation an
- # zeigt ein geschütztes Attribut oder eine geschützte Operation an
- ~ zeigt ein Paketattribut oder eine Paketoperation an
Beispiel für Klassensichtbarkeit

Im obigen Beispiel:
- attribute1 und op1 von MyClassName sind öffentlich
- attribute3 und op3 sind geschützt
- attribute2 und op2 sind privat
Zugriffsberechtigungen für verschiedene Klassenmitglieder sind unten dargestellt:
| Zugriffsebene | Öffentlich (+) | Privat (-) | Geschützt (#) | Paket (~) |
|---|---|---|---|---|
| Mitglieder derselben Klasse | Ja | Ja | Ja | Ja |
| Mitglieder abgeleiteter Klassen | Ja | Nein | Ja | Ja |
| Mitglieder einer anderen Klasse | Ja | Nein | Nein | Nur dasselbe Paket |
Vielfachheit
Die Vielfachheit gibt an, wie viele Objekte einer Klasse an einer Beziehung teilnehmen. Sie kann wie folgt ausgedrückt werden:
- Genau 1 – 1
- Null oder eine – 0..1
- Viele – 0..* oder *
- Eine oder mehrere – 1..*
- Genau angegebene Anzahl – z. B. 3..4 oder 6
- Komplexe Beziehung – z. B. 0..1, 3..4, 6* bedeutet jede Anzahl außer 2 oder 5
Beispiel für Vielfachheit
- Anforderung: Ein Student kann an vielen Kursen teilnehmen, und viele Studenten können an einem Kurs teilnehmen.
- Im folgenden Beispiel beschreibt die Klassendiagramm (links) beschreibt das statische Modell der oben genannten Anforderung, während das Objektdiagramm (rechts) eine Momentaufnahme der Kursanmeldung (Instanz des Klassendiagramms) für die Kurse Softwaretechnik und Datenbankverwaltung zeigt.

Aggregationsbeispiel – Computer und Komponenten
- Aggregation ist ein Sonderfall der Assoziation, der eine „enthält“-Hierarchie darstellt.
- Aggregation ist die Elternklasse, Komponente ist die Kindklasse.

Vererbungsbeispiel – Zellklassifikation
- Vererbung ist ein weiterer Sonderfall der Assoziation, der eine „Art von“-Hierarchie darstellt.
- Vererbung vereinfacht das Analysemodell durch Einführung einer Taxonomie.
- Unterklassen erben Attribute und Operationen von der Oberklasse.

Klassendiagramm – Beispiel für ein Diagramm-Tool
Klassendiagramme können Anmerkungen enthalten, die an Klassen oder Beziehungen angehängt sind. Anmerkungen werden in Grau angezeigt.

Aus dem obigen Beispiel können wir das Diagramm wie folgt interpretieren:
- Shape ist eine abstrakte Klasse. Sie wird kursiv dargestellt.
- Shape ist eine Oberklasse. Circle, Rectangle und Polygon erben von Shape. Mit anderen Worten: Ein Circle ist ein Shape. Dies ist eine Generalisierungs-/Vererbungsbeziehung.
- Es besteht eine Assoziation zwischen DialogBox und DataController.
- Shape ist Teil von Window. Dies ist eine Aggregationsbeziehung. Shape kann ohne Window existieren.
- Point ist Teil von Circle. Dies ist eine Zusammensetzungsbeziehung. Point kann ohne Circle nicht existieren.
- Window hängt von Event ab. Event hängt jedoch nicht von Window ab.
- Die Attribute von Circle sind radius und center. Es ist eine konkrete Klasse.
- Die Methoden von Circle sind area(), circum(), setCenter() und setRadius().
- Der Parameter radius in Circle ist vom Typ float.
- Die Methode area() in Circle gibt einen double-Wert zurück.
- Attribute und Methoden von Rectangle sind versteckt. Einige andere Klassen im Diagramm verbergen ebenfalls ihre Attribute und Methoden.
Umgang mit komplexen Systemen – Mehrere oder ein einziges Klassendiagramm?
Beim Modellieren großer Systeme oder großer Geschäftsbereiche müssen viele Entitäten berücksichtigt werden. Sollten wir mehrere oder ein einziges Klassendiagramm verwenden? Die Antwort lautet:
- Es ist besser, mehrere Klassendiagramme zu verwenden, anstatt jedes Entität und ihre Beziehungen auf einem einzigen Diagramm zu modellieren.
- Die Aufteilung des Systems in mehrere Klassendiagramme macht es leichter zu verstehen, insbesondere wenn jedes Diagramm eine visuelle Darstellung eines bestimmten Teils des Systems ist.
Perspektive von Klassendiagrammen im Softwareentwicklungslebenszyklus
Klassendiagramme können in verschiedenen Phasen des Softwareentwicklungslebenszyklus (SDLC), und typischerweise werden drei unterschiedliche Detailstufen (Perspektiven) schrittweise modelliert:
Konzeptionelle Perspektive: Das Diagramm wird als Beschreibung von Dingen in der realen Welt interpretiert. Wenn Sie von einer konzeptionellen Perspektive ausgehen, zeichnen Sie ein Diagramm, das Konzepte im untersuchten Bereich darstellt. Diese Konzepte stehen natürlich in Beziehung zu den Klassen, die sie implementieren. Diese Perspektive wird als sprachunabhängig betrachtet.
Spezifikationsperspektive: Das Diagramm wird als Beschreibung von Softwareabstraktionen oder Komponenten mit Spezifikationen und Schnittstellen interpretiert, ohne sich auf eine bestimmte Implementierung festzulegen. Wenn Sie von einer Spezifikationsperspektive ausgehen, untersuchen Sie Software-Schnittstellen statt Implementierungen.
Implementationsperspektive: Das Diagramm wird als Beschreibung einer bestimmten Technologie und SpracheImplementierung von Software interpretiert. Wenn Sie von einer Implementationsperspektive ausgehen, untersuchen Sie die Software-Implementierung.
Versuchen Sie jetzt, ein UML-Klassendiagramm zu zeichnen
Kostenlos herunterladen




