Folien



(letzte Synchronisation der PDF-Präsentation: 02.03.2017)

Falls keine PDF-Präsentation zu sehen ist, klicken Sie zum Download hier: Direktdownload PDF-Präsentation

Use-Case-Diagramme (deutsch: Anwendungsfalldiagramme) dienen dazu, die Mensch-Maschine-Interaktion zu veranschaulichen. Welche Akteure gibt es, welche Prozesse muss das System bewältigen, wie interagieren die Akteure und die Prozesse?

Use-Case-Diagramme beschreiben das System aus SICHT DES BENUTZERS. Die inneren Abläufe der Use-Cases werden NICHT abgebildet, das geschieht bspw. durch Aktivitätsdiagramme oder in textlicher Form (Pflichtenheft).

Die Begriffe "Use-Case" und "Anwendungsfall" sind vollständig synonym zu verstehen und zu gebrauchen.

Als grundlegendes Vorgehen empfiehlt sich diese Abfolge:

  1. Welche Akteure gibt es?
  2. Welche Anwendungsfälle ("Situationen", "Funktionen") gibt es?
  3. Welche Beziehungen zwischen Akteuren und Anwendungsfällen (oder: zwischen Anwendungsfällen) gibt es?

Grundlagen: Akteure, Beziehungen, Use-Cases

Akteure werden als Strichmännchen gezeichnet, Anwendungsfälle als Ellipsen, die Beziehungen (= Assozationen) zwischen Akteuren und Anwendungsfällen als (beschriftete) Linie:

Grundlagen von Use-Case-Diagrammen: Akteure, Beziehungen, Anwendungsfälle

Als Akteure verstehen wir erst mal nur Menschen, es können aber auch andere Systeme, Ereignisse ... sein.

Unterscheidung: Akteur, System

Es wird grundsätzlich zwischen Akteuren und dem System (oder: den Systemen; den Subsystemen ...) unterschieden. Das System (also die zu entwickelnde Software) befindet sich in einem Rechteck, die Akteure interagieren von außerhalb:

Unterscheidung Akteur - System

Es ist wichtig zu verstehen, dass bei Use-Case-Diagrammen auch die Übersichtlichkeit eine wichtige Rolle spielt. Man sollte nicht zu detailliert ans Werk gehen (siehe Beispiel "Soziales Netzwerk" unten).

Beziehung zwischen Akteur und Use-Case

Die Beziehungen zwischen Akteur und Use-Case werden durch eine durchgezogene, optional beschriftete Linie dargestellt. Der Akteur löst einen Use-Case (also einen Prozess, eine Funktion) aus:

Akteur löst Anwendungsfall aus

Beziehungen zwischen Use-Cases: include

Der Use-Case, auf den der Pfeil zeigt, ist zwangsläufig und immer (!) Teil des auslösenden Use-Cases. Im folgenden Beispiel: Nach korrekter Eingabe der Geheimzahl wird immer die Sperrliste abgefragt:

Use-Case: include

Beziehungen zwischen Use-Cases: extend

Der Use-Case, bei dem die Linie startet, erweitert möglicherweise (!) den Use-Case, auf den die Pfeilspitze zeigt, allerdings (im Gegensatz zum include) nicht immer. Die Bedingung dafür wird über eine Notiz an die Verbindungslinie angeheftet (mit einem sog. "Connector", einer gestrichelten Linie). In der Notiz wird die Bedingung im Format "Condition: {Bedingung}" festgehalten, außerdem wird der Extension Point angegeben (s.u.).

Die Bedingung kann als Pseudocode oder in Freitext / Stichwörtern angegeben werden. Wichtig ist, dass die Situation klar abgebildet wird.

Wenn ein Use-Case mehrere mögliche Erweiterungen enthält, werden Extension Points angegeben. Im (evtl.) erweiterten Use-Case kann man so sehen, welche Erweiterungen möglicherweise eintreten, in den Bedingungsnotizen zeigt der Extension Point, welcher Use-Case beim Eintreten der Bedingung als Erweiterung verwendet wird.

Use-Case: extend

Beispiel

Ein sehr einfaches Use-Case-Diagramm ist hier zu sehen:

Beispiel für ein Use-Case-Diagramm

Man sieht, dass das geplante Soziale Netzwerk 5 wesentliche Use-Cases hat, die realisiert werden müssen. Das Diagramm ist überaus grob, wie detailliert man es macht, hängt von zahlreichen Faktoren ab: Brauchen wir das Diagramm als verbindliche Grundlage für ein Pflichtenheft? Arbeiten wir für uns selbst oder für einen Auftraggeber? Ist es ein Einzel- oder Gruppenprojekt? Welchen Erfahrungshorizont haben wir? Gibt es evtl. vorgefertigte Bausteine, die wir verwenden können (z.B. Login-Routine, Profilverwaltungsroutine ...).

Übungen

Alle Übungen finden Sie in der Materialsammlung (dort auch alle zusätzlichen Dateien wie Bilder, Klassendiagramme oder HTML-Vorlagen!).

Die aktuelle Übung können Sie hier als txt-File herunterladen.


***** Übungen: OOP/UML - Use-Case-Diagramme *****


OOP/UML_6-1: Use-Case-Diagramm für "Rechner herunterfahren"

Erstellen Sie zu der folgenden Anforderung ein Use-Case-Diagramm:

Sie fahren Ihren Rechner herunter, indem Sie "Start" -> "Herunterfahren" wählen.

Das System beendet dann alle Programme und fährt herunter.

Manchmal kommt es vor, dass ein Programm abstürzt und das System nicht heruntergefahren werden kann. Dann erhält der User den "Sofort beenden" Dialog.




OOP/UML_6-2: Use-Case-Diagramm "doodle"

Erstellen Sie zu der folgenden Anforderung ein Use-Case-Diagramm:

Bei http://www.doodle.com können gemeinsam Termine geplant werden.

Surfen Sie dort vorbei und erstellen Sie ein Use-Case-Diagramm für die grundlegenden Anwendungsfälle.

Beachten Sie dabei, dass mehrere Akteure beteiligt sind.




OOP/UML_6-3: Use-Case-Diagramm 'Geldautomat'

Erstellen Sie zu der folgenden Anforderung ein Use-Case-Diagramm:

Ein Kunde kann am Geldautomat seinen Kontostand abfragen oder Geld abheben (ab 50 Euro in 50-Euro-Schritten).

Der Kunde braucht eine Bankkarte und eine PIN (personal identification number), um das System nutzen zu können.

Das System verbindet sich mit einem zentralen Bankserver um Details zu Kunde und Konto zu erfahren (Kontostand, korrekte Geheimzahl etc.).

Der Geldautomat stellt keine Quittungen aus.

Der Geldautomat wird von professionellem Servicepersonal gewartet.