Anwendungsfalldiagramme
In dieser interaktiven Lerneinheit erschließt du dir die Grundlagen von UML-Anwendungsfalldiagrammen, mit denen du die Interaktionen zwischen Systemen und deren Akteuren visualisierst. Du lernst die wichtigsten Notationselemente kennen und übst deren praktische Anwendung anhand konkreter Beispiele. Durch zahlreiche Übungen entwickelst du die Fähigkeit, Systemanforderungen und Benutzerinteraktionen professionell zu modellieren - eine Schlüsselkompetenz für die Anforderungsanalyse und Projektdokumentation.
Einführung
Du öffnest eine App, loggst dich ein und nutzt verschiedene Funktionen – aber hast du dich je gefragt, wie das System im Hintergrund organisiert ist? Welche Benutzer dürfen welche Aktionen ausführen? Wie sind die Abläufe strukturiert?

Anwendungsfalldiagramme helfen dabei, genau solche Fragen zu beantworten. Sie visualisieren, wer mit dem System interagiert und welche Funktionen es bereitstellt, und sind damit ein wichtiges Werkzeug für eine klare Anforderungsanalyse.
Lernziele
Nach dieser Lerneinheit kannst du:
- Die grundlegende Bedeutung von Anwendungsfalldiagrammen erklären.
- Systemgrenzen definieren und ihre Bedeutung für die Abgrenzung von internen und externen Komponenten verstehen.
- Akteure und Anwendungsfälle identifizieren und korrekt modellieren.
- Die unterschiedlichen Beziehungen wie Include, Extend und Generalisierung anwenden.
- Assoziationen zwischen Akteuren und Anwendungsfällen richtig darstellen.
Überleitung
Softwareentwicklung erfordert eine klare Definition von Anforderungen. Ohne eine strukturierte Darstellung kann es schnell zu Missverständnissen kommen. Anwendungsfalldiagramme bieten eine Möglichkeit, die Erwartungen der Nutzer, die Funktionalität des Systems und dessen Grenzen präzise abzubilden. In den folgenden Abschnitten lernst du, wie du diese Diagramme erstellst und richtig interpretierst.
Was ist ein Anwendungsfalldiagramm?
Ein Anwendungsfalldiagramm ist eine grafische Darstellung der Interaktionen zwischen Akteuren (Benutzern oder externen Systemen) und dem zu entwickelnden System. Es zeigt die Anwendungsfälle (Use Cases), die das System ausführen muss, um die Ziele der Akteure zu erreichen. Dieses Diagramm hilft dabei, die Anforderungen zu verstehen und zu kommunizieren.
Ziele von Anwendungsfalldiagrammen
Ein Anwendungsfalldiagramm beinhaltet mehrere Ziele:
- Übersichtlichkeit: Bietet einen klaren Überblick über die Funktionalitäten des Systems.
- Kommunikation: Erleichtert die Abstimmung zwischen Entwicklern, Kunden und anderen Stakeholdern.
- Anforderungsanalyse: Unterstützt bei der Identifikation und Definition von Anforderungen.
- Grundlage für Design und Test: Dient als Ausgangspunkt für die weitere Systementwicklung und das Testen.
Bestandteile eines Anwendungsfalldiagramms
Ein Anwendungsfalldiagramm besteht hauptsächlich aus:
- Akteuren: Repräsentieren Benutzer oder externe Systeme, die mit dem System interagieren.
- Anwendungsfällen (Use Cases): Beschreiben Funktionen oder Dienste, die das System den Akteuren zur Verfügung stellt.
- Systemgrenzen: Definieren, welche Funktionen und Komponenten Teil des Systems sind.
- Beziehungen: Zeigen Interaktionen und Abhängigkeiten zwischen Akteuren und Anwendungsfällen.
Lass uns die einzelnen Bestandteile genauer betrachten.
Systemgrenzen im Anwendungsfalldiagramm
Systemgrenzen definieren, welche Funktionen und Komponenten Teil des Systems sind und welche außerhalb liegen. Sie trennen das betrachtete System von seiner Umgebung und bestimmen, welche Akteure und externen Systeme mit ihm interagieren können.
Die Systemgrenze hilft, den Umfang eines Systems klar zu definieren, indem sie festlegt, welche Elemente direkt in das System integriert sind und welche nur über Schnittstellen oder externe Verbindungen damit kommunizieren.
Notation in UML:

- Dargestellt als Rechteck
- Umschließen alle Use Cases
- Definieren klar, was zum System gehört und was nicht
- Oft mit dem Namen des Systems beschriftet
Akteure
Akteure sind externe Entitäten, die mit dem System interagieren. Sie können sein:
- Primäre Akteure: Nutzen die Hauptfunktionalitäten des Systems direkt. Beispiel: Ein Kunde an einem Geldautomaten, der Bargeld abheben möchte.
- Sekundäre Akteure: Unterstützen das System oder profitieren indirekt davon. Beispiel: Ein Administrationssystem, das zur Wartung und Überwachung eines Geldautomaten dient.
Notation in UML:
- Akteure werden als Strichmännchen dargestellt.
- Der Name des Akteurs steht unter oder neben der Figur.

