Informatik

UML einfach erklärt: Diagramme lesen und erstellen

UML einfach erklärt: Diagramme lesen und erstellen
UML einfach erklärt: Diagramme lesen und erstellen
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Die Unified Modeling Language (UML) ist eine standardisierte grafische Sprache für Modelle. Mit ihr beschreibst du ausgewählte Strukturen und Abläufe eines Systems, bevor oder während du es programmierst. UML ist weder eine Programmiersprache noch ein festes Vorgehensmodell.

Auf dieser Seite lernst du, für eine Frage ein passendes Diagramm auszuwählen, ein Klassendiagramm aus Anforderungen zu entwickeln und eine Interaktion als Sequenzdiagramm zu beschreiben.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Welches UML-Diagramm beantwortet deine Frage?

Ein Modell bildet nur die Merkmale eines Systems ab, die für eine bestimmte Frage wichtig sind. Deshalb zeichnest du nicht automatisch das gesamte System. Du entscheidest zuerst, was andere am Diagramm erkennen sollen.

UML umfasst 14 Diagrammarten. Für den Einstieg reichen häufig diese sechs:

FragePassendes Diagramm
Welche Klassen gibt es und wie hängen sie zusammen?Klassendiagramm
Aus welchen groben Softwarebausteinen besteht das System?Komponentendiagramm
Welche Software läuft auf welcher Hardware?Verteilungsdiagramm
Was möchte ein Akteur mit dem System erreichen?Anwendungsfalldiagramm
Welche Aktionen, Entscheidungen und Wege gibt es?Aktivitätsdiagramm
Wer sendet wann welche Nachricht?Sequenzdiagramm

Strukturdiagramme zeigen vor allem statische Bestandteile und Beziehungen. Verhaltensdiagramme zeigen Abläufe oder Zustandsänderungen. Interaktionsdiagramme wie das Sequenzdiagramm bilden eine besondere Gruppe für den Austausch zwischen Beteiligten.

Merke

Beginne nicht mit Kästchen und Pfeilen, sondern mit einer Frage. Ein kleines, zweckgebundenes Diagramm ist oft verständlicher als ein vollständiges, aber überladenes Modell.

Teste dich
Frage 1 von 2LeichtDu möchtest zeigen, in welcher Reihenfolge ein Bestellsystem Nachrichten an Lager und Zahlungsdienst sendet. Welches Diagramm passt am besten?
Lösung: Sequenzdiagramm — Für einen zeitlich geordneten Nachrichtenaustausch verwendest du ein Sequenzdiagramm.
Frage 2 von 2MittelEin Team zeichnet jede Klasse des gesamten Systems, obwohl es nur die Anmeldung besprechen möchte. Was verbessert das Modell am stärksten?
Lösung: Nur den für die Anmeldung notwendigen Ausschnitt zeigen — Ein UML-Diagramm soll eine konkrete Frage beantworten. Bewusstes Weglassen macht den relevanten Zusammenhang leichter erkennbar.
Wie liest du eine Klasse?

Eine Klasse beschreibt gleichartige Objekte mit gemeinsamen Merkmalen und gemeinsamem Verhalten. Ein Objekt ist eine konkrete Instanz dieser Klasse mit eigener Identität und konkreten Attributwerten.

Ein Klassenrechteck kann drei Bereiche enthalten:

  1. den Klassennamen,
  2. die Attribute,
  3. die Operationen.

Ein Attribut speichert eine Eigenschaft oder einen Zustand. Eine Operation beschreibt eine angebotene Handlung. Bei der Programmierung wird eine Operation meist durch eine Methode umgesetzt.

Die wichtigsten Sichtbarkeitssymbole sind:

SymbolBedeutung
+öffentlich zugänglich (public)
-nur innerhalb der Klasse zugänglich (private)
#auch für Unterklassen zugänglich (protected)
~innerhalb des Pakets zugänglich (package)
Beispiel

Für ein Bibliothekssystem könnte eine Klasse textlich so notiert werden:

Buch

  • - titel: Text
  • - ausgeliehen: Wahrheitswert
  • + ausleihen(): Wahrheitswert
  • + zurückgeben()

