UML – Aktivitätsdiagramm#
Das Aktivitätsdiagramm ist ein UML-Diagrammtyp zur grafischen Darstellung von Abläufen, Prozessen und Algorithmen. Es zeigt den Kontrollfluss durch Aktionen, Verzweigungen und Schleifen.
Notation – Die Bausteine#
| Symbol | Name | Bedeutung |
|---|---|---|
| ● (gefüllter Kreis) | Startknoten | Beginn des Ablaufs – genau einer pro Diagramm |
| ◉ (Kreis mit Ring) | Endknoten | Ende des Ablaufs |
| ▭ (abgerundetes Rechteck) | Aktion / Aktivität | Ein Schritt/Verarbeitungsschritt |
| ◇ (Raute) | Entscheidungsknoten | Verzweigung (if/else) – ein Eingang, mehrere Ausgänge mit Bedingungen |
| ◇ (Raute) | Zusammenführungsknoten | Mehrere Eingänge, ein Ausgang (merge) |
| ═══ (dicker Balken) | Fork (Aufspaltung) | Parallele Ausführung beginnt |
| ═══ (dicker Balken) | Join (Synchronisation) | Parallele Pfade zusammenführen |
| → (Pfeil) | Kontrollfluss | Übergang von einer Aktion zur nächsten |
| [ ] (in eckigen Klammern) | Bedingung (Guard) | Beschriftung an Pfeilen nach Entscheidungsknoten |
| ‖ (gestrichelte Linie) | Swimlane | Zuständigkeitsbereich einer Person/Abteilung |
Grundstruktur#
●
│
▼
┌─────────────┐
│ Aktion 1 │
└─────────────┘
│
▼
◇
/ \
[Ja]/ \[Nein]
/ \
▼ ▼
┌───┐ ┌───┐
│ A │ │ B │
└───┘ └───┘
\ /
\ /
▼ ▼
◇ ← Zusammenführung
│
▼
◉Vollständiges Beispiel: Login-Prozess#
●
│
▼
┌─────────────────────┐
│ Anmeldemaske │
│ anzeigen │
└─────────────────────┘
│
▼
┌─────────────────────┐
│ Benutzerdaten │
│ eingeben │
└─────────────────────┘
│
▼
◇
/ \
[gültig] / \ [ungültig]
/ \
▼ ▼
┌──────────┐ ┌─────────────────┐
│ Zugang │ │ Fehlermeldung │
│ gewähren│ │ anzeigen │
└──────────┘ └─────────────────┘
│ │
│ ┌──────┘
│ │ [Versuche < 3]
│ ▼
│ ◇
│ / \
│ / \ [Versuche >= 3]
│ / \
│ ▼ ▼
│ (zurück ┌──────────────┐
│ zur │ Konto │
│ Eingabe) │ sperren │
│ └──────────────┘
│ │
└────────┬─────────┘
▼
◉Parallele Abläufe (Fork & Join)#
Wenn mehrere Aktionen gleichzeitig ausgeführt werden:
│
▼
══════════════════ ← Fork (Aufspaltung)
│ │
▼ ▼
┌─────────┐ ┌──────────┐
│ Drucker │ │ E-Mail │
│ starten │ │ versenden│
└─────────┘ └──────────┘
│ │
▼ ▼
══════════════════ ← Join (beide müssen fertig sein)
│
▼Swimlanes (Verantwortungsbereiche)#
Swimlanes teilen das Diagramm in Zuständigkeitsbereiche auf:
│ Kunde │ System │
│─────────────────────│───────────────────── │
│ ● │ │
│ │ │ │
│ ▼ │ │
│ ┌────────────┐ │ │
│ │ Bestellung │ │ │
│ │ aufgeben │ │ │
│ └────────────┘ │ │
│ │ │ │
│ └───────────┼──►┌────────────────┐ │
│ │ │ Bestellung │ │
│ │ │ verarbeiten │ │
│ │ └────────────────┘ │
│ │ │ │
│ ┌──────────────┐◄──┼──────────┘ │
│ │ Bestätigung │ │ │
│ │ erhalten │ │ │
│ └──────────────┘ │ │
│ │ │ │
│ ▼ │ │
│ ◉ │ │Aktivitätsdiagramm vs. Programmcode#
Das Aktivitätsdiagramm entspricht direkt den Kontrollstrukturen der Programmierung:
| Diagrammelement | Programmkonstrukt |
|---|---|
| Sequenz (Pfeile) | Sequentielle Anweisungen |
| Entscheidungsknoten ◇ | if / else if / else |
| Entscheidungsknoten + Rückpfeil | while / for Schleife |
| Fork / Join | Parallele Threads / async |
Beispiel: Schleife im Aktivitätsdiagramm
●
│
▼
┌─────────────────┐
│ i = 0 │
└─────────────────┘
│
▼
◇ ◄───────────────────┐
/ \ │
[i < 5]/ \[i >= 5] │
/ \ │
▼ ▼ ┌─────────────┐
┌──────────┐ │ │ i = i + 1 │
│ Ausgabe │ │ └─────────────┘
│ i │ │ ▲
└──────────┘ │ │
│ │ │
└───────────────────────►─┘
│
▼
◉→ Entspricht: for (int i = 0; i < 5; i++) { System.out.println(i); }
Prüfungstipps#
- Startknoten: Immer genau einen ● am Anfang
- Endknoten: Kann mehrere ◉ geben (z.B. bei Fehlerabbruch)
- Bedingungen an allen Ausgangspfeilen eines Entscheidungsknotens beschriften
[Bedingung] - Alle Pfade müssen irgendwo enden (kein offener Pfeil)
- Swimlanes sind optional, aber gut für Prüfungsaufgaben mit mehreren Beteiligten
Prüfungsbeispiele#
„Zeichne ein Aktivitätsdiagramm für: Ein Nutzer gibt eine Zahl ein. Ist die Zahl positiv, wird sie verdoppelt und ausgegeben. Ist sie negativ, wird eine Fehlermeldung angezeigt."
●
│
▼
┌──────────────┐
│ Zahl einlesen│
└──────────────┘
│
▼
◇
/ \
[> 0]/ \[<= 0]
/ \
▼ ▼
┌───────┐ ┌────────────────┐
│Zahl × 2│ │Fehlermeldung │
│ausgeben│ │anzeigen │
└───────┘ └────────────────┘
│ │
└──────┬──────┘
▼
◉„Was ist der Unterschied zwischen einem Entscheidungsknoten und einem Fork?"
→ Entscheidungsknoten (◇): Nur ein Pfad wird weiterverfolgt (Bedingung wählt den Weg). Fork (═══): Alle Pfade werden gleichzeitig/parallel ausgeführt.
Siehe auch#
- softwaredokumentation — UML-Diagramme als Bestandteil der technischen Dokumentation
- testverfahren — Aktivitätsdiagramme helfen, alle Testpfade (Branch Coverage) zu identifizieren
- [[../09_projektmanagement/agile_methoden]] — Prozessmodellierung in der Anforderungsanalyse und Planung
Ressourcen#
- Wikipedia: Aktivitätsdiagramm
- Wikipedia: Unified Modeling Language
- Studyflix: UML Aktivitätsdiagramm einfach erklärt
- SimpleClub: UML Diagramme auf YouTube suchen