Skip to:

UML-Klassendiagramme: Ein vollständiger Leitfaden
uml-class-diagram-tool-hero-xxl-sub-use-case

UML-Klassendiagramme: Ein vollständiger Leitfaden

uml-class-diagram-tool-hero-xxl-sub-use-case

UML-Klassendiagramme erklärt

Beim Bau eines Hauses oder Gebäudes erstellen Architekten und Ingenieure einen Satz Blueprints, um alle Aspekte der Konstruktion zu visualisieren, bevor die Arbeit beginnt. Klassendiagramme der Unified Modeling Language (UML) haben die gleiche Funktion wie ein Blueprint, allerdings für die Softwareentwicklung.

Genauso wie du kein Haus ohne Blueprint bauen würdest, ist es keine gute Idee, ein System ohne ein UML-Diagramm bei der Einführung und Aktualisierung zu bauen. UML-Klassendiagramme sind Teil einer Reihe von UML-Diagrammen, die verschiedene Aspekte der Entwicklung visualisieren und zur leichteren Interpretation alle dieselbe Sprache verwenden.

Betrachte diesen Leitfaden als deinen UML-Klassendiagramm-Spickzettel. Erfahre, welche Vorteile sie für die Konzeption haben, wie sie funktionieren und wie du ein UML-Klassendiagramm erstellst.

Was ist ein Klassendiagramm in der UML?

Klassendiagramme sind eine von mehreren Arten von UML-Strukturdiagrammen. Strukturdiagramme zeigen die statische Struktur eines Systems und nicht, wie sich ein Objekt im Laufe der Zeit verändert.

Klassendiagramme visualisieren die Klassen eines Systems und die Beziehungen zwischen ihnen.

Im objektorientierten Design erstellen Klassen Objekte und arbeiten mit ihnen. Objekte sind Instanzen von Klassen. Klassen sind also wichtige High-Level-Elemente eines Systems. Sie entstehen während des Entwurfs und werden für die Kommunikation über den Entwurf oder Entwurfsänderungen verwendet.

In einem Klassendiagramm sind die Klassennamen die gleichen wie die Objektnamen, denn eine Klasse dient dazu, die Attribute und Operationen für jede Objektinstanz im System zu definieren. Eine Klasse ist ein Blueprint für ein Objekt, und ein Klassendiagramm ist der statische Blueprint des Systems.

In der Software-Entwicklung gibt es keine UML-Klassendiagramme für sich allein. Sie hängen von Anwendungsbeispiel-Diagrammen ab und sind eng mit Objekt- und Kommunikationsdiagrammen verbunden. Alle UML-Diagramme zusammen modellieren, konzeptualisieren und dokumentieren die Funktionsweise eines Systems vor, während und nach der Implementierung.

Was ist eine Klasse in der UML?

Eine Klasse ist ein Modellierungselement, das die Eigenschaften des Objekts definiert, das es repräsentiert, einschließlich seiner Attribute und Verhaltensweisen.

Nehmen wir die Klasse "Auto" als Beispiel. Auto" hat eine Reihe von statischen Attributen, wie Marke, Modell, Baujahr und Farbe. Die Klasse "Auto" hat auch Methoden (Dinge, die Autos tun können) wie Beschleunigen, Verlangsamen, Anhalten und Starten. Da ein Objekt eine Instanz der Klasse ist: kann eine solche Objektinstanz sein: Subaru, Forester, 2023, dunkelgrün. In diesem Beispiel sind die Attribute dieses Autos Marke, Modell, Baujahr und Farbe.

Was ist der Zweck von UML-Klassendiagrammen?

Ein UML-Klassendiagramm hat als statisches Modell eines objektorientierten Systems zwei Hauptaufgaben:

  • Um die Klassen eines Systems und ihre Eigenschaften zu visualisieren.

  • Aufzeigen und Analysieren der Beziehungen zwischen den Klassen.

Darüber hinaus sind UML-Klassendiagramme auch die Grundlage für Komponenten- und Einsatzdiagramme, die die Hardware- und Softwareaspekte eines Systems darstellen.

Vorteile von UML-Klassendiagrammen

