Use-Case-Diagramm¶
Kurzüberblick¶
Ein Use-Case-Diagramm beschreibt, welche fachlichen Funktionen ein System aus Sicht von Benutzern oder externen Systemen bereitstellt.
Es gehört zur Anforderungsanalyse und beantwortet vor allem diese Fragen:
- Wer nutzt das System?
- Welche fachlichen Ziele verfolgen diese Nutzer?
- Welche Leistungen stellt das System dafür bereit?
Ein Use-Case-Diagramm zeigt nicht, wie das System intern technisch umgesetzt wird. Es modelliert also keine Klassen, keine Datenbanktabellen, keinen Programmcode und keine Benutzeroberflächen im Detail.
Einordnung in UML¶
Das Use-Case-Diagramm ist ein UML-Diagramm zur fachlichen Sicht auf ein System. Es hilft dabei, Anforderungen verständlich darzustellen, bevor die technische Umsetzung geplant wird.
Damit ist es besonders nützlich in frühen Projektphasen, zum Beispiel bei:
- Anforderungsaufnahme
- Fachkonzept
- Kommunikation mit Auftraggebern
- Abgrenzung des Systemumfangs
Kernelemente¶
1. Akteur¶
Ein Akteur ist eine Rolle außerhalb des Systems, die mit dem System interagiert.
Typische Beispiele:
- Kunde
- Administrator
- Mitarbeiter
- Zahlungsdienst
- externes Buchhaltungssystem
Wichtig:
Ein Akteur ist keine konkrete Person, sondern eine Rolle.
Also nicht:
- „Max Mustermann“
sondern:
- „Kunde“
- „Sachbearbeiter“
2. Use Case¶
Ein Use Case beschreibt eine fachliche Funktion oder einen fachlichen Anwendungsfall, der für einen Akteur einen erkennbaren Nutzen liefert.
Beispiele:
- Konto registrieren
- Produkt suchen
- Bestellung aufgeben
- Rechnung anzeigen
- Passwort zurücksetzen
Ein Use Case beschreibt also nicht einzelne Klicks, sondern ein fachliches Ziel.
3. Systemgrenze¶
Die Systemgrenze wird als Rechteck dargestellt und zeigt, was zum betrachteten System gehört.
- Innerhalb der Systemgrenze liegen die Use Cases.
- Außerhalb der Systemgrenze liegen die Akteure.
Die Systemgrenze ist wichtig, weil sie klar macht:
- Was gehört zu unserem System?
- Was gehört zur Umgebung?
- Welche Rollen oder Fremdsysteme greifen von außen darauf zu?
4. Beziehungen¶
Zwischen Akteuren und Use Cases sowie zwischen Use Cases selbst gibt es verschiedene Beziehungsarten.
Assoziation¶
Eine Assoziation zeigt, dass ein Akteur einen Use Case nutzt.
Beispiel:
- Kunde — Bestellung aufgeben
<<include>>¶
<<include>> bedeutet:
- ein Use Case enthält verpflichtend einen anderen Use Case
- dieser Teilablauf wird immer ausgeführt
- häufig genutzt für wiederverwendbare Standardabläufe
Beispiel:
Bestellung aufgebenincludeBenutzer authentifizieren
<<extend>>¶
<<extend>> bedeutet:
- ein Use Case erweitert einen anderen optional oder nur unter bestimmten Bedingungen
- der Basis-Use-Case funktioniert grundsätzlich auch ohne diese Erweiterung
Beispiel:
Rabatt anwendenextendZahlung durchführen
Generalisierung¶
Eine Generalisierung beschreibt Vererbung bzw. Spezialisierung bei:
- Akteuren
- Use Cases
Beispiel bei Akteuren:
Mitarbeiterals allgemeine RolleAdministratorals spezialisierte Rolle
Include vs. Extend¶
Diese Unterscheidung ist besonders prüfungsrelevant.
<<include>>¶
Eigenschaften:
- verpflichtend
- immer Bestandteil des Basis-Use-Cases
- dient der Wiederverwendung gemeinsamer Schritte
Beispiel:
Bestellung aufgebenkannBenutzer authentifizierenenthalten, wenn eine Anmeldung immer erforderlich ist
<<extend>>¶
Eigenschaften:
- optional oder bedingt
- ergänzt einen bestehenden Use Case
- wird nur in bestimmten Fällen ausgeführt
Beispiel:
Rabatt anwendentritt nur dann auf, wenn ein gültiger Gutschein vorhanden ist
Merksatz¶
- Include = Pflichtbaustein
- Extend = optionale Erweiterung
Gegenüberstellung¶
| Beziehung | Bedeutung | Ausführung |
|---|---|---|
<<include>> |
ausgelagerter Pflichtteil | immer |
<<extend>> |
optionale Erweiterung | nur bei Bedingung |
Fachlich saubere Modellierung¶
Ein gutes Use-Case-Diagramm konzentriert sich auf den fachlichen Nutzen und nicht auf technische Details.
Gute Formulierungen für Use Cases¶
- Produkt suchen
- Bestellung aufgeben
- Benutzer anmelden
- Rechnung herunterladen
Schlechte Formulierungen¶
- Button klicken
- Formular öffnen
- Datenbank aktualisieren
- API aufrufen
Warum sind diese schlecht?
Weil sie zu technisch oder zu kleinteilig sind. Ein Use-Case-Diagramm soll die Anforderungen aus fachlicher Sicht beschreiben, nicht die Benutzeroberfläche oder die Implementierung.
Beispieldiagramm: Onlineshop¶
flowchart LR
Kunde([Kunde])
Admin([Administrator])
Payment([Zahlungsdienst])
subgraph S[System: Onlineshop]
UC1((Produkt suchen))
UC2((Bestellung aufgeben))
UC3((Benutzer authentifizieren))
UC4((Zahlung durchführen))
UC5((Rabatt anwenden))
UC6((Produkt verwalten))
end
Kunde --- UC1
Kunde --- UC2
Kunde --- UC4
Admin --- UC6
Payment --- UC4
UC2 -. "<<include>>" .-> UC3
UC5 -. "<<extend>>" .-> UC4
Hinweis: Mermaid bildet UML-Use-Case-Diagramme nur annähernd nach. Für Lernunterlagen und Notizen ist das meist ausreichend, auch wenn es keine vollständige UML-Notation ersetzt.
Erklärung des Beispiels¶
Im Beispiel gibt es drei Akteure:
- Kunde
- Administrator
- Zahlungsdienst
Das System ist der Onlineshop.
Fachliche Bedeutung der Use Cases¶
- Produkt suchen: Kunde durchsucht das Sortiment
- Bestellung aufgeben: Kunde bestellt ausgewählte Produkte
- Benutzer authentifizieren: Anmeldung oder Identitätsprüfung
- Zahlung durchführen: Bezahlung der Bestellung
- Rabatt anwenden: optionaler Zusatz bei vorhandener Rabattmöglichkeit
- Produkt verwalten: Administrator pflegt das Sortiment
Beziehungen im Beispiel¶
- Der Kunde nutzt
Produkt suchen,Bestellung aufgebenundZahlung durchführen. - Der Administrator nutzt
Produkt verwalten. - Der Zahlungsdienst ist ein externer Akteur, der bei
Zahlung durchführenbeteiligt ist. Bestellung aufgebenincludeBenutzer authentifizieren, wenn die Anmeldung zwingend erforderlich ist.Rabatt anwendenextendZahlung durchführen, weil dies nur in bestimmten Fällen passiert.
Praktisches Beispiel aus der Praxis¶
Szenario: Online-Ticketshop¶
Ein Ticketshop verkauft Konzertkarten. Beteiligte Rollen sind:
- Kunde
- Administrator
- externer Zahlungsanbieter
Mögliche Use Cases:
- Veranstaltung suchen
- Ticket auswählen
- Ticket kaufen
- Bezahlen
- Rechnung abrufen
- Veranstaltung verwalten
Fachlich sinnvoll wäre zum Beispiel:
Ticket kaufenincludeBezahlenGutschein einlösenextendBezahlen
Warum?
- Bezahlen ist ein notwendiger Bestandteil des Ticketkaufs.
- Ein Gutschein ist nur ein optionaler Zusatzfall.
Modellierungsregeln¶
Für gute Use-Case-Diagramme gelten einige Grundregeln.
1. Use Cases als Ziele formulieren¶
Ein Use Case sollte immer ein fachliches Ergebnis oder Ziel ausdrücken.
Gut:
- Konto erstellen
- Bestellung abschicken
Nicht gut:
- Eingabefeld ausfüllen
- Weiter-Button klicken
2. Akteure sind Rollen¶
Akteure sind Rollen oder externe Systeme, keine konkreten Personen und keine internen technischen Komponenten.
3. Systemgrenze nicht vergessen¶
Ohne Systemgrenze ist unklar, was zum betrachteten System gehört und was extern ist.
4. Nicht zu viel Detail in ein Diagramm packen¶
Zu große Diagramme werden unübersichtlich. Dann sind mehrere kleinere Diagramme oft besser.
5. include und extend nur bewusst verwenden¶
Diese Beziehungen sind nützlich, werden aber oft falsch eingesetzt. Man sollte sie nur verwenden, wenn der Unterschied fachlich wirklich klar ist.
Häufige Fehler¶
Technische Komponenten als Akteure modellieren¶
Ein internes Modul oder eine Datenbank ist normalerweise kein Akteur, wenn es Teil des Systems ist.
Falsch:
- Datenbank als Akteur, obwohl sie innerhalb des Systems liegt
Richtig:
- nur externe Systeme oder Rollen außerhalb der Systemgrenze als Akteure darstellen
Zu technische Use Cases¶
Ein Use Case wie „Button klicken“ beschreibt keinen fachlichen Nutzen.
Use Cases müssen fachlich formuliert sein, zum Beispiel:
- Rechnung anzeigen
- Bestellung stornieren
<<include>> und <<extend>> verwechseln¶
Ein häufiger Fehler:
includefür optionale Abläufe verwendenextendfür verpflichtende Teilschritte verwenden
Merke:
- Pflicht = include
- optional = extend
Systemgrenze fehlt¶
Dann ist nicht klar, welches System überhaupt modelliert wird.
Zu viele Details in einem Diagramm¶
Ein einzelnes Diagramm soll einen verständlichen Überblick geben. Zu viele Akteure und Use Cases machen es schwer lesbar.
Prüfungsrelevanz (AP1)¶
Das Use-Case-Diagramm ist ein klassisches Thema in der Anforderungsanalyse und deshalb gut für AP1 geeignet.
Typische Prüfungsfragen¶
- Was beschreibt ein Use-Case-Diagramm?
- Was ist ein Akteur?
- Was ist ein Use Case?
- Warum ist die Systemgrenze wichtig?
- Was ist der Unterschied zwischen
<<include>>und<<extend>>? - Warum zeigt ein Use-Case-Diagramm kein technisches Design?
Kurzantworten¶
Was beschreibt ein Use-Case-Diagramm?
Es beschreibt die fachlichen Anforderungen eines Systems aus Sicht von Nutzern oder externen Systemen.
Was ist ein Akteur?
Ein Akteur ist eine externe Rolle, die mit dem System interagiert.
Was ist ein Use Case?
Ein Use Case ist eine fachliche Funktion bzw. ein Anwendungsfall mit erkennbarem Nutzen für einen Akteur.
Warum ist die Systemgrenze wichtig?
Sie zeigt, was zum System gehört und was außerhalb liegt.
Unterschied <<include>> und <<extend>>?
<<include>> ist verpflichtend, <<extend>> ist optional oder bedingt.
Warum kein technisches Design?
Weil Use-Case-Diagramme Anforderungen auf hoher Ebene modellieren, nicht die technische Umsetzung.
Merksätze¶
- Use-Case-Diagramme zeigen fachliche Anforderungen, nicht Technik.
- Akteure sind Rollen außerhalb des Systems.
- Use Cases beschreiben Ziele mit Nutzen.
- Include = Pflichtteil.
- Extend = optionale Erweiterung.
- Die Systemgrenze trennt System und Umgebung.
Zusammenfassung¶
Ein Use-Case-Diagramm ist ein UML-Diagramm zur Darstellung von Anforderungen aus fachlicher Sicht. Es zeigt:
- welche Akteure mit dem System interagieren
- welche Use Cases das System bereitstellt
- wie diese funktional zusammenhängen
Zentrale Bestandteile sind:
- Akteure
- Use Cases
- Systemgrenze
- Beziehungen wie Assoziation,
<<include>>,<<extend>>und Generalisierung
Für die Prüfung ist besonders wichtig:
- den fachlichen Zweck des Diagramms zu verstehen
- Akteure und Use Cases korrekt zu unterscheiden
<<include>>und<<extend>>sauber auseinanderzuhalten- technische Details nicht mit fachlicher Modellierung zu vermischen
Übungsaufgaben¶
- Erkläre in eigenen Worten, was ein Use-Case-Diagramm beschreibt.
- Nenne drei mögliche Akteure für ein Bibliothekssystem.
- Formuliere fünf fachlich sinnvolle Use Cases für einen Onlineshop.
- Erkläre den Unterschied zwischen
<<include>>und<<extend>>an einem eigenen Beispiel. - Zeichne ein einfaches Use-Case-Diagramm für ein Ticketsystem.
- Prüfe folgende Formulierung: „Button klicken“ – warum ist das kein guter Use Case?
- Beschreibe, warum die Systemgrenze für die Modellierung wichtig ist.
- Nenne einen häufigen Fehler bei der Modellierung von Use-Case-Diagrammen und erkläre, wie man ihn vermeidet.