- Repräsentieren Rollen, die mit dem System interagieren
- Können Personen, Gruppen oder andere Systeme sein
- Befinden sich außerhalb der Systemgrenzen
Anwendungsfälle (Use Cases)
Anwendungsfälle sind spezifische Funktionen oder Dienste, die das System für die Akteure bereitstellt. Sie beschreiben was das System tun soll, ohne zu spezifizieren wie es umgesetzt wird.
Notation in UML:
- Anwendungsfälle werden als Ellipsen dargestellt.
- Der Name des Anwendungsfalls steht innerhalb oder unterhalb der Ellipse.

- Beschreiben, was das System aus Benutzersicht leisten kann
- Befinden sich innerhalb der Systemgrenzen
Assoziationen im Anwendungsfalldiagramm
In Anwendungsfalldiagrammen werden verschiedene Beziehungstypen verwendet, um die Interaktion zwischen Akteuren und Anwendungsfällen darzustellen. Eine der grundlegendsten Beziehungen ist die Assoziation, die beschreibt, wie Akteure mit bestimmten Use Cases interagieren.
-
Assoziation:: Zeigt die Interaktion zwischen einem Akteur und einem Anwendungsfall.
-
Notation: Eine durchgezogene Linie zwischen Akteur und Anwendungsfall.
Include-Beziehung («include»)
Die Include-Beziehung zeigt an, dass ein Anwendungsfall einen anderen Anwendungsfall immer einbezieht.
- Notation: Gestrichelte Linie mit Pfeil vom einbeziehenden zum eingebundenen Anwendungsfall, beschriftet mit «include».

Extend-Beziehung («extend»)
Die Extend-Beziehung zeigt an, dass ein Anwendungsfall unter bestimmten Bedingungen einen anderen Anwendungsfall erweitert. Der erweiternde Anwendungsfall wird optional ausgeführt, wenn bestimmte Bedingungen erfüllt sind.
- Notation: Gestrichelte Linie mit Pfeil vom erweiternden zum Basis-Anwendungsfall, beschriftet mit «extend». Der Basis-Anwendungsfall kann unabhängig von der Erweiterung ausgeführt werden.

Bedingungen («Conditions»)
Auch wenn Anwendungsfalldiagramme keine logischen Verzweigungen wie Aktivitätsdiagramme enthalten, spielen Bedingungen dennoch eine wichtige Rolle – insbesondere bei Extend-Beziehungen.
Eine Bedingung (Condition) beschreibt, unter welcher Voraussetzung ein erweiternder Anwendungsfall ausgeführt wird. Damit kannst du modellieren, dass ein optionaler Ablauf nur in bestimmten Situationen aktiviert wird.
Beispiel: Fehlermeldung bei Zahlungsfehler
Szenario:
Ein Benutzer bezahlt in einem Onlineshop. Der Standardablauf ist die erfolgreiche Zahlungsabwicklung. Tritt jedoch ein Fehler auf, soll dem Benutzer eine Fehlermeldung angezeigt werden.

Modellierung:
- Haupt-Use-Case: “Zahlung durchführen“
- Erweiternder Use-Case: “Fehlermeldung anzeigen“
- Bedingung:
[wenn Zahlung fehlschlägt]
Generalisierung
Wie bei Klassen können auch Akteure und Anwendungsfälle Generalisierungsbeziehungen haben.
-
Zeigt eine “ist-ein”-Beziehungen zwischen Akteuren oder Use Cases
-
Akteure:
-
Ein spezialisierter Akteur erbt die Beziehungen des generischen Akteurs.
-
Anwendungsfälle:
-
Ein spezialisierter Anwendungsfall erbt das Verhalten des generischen Anwendungsfalls und kann es erweitern oder spezialisieren.
-
Notation: Durchgezogene Linie mit offener Pfeilspitze von der spezialisierten zur allgemeinen Rolle.

Beispiel: Premium-Kunde
- Akteur “Premium-Kunde” ist eine Spezialisierung von “Kunde”.
- Anwendungsfall “Bargeld abheben (Premium)” ist eine Spezialisierung von “Bargeld abheben” mit zusätzlichen Funktionen.
Schritte zur Erstellung eines Anwendungsfalldiagramms
Hier ist eine schrittweise Anleitung zur Erstellung eines Use-Case-Diagramms:
1. Systemgrenzen definieren
- Zeichne ein Rechteck für dein System.
- Beschrifte es mit dem Systemnamen.
2. Akteure identifizieren
- Ermittle, wer mit dem System interagiert.
- Zeichne Strichmännchen außerhalb der Systemgrenzen.
3. Use Cases ermitteln
- Identifiziere Hauptfunktionen des Systems.
- Zeichne Ellipsen innerhalb der Systemgrenzen.
4. Assoziationen hinzufügen
- Verbinde Akteure mit ihren Use Cases durch einfache Linien.
5. Beziehungen zwischen Use Cases definieren
- Füge Include- oder Extend-Beziehungen hinzu.
- Verwende entsprechende Pfeile und Beschriftungen.
6. Generalisierungen einführen (falls nötig)
- Verbinde spezielle Arten von Akteuren oder Use Cases mit Generalisierungspfeilen.
Beispiel: Buchungssystem