titel und ausgeliehen sind Attribute. ausleihen() und zurückgeben() sind Operationen. Das Minuszeichen schützt die Attribute vor direktem Zugriff von außen; das Pluszeichen kennzeichnet öffentlich nutzbare Operationen.

Das konkrete Objekt meinBuch: Buch könnte den Titel „Tschick“ und den Zustand ausgeliehen = wahr besitzen. Klasse und Objekt sind also nicht dasselbe: Die Klasse ist die Beschreibung, das Objekt eine konkrete Ausprägung.

Eine abstrakte Klasse fasst gemeinsame Merkmale für Unterklassen zusammen, wird aber nicht selbst instanziiert. Eine Schnittstelle legt einen ausgewählten, von außen sichtbaren Teil des Verhaltens fest. Eine Klasse kann mehrere Schnittstellen implementieren.

Teste dich
Frage 1 von 2LeichtWelche Zeile beschreibt eine Operation?
Lösung: + verlängern(tage: Zahl): Wahrheitswert — Klammern kennzeichnen eine Operation. Darin können Parameter stehen; nach dem Doppelpunkt kann ein Rückgabetyp folgen.
Frage 2 von 2MittelWarum ist Buch eine Klasse, aber meinBuch: Buch ein Objekt?
Lösung: Buch beschreibt gemeinsame Merkmale; meinBuch ist eine konkrete Instanz. — Eine Klasse dient als gemeinsame Beschreibung. Jedes daraus erzeugte Objekt hat eine eigene Identität und konkrete Zustandswerte.
Wie unterscheiden sich Beziehungen und Multiplizitäten?

Eine Linie zwischen Klassen hat nicht immer dieselbe Bedeutung. Wähle die speziellere Beziehung nur, wenn die Anforderung ihre Bedeutung wirklich trägt.

Assoziation

Eine Assoziation ist eine allgemeine fachliche Beziehung zwischen Klassen. Rollen benennen die Funktion der Beteiligten. Ein Navigationspfeil kann zeigen, in welcher Richtung ein Objekt auf das andere zugreifen kann.

Aggregation und Komposition

Eine Aggregation beschreibt eine lockere Teil-Ganzes-Beziehung. Die leere Raute steht am Ganzen; ein Teil kann unabhängig vom Ganzen weiterbestehen.

Eine Komposition beschreibt eine starke, exklusive Teil-Ganzes-Beziehung. Die ausgefüllte Raute steht am Ganzen. Ein konkretes Teil gehört höchstens zu einem solchen Ganzen und ist von dessen Lebenszyklus abhängig.

Generalisierung

Eine Generalisierung beschreibt eine „Ist-ein“-Beziehung. Die Unterklasse erbt Merkmale der allgemeineren Oberklasse und kann sie ergänzen oder überschreiben. Der hohle Pfeil zeigt von der Unterklasse zur Oberklasse.

Beispiel

In einem Schulportal gelten folgende Anforderungen:

  • Ein Kurs hat angemeldete Schülerkonto-Objekte. Das ist zunächst eine Assoziation.
  • Ein Kursraum enthält fest zugehörige Beitrag-Objekte, die mit ihm gelöscht werden. Das kann als Komposition modelliert werden.
  • Lehrerkonto und Schülerkonto sind besondere Arten von Benutzerkonto. Das ist eine Generalisierung.

Eine Aggregation wäre nur dann passend, wenn eine echte Teil-Ganzes-Aussage gemeint ist und die Teile unabhängig fortbestehen. Eine bloße Zusammenarbeit zweier Klassen reicht dafür nicht.

Eine Multiplizität gibt an, wie viele Objekte an einem Ende einer Beziehung möglich sind:

SchreibweiseBedeutung
1genau eins
0..1kein oder ein Objekt
* oder 0..*beliebig viele, auch keines
1..*mindestens eins
3..7mindestens drei, höchstens sieben

Lies die Multiplizität immer an dem Ende, dessen mögliche Anzahl du bestimmen möchtest.

Beispiel

Anforderung: „Jedes Buch gehört genau zu einem Verlag. Ein Verlag veröffentlicht kein, ein oder mehrere Bücher.“

