📊 UML Diagramme

Informatik - Teil 7: AktivitÀtsdiagramme, Sequenzdiagramme und Use-Case-Diagramme

1. AktivitÀtsdiagramme

📖 Was ist ein AktivitĂ€tsdiagramm?

Ein AktivitĂ€tsdiagramm beschreibt den Ablauf einer AktivitĂ€t oder eines Prozesses. Es zeigt, welche Aktionen in welcher Reihenfolge ausgefĂŒhrt werden – Ă€hnlich wie ein Flussdiagramm (Flowchart), aber mit zusĂ€tzlichen Möglichkeiten fĂŒr parallele AblĂ€ufe.

1.1 Elemente eines AktivitÀtsdiagramms

đŸ”· Grundelemente

Symbol Name Beschreibung
● Startknoten AusgefĂŒllter Kreis – Beginn des Ablaufs
◉ Endknoten AusgefĂŒllter Kreis mit Ring – Ende des Ablaufs
Aktion
Aktion Abgerundetes Rechteck – Eine AktivitĂ€t/Aktion
◇ Entscheidung Raute – Verzweigung (if-else)
→ Kontrollfluss Pfeil – Verbindet die Elemente
▬ Synchronisationsbalken Schwarzer Balken – Start/Ende paralleler AktivitĂ€ten

1.2 Einfaches Beispiel: Kaffee kochen

AktivitÀtsdiagramm: Kaffee kochen

flowchart TD A((●)) --> B[Wasser einfĂŒllen] B --> C[Kaffeepulver einfĂŒllen] C --> D[Maschine einschalten] D --> E[Warten bis fertig] E --> F[Kaffee einschenken] F --> G((◉)) style A fill:#00d4aa,stroke:#00a884,color:#fff style G fill:#00d4aa,stroke:#00a884,color:#fff

1.3 Mit Verzweigung (Entscheidung)

◇ Verzweigungen darstellen

Eine Entscheidung (Raute) teilt den Fluss basierend auf einer Bedingung:

flowchart TD A[Temperatur prĂŒfen] --> B{Temperatur?} B -->|kalt| C[Heizung an] B -->|warm| D[Heizung aus] C --> E((◉)) D --> E

Bedingungen werden in eckigen Klammern geschrieben: [Bedingung]

In Mermaid: {} = Entscheidung/Raute, |text| = Bedingungslabel

1.4 Parallele AblÀufe

▬ Synchronisationsbalken

Mit dem Synchronisationsbalken können parallele AktivitÀten dargestellt werden:

flowchart TD A[Zutaten vorbereiten] --> B[Fork] B --> C[Wasser kochen] B --> D[Tee wĂ€hlen] C --> E[Join] D --> E E --> F[Tee aufgießen] style B fill:#333,stroke:#00d4aa,color:#fff style E fill:#333,stroke:#00d4aa,color:#fff

Fork: Ein Pfeil rein, mehrere raus (parallel starten)

Join: Mehrere Pfeile rein, einer raus (warten bis alle fertig)


2. Sequenzdiagramme

📖 Was ist ein Sequenzdiagramm?

Ein Sequenzdiagramm zeigt die zeitliche Abfolge von Nachrichten zwischen Objekten. Es beschreibt, wie Objekte miteinander interagieren und in welcher Reihenfolge Methoden aufgerufen werden.

2.1 Elemente eines Sequenzdiagramms

đŸ”· Grundelemente

Element Darstellung Beschreibung
Objekt/Akteur Rechteck oben Name des Objekts oder Akteurs
Lebenslinie Gestrichelte Linie Vertikale Linie unter dem Objekt
Aktivierung Schmales Rechteck Objekt ist aktiv/verarbeitet
Synchrone Nachricht → (ausgefĂŒllte Spitze) Methodenaufruf, wartet auf Antwort
RĂŒckgabe ---> (gestrichelt) RĂŒckgabewert einer Methode

2.2 Beispiel: Geld abheben am ATM

Sequenzdiagramm: Geldautomat

sequenceDiagram participant K as đŸ‘€ Kunde participant A as 🏧 ATM participant B as 🏩 Bank K->>A: karteEinfuegen() K->>A: pinEingeben(pin) A->>B: pruefePIN(karte, pin) B-->>A: pinOK K->>A: betragWaehlen(100) A->>B: pruefeKontostand(konto) B-->>A: kontostandOK A->>A: geldAusgeben(100) A-->>K: geld, karte

📖 Leserichtung: Von oben nach unten - die Zeit verlĂ€uft vertikal!

2.3 Notation fĂŒr Sequenzdiagramme

📝 Nachrichtentypen

Pfeiltyp Bedeutung Beispiel
———▶ Synchroner Aufruf (wartet) berechne(x)
- - -▶ RĂŒckgabe/Antwort return ergebnis
———> Asynchroner Aufruf (wartet nicht) sendeEmail()
â†ș Selbstaufruf Objekt ruft eigene Methode auf

3. Use-Case-Diagramme

📖 Was ist ein Use-Case-Diagramm?

