Unified Modeling Language (UML)
Die UML (Unified Modeling Language) ist eine standardisierte grafische Sprache, um Software zu planen und zu dokumentieren. Herausgeber ist die OMG (Object Management Group). Die Diagramme teilen sich in zwei Gruppen:
- Strukturdiagramme zeigen den Aufbau eines Systems, z. B. Klassen-, Objekt- und Komponentendiagramm.
- Verhaltensdiagramme zeigen Abläufe, z. B. Anwendungsfall-, Aktivitäts-, Sequenz- und Zustandsdiagramm.
Klassendiagramm
Das Klassendiagramm zeigt die statische Struktur: Klassen mit ihren Attributen und Methoden und die Beziehungen zwischen den Klassen. Eine Klasse ist ein Kasten mit drei Bereichen: oben der Name, in der Mitte die Attribute, unten die Methoden.
Schreibweise: - name: String ist ein privates Attribut name vom Typ String. + getName(): String ist eine öffentliche Methode, die einen String zurückgibt.
| Zeichen | Sichtbarkeit | Zugriff |
|---|---|---|
| + | public | von überall |
| - | private | nur innerhalb der Klasse |
| # | protected | Klasse und ihre Unterklassen |
| ~ | package | Klassen im selben Paket |
Statische Attribute und Methoden sind unterstrichen. Abstrakte Klassen stehen kursiv oder mit dem Zusatz {abstract}.
Beziehungen
| Beziehung | Darstellung | Bedeutung | Beispiel |
|---|---|---|---|
| Assoziation | Linie | Klassen kennen sich oder arbeiten zusammen | Kunde und Bestellung |
| Aggregation | leere Raute am Ganzen | Teil-Ganzes, die Teile existieren auch allein | Team und Mitarbeiter |
| Komposition | gefüllte Raute am Ganzen | Teil-Ganzes, die Teile existieren nur mit dem Ganzen | Haus und Raum |
| Vererbung (Generalisierung) | leeres Dreieck an der Oberklasse | „ist ein“, die Unterklasse übernimmt Attribute und Methoden | Kunde ist eine Person |
| Realisierung | gestrichelte Linie, leeres Dreieck am Interface | Klasse implementiert ein Interface | Rechnung implementiert Druckbar |
Multiplizitäten
Die Multiplizität an einem Linienende gibt an, wie viele Objekte dieser Klasse zu einem Objekt der Gegenseite gehören.
| Angabe | Bedeutung |
|---|---|
1 | genau eins |
0..1 | keins oder eins |
* bzw. 0..* | beliebig viele, auch keins |
1..* | mindestens eins |
2..4 | zwei bis vier |
Beispiel aus dem Klassendiagramm: Ein Kunde gibt 0..* Bestellungen auf, jede Bestellung gehört zu genau 1 Kunden.
Anwendungsfalldiagramm
Das Anwendungsfalldiagramm (Use-Case-Diagramm) zeigt, welche Funktionen ein System aus Sicht seiner Nutzer bietet. Es beschreibt, was das System leistet, nicht wie.
- Akteur: Strichmännchen außerhalb des Systems. Eine Rolle, die eine Person oder ein anderes System einnimmt.
- Anwendungsfall: Ellipse, eine Funktion mit Nutzen für einen Akteur.
- Systemgrenze: Rahmen mit dem Namen des Systems.
- «include»: Ein Anwendungsfall bindet einen anderen immer ein. Der gestrichelte Pfeil zeigt auf den eingebundenen Fall.
- «extend»: Ein Anwendungsfall erweitert einen anderen optional, nur unter einer Bedingung. Der gestrichelte Pfeil zeigt auf den erweiterten Fall.
Aktivitätsdiagramm
Das Aktivitätsdiagramm zeigt einen Ablauf Schritt für Schritt, ähnlich einem Programmablaufplan.
- Startknoten: gefüllter Kreis. Endknoten: Kreis mit Punkt.
- Aktion: Rechteck mit abgerundeten Ecken.
- Entscheidung: Raute. Die Bedingungen (Guards) stehen in eckigen Klammern an den ausgehenden Pfeilen.
- Zusammenführung: Raute, an der die Zweige wieder zusammenlaufen.
- Gabelung und Vereinigung: dicker Balken. Ab der Gabelung laufen Aktionen parallel, an der Vereinigung wird auf alle gewartet.
- Swimlanes: Spalten, die zeigen, wer eine Aktion ausführt.
Sequenzdiagramm
Das Sequenzdiagramm zeigt, welche Nachrichten Objekte in welcher Reihenfolge austauschen. Die Zeit läuft von oben nach unten.
- Lebenslinie: Kasten mit dem Objektnamen, darunter eine gestrichelte Linie.
- Aktivierungsbalken: schmaler Balken, solange das Objekt arbeitet.
- Synchrone Nachricht: durchgezogener Pfeil mit gefüllter Spitze. Der Sender wartet auf die Antwort.
- Asynchrone Nachricht: durchgezogener Pfeil mit offener Spitze. Der Sender arbeitet weiter.
- Antwort: gestrichelter Pfeil mit offener Spitze.
Weitere Diagramme
- Zustandsdiagramm: Zustände eines Objekts und die Übergänge dazwischen, z. B. eine Bestellung: offen, bezahlt, versendet.
- Objektdiagramm: konkrete Objekte mit Werten zu einem Zeitpunkt, eine Momentaufnahme des Klassendiagramms.
- Komponentendiagramm: Aufbau eines Systems aus Komponenten und ihren Schnittstellen.