Daraus folgt:

  • Am Ende Verlag steht aus Sicht eines Buches 1.
  • Am Ende Buch steht aus Sicht eines Verlages 0..*.

Die Multiplizität beschreibt die erlaubte Anzahl. Die tatsächlich vorhandene Anzahl in einem konkreten Zustand kann innerhalb dieses Bereichs liegen.

Teste dich
Frage 1 von 3LeichtWelche Beziehung bedeutet „ist eine Art von“?
Lösung: Generalisierung — Bei der Generalisierung ist die Unterklasse eine speziellere Art der Oberklasse.
Frage 2 von 3MittelEin Warenkorb darf leer sein und beliebig viele Artikelpositionen enthalten. Welche Multiplizität steht am Ende Artikelposition?
Lösung: 0..* — „Darf leer sein“ liefert die Untergrenze 0; „beliebig viele“ liefert die offene Obergrenze *.
Frage 3 von 3SchwerEin Raum kann unabhängig von einer Raumreservierung bestehen. Welche Modellierung ist deshalb ungeeignet?
Lösung: Komposition mit der Reservierung als Ganzem — Eine Komposition würde den Raum existenziell und exklusiv an die Reservierung binden. Das widerspricht dem beschriebenen Lebenszyklus.
Wie entwickelst du ein Klassendiagramm aus Anforderungen?

Unterstreiche nicht einfach jedes Substantiv und mache daraus eine Klasse. Prüfe stattdessen, welche Verantwortung ein Begriff im System besitzt.

Gehe in fünf Schritten vor:

  1. Zweck festlegen: Formuliere die Frage, die das Modell beantworten soll.
  2. Klassenkandidaten suchen: Achte auf fachliche Objekte mit eigener Identität, Zustand oder Verantwortung.
  3. Merkmale zuordnen: Formuliere Eigenschaften als Attribute und Verhalten als Operationen.
  4. Beziehungen bestimmen: Entscheide über Beziehungstyp, Rollen und Multiplizitäten.
  5. Szenarien prüfen: Spiele konkrete Fälle durch und korrigiere fehlende oder widersprüchliche Stellen.
Beispiel

Anforderung: „Mitglieder einer Bibliothek können Bücher ausleihen. Ein Exemplar gehört genau zu einem Buch. Ein Mitglied kann gleichzeitig höchstens fünf Exemplare ausgeliehen haben. Zu jeder Ausleihe werden Ausleihdatum und Fälligkeitsdatum gespeichert.“

Schritt 1 – Zweck: Das Modell soll zeigen, wie Ausleihen verwaltet werden.

Schritt 2 – Klassen: Mitglied, Buch, Exemplar und Ausleihe besitzen eigene fachliche Aufgaben. Ausleihdatum ist dagegen ein Wert und daher ein Attribut.

Schritt 3 – Merkmale:

  • Mitglied: etwa mitgliedsnummer
  • Buch: etwa titel
  • Exemplar: etwa inventarnummer
  • Ausleihe: ausleihdatum, fälligkeitsdatum

Schritt 4 – Beziehungen:

  • Jedes Exemplar gehört zu genau 1 Buch. Wie viele Exemplare ein Buch haben darf, steht nicht in der Anforderung. Sind auch Bücher ohne Exemplar erlaubt, steht am Ende Exemplar die Multiplizität 0..*; andernfalls musst du die Untergrenze klären.
  • Ein Mitglied hat 0..5 aktuelle Ausleihen; jede Ausleihe gehört zu genau 1 Mitglied.
  • Jede Ausleihe betrifft genau 1 Exemplar.

Ausleihe ist eine eigene Klasse, weil Datum und Fälligkeit zur Verbindung eines bestimmten Mitglieds mit einem bestimmten Exemplar gehören.

Schritt 5 – Prüfung: Ein neues Mitglied ohne Ausleihe ist erlaubt. Die sechste gleichzeitige Ausleihe ist nicht erlaubt. Für eine Ausleihe muss genau ein Exemplar bekannt sein.

Lückentext

Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.

Ein fachliches Ding mit eigener Identität ist häufig eine . Eine gespeicherte Eigenschaft wird als modelliert. Die Angabe 0..5 ist eine . Daten, die zu einer Verbindung gehören, können eine begründen.

