Echtzeit-Zusammenarbeit mehrerer Benutzer mit Teilen-Links für sofortigen Informationsaustausch
Automatische Generierung von Grafiken aus Texteingaben mit Stiloptimierung
Vordefinierte Themen mit vollständigen Anpassungsmöglichkeiten
Unterstützt Symbole, Bilder, Beschriftungen, LaTeX-Formeln, Codeblöcke, Links, Anhänge
Export: PNG, VISIO, PDF, SVG | Import: VISIO, Mermaid
Echtzeit-Cloud-Speicherung, Multi-Gerät-Sync, Versionsverlauf und Datensicherheit
Eine Klasse besteht normalerweise aus einem Namen, Attributen und Operationen, dargestellt durch ein Rechteck, das in drei Ebenen unterteilt ist: Die erste Ebene ist der Name der Klasse, die zweite Ebene sind die Attribute der Klasse und die dritte Ebene sind die Operationen der Klasse.
In der Praxis gibt es jedoch drei Darstellungsformen: „Name der Klasse“, „Name der Klasse“ + „Attribute der Klasse“ und „Name der Klasse“ + „Operationen der Klasse“.
Der Name einer Klasse sollte ein Substantiv sein, wobei der erste Buchstabe jedes Wortes großgeschrieben wird. Normale Schrift wird für instanziierbare Klassen verwendet, und Kursivschrift wird für abstrakte Klassen verwendet.
Die Syntax zur Definition von Attributen einer Klasse lautet: [Sichtbarkeit] Attributname [:Datentyp] [=Initialwert] [{Attributzeichenkette}]
Inhalt in [] ist optional.
Eine Einschränkung einer Klasse spezifiziert eine oder mehrere Regeln, die die Klasse erfüllen muss. In UML wird eine Einschränkung durch Textinformationen in geschweiften Klammern dargestellt.
Realisierungsbeziehung: Dargestellt durch ein hohles Dreieck + gestrichelte Linie, die von der Implementierungsklasse zur Schnittstellenklasse zeigt.
Generalisierungsbeziehung: Dargestellt durch ein hohles Dreieck + durchgezogene Linie, die von der Unterklasse zur Oberklasse zeigt.
Assoziationsbeziehung: Dargestellt durch eine durchgezogene Linie mit Pfeil, die von der referenzierenden Klasse zur referenzierten Klasse zeigt.
Aggregationsbeziehung: Dargestellt durch eine hohle Raute + durchgezogene Linie, die von der Teilklasse zur Gesamtheit zeigt.
Kompositionsbeziehung: Dargestellt durch eine gefüllte Raute + durchgezogene Linie, die von der Teilklasse zur Gesamtheit zeigt.
Abhängigkeitsbeziehung: Dargestellt durch eine gestrichelte Linie mit Pfeil, die von der referenzierenden Klasse zur abhängigen Klasse zeigt.
Ein Klassendiagramm ist nicht völlig unabhängig. Es sollte aus dem Anwendungsfalldiagramm abgeleitete Entitäts-, Kontroll- und Grenzklassen enthalten und semantische Kohärenz mit Anwendungsfalldiagrammen, Aktivitätsdiagrammen, Sequenzdiagrammen usw. wahren.
Eine Klasse sollte eine einzige Verantwortung haben. Große Klassen können aufgeteilt werden, um die Verantwortlichkeiten sinnvoll auf mehrere Klassen zu verteilen, um hohe Kopplung zu vermeiden, Grenzen klar zu definieren und den Prinzipien des objektorientierten Designs zu entsprechen.