Use Case Model <Projekt> Use Case Model ............................................................................................................. 1 <Projekt> ................................................................................................................... 1 1 Überarbeitungen ..................................................................................................... 1 2 Use Cases ............................................................................................................... 1 2.1 Beispiel für „brief format use case“ ............................................................... 1 2.2 Beispiel für „casual format use case“ ............................................................ 1 2.3 Beispiel für „fully dressed use case“ ............................................................. 2 3 System Sequence Diagrams ................................................................................... 7 3.1 UC1: „Abwicklung Verkauf“ ........................................................................ 7 1 Überarbeitungen Version Initialer Entwurf 1.0 Datum Beschreibung 25.3.2004 Erster Entwurf. 12.4.2004 Erweiterung um System Sequence Diagrams Autor Volkan Yavuz Volkan Yavuz 2 Use Cases 2.1 Beispiel für „brief format use case“ [[Ein Use Case beschreibt in der Sprache/dem Vokabular des Anwenders, wie eine typische Nutzung des Systems verläuft, mit der Absicht, ein business goal zu erreichen.]] Abwicklung Verkauf: [[Die Verwendung des aktiv stellt sicher, dass Aussagen hinreichend spezifisch sind; also „Das System erstellt den Beleg“ statt „Ein Beleg wird erstellt.“]] Ein Kunde erscheint mit Einkäufen an der Kasse. Der Kassierer verwendet das POSSystem um jeden Artikel zu erfassen. Das System zeigt eine laufende Summe sowie Details für jeden Artikel an. Der Kunde gibt Zahlungsinformationen an, die das System überprüft und Festhält. Das System aktualisiert den Bestand. Der Kunde erhält einen Beleg vom System und verlässt mit den Artikeln das Geschäft. 2.2 Beispiel für „casual format use case“ Abwicklung Rückgabe Main Success Scenario: Ein Kunde möchte Artikel zurückgeben. Der Kassierer verwendet das POS system um jeden Artikel, der zurückgegeben werden soll, zu erfassen... Alternate Scenarios: Falls mit EC-Karte bezahlt wurde, und die Rückvergütungstransaktion fehlschlägt, wird der Kunde informiert und Bar ausgezahlt. Falls der Artikel über die Artikelnummer im System nicht identifiziert werden kann, den Kassierer benachrichtigen und die manuelle Eingabe (Preis) ermöglichen. Falls das System Fehler in der Kommunikation mit dem externen Buchhaltungssystem feststellt, ... 2.3 Beispiel für „fully dressed use case“ Use Case UC1: Abwicklung Verkauf Primary Actor: Kassierer [[Ein Akteur legt ein Verhalten an den Tag, z.B. eine Person (in einer bestimmten Rolle), ein Computer System, eine Organisation, etc.]] [[Der primärer Akteur, der die Systemdienste nutzt, um ein business goal zu erreichen.]] [[Der Use Case wird aus der Perspektive des primären Akteurs beschrieben.]] Stakeholders and Interests: [[Identifikation der Stakeholders vor dem Schreiben der Szenarien ist methodisch sinnvoll um sicherzustellen, dass tatsächlich alle Anforderungen berücksichtigt sind. Sehr wahrscheinlich wäre die Protokollierung der Verkaufsprovision in einem ersten Schritt vergessen worden, wenn „Vertrieb/Vertreter“ nicht in der Liste der Stakeholder wäre. Details dürfen nur insofern berücksichtigt werden, wie diese zur Erreichung der Interessen der Stakeholder relevant sind. Dadurch wird verhindert, dass innerhalb eines Szenarios technische oder Implementierungsdetails einfließen. ]] Kassierer: o Möchte akkurate und schnelle Erfassung der Artikel und keinerlei Berechnungsfehler, da fehlende Kassenbeträge von seinem Lohn abgezogen werden. Vertrieb/Vertreter: o Möchte Verkaufprovision aktualisiert. Kunde: o Möchte Einkauf zügig und mit möglichst geringem Aufwand. o Möchte Kaufbeleg für eventuelle Rückgaben. Geschäft: o Möchte Verkäufe akkurat dokumentiert und Kundenwünsche befriedigt. o Möchte Zahlungsbestätigungen des Payment Authorization Service protokolliert. o Möchte Fehlertoleranz, damit Verkaufsvorgänge auch bei nicht erreichbaren Server-Komponenten (z.B. entfernte Kartenprüfung) abgeschlossen werden können. o Möchte automatische und schnelle Aktualisierung der Buchhaltung und Bestandsverwaltung. Steuerbehörden: o Möchte Steuern von allen Verkäufen. Payment Authorization Service: o Möchte Zahlungsanfragen im richtigen Format und Protokoll. o Möchte Zahlungen akkurat protokollieren. Auslöser (Trigger): Kunde möchte Artikel kaufen. Vorbedingung (Preconditions): [[Relevante Vorbedingungen werden innerhalb des Use Cases nicht geprüft; es wird davon ausgegangen, dass diese (evtl. als Nachbedindungn in einem anderen Use Case) erfüllt werden. Offensichtliche Vorbedingungen wie „Das System ist eingeschaltet“ sind nicht anzugeben.]] Kassierer ist identifiziert und authentifiziert. Ergebnis (Result): Verkauf ist abgewickelt. Nachbedingungen (Success Guarantee, Postconditions): [[Nach durchlaufen eines Szenarios müssen alle Nachbedingungen erfüllt sein. Diese sind der „Vertrag“ , der die Interessen der Stakeholder erfüllt.]] 1. Verkaufsvorgang ist protokolliert. 2. Steuern sind korrekt berechnet. 3. Buchhaltung und Bestand sind aktualisiert. 4. Provisionen sind protokolliert. 5. Beleg ist erstellt. 6. Zahlungsbestätigungen sind protokolliert. Main Success Scenario (or Basic Flow): [[Ein Szenario beschreibt eine bestimmte Abfolge von Aktionen/Interaktionen zwischen Akteuren und dem zu erstellenden System.]] [[Das Main Success Scenario beschreibt die optimale/ideale/“normale“ Abfolge von Schritten, ohne Berücksichtigung evtl. Fehler oder optionaler Verzweigungen.]] 1. Kunde erscheint mit Einkäufen am POS 2. Kassierer startet neuen Verkaufsvorgang. 3. Kassierer erfasst Artikelnummer. 4. System erfasst Posten und stellt Artikelbeschreibung, Preis und laufende Summe dar. Der Preis wird anhand bestimmter Regeln errechnet. Kassierer wiederholt die Schritte 3 bis 4. 5. System stellt Summe mit Steuern dar. 6. Kassierer nennt Kunden die Summe und fordert Zahlung. 7. Kunde bezahlt; System führt Zahlung durch. 8. System protokolliert den abgeschlossenen Zahlungsvorgang und sendet Verkaufs- und Zahlungsinformationen an das externe Buchhaltungssystem (zwecks Buchhaltung und Provisionen) und die externe Bestandsverwaltung (zwecks Aktualisierung der Bestände). 9. System erzeugt Beleg. 10. Kunde verlässt das Geschäft mit Beleg und Artikeln. Extensions (or Alternative Flows): *a. Jederzeit bei Systemfehlern: Zwecks Fehlerbeseitigung (recovery) and korrekter Buchhaltung, stelle sicher, dass aus sämtlichen Transaktionsbehafteten Zuständen und Ereignissen heraus ein recovery möglich ist. 1. Kassierer startet das System neu, führt Log-In durch und fordert recovery des vorherigen Zustands an. 2. System rekonstruiert vorherigen Zustand a. System stellt Fehler fest, die ein recovery verhindern: i. System signalisiert den Fehler an den Kassierer, protokolliert den Fehler, und wechselt in einen definierten Zustand ii. Kassierer startet einen neuen Verkaufsvorgang 3a. Ungültige Artikelnummer: 1. System signalisiert Fehler und verweigert Eingabe 3b. Derselbe Artikel wird mehrfach erfasst, und es ist nicht erforderlich, dass einzelne Artikel verwaltet werden: 1. Kassierer erfasst die Anzahl des Artikels 3-6a. Kunde bittet den Kassierer, einen Artikel aus dem Einkauf zu entfernen: 1. Kassierer erfasst Artikelnummer zum Entfernen 2. System stellt aktualisierte Summe dar 3-6b. Kunde bittet den Kassierer, den Einkauf abzubrechen: 1. Kassierer bricht Einkauf ab. 3-6c. Kassierer „suspendiert“ den Einkauf: 1. System speichert Einkauf, so dass dieser auf einem anderen POS abgerufen werden kann. 4a. Der vom System ermittelte Preis ist nicht gewünscht (z.B. Beschwerde des Kunden, Preisnachlass wg. Mängel): 1. Kassierer erfasst gewünschten Preis, überschreibt den vom System ermittelten Preis. 2. System stellt neuen Preis dar. 5a. System stellt Fehler in der Kommunikation mit externem Service zur Berechnung der Steuer fest. [[Zu Beachten ist hier die Formulierung „System stellt Fehler... fest“ statt „Externer Service funktioniert nicht“.]] 1. System starten den Service auf dem POS neu und fährt fort. a. System stellt fest, dass der Service nicht neu startet. i. System signalisiert Fehler. ii. Kassierer kann entweder den Steuerbetrag manuell berechnen und erfassen, oder den Verkauf abbrechen. iii. 5b. Kunde fordert Rabatt ein (z.B. Mitarbeiter- oder Kundenrabatt). 1. Kassierer erfasst Rabatt-Wunsch 2. Kassierer erfasst Kundenidentifikation 3. System stellt rabattierte Summe dar, unter Berücksichtigung der Rabatt-Regeln 5c. Kunde möchte vorhandenes Guthaben auf seinem Kundenkonto anrechnen 1. Kassierer erfasst Verrechnungs-Wunsch 2. Kassierer erfasst Kundenidentifikation 3. System berücksichtigt Guthaben, vermindert das vorhandene Guthaben und stellt die aktualisierte Summe dar. 6a. Kunde wollte ursprünglich Bar zahlen, hat aber nicht ausreichend Bargeld bei sich 1a. Kunde wählt alternative Zahlungsart 1b. Kunde möchte Einkauf abbrechen. Kassierer bricht Verkauf am System ab. 7a. Barzahlung 1. Kassierer erfasst den Gegeben-Betrag 2. System stellt den Rückgeld-Betrag dar and öffnet Geldfach. 3. Kassierer hinterlegt Bargeld in Geldfach und gibt dem Kunden das Wechselgeld. 4. System protokolliert Barzahlung. 7b. Zahlung per Kreditkarte [[Diese komplexe Verzweigung ist ein Kandidat für einen gesonderten Use Case.]] 1. Kunde erfasst Kreditkarten Informationen 2. System sendet Zahlungsanforderung an externes Payment Authorization Service System und fordert Zahlungsfreigabe an. 2a. System stellt Fehler in der Kommunikation mit dem externen System fest. 1. System signalisiert Fehler an Kassierer 2. Kassierer fragt Kunde nach alternativer Zahlungsart 3. System erhält Zahlungsfreigabe und signalisiert dies dem Kassierer. 3a. System erhält Ablehnung der Zahlungsanforderung. 1. System signalisiert Ablehnung der Zahlungsanforderung an Kassierer 2. Kassierer fragt Kunde nach alternativer Zahlungsart 4. System protokolliert Kreditkartenzahlung, einschließlich der Zahlungsfreigabe. 5. System ermöglich Unterschreiben der Kreditkartenzahlung. 6. Kassierer bittet Kunden um Unterschrift, Kunde unterschreibt 7c. Zahlung per Scheck... 7d. Zahlung per Rechnung... 7e. Kunde hat Coupons 1. Vor Abwicklung der Zahlung erfasst der Kassierer die Coupons, das System reduziert entsprechend die Summe. System protokolliert die verwendeten Coupons zwecks Buchhaltung. 9a. 9b. 1a. Erfasster Coupon ist für keinen der Artikel des Verkaufs anwendbar. 1. System signalisiert Fehler an Kassierer Auf einzelne Artikel gibt es Rabatt 1. System stellt Rabatt (Wert und Art) für jeden einzelnen Artikel dar. Kunde wünscht einen Geschenk-Beleg (ohne Darstellung der Preise) 2. Kassierer fordert einen Geschenk-Beleg an; System erstellt GeschenkBeleg. Special Requirements: Touch-Screen Benutzungsschnittstelle auf einem Flat-Screen Monitor. Text muss aus einem Meter Entfernung sichtbar und lesbar sein. Freigabe der Kreditkartenzahlung muss in 90% der Fälle innerhalb von 30 Sekunden erfolgen. [[Qualitative Anforderungen wie diese Anforderung bzgl. Der Antwortzeit werden oftmals primär in einem Use Case ermittelt. Es empfiehlt sich, solche Anforderungen, die nicht nur einen spezifischen Use Case betreffen in der Supplementary Specification zu konsolidieren.]] Robuste Fehlerbehandlung (wie auch immer) ist erforderlich für den Fall, dass entfernte externe Systeme (z.B. Bestandsverwaltung) nicht verfügbar sind. Mehrsprachigkeit der dargestellten Texte. Anpassbare, kundenspezifische business rules an den Schritten 3 (Eingabe Artikel) und 7 (Zahlung). ... Technology and Data Variations List: 3a. Artikelidentifikation erfasst durch Laser Bar-Code Scanner oder per numerischer Tastatur. [[Oftmals finden sich hier Vorgaben (d.h. keine Anforderungen) hier. Diese sind mit Vorsicht zu behandeln, da ansonsten eine frühzeitige Festlegung auf Details der technischen Umsetzung erfolgt. In der Realität sind solche Vorgaben aber nicht immer zu vermeiden oder zumindest nachvollziehbar.]] 3b. Artikelidentifikation kann eine beliebige UPC, EAN, JAN, oder SKU sein. 7a. Kreditkarten-Informationen können per Kartenlesegerät oder per numerischer Tastatur erfasst werden. 7b. Unterschrift wird auf Papierbeleg erfasst. Es ist davon auszugehen, dass innerhalb von zwei Jahren bevorzugt eine digitale Erfassung gewünscht sein wird. Frequency of Occurence: Es wird erwartet, dass dieser Use-Case so gut wie ständig/fortlaufend auftritt. Frequency of Change: Es ist zu erwarten, dass Rabattregelungen sich fortlaufend und zusätzlich für jede Filiale stark variieren. Open Issues: Was sind die Unterschiede in der Besteuerung? Die Fehlerbehebung/recover bei der Nutzung externer entfernter Services ist genauer zu Untersuchen. Welches Customizing ist für die verschiedenen Branchen notwendig? Muss ein Kassierer das Geldfach beim Log-Out aus dem POS entnehmen? Kann ein Kunde das Kartenlesegerät selbst bedienen, oder muss das der Kassierer tun? 3 System Sequence Diagrams 3.1 UC1: „Abwicklung Verkauf“ system as black box the name could be "NextGenPOS" but "System" keeps it simple the ":" and underline imply an instance, and are explained in a later chapter on sequence diagram notation in the UML external actor to system Process Sale Scenario :System : Cashier makeNew Sale() box may enlose an iteration area the * [...] is an iteration marker and clause indicating the box is for iteration enterItem(itemID, quantity) description, total * [more items] endSale() return value(s) associated w ith the previous message an abstraction that ignores presentation and medium the return line is optional if nothing is returned total w ith taxes makePayment(amount) change due, receipt a message w ith parameters it is an abstraction representing the system event of entering the payment data by some mechanism