UML-Klassendiagramme sind praktische Tools für die Modellierung einer Softwarearchitektur. Zusammen mit anderen UML-Diagrammen können Entwickler und Stakeholder verschiedene Sichten auf ein System visualisieren. Diese Diagramme helfen uns zu verstehen, wie das System funktioniert, wie es sich verhält und wie seine Teile zusammenhängen.

Das Erstellen von Klassendiagrammen während des Entwurfs erleichtert den Entwicklungsprozess, indem es die Klassen, ihre Attribute und ihre Methoden klar darstellt. Sie zeigen auch, wie sich die Klassen zueinander verhalten. Ein konzeptionelles Build eines Systems zu sehen, bevor Code geschrieben wird, hilft den Entwicklern bei der Kommunikation untereinander und mit anderen Stakeholdern.

Klassendiagramme unterstützen auch Änderungen am System, indem sie ein Schema einer ganzen App zeigen. Wenn du Änderungen oder Ergänzungen an einem UML-Klassendiagramm vornimmst, erhältst du eine Vorschau auf die neuen Klassen und die Auswirkungen der Änderung auf die bestehenden Klassen.

Schlüsselkomponenten von UML-Klassendiagrammen

UML-Klassendiagramme enthalten Klassen und ihre Interaktionen. Jede Klasse wird in einem Rechteck dargestellt, das von oben nach unten den Klassennamen, ihre Attribute und ihre Methoden enthält. Nur der Klassenname ist erforderlich. Der erforderliche Detaillierungsgrad bestimmt, ob die Attribute und Methoden angezeigt werden.

Interaktionen in einem UML-Klassendiagramm zeigen die Beziehungen zwischen den Klassen mithilfe von Linien und Pfeilspitzen. Die Pfeilspitzen haben bestimmte Bedeutungen, um zwischen den verschiedenen Arten von Beziehungen zu unterscheiden. Diese Beziehungen umfassen sowohl Vererbung als auch bidirektionale und unidirektionale Beziehungen. Klassen können in Pakete von Klassen gruppiert werden, die eng miteinander verbunden sind.

UML-Klassendiagramm-Notationen

Die grundlegende Notation in einem UML-Klassendiagramm umfasst die Labels der Klassenmitglieder, ihre Sichtbarkeit (wer kann auf sie zugreifen) und die möglichen Pakete. Wenn du ein UML-Klassenmodell erstellst, verwende die für Web-Apps zugelassene Schriftart Open Sans. Im Allgemeinen folgen UML-Klassendiagramme Stilkonventionen wie der Camel-Case-Schreibweise, bei der das zweite und die folgenden Wörter groß geschrieben werden und keine Bereiche zwischen den Wörtern vorhanden sind.

Klassen

Ein Klassenname spiegelt einen Objekt- oder Entitätsnamen wider. Der Klassenname steht in der Mitte des oberen Bereichs, fett und groß geschrieben. Im Modell ist der Abschnitt Klassenname der einzige obligatorische Abschnitt in einer Klasse. Die anderen beiden sind optional, je nach Ziel und Ansicht des Diagramms.

Attribute

Der mittlere Teil des Modells enthält die Attribute, die die statischen Eigenschaften einer Klasse beschreiben, die auf die von dieser Klasse definierten Objektinstanzen angewendet werden. Stell dir vor, wir erstellen ein Klassendiagramm, um die Funktionsweise eines Geldautomaten zu veranschaulichen. Die Attribute der Klasse DebitCard sind Kartennummer und Eigentümer; jede Instanz hat ihre eigene Nummer und ihren eigenen Eigentümer.

Methoden (Vorgänge und Verhaltensweisen)

Der dritte Teil des Klassenmodells ist das, was die Klasse "tut". Was sind die Aktionen, die das Objekt ausführen kann? In der Klasse DebitCard würde die Operation etwa so aussehen, dass du Zugriff hast.

Sichtbarkeit

Plus- und Minuszeichen zeigen an, ob die Attribute und Operationen einer Klasse öffentlich (von überall im System sichtbar) oder privat (nur innerhalb der Klasse sichtbar) sind. Das Hashtag (Pfund-Zeichen) zeigt die geschützte Sichtbarkeit an.

Paket

