- 1 Section
- 10 Lessons
- unbegrenzt
- Objektorientierte Programmierung (OOP)10
UML-Klassendiagramm lesen und erstellen
UML – die Unified Modeling Language – ist die Sprache der Software-Modellierung. Während du in den letzten Lektionen viel Code geschrieben hast, ist UML eine grafische Notation, um Klassen und ihre Beziehungen vor dem Code zu skizzieren oder Bestehendes zu dokumentieren. In der IHK-Prüfung kommen UML-Diagramme garantiert dran – meist mit Aufgaben wie „lies das Diagramm und erkläre die Vererbungshierarchie" oder „erstelle das Diagramm zu folgendem Code".
Diese Lektion deckt das UML-Klassendiagramm ab – das wichtigste der 14 UML-Diagrammtypen. Du lernst die Notation für Klassen, Sichtbarkeit, Beziehungen (Vererbung, Assoziation, Aggregation, Komposition), Multiplizitäten, und gegenseitige Übersetzung zwischen Code und Diagramm.
1) Was ist UML?
UML wurde Mitte der 1990er entwickelt, um die vielen konkurrierenden Modellierungs-Notationen zu vereinheitlichen. Heute ist sie ISO-standardisiert (ISO/IEC 19501) und wird in fast jedem größeren Software-Projekt zumindest teilweise eingesetzt. Es gibt insgesamt 14 Diagrammtypen, die in zwei Kategorien fallen:
- Strukturdiagramme: zeigen die statische Struktur eines Systems. Wichtigste: Klassendiagramm, Komponentendiagramm, Verteilungsdiagramm.
- Verhaltensdiagramme: zeigen Dynamik. Wichtigste: Anwendungsfalldiagramm, Sequenzdiagramm, Zustandsdiagramm, Aktivitätsdiagramm.
Für OOP ist das Klassendiagramm der Star – wir konzentrieren uns hier ganz darauf.
2) Eine UML-Klasse
Eine Klasse wird in UML als Rechteck mit drei Abschnitten dargestellt: Name oben, Attribute mittig, Methoden unten:
- oben der Klassenname in Fett
- mittig die Attribute mit Sichtbarkeit, Name, Typ
- unten die Methoden mit Sichtbarkeit, Name, Parameter, Rückgabetyp
sichtbarkeit name: Typ. Format der Methoden: sichtbarkeit name(parameter: Typ): Rückgabetyp. In Diagrammen kann man Abschnitte weglassen wenn sie nicht wichtig sind – z.B. nur Name + Methoden, wenn die Attribute nicht relevant sind. UML-Tools zeigen das oft erst auf Klick.3) Sichtbarkeits-Symbole
Du hast in L4 die Sichtbarkeiten kennengelernt. UML hat dafür kompakte Symbole:
«readOnly»-Stereotyp markiert oder Großbuchstaben-Namen.4) Beziehungen zwischen Klassen
Das Herzstück von UML-Klassendiagrammen sind die Beziehungstypen. Hier wird's für die Klausur wichtig – jeder Pfeil hat eine andere Bedeutung:
extends.implements.5) Multiplizitäten
An den Enden von Assoziationen kann man angeben wie viele Objekte beteiligt sind:
Person — 1..* — Konto bedeutet: jede Person hat mindestens ein Konto, jedes Konto gehört zu genau einer Person. Multiplizitäten sind essentiell für Datenbankschema-Design – sie übersetzen sich direkt in SQL-Beziehungen.6) Komplettes Beispiel-Diagramm
So sieht ein realistisches UML-Klassendiagramm aus. Ein kleines Shop-System mit Kunden, Bestellungen und Produkten:
7) Code zu UML übersetzen
Lass uns das umgekehrte machen: gegeben sei dieser Java-Code – wie sieht das UML-Diagramm dazu aus?
Das UML-Diagramm dazu:
abteilung könnte alternativ als Assoziation zur Abteilungs-Klasse dargestellt werden (Pfeil von Mitarbeiter zu Abteilung) – beides ist erlaubt.8) UML-Werkzeuge in der Praxis
Für UML gibt es viele Tools – kostenpflichtig und gratis:
- draw.io / diagrams.net: kostenlos, browser-basiert, sehr beliebt für schnelle Diagramme
- PlantUML: Code-basiert! Du beschreibst UML in Textform, das Tool generiert das Diagramm. Versionierbar im Git, eingebettet in IDEs.
- Mermaid: ähnlich PlantUML, aber für Markdown-Integration. GitHub, GitLab und Wikis unterstützen es nativ.
- StarUML, Visual Paradigm, Enterprise Architect: professionelle Suites, oft in Großunternehmen
- IntelliJ IDEA / Eclipse Plugins: generieren UML aus Code, manchmal auch umgekehrt
Ein PlantUML-Beispiel als Vorgeschmack:
9) Wann lohnt sich UML?
UML ist mächtig, aber wird in der Praxis nicht überall gelebt. Ehrliche Einschätzung:
UML lohnt sich:
- In der Entwurfsphase großer Systeme – bevor Code geschrieben wird
- Bei der Dokumentation komplexer Architekturen für neue Team-Mitglieder
- Zur Kommunikation mit nicht-technischen Stakeholdern
- In IHK-Prüfungen und an Hochschulen – fast überall im Pflichtprogramm
- Bei Code-Reviews und Architektur-Reviews
UML lohnt sich weniger:
- Bei agilen, sich ständig ändernden Projekten – Diagramme veralten sofort
- Für kleine Skripte und Wegwerf-Tools
- Wenn das Team kein UML kann oder will – dann lieber andere Notation
Moderne Faustregel: UML pragmatisch nutzen. Nicht alles vorab zeichnen. Bei wichtigen Klassen-Beziehungen einfach am Whiteboard skizzieren, fotografieren, im Wiki ablegen. „Lebende" UML-Dokumentation durch automatisch generierte Diagramme aus Code.
10) Häufige Klausurfragen
- „Was ist UML?" → Unified Modeling Language, standardisierte grafische Notation für Software-Modelle
- „Welche Sichtbarkeits-Symbole gibt es?" →
+public,#protected,~package,−private - „Unterschied Aggregation und Komposition?" → Aggregation = lose (B kann ohne A leben); Komposition = stark (B existiert nur als Teil von A)
- „Wie zeigt man Vererbung?" → Durchgezogener Pfeil mit leerer dreieckiger Spitze, von Unterklasse zur Oberklasse
- „Wie zeigt man Interface-Implementierung?" → Gestrichelter Pfeil mit leerer dreieckiger Spitze
- „Was bedeutet ein kursiver Klassenname?" → Abstrakte Klasse
- „Was bedeutet eine unterstrichene Methode?" → Statische (Klassen-)Methode
- „Was bedeutet die Multiplizität
1..*?" → Mindestens ein Objekt - „Erstelle Diagramm zu Code X" oder „Erstelle Code zu Diagramm Y" → klassisch in Prüfungen, einfach Schritt für Schritt übersetzen
Zusammenfassung
UML-Klassendiagramme zeigen die statische Struktur eines OOP-Systems. Klassen-Box mit drei Abschnitten: Name, Attribute, Methoden. Sichtbarkeit: + public, # protected, ~ package, − private. Beziehungstypen: Vererbung (durchgezogener Pfeil), Realisierung (gestrichelt), Assoziation, Aggregation (leere Raute, lockere Bindung), Komposition (gefüllte Raute, starke Bindung), Abhängigkeit. Multiplizitäten an Beziehungsenden: 1, 0..1, *, 1..*, n..m. Abstrakte Klassen kursiv, statische Methoden unterstrichen, Interfaces mit «interface»-Stereotyp. Tools: draw.io, PlantUML, Mermaid (code-basiert, versionierbar). UML ist Klausur-Standard und sollte beherrscht werden – sowohl Diagramm lesen als auch erstellen.
