Untitled

Werbung
1
Ein Use Case ist eine zeitlich ununterbrochene Interaktion (ein Arbeitsschritt).
Use Case Namen bestehen aus einem Subjekt und einem Verb wie zum Beispiel
„Daten erfassen“, „Adresse ändern“, „Auto reservieren“, „Konto löschen“, … (oder
Verb/Subjekt in anderen Sprachen: „change address“).
Häufig sind die (System-) Anwendungsfälle die computerunterstützten Teile der
Geschäftsprozesse.
Use Cases
2
Es werden mit dem Use Case Diagramm aber keine Abläufe und kein Verhalten
beschrieben.
Use Cases
3
Die einzelnen Use Cases können später noch verfeinert und aufgegliedert werden.
Kunde erfassen --> Name erfassen, Geburtsdatum erfassen, Rechnungs-Adresse
erfassen, Liefer-Adresse erfassen, …
Das Use Case Diagramm beschreibt nicht, wie die Umsetzung oder Realisierung
dieser Use Cases geschehen soll.
Zur Ablaufbeschreibung von Use Cases dienen Verhaltens- oder
Interaktionsdiagramme (Aktivitätsdiagramm, Zustandsdiagramm,
Sequenzdiagramm, …)
Use Cases
4
Das Use Case Diagramm kann helfen, die verschiedenen benötigten Masken
anzudenken. Diese werden aber nicht hier definiert. Es sollen keine Details der
Benutzeroberfläche (wie z.B. eine Save-Taste, welche zum Speichern gedrückt
werden soll) vorweggenommen werden.
Im Zentrum steht allein der Nutzen des Systems für den Benutzer.
Use Cases
5
Ein Geschäftsanwendungsfall beschreibt einen Anwendungsfall in abstrakter
fachlicher Form aus Sicht des Anwenders. Aus einem fachlichen
Geschäftsanwendungsfall (Ferien planen) können sich mehrere konkrete
Systemanwendungsfälle ergeben (Hotelzimmer reservieren, Flug buchen,
Informationsmaterial bereitstellen, …)
Der Systemanwendungsfall bündelt alle möglichen Fälle (Szenarien), die eintreten
können, wenn ein Akteur versucht, ein bestimmtes Ziel zu erreichen (Kundendaten
erfassen, Konto eröffnen, Bestellung bearbeiten, …). Man spricht hier oft auch von
einem primären Anwendungsfall.
Sekundäre Anwendungsfälle sind normalerweise Teil eines anderen
Systemanwendungsfalls und haben keine eigenes unabhängiges Ziel (HilfsAufgaben).
Der Anwendungsfall beschreibt nur sehr grob, was beim Versuch der Zielerreichung
passieren kann und abstrahiert von konkreten technischen Lösungen.
Use Cases
6
Ein Akteur (actor) ist eine an verschiedenen Use Cases beteiligte, aber außerhalb
des zu realisierenden Systems agierende Einheit.
Normalerweise ist ein Akteur ein Mensch, ein technisches System oder ein Ereignis.
Akteure werden nicht personifiziert, relevant ist nur ihre Rolle in diesem Umfeld.
Akteure können untereinander Generalisierungs- oder SpezialisierungsBeziehungen haben.
Akteure werden normalerweise als Strichmännchen, Zeitereignis-Akteure
manchmal auch als Uhr, Fremdsystem Akteure als Würfel oder als Box gezeichnet.
Akteure können eine Multiplizität haben. Diese gibt an, wie viele Akteure der
angegebenen Rolle am Anwendungsfall beteiligt sein müssen (Default Wert: 1).
Auf der Seite des Anwendungsfalls gibt die Multiplizität an, wie oft dieser
Anwendungsfall gleichzeitig ausgeführt werden darf (Default Wert: 0..1).
Use Cases
7
Jeder Akteur und jedes Fremdsystem benötigt eine Schnittelle zum System. Bei
menschlichen Akteuren braucht es ein User Interface, andernfalls muss das nötige
technische Interface bestimmt werden.
Use Cases
8
Fehlen die Multiplizitätsangaben, geht man von den Default-Werten 1 beim Akteur
und 0..1 beim Anwendungsfall aus.
Use Cases
9
Der enthaltene Anwendungsfall ist oft ein sekundärer Anwendungsfall (vgl. Beispiel
oben). Sekundäre Anwendungsfälle werden nur indirekt, durch einen primären
Anwendungsfall benutzt.
Ein Systemanwendungsfall kann aber ebenfalls in einer Include Beziehung zu einem
anderen Anwendungsfall stehen.
Beispiel: Der Gast möchte etwas essen (und trinken) oder nur etwas trinken.
Use Cases
10
Die Erweiterung ist von einer Bedingung abhängig, diese muss angegeben werden.
Die Bedingung (Erweiterungspunkt, extension point) wird als Notiz neben den
Anwendungsfall geschrieben.
Vorsicht! Die umgekehrte Pfeilrichtung im Diagramm gibt oft zu Fehlern Anlass.
Eine andere Schreibweise erlaubt das Anbringen der Bedingungen im Use Case
selber. Dies ist aber unübersichtlich und darum nicht empfehlenswert.
Use Cases
11
Eine Generalisierung oder Vererbung (engl. Generalization) kann in
Anwendungsfalldiagrammen zwischen Akteuren oder Anwendungsfällen modelliert
werden und definiert eine Beziehung zwischen einem spezifischen (spezialisierten)
und einem allgemeinen (abstrakten) Element.
Use Cases
12
Die Vererbung von Use Cases wird relativ selten verwendet. Häufiger findet man
die Vererbung/Spezialisierung auf der Seite der Akteure, um damit die Rechte der
Akteure (welche Rolle darf was) zu spezifizieren.
Use Cases
13
Jeder Anwendungsfall braucht (direkt oder indirekt) einen Akteur, welchen den
Anwendungsfall anstösst.
Ein Akteur darf nicht eine konkrete Person sein, sondern muss eine Rolle oder ein
System repräsentieren (Customer, Consultant, Assistant, Accountant, …).
Der Name des Anwendungsfalls sollte von der Art „Verb Subjekt“ sein, also zum
Beispiel „create Account“, „send Message“, „print Report“, …
Der Name des Anwendungsfalls sollte so formuliert sein, dass man ihn im der
Ablaufbeschreibung direkt benutzen kann: „The system has to create an account,
send a message, and print a report“,
Use Cases
14
Diese Auflistung ist nicht vollständig und nicht Teil von UML.
Es bewährt sich, bei der Anwendungsfall Beschreibung gewisse Formalismen
einzuhalten, damit nichts Wichtiges vergessen geht.
• Ein Auslöser ist eine äusseres Ereignis, das den Anwendungsfall auslöst (z.B. ein
Gast möchte etwas Essen).
• Eine Vorbedingung beschreibt den Zustand des Systems, bevor der
Anwendungsfall eintritt (eintreten kann).
• Nachbedingung, Resultat (Ergebnis) ist das, was dem Akteur geliefert wird (z.B.
die Bedienung hat die Bestellung entgegen genommen).
• Essentielle Schritte sind die einzelnen Ablaufschritte, welche eventuell genauer
mit Hilfe eines Verhaltensdiagramms (Zustandsdiagramm, Aktivitätsdiagramm, …)
beschrieben werden ( Verweis auf entsprechendes Diagramm).
• Ausnahmen, Fehlersituationen (Anwenderfehler, fachliche Fehler, z.B. fehlende
Berechtigung, Eingabedaten fehlen, …).
Weitere mögliche Angaben sind:
• Invarianten (Bedingungen, welche stets erfüllt sind/sein müssen).
• Nicht funktionale Anforderungen (Plattform Voraussetzungen, qualitative/
quantitative Aussagen, Antwortzeiten, Prioritäten, Häufigkeitsschätzungen,
Benutzbarkeit, Änderbarkeit, …).
•Eingabedaten wie ID des Gastes oder des Tisches.
Use Cases
15
Ein Use-Case Diagramm enthält zwar rudimentäres Wissen über das System und
seine Akteure. Allerdings beschränkt sich die Information bei Use-Case
Diagrammen hauptsächlich auf den Namen des Use-Case und die beteiligten
Akteure.
Für detailliertere Informationen über die Use-Cases benutzt man die Use-Case
Beschreibungen. Diese werden üblicherweise in einer Tabelle aufgelistet. Der Inhalt
der Use-Case Beschreibung, also die auszufüllenden Felder in der Tabelle können
dabei (je nach gewünschtem/nötigem Detaillierungsgrad) variieren.
Im diesem Beispiel sind die essentiellen Inhalte einer Use-Case Beschreibung
enthalten. Es zeigt das empfohlene Minimum an Informationen in einer Use-Case
Beschreibung.
Use Cases
16
Es empfiehlt sich zuerst festzulegen, welche der vorhin aufgelisteten Punkte in
unserer Use Case Beschreibung verwendet werden sollen.
Use Cases
17
Als Test werden für jeden Anwendungsfall sogenannte Szenarien erstellt. In diesen
wird ein konkreter Vorgang (mit konkreten Werten) detailliert beschrieben, und
zwar so wie der Benutzer ihn am Ende im System durchführen wird (BenutzerInteraktion).
Es kann für einen Anwendungsfall mehrere Szenarien (für alle Varianten von
Abläufen) geben.
Szenarien dienen dazu, den Anwendungsfall detailliert und aus verschiedenen
Perspektiven zu betrachten. So wird verhindert, dass wichtige Funktionen des
Systems übersehen werden.
Aus den Szenarien können auch direkt die Test-Fälle für diesen Use Case abgeleitet
werden.
Use Cases
18
Use Case Szenarien dienen als Grundlage für Ablauf-Tests. Falls hier alle möglichen
Ablaufe genau dokumentiert sind, kann der Tester daraus die Testfälle ablesen und
entsprechend implementieren/durchführen.
Use Cases
19
20
Use Cases
21
Use Cases
22
Use Cases
23
Use Cases
24
Use Cases
25
Herunterladen