Eine Gruppe von Klassen oder eine Gruppe von anderen Paketen wird als Kästchen mit einem Label visualisiert. Der Name der Verpackung steht auf dem Label und wird groß geschrieben. Wenn du Pakete verwendest, müssen die Klassen nicht immer alle drei Abschnitte ansehen.

UML Klassendiagramm-Beziehungsnotationen

UML-Klassendiagramm-Modelle werden visuell durch Linien, textuelle Notationen und Multiplikationsziffern verbunden. Die folgende Liste enthält die grundlegenden Beziehungsnotationen, die du brauchst, um ein UML-Klassendiagramm für dein System zu erstellen.

Bei allen Beziehungsbezeichnungen, außer bei der Verwirklichung, wird ein Name neben die Zeile und auf die Seite der Klasse geschrieben, zu der sie gehört. Achte darauf, dass alle Textgrößen ausgeglichen und die Linien geordnet sind, damit das Diagramm leicht zu lesen ist.

Verein

Eine Assoziation verbindet zwei Klassen in einem beliebigen logischen Zusammenhang, ist die am häufigsten verwendete Beziehungsnotation und sieht aus wie eine gerade Linie. Assoziationen sind von Natur aus zweiseitig, das heißt, beide assoziierten Klassen wissen, dass die andere Klasse existiert. Wenn die Assoziation einseitig ist, hat sie eine einfache Pfeilspitze, die anders aussieht als der dreieckige Vererbungs- und Realisierungspfeil.

N-ary bestimmt Assoziationen, die mehr als zwei Klassenmodelle verbinden. Die nächste N-äre Assoziation zur binären ist die ternäre Assoziation. Diese Notationen sind Linien, die mit einer leeren Raute an der Konjunktion verbunden sind.

Aggregation und Zusammensetzung

Aggregation und Komposition sind Teilmengen der Assoziationsbeziehung.

Die Aggregationsbeziehung verbindet die Klassen durch eine gerade Linie und eine hohle Rautenform neben der übergeordneten Klasse. Bei der Aggregation existieren die untergeordneten Klassen unabhängig von der übergeordneten Klasse. Wenn die Elternklasse gelöscht wird, bleibt die Kindklasse bestehen.

Die Komposition ist das Gegenteil. Wenn zwei Klassen durch eine Kompositionsnotation mit einer geraden Linie und einer gefüllten Rautenform verbunden werden, existieren sie nicht unabhängig voneinander. Wenn die Elternklasse gelöscht wird, wird auch die Kindklasse gelöscht.

Reflexive Assoziation

Die reflexive Assoziation ist die einzige unilaterale Assoziation, die in Klassendiagrammen verfügbar ist. Sie bestehen aus einer geraden Linie, die sich entlang des Klassenmodells schlängelt. Sie dienen dazu, eine Beziehung zwischen einer Klasseninstanz und einer anderen Instanz der gleichen Klasse zu visualisieren.

Vererbung und Verallgemeinerung

Die Vererbungs- oder Generalisierungsschreibweise visualisiert eine Beziehung zwischen Klassen, die Eigenschaften erben. Eine Vererbungsbeziehung wird mit einer geraden Linie und einer hohlen Dreiecksform visualisiert, die auf die unabhängige Klasse zeigt.

Abhängigkeit

Abhängigkeitsnotationen werden mit einer gestaffelten Linie und einer einfachen Pfeilspitze dargestellt, die die Richtung der Beziehung angibt. Wie bei der Vererbungsschreibweise zeigt der Pfeil von der abhängigen Klasse zu ihrer Oberklasse. Änderungen, die an der Oberklasse vorgenommen werden, führen zu Änderungen an der Unterklasse.

Verwirklichung

Eine Realisierungsbeziehung verbindet eine Klasse, die das von einer anderen definierte Verhalten realisiert oder implementiert. Die Modelle in dieser Beziehung werden als Anbieter- und Kundenelemente oder Oberklasse und Unterklasse bezeichnet. Der Anbieter ist die Quelle und der Kunde ist das Spezifikationselement. Die Realisierungsnotation wird mit einer gestaffelten Linie und einer hohlen Dreiecksform visualisiert.

Vielfältigkeit