Ein Use-Case-Diagramm (Anwendungsfalldiagramm) beschreibt das System aus Sicht der Benutzer. Es zeigt, welche Akteure (Benutzer/Systeme) mit welchen AnwendungsfÀllen (Funktionen) interagieren.

3.1 Elemente eines Use-Case-Diagramms

đŸ”· Grundelemente

Symbol Name Beschreibung
🧑 Akteur StrichmĂ€nnchen – Benutzer oder externes System
Use Case
Use Case Ellipse – Ein Anwendungsfall/Funktion
System
Systemgrenze Rechteck – Grenzt das System ab
——— Assoziation Linie – Verbindet Akteur mit Use Case

3.2 Beispiel: Online-Shop

Use-Case-Diagramm: Online-Shop

flowchart LR subgraph System["📩 Online-Shop System"] UC1(("🔍 Produkte suchen")) UC2(("🛒 In Warenkorb legen")) UC3(("📋 Bestellung aufgeben")) UC4(("💳 Bezahlen")) UC5(("⚙ Produkte verwalten")) end K["🧑 Kunde"] --> UC1 K --> UC2 K --> UC3 K --> UC4 A["đŸ§‘â€đŸ’Œ Admin"] --> UC5 style K fill:#00d4aa,stroke:#00a884,color:#000 style A fill:#ff6b6b,stroke:#ee5a5a,color:#000 style UC1 fill:#1e1e2e,stroke:#00d4aa,color:#fff style UC2 fill:#1e1e2e,stroke:#00d4aa,color:#fff style UC3 fill:#1e1e2e,stroke:#00d4aa,color:#fff style UC4 fill:#1e1e2e,stroke:#00d4aa,color:#fff style UC5 fill:#1e1e2e,stroke:#ff6b6b,color:#fff

Interpretation:

  • Kunde kann: Produkte suchen, in Warenkorb legen, Bestellung aufgeben, Bezahlen
  • Admin kann: Produkte verwalten

3.3 Beziehungen in Use-Case-Diagrammen

🔗 Include und Extend

Beziehung Notation Bedeutung Beispiel
Include ---> «include» Use Case A enthĂ€lt immer Use Case B Bestellung → «include» → Login
Extend ---> «extend» Use Case B kann optional A erweitern Bestellung ← «extend» ← Gutschein einlösen
Generalisierung ——△ Spezialisierung eines Akteurs/Use Case Premium-Kunde —△ Kunde
Unterschied Include vs. Extend:
Include: "immer dabei" – Der eingebundene Use Case wird immer ausgefĂŒhrt
Extend: "optional möglich" – Der erweiternde Use Case wird nur unter bestimmten Bedingungen ausgefĂŒhrt

4. Diagramme lesen und verstehen

📖 Tipps zum Lesen von UML-Diagrammen

AktivitÀtsdiagramm:

  1. Starte beim Startknoten (●)
  2. Folge den Pfeilen
  3. Bei Rauten: PrĂŒfe welche Bedingung zutrifft
  4. Bei Balken: Parallele Pfade beachten
  5. Ende beim Endknoten (◉)

Sequenzdiagramm:

  1. Lies von oben nach unten (zeitlicher Verlauf)
  2. Identifiziere die beteiligten Objekte
  3. Verfolge die Nachrichten zwischen den Objekten
  4. Beachte RĂŒckgabewerte (gestrichelte Pfeile)

Use-Case-Diagramm:

  1. Identifiziere alle Akteure (außerhalb des Systems)
  2. Identifiziere alle Use Cases (innerhalb des Systems)
  3. PrĂŒfe welcher Akteur welche Funktionen nutzen kann
  4. Beachte Include/Extend-Beziehungen

5. Praktische Beispielaufgabe

Aufgabe: AktivitÀtsdiagramm erstellen

Beschreibung:

"Ein Benutzer möchte sich einloggen. Er gibt Benutzername und Passwort ein. Das System prĂŒft die Daten. Bei korrekten Daten wird die Startseite angezeigt, bei falschen Daten eine Fehlermeldung."

💡 Lösung anzeigen
●
↓
Benutzername eingeben
↓
Passwort eingeben
↓
Daten prĂŒfen
↓
◇
[korrekt]
↓
Startseite anzeigen
↓
◉
[falsch]
↓
Fehlermeldung
↓
◉

📋 Zusammenfassung: UML Diagramme

AktivitÀtsdiagramm:

  • ● Start, ◉ Ende, ◇ Entscheidung, ▬ ParallelitĂ€t
  • Zeigt Ablauf/Prozess wie Flussdiagramm
  • Bedingungen in [eckigen Klammern]

Sequenzdiagramm:

  • Objekte oben, Lebenslinien nach unten
  • Zeit lĂ€uft von oben nach unten
  • → Aufruf, ---> RĂŒckgabe

Use-Case-Diagramm:

  • 🧑 Akteure, (Ellipse) Use Cases
  • Zeigt WAS das System kann, nicht WIE
  • «include» = immer dabei, «extend» = optional