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#

SymbolNameBedeutung
● (gefüllter Kreis)StartknotenBeginn des Ablaufs – genau einer pro Diagramm
◉ (Kreis mit Ring)EndknotenEnde des Ablaufs
▭ (abgerundetes Rechteck)Aktion / AktivitätEin Schritt/Verarbeitungsschritt
◇ (Raute)EntscheidungsknotenVerzweigung (if/else) – ein Eingang, mehrere Ausgänge mit Bedingungen
◇ (Raute)ZusammenführungsknotenMehrere 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)SwimlaneZustä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:

DiagrammelementProgrammkonstrukt
Sequenz (Pfeile)Sequentielle Anweisungen
Entscheidungsknoten ◇if / else if / else
Entscheidungsknoten + Rückpfeilwhile / for Schleife
Fork / JoinParallele 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#