Die Multiplizitätsnotation ist eine Reihe von Zahlen, die am Schnittpunkt einer Beziehungslinie und eines Klassenmodells stehen. Die Instanzenvielfalt legt fest, wie viele Instanzen eines Objekts an einer Beziehung beteiligt sind. Die Ziffern zeigen die Anzahl der Instanzen einer Klasse, die mit einer Instanz einer anderen Klasse verbunden sind. Sie werden folgendermaßen bezeichnet:

  • 0..1 = Null oder Eins

  • 1 = Nur eine

  • 0... = Null oder mehr

  • 1..* = Eine oder mehrere

  • 3 = Nur drei

  • 0..5 = Null bis Fünf

  • 5..15 = Fünf bis Fünfzehn

Ein UML-Klassendiagramm erstellen

Jetzt ist es an der Zeit, ein eigenes UML-Klassendiagramm zu erstellen. Natürlich kannst du das Diagramm auch von Grund auf neu erstellen. Wenn du neu in der Erstellung von UML-Diagrammen bist, verwendest du am besten eine vorgefertigte Vorlage mit allen Modellformen und Notationsoptionen. Miro hat eine Vorlage für UML-Klassendiagramme, die als Grundlage für jedes UML-Klassendiagramm dient, das du erstellen musst.

Mit Miro oder einem anderen Diagramm-Tool kannst du in dieser Anleitung Schritt für Schritt ein benutzerdefiniertes Klassendiagramm erstellen, um ein System visuell zu konzipieren und zu modellieren.

Definiere die Klassen

Um diese Objekte/Klassen zu definieren, schreibst du ein Anwendungsbeispiel für dein System und extrahierst die Substantive aus dem Statement. Ein Kunde steckt seine Debitkarte in den Geldautomaten und hebt Bargeld ab. Die fettgedruckten Substantive sind die Objekte und damit auch die Klassen.

Erstelle für jede Klasse ein dreiteiliges Modell und füge die Namen in den oberen Abschnitt ein. Du kannst in Miro über den Tab "Diagramme" auf der linken Seite auf vorgefertigte Formen zugreifen. Baue die Modelle, aber verbinde noch nichts, bis du alle Klassen hast.

Beschreibe die Klassenattribute

Füge im zweiten Fach jedes Klassenmodells die Attribute hinzu. Die Attribute des ATM-Klassenmodells sind der Standort, die Automaten-ID und die Bank, die ihn verwaltet. Bis jetzt sieht die ATM-Klasse mit der Attributliste so aus:

ATM

+Ort : Adresse

+machineId : Ganzzahl

+managedBy : string

Hinzufügen der Klassenmethoden (Operationen)

Im dritten Fach fügst du die Operationen für jede Klasse in einer Liste hinzu, so wie die Attribute. Bei der ATM-Klasse könnte eine Operation darin bestehen, dass sie die Karte liest, eine Transaktion identifiziert und nach einer PIN fragt. Jetzt sieht das Klassenmodell wie folgt aus:

ATM

+Ort : Adresse

+machineId : Ganzzahl

+managedBy : string

+Lesekarte

+identifiziertTransaktion

#asksForPin

Visualisiere die Beziehungen und die Vielfältigkeit

Ordne die Klassenmodelle auf deinem Miro-Board an, um sie zuzuordnen und Beziehungen zu visualisieren. Wähle den gewünschten Linientyp aus dem Feld "Objekte" und wähle den Linienstil und das Linienende entsprechend der Beziehung.

Füge die Rollen und Multiplikationszahlen entlang der Linien hinzu, indem du auf die Schaltfläche +T im Objektmenü klickst. Passe ihre Position und Größe entsprechend an.

Halte sie am Leben

UML-Klassendiagramme sind keine in Stein gemeißelten Karten - sie sind lebendige Mechanismen, die dir helfen, ein System zu jedem Zeitpunkt von der Initiierung bis zur Implementierung und darüber hinaus zu visualisieren. Wenn du mit Miro ein UML-Klassendiagramm erstellst, kannst du immer wieder darauf zurückkommen und alle Änderungen überarbeiten, bevor du Code im System änderst.

Starte in Sekunden

Schließe dich den Teams an, die Miro für ihre Arbeit nutzen.