Systemgrenze:
Das Rechteck (hier mit dem Titel “Buchungssystem“) bildet die Systemgrenze ab.
Rollen (Akteure)
-
Kunde:
-
Greift von außen auf das Buchungssystem zu, hauptsächlich um Zimmer zu reservieren oder Informationen zu erhalten.
-
Mitarbeiter:
-
Greif von außen auf das Buchungssystem zu, um Anfragen zu überprüfen oder Sonderangebote einzupflegen
Zentrale Anwendungsfälle
- Zimmer reservieren
- Haupt-Use-Case für die Buchung eines Zimmers.
- Nutzt (via
<<include>>) den Use Case Informationen einsehen, da für eine Reservierung zuerst Zimmerdetails abgefragt werden müssen.
- Informationen einsehen
- Dient dem Anzeigen von Zimmerdetails, Preisen oder Verfügbarkeiten.
- Wird vom Haupt-Use-Case “Zimmer reservieren“ eingebunden, um relevante Daten zu liefern.
- Reservierung modifizieren und Reservierung stornieren
- Beide “erweitern“ (
<<extend>>) den Haupt-Use-Case “Zimmer reservieren“. - Sie treten optional auf, wenn eine bestehende Reservierung entweder geändert oder gelöscht werden soll.
- Reservierungsanfragen überprüfen
- Mitarbeiter sichten neue oder offene Reservierungen und entscheiden über deren Freigabe.
- Sonderangebote einpflegen
- Mitarbeiter stellt neue Angebote oder Rabatte bereit, damit Kunden sie sehen und buchen können.
Häufige Fehler vermeiden
Beim Erstellen eines Use-Case-Diagramms treten häufig bestimmte Fehler auf, die die Verständlichkeit und Korrektheit des Modells beeinträchtigen können:
- Zu detaillierte Anwendungsfälle: Vermeide technische Details oder Implementierungsaspekte in Anwendungsfällen.
- Fehlende Akteure: Jeder Anwendungsfall sollte mindestens mit einem Akteur verbunden sein.
- Unklare Beziehungen: Verwende Include- und Extend-Beziehungen nur, wenn sie sinnvoll sind, und stelle sicher, dass ihre Richtung und Notation korrekt sind.
- Verwechslung von Extend und Include: Achte darauf, die beiden Beziehungstypen nicht zu verwechseln. Include ist für zwingende Einbeziehungen, Extend für optionale Erweiterungen.
Zusammenfassung und Ausblick
Zusammenfassung
- Anwendungsfalldiagramme bieten eine visuelle Darstellung der funktionalen Anforderungen eines Systems aus der Sicht der Nutzer und helfen, den Umfang und die Interaktionen des Systems zu definieren.
- Systemgrenzen zeigen, welche Funktionen und Anwendungsfälle Teil des Systems sind und welche externen Akteure oder Systeme mit ihm interagieren. Sie sind essenziell, um den Fokus auf die relevanten Bestandteile zu legen und externe Abhängigkeiten zu erkennen.
- Akteure repräsentieren Benutzer oder externe Systeme, die mit dem System interagieren. Sie werden außerhalb der Systemgrenze dargestellt und können sowohl menschliche als auch nicht-menschliche Entitäten sein.
- Anwendungsfälle beschreiben die vom System bereitgestellten Funktionen oder Dienste. Sie stehen im direkten Zusammenhang mit den Akteuren und verdeutlichen, welche Funktionalitäten zur Verfügung gestellt werden.
- Beziehungen innerhalb eines Anwendungsfalldiagramms helfen, Abhängigkeiten zwischen Anwendungsfällen zu strukturieren:
- Include zeigt eine zwingende Abhängigkeit an, bei der ein Anwendungsfall immer einen anderen aufruft.
- Extend modelliert eine optionale Erweiterung eines Anwendungsfalls, die unter bestimmten Bedingungen ausgelöst wird.
- Generalisierung ermöglicht die Vererbung von Eigenschaften zwischen Akteuren oder Anwendungsfällen. Dies hilft, redundante Modellierungen zu vermeiden und Gemeinsamkeiten in der Systemnutzung darzustellen.
- Assoziationen stellen die Verbindungen zwischen Akteuren und Anwendungsfällen dar. Eine Assoziation bedeutet, dass ein Akteur einen bestimmten Anwendungsfall ausführt oder beeinflusst.
- Systemgrenzen und Assoziationen sind zentrale Elemente, um die Struktur des Anwendungsfalldiagramms zu verstehen und klare Verantwortlichkeiten zwischen internen und externen Entitäten zu definieren.
Ausblick:
Während Anwendungsfalldiagramme zeigen, wer mit dem System interagiert und welche Funktionen es bereitstellt, beantworten Klassendiagramme die Frage, wie das System intern strukturiert ist. Sie visualisieren die Klassen, ihre Attribute und Methoden sowie die Beziehungen zwischen ihnen. In der nächsten Lerneinheit beschäftigen wir uns genauer mit Klassendiagrammen und wie sie aufgebaut sind.