Klassendiagramme
Klassendiagramme sind der häufigste UML-Diagrammtyp und werden verwendet, um die statische Struktur eines Systems zu modellieren, indem Klassen, ihre Attribute, Operationen und Beziehungen dargestellt werden.
Klassen erstellen
Mit dem Klassenwerkzeug
Drücken Sie A oder C, um das Klassenwerkzeug zu aktivieren, und klicken Sie dann irgendwo auf das Canvas, um eine neue Klassenbox zu platzieren.

Aufbau der Klassenbox
Eine UML-Klassenbox besteht aus drei Bereichen:
- Namensbereich - Enthält den Klassennamen und optionalen Stereotyp
- Attributbereich - Listet die Klasseneigenschaften/-felder auf
- Operationsbereich - Listet die Klassenmethoden/-funktionen auf

Klasseneigenschaften
Wählen Sie eine Klasse und verwenden Sie das Inspektorpanel zur Konfiguration der Eigenschaften:
Name
Der Klassenname erscheint fett im oberen Bereich. Konvention ist PascalCase (z.B. CustomerOrder).
Stereotyp
Optionaler Klassifikator, der über dem Klassennamen in Guillemets erscheint:
<<interface>>- Für Schnittstellendefinitionen<<abstract>>- Für abstrakte Klassen<<enumeration>>- Für Aufzählungstypen<<entity>>- Für Domänenentitäten- Benutzerdefinierte Stereotypen werden ebenfalls unterstützt
Abstrakt
Umschalten, um den Klassennamen kursiv darzustellen, was eine abstrakte Klasse anzeigt.

Attribute
Attribute repräsentieren die Daten/Eigenschaften einer Klasse.
Attribute hinzufügen
- Wählen Sie die Klasse aus
- Suchen Sie im Inspektor den Abschnitt Attribute
- Klicken Sie auf die
+-Schaltfläche, um ein neues Attribut hinzuzufügen - Geben Sie die Attributdetails ein
Attributsyntax
Attribute folgen diesem Format: Sichtbarkeit Name : Typ
Sichtbarkeitsmodifikatoren:
| Symbol | Bedeutung | Beschreibung |
|---|---|---|
+ | Public | Von überall zugänglich |
- | Private | Nur innerhalb der Klasse zugänglich |
# | Protected | Innerhalb der Klasse und Unterklassen zugänglich |
~ | Package | Innerhalb des gleichen Pakets zugänglich |
Beispiele:
-id: Int- Private Integer-ID+name: String- Öffentlicher String-Name#createdAt: Date- Geschütztes Datumsfeld~cache: Map<String, Any>- Paket-privater Cache
Operationen
Operationen repräsentieren das Verhalten/die Methoden einer Klasse.
Operationen hinzufügen
- Wählen Sie die Klasse aus
- Suchen Sie im Inspektor den Abschnitt Operationen
- Klicken Sie auf die
+-Schaltfläche, um eine neue Operation hinzuzufügen - Geben Sie die Operationsdetails ein
Operationssyntax
Operationen folgen diesem Format: Sichtbarkeit Name(Parameter) : Rückgabetyp
Beispiele:
+getName(): String- Öffentlicher Getter, der String zurückgibt-validate(input: String): Boolean- Private Validierungsmethode+process(data: Data, options: Options): Result- Methode mit mehreren Parametern+save(): void- Methode ohne Rückgabewert
Beziehungen
Drücken Sie R, um das Beziehungswerkzeug zu aktivieren, und ziehen Sie dann von einer Klasse zu einer anderen, um eine Verbindung zu erstellen.
Beziehungstypen
| Typ | Linienstil | Pfeil | Anwendungsfall |
|---|---|---|---|
| Assoziation | Durchgezogene Linie | Offener Pfeil | Allgemeine Beziehung |
| Abhängigkeit | Gestrichelte Linie | Offener Pfeil | „Verwendet"-Beziehung |
| Vererbung | Durchgezogene Linie | Hohles Dreieck | „Ist-ein"-Beziehung (extends) |
| Realisierung | Gestrichelte Linie | Hohles Dreieck | Schnittstellenimplementierung |
| Aggregation | Durchgezogene Linie | Hohle Raute | „Hat-ein" (schwache Besitzanzeige) |
| Komposition | Durchgezogene Linie | Gefüllte Raute | „Hat-ein" (starke Besitzanzeige) |

Beziehungen erstellen
- Drücken Sie
R, um das Beziehungswerkzeug zu aktivieren - Klicken Sie auf die Quellklasse
- Ziehen Sie zur Zielklasse
- Lassen Sie los, um die Verbindung zu erstellen
- Verwenden Sie den Inspektor, um den Beziehungstyp und die Pfeilspitzen zu ändern
Beziehungsbeschriftungen
Doppelklicken Sie auf eine Beziehungslinie, um Beschriftungen hinzuzufügen:
- Name - Beschreibt die Beziehung (z.B. „verwaltet", „enthält")
- Multiplizität - Gibt an, wie viele Instanzen (z.B. „1", „0..*", „1..n")
- Rollennamen - Beschriftungen an jedem Ende, die die Rolle beschreiben
Best Practices
- Einfach halten - Versuchen Sie nicht, alles zu modellieren; konzentrieren Sie sich auf Schlüsselklassen
- Stereotypen verwenden - Markieren Sie Schnittstellen und abstrakte Klassen deutlich
- Schlüsselbeziehungen zeigen - Nicht jede Assoziation muss dargestellt werden
- Einheitliche Benennung - PascalCase für Klassen, camelCase für Mitglieder verwenden
- Verwandte Klassen gruppieren - Nutzen Sie räumliche Nähe, um logische Gruppierungen zu zeigen