Einführung
Was ist ein Klassendiagramm in UML?
Ein Klassendiagramm beschreibt die Struktur eines objektorientierten Systems, indem es die Klassen in diesem System und die Beziehungen zwischen den Klassen zeigt. Ein Klassendiagramm zeigt außerdem Einschränkungen sowie Attribute von Klassen.

💡 Probieren Sie es aus!Suchen Sie ein Online-Tool für Klassendiagramme? Klicken Sie einfach auf die Schaltfläche Zeichnen unten, um Ihr Klassendiagramm online zu erstellen. Visual Paradigm Online ist kostenlos* und benutzerfreundlich. Sie können auch diesen Tutorial zum Klassendiagramm durchgehen, um sich vor Beginn mit dem Thema vertraut zu machen.
Notationen für Klassendiagramme
Klasse
Die UML-Darstellung einer Klasse ist ein Rechteck mit drei vertikal gestapelten Feldern, wie in der Abbildung gezeigt:

Attribute
Der Attributabschnitt einer Klasse listet jedes Attribut der Klasse in einer separaten Zeile auf. Der Attributabschnitt ist optional, wird aber verwendet, wenn er vorhanden ist, dann enthält er jedes Attribut der Klasse in Listenform. Die Zeile hat folgendes Format:
name : Attributtyp
Beispiel: kartennummer : Integer
Operation
Die Operationen werden im unteren Feld des Rechtecks des Klassendiagramms dokumentiert, das ebenfalls optional ist. Wie die Attribute werden die Operationen einer Klasse in Listenform dargestellt, wobei jede Operation in einer eigenen Zeile steht. Operationen werden mit folgender Notation dokumentiert:
name (Parameterliste) : Typ des zurückgegebenen Wertes
Beispiel: berechneSteuer (Land, Bundesland) : Währung
Beziehungen
Assoziation
Einige Objekte bestehen aus anderen Objekten. Eine Assoziation beschreibt eine „besitzt-ein“- oder „Ganzes/Teil“-Beziehung zwischen zwei Klassen. Bei einer Assoziationsbeziehung besitzt ein Objekt der Ganzeklasse Objekte der Teilklasse als Instanzdaten.
In einem Klassendiagramm wird eine Assoziationsbeziehung als gerichtete, durchgezogene Linie dargestellt.
Eindeutige Assoziation
Bei einer eindeutigen Assoziation sind zwei Klassen miteinander verbunden, aber nur eine Klasse weiß, dass die Beziehung besteht. Eine eindeutige Assoziation wird als durchgezogene Linie mit einem offenen Pfeilkopf dargestellt, der auf die bekannte Klasse zeigt.

Zweiseitige (Standard) Assoziation
Eine Assoziation ist eine Verknüpfung zwischen zwei Klassen. Assoziationen werden immer als zweiseitig angenommen; das bedeutet, dass beide Klassen sich gegenseitig und ihre Beziehung bewusst sind, es sei denn, Sie qualifizieren die Assoziation als eine andere Art. Eine zweiseitige Assoziation wird durch eine durchgezogene Linie zwischen den beiden Klassen angezeigt.

Vielfachheit
Platzieren Sie Vielfachheitsangaben nahe den Enden einer Assoziation. Diese Symbole zeigen die Anzahl der Instanzen einer Klasse an, die mit einer Instanz der anderen Klasse verknüpft sind.
Beispiel:Eine Firma wird eine oder mehrere Mitarbeiter haben, aber jeder Mitarbeiter arbeitet nur für eine Firma.

| Notation | Bedeutung |
|---|---|
1 |
Genau eine |
0..1 |
Null oder eine |
* oder 0..* |
Null oder mehr |
1..* |
Eine oder mehrere |
0..3 |
Null bis drei |
Sichtbarkeit
Sichtbarkeit wird verwendet, um anzugeben, wer auf die Informationen innerhalb einer Klasse zugreifen kann, die mit +, -, # und ~ wie in der Abbildung gezeigt:

| Symbol | Sichtbarkeit | Beschreibung |
|---|---|---|
+ |
Öffentlich | Zugänglich von jeder anderen Klasse aus |
- |
Privat | Nur innerhalb der Klasse selbst zugänglich |
# |
Geschützt | Innerhalb der Klasse und ihrer Unterklassen zugänglich |
~ |
Paket | Innerhalb desselben Pakets zugänglich |
Generalisierung
Eine Generalisierung ist eine Beziehung zwischen einer allgemeinen Sache (die als Oberklasse bezeichnet wird) und einer spezifischeren Art dieser Sache (die als Unterklasse bezeichnet wird). Die Generalisierung wird manchmal als „ist eine Art von“-Beziehung bezeichnet und durch den Prozess der Vererbung hergestellt.
In einem Klassendiagramm wird die Generalisierungsbeziehung als eine durchgezogene gerichtete Linie mit einem großen offenen Pfeilkopf dargestellt, der auf die Elternklasse zeigt.

Abstrakte Klassen und Methoden
In einer Vererbungshierarchie implementieren Unterklassen spezifische Details, während die Elternklasse den Rahmen für ihre Unterklassen definiert. Die Elternklasse dient auch als Vorlage für gemeinsame Methoden, die von ihren Unterklassen implementiert werden.

-
Der Name einer abstrakten Klasse wird typischerweise in Kursivschrift; alternativ kann eine abstrakte Klasse mit der textuellen Annotation, auch als Stereotyp bezeichnet, dargestellt werden
{abstrakt}nach oder unter ihrem Namen. -
Ein abstrakte Methode ist eine Methode, die keine Implementierung hat. Um eine abstrakte Methode zu erstellen, erstellen Sie eine Operation und machen Sie sie kursiv.
Realisierung
Eine Realisierung ist eine Beziehung zwischen zwei Dingen, bei der ein Ding (eine Schnittstelle) einen Vertrag festlegt, den ein anderes Ding (eine Klasse) durch die Implementierung der in diesem Vertrag festgelegten Operationen gewährleistet.
In einem Klassendiagramm wird die Realisierungsbeziehung als gestrichelte gerichtete Linie mit einem offenen Pfeilkopf dargestellt, der auf die Schnittstelle zeigt.

Abhängigkeit
Abhängigkeit zeigt eine „verwendet“-Beziehung zwischen zwei Klassen an. In einem Klassendiagramm wird eine Abhängigkeitsbeziehung als gestrichelte gerichtete Linie dargestellt.
Wenn eine Klasse A eine Klasse B „verwendet“, dann gelten in der Regel eine oder mehrere der folgenden Aussagen:
-
Klasse B wird als Typ einer lokalen Variablen in einer oder mehreren Methoden der Klasse A verwendet.
-
Klasse B wird als Typ eines Parameters für eine oder mehrere Methoden der Klasse A verwendet.
-
Klasse B wird als Rückgabetyp für eine oder mehrere Methoden der Klasse A verwendet.
-
Eine oder mehrere Methoden der Klasse A rufen eine oder mehrere Methoden der Klasse B auf.

Wann sollte man Klassendiagramme zeichnen?
Die meisten UML-Diagramme können nicht direkt mit beliebigen objektorientierten Programmiersprachen abgebildet werden, außer Klassendiagramme. Mit anderen Worten: Klassendiagramme können idealerweise eine Eins-zu-Eins-Zuordnung zu UML-Klassendiagrammen haben. Außerdem sind Klassendiagramme in folgenden Situationen nützlich:
-
Beschreibung der statischen Sicht des Systems – Erfassen der Struktur von Klassen und deren Beziehungen zu einem bestimmten Zeitpunkt.
-
Modellierung der Zusammenarbeit zwischen den Elementen der statischen Sicht – Veranschaulichen, wie Klassen über Assoziationen und Abhängigkeiten miteinander interagieren.
-
Beschreibung der Funktionen, die vom System ausgeführt werden – Verknüpfen von Operationen mit Klassen, um das Verhalten zu veranschaulichen.
-
Erstellung von Softwareanwendungen mit objektorientierten Sprachen – Als Bauplan für die Implementierung in Sprachen wie Java, C# oder Python dienen.
-
Durchführung der Code-Vorwärtsingenieurwesen für die Ziel-Systeme – Generieren von Skelettcode direkt aus Klassendiagrammen.
-
Klassifizieren von Klassen oder Komponenten als Bibliothek für zukünftige Wiederverwendung – Dokumentieren wiederverwendbarer Komponenten für modulare Entwicklung.
Wie zeichnet man ein Klassendiagramm?
Befolgen Sie diese schrittweise Anleitung, um wirksame Klassendiagramme zu erstellen:
-
Identifizieren Sie die Objekte im Problembereich, und erstellen Sie Klassen für jedes von ihnen.
Beispiel: Lehrer, Student, Kurs für ein Anmelde-System. -
Fügen Sie Attributen für diese Klassen hinzu.
Beispiel:Name,Adresse,Telefonfür die Student-Klasse. -
Fügen Sie Operationen für diese Klassen hinzu.
Beispiel:addStudent(Studierender)für die Kurs-Klasse. -
Verbinden Sie die Klassen mit geeigneten Beziehungen.
Beispiel: Verknüpfen Sie Lehrer und Kurs mit einer Assoziation. -
Geben Sie optional die Vielfachheiten für die Enden von Assoziationsverbindungen an.
Beispiel: Eingabe0..3für die Kursseite der Assoziation, die Lehrer und Kurs verbindet, um anzugeben, dass ein Lehrer bis zu drei Kurse unterrichten kann.
Zusätzliche Best Practices
-
Zeichnen Sie Pakete für die logische Kategorisierung von Klassenum die Organisation und Lesbarkeit zu verbessern:

-
Verwenden Sie sinnvolle, einzelzahlige Substantive für Klassennamen (z. B.
Kunde, nichtKunden). -
Halten Sie Diagramme fokussiert: ein Diagramm pro Subsystem oder Funktionsbereich.
-
Wenden Sie konsistente Namenskonventionen für Attribute und Operationen an.
-
Dokumentieren Sie Einschränkungen mit Notizen oder OCL (Object Constraint Language), falls erforderlich.
Klassendiagramm-Beispiele
Beispiel 1: Verkaufsbestellungs-System
Das folgende Klassendiagramm-Beispiel zeigt die Klassen, die an einem Verkaufsbestellungs-System beteiligt sind. Achten Sie auf die Verwendung von <<Aufzählung>> Klasse im Klassendiagramm.

Beispiel 2: Flugmanagement-System
Das folgende Klassendiagramm-Beispiel zeigt eine Reihe von Klassen im Zusammenhang mit dem Flugmanagement. Die Klassen sind in einem Paket gruppiert.

Möchten Sie ein Klassendiagramm zeichnen?
Sie haben gelernt, was ein Klassendiagramm ist und wie man es schrittweise zeichnet. Es ist Zeit, die Hände schmutzig zu machen, indem Sie ein eigenes Klassendiagramm zeichnen. Zeichnen Sie UML-Diagramme kostenlos* mit Visual Paradigm Online. Es ist einfach zu bedienen und intuitiv.
* Die kostenlose Version unterstützt die kostenlose Nutzung von Visual Paradigm Online für nicht-kommerziellen Gebrauch nur.
Fazit
🎯 Wichtigster Punkt: Ein großartiges Klassendiagramm geht es nicht um Perfektion – es geht um Klarheit, Kommunikation und die Schaffung eines gemeinsamen Verständnisses, das bessere Software ermöglicht. Beginnen Sie einfach, iterieren Sie oft und lassen Sie Ihre Diagramme gemeinsam mit Ihrem System wachsen.
Referenzliste
-
Was ist UML? Ein umfassender Leitfaden zur Unified Modeling Language: Dieser eingehührte Einführung erklärt den Zweck von UML, seine wichtigsten Diagrammtypen und wie es unterstützt Software-Design und Systemmodellierung.
-
Was ist ein Klassendiagramm? – Ein Leitfaden für Anfänger zur UML-Modellierung: Dieser informative Übersicht erklärt den Zweck, die Bestandteile und die entscheidende Bedeutung von Klassendiagrammen sowohl in Softwareentwicklung und Systemdesign.
-
Kompletter UML-Klassendiagramm-Tutorial für Anfänger und Experten: Ein Schritt-für-Schritt-Tutorial dazu konzipiert, Benutzer Schritt für Schritt durch den gesamten Prozess der Erstellung und Verständnis von UML-Klassendiagrammen zu führen, um Softwaremodellierung.
-
KI-gestützter UML-Klassendiagramm-Generator von Visual Paradigm: Dieser fortgeschrittenes KI-unterstütztes Werkzeug nutzt natürliche Sprachbeschreibungen, um automatisch UML-Klassendiagramme zu generieren, was die Entwurfsphase erheblich vereinfacht.
-
Übersicht der 14 UML-Diagrammtypen – Visual Paradigm: Eine Ressource, die die große Menge an Diagrammnotation in 14 verschiedene UML-Modelle eingeteilt, die jeweils einzigartige Zwecke in Software-Engineering.
-
Klassendiagramme im Vergleich zu Objektdiagrammen in UML: Wichtige Unterschiede: Diese Anleitung bietet eine klare Gegenüberstellungzwischen Klassendiagrammen und Objektdiagrammen, wobei ihre spezifischen Strukturen hervorgehoben und wann jeder Typ verwendet werden sollte.
-
Von der Problembeschreibung zum Klassendiagramm: AI-gestützte textuelle Analyse: Eine Untersuchung, wie generative KI natürliche Sprachproblembeschreibungen in genaue Klassendiagramme für strukturierte Softwaremodellierung.
-
Klassendiagramme meistern: Eine detaillierte Erkundung mit Visual Paradigm: Eine umfassende technische Anleitung die einen detaillierten Einblick in die Erstellung von Klassendiagrammen innerhalb der Visual-Paradigm-Modellierumgebung bietet.
-
Fallstudie aus der Praxis: Erstellung von UML-Klassendiagrammen mit der KI von Visual Paradigm: Diese Studie zeigt, wie eine KI-Assistent erfolgreich textbasierte Anforderungen in präzise UML-Klassendiagramme für ein realweltbasiertes Ingenieurprojekt umgewandelt hat.
-
Schritt-für-Schritt-Tutorial für Klassendiagramme mit Visual Paradigm: Eine praktische Anleitung die die spezifischen Software-Schritte zum Öffnen eines Projekts, Hinzufügen von Klassen und Erstellen eines vollständigen Diagramms für Systemarchitektur.