Lösungen: Lücke 1: Klasse; Lücke 2: Attribut; Lücke 3: Multiplizität; Lücke 4: Assoziationsklasse. Prüfe immer die fachliche Funktion: Klassen tragen Verantwortung, Attribute speichern Eigenschaften und Multiplizitäten begrenzen mögliche Anzahlen.
Wie prüfst du ein Modell mit Szenarien?

Ein formal aussehendes Diagramm kann fachlich trotzdem falsch sein. Teste es deshalb mit konkreten Szenarien, also beispielhaften Nutzungsfällen.

Für jedes Szenario fragst du:

  • Lassen sich alle benötigten Objekte anlegen?
  • Erlauben die Multiplizitäten den Fall?
  • Ist klar, welches Objekt für eine Handlung verantwortlich ist?
  • Fehlt ein Attribut oder eine Beziehung?
  • Erlaubt das Modell einen fachlich verbotenen Zustand?
Beispiel

Prüfe das Bibliotheksmodell an drei Fällen:

  1. Neues Mitglied ohne Ausleihe: 0..5 Ausleihen erlaubt den Fall.
  2. Ein Mitglied leiht fünf Exemplare aus: Die Obergrenze 5 erlaubt den Fall.
  3. Ein Mitglied möchte ein sechstes Exemplar ausleihen: Das Modell weist auf einen unzulässigen Zustand hin.

Angenommen, im Diagramm stünde stattdessen 1..5. Dann wäre schon ein neues Mitglied ohne Ausleihe verboten. Das Szenario deckt den Modellfehler auf; die Untergrenze muss 0 sein.

Merke

Ein gutes Modell bildet nicht nur typische Erfolgsfälle ab. Prüfe auch leere Zustände, Grenzwerte und unerlaubte Fälle.

Teste dich
Frage 1 von 2MittelEin Modell erlaubt pro Mitglied 1..5 Ausleihen. Welcher Fall zeigt den Fehler am deutlichsten?
Lösung: Ein neu registriertes Mitglied hat noch kein Exemplar ausgeliehen. — Die Untergrenze 1 verbietet den Zustand ohne Ausleihe. Wenn neue Mitglieder erlaubt sind, muss die Untergrenze 0 lauten.
Frage 2 von 2SchwerEin Anforderungstext verlangt, dass zu jeder Ausleihe ein Fälligkeitsdatum gespeichert wird. Im Modell gibt es nur Mitglied und Exemplar. Was ist die geeignetste Korrektur?
Lösung: Eine Klasse Ausleihe mit dem Attribut fälligkeitsdatum ergänzen — Das Datum gehört zur konkreten Verbindung zwischen einem Mitglied und einem Exemplar. Eine eigene Klasse Ausleihe kann diese Information eindeutig tragen.
Wie beschreibst du den zeitlichen Nachrichtenaustausch?

Ein Klassendiagramm zeigt, welche Struktur möglich ist. Ein Sequenzdiagramm zeigt dagegen, wie Beteiligte in einem konkreten Szenario zeitlich zusammenarbeiten.

Die Beteiligten stehen nebeneinander. Von ihnen führen Lebenslinien nach unten. Nachrichten werden als waagerechte Pfeile dargestellt und von oben nach unten gelesen. Eine synchrone Nachricht wartet auf eine Antwort; eine asynchrone Nachricht blockiert den Sender nicht auf diese Weise.

Gehe so vor:

  1. Wähle genau ein Szenario, zum Beispiel „Exemplar ausleihen“.
  2. Bestimme die beteiligten Akteure und Objekte.
  3. Ordne die Nachrichten zeitlich.
  4. Benenne jede Nachricht mit einer konkreten Absicht oder Operation.
  5. Prüfe, ob die Empfänger die benötigte Verantwortung im Klassenmodell besitzen.
Beispiel

Szenario: Ein Mitglied leiht ein verfügbares Exemplar aus.

Beteiligte: Mitglied, Ausleihoberfläche, Ausleihdienst, Exemplar.

Zeitliche Folge:

  1. Mitglied sendet ausleihen(exemplarnummer) an die Ausleihoberfläche.
  2. Die Ausleihoberfläche sendet ausleihePrüfen(...) an den Ausleihdienst.
  3. Der Ausleihdienst fragt beim Exemplar mit istVerfügbar() nach.
  4. Das Exemplar liefert den Verfügbarkeitszustand zurück.
  5. Bei verfügbarem Exemplar erzeugt der Ausleihdienst die Ausleihe.
  6. Die Ausleihoberfläche meldet dem Mitglied den Erfolg.

Das Sequenzdiagramm ergänzt das Klassenmodell: Wenn istVerfügbar() im Ablauf benötigt wird, sollte eine passende Verantwortung im Strukturmodell erkennbar sein.

Ein Sequenzdiagramm stellt einen bestimmten Pfad dar. Ein Erfolgsfall und ein Fehlerfall wie „Exemplar bereits ausgeliehen“ können getrennt modelliert werden, damit der Ablauf lesbar bleibt.

Teste dich
Frage 1 von 2LeichtIn welcher Richtung liest du die zeitliche Abfolge eines Sequenzdiagramms?
Lösung: Von oben nach unten — Weiter oben eingezeichnete Nachrichten geschehen vor weiter unten eingezeichneten Nachrichten.
Frage 2 von 2SchwerIm Sequenzdiagramm empfängt Exemplar die Nachricht istVerfügbar(), im Klassendiagramm besitzt die Klasse keine passende Verantwortung. Was zeigt der Vergleich?
Lösung: Struktur- und Ablaufmodell sind noch nicht konsistent und müssen geprüft werden. — Ein Ablauf kann Lücken im Klassenmodell sichtbar machen. Prüfe, ob eine Operation ergänzt oder die Nachricht an einen passenderen Empfänger gerichtet werden muss.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • UML-Modell
    • beantwortet eine konkrete Frage
    • Klassendiagramm zeigt Struktur
    • Klasse enthält Attribute und Operationen
    • Beziehungen erhalten Typ und Multiplizität
    • Szenarien prüfen erlaubte und verbotene Fälle
    • Sequenzdiagramm zeigt zeitliche Nachrichten
    • Verständlichkeit verlangt einen begrenzten Ausschnitt
Abschluss-Check
Teste dich
Frage 1 von 4LeichtWelche Aussage beschreibt UML richtig?
Lösung: UML ist eine Modellierungssprache zur Beschreibung ausgewählter Strukturen und Abläufe. — UML stellt eine standardisierte Notation bereit. Welchen Prozess ein Team verwendet und welche Diagramme es benötigt, legt UML nicht fest.
Frage 2 von 4MittelEine Schule hat beliebig viele Kurse, aber jeder Kurs gehört genau zu einer Schule. Welche Multiplizitäten passen?
Lösung: Am Ende Kurs steht 0..*, am Ende Schule steht 1. — Betrachte jede Richtung einzeln: Eine Schule kennt null bis viele Kurse; ein bestimmter Kurs gehört genau zu einer Schule.
Frage 3 von 4SchwerEine App verwaltet Bestellungen. Jede Bestellung enthält mindestens eine Position. Eine Position kann ohne ihre Bestellung nicht bestehen und gehört nie zu zwei Bestellungen. Welche Modellierung passt am besten?
Lösung: Komposition zwischen Bestellung und Position, mit 1..* am Ende Position — Existenzabhängigkeit und exklusive Zugehörigkeit sprechen für Komposition. „Mindestens eine“ ergibt für die Positionen die Multiplizität 1..*.
Frage 4 von 4SchwerBeim Durchspielen des Szenarios „Bestellung stornieren“ fehlt im Klassenmodell eine Zustandsangabe. Was ist der sinnvollste nächste Schritt?
Lösung: Einen passenden Zustand oder eine zuständige Operation ergänzen und weitere Szenarien erneut prüfen — Korrigiere nur den für die Anforderungen nötigen Ausschnitt und prüfe danach, ob die Änderung auch zu anderen wichtigen Fällen passt.

Du kannst ein UML-Modell jetzt zielgerichtet entwickeln: Frage festlegen, passenden Diagrammtyp wählen, Begriffe und Beziehungen präzise modellieren und das Ergebnis an konkreten Szenarien prüfen.

Passend dazu