Software Engineering Labor-Übung, LVNr: 050052/3 Übungsleiter: Martin Köhler Dokument: Anforderungsanalyse und Use Case Modell I v.2.0 Projekttitel: Reisebuchungsplattform Gruppenmitglieder: MatNr: a0728453 a0607902 a9949221 a0909548 Nachname: Haider Kircanski Savov Schwarzhans Vorname: Jasmin Nenad Andreas Florian e-mail: [email protected] [email protected] [email protected] [email protected] Datum: 11.01.2011 1 1 Anforderungsanalyse 1.1 Funktionale Anforderungen Zuerst haben wir in Einzelarbeit die unterschiedlichen Bereiche der Reisebuchungsplattform betrachtet und uns überlegt, was wir uns als Kunde davon erwarten würden. Außerdem haben wir online recherchiert, welche Services bei aktuellen Reisewebsites und bei den Websites größerer Fluggesellschaften angeboten werden. Beschreiben Sie wie die funktionalen Anforderungen erhoben worden sind Brainstorming Befragung von Endbenutzen (Interviews) Analogien (Erfahrungen aus gleichartigen Systemen) etc. 1.1.1 Beschreibung der Funktionalität Beschreiben Sie die grundlegende Funktionalität des zu erstellenden Systems. Beantworten Sie die Frage WAS Ihr Softwaresystem leisten soll und nicht WIE die Funktionalität erreicht werden soll. Entsprechend der Aufgabenstellung soll die Buchungsplattform es ermöglichen, Buchungen von Flugtickets, Mietautos, Hotelaufenthalten und Freizeitaktivitäten durchzuführen. Die Angebote können mittels Detail-Suchen ausgewählt werden. Die Ergebnisse kann man entweder für einen beschränkten Zeitraum reservieren oder sofort buchen. Man kann sich entweder als normaler Benutzer einloggen oder als Manager. Ein Benutzer kann einen Flug , ein Hotel, ein Auto oder eine Freizeitaktivität buchen. Ein Manager kann die vom System zur Verfügung gestellten Angebote verwalten. 1.1.1.1 Flug buchen Um Flüge zu buchen, soll der User die Möglichkeit haben, seinen Abflugsort und seinen Zielort wählen zu können. Hierbei sollen nur tatsächlich angeflogenene Zielflughäfen zur Auswahl stehen. Desweiteren kann der User komfortabel über einen Kalender das Abflugs- und Rückreisedatum inkl. Wochentag auswählen. Eine weitere Option soll sein, zwischen Einzelflug und Hin- & Rückflug als Kombination wählen zu können. Um zusätzlich einen Gesamtüberblick über Kosten zu erhalten soll von Anfang an die Anzahl der zu reisenden Personen angegeben werden können und bei der Ergebnisdarstellung sowohl der Gesamtpreis als auch der Preis pro Person aufgelistet sein. Die Ergebnisliste soll eine Übersicht über alle möglichen Flüge vom Abflughafen zum Zielflughafen im angegebenen Zeitraum sein. Hierbei sollen dem Kunden sowohl die vorraussichtlichen Abflugs- und Ankunftszeiten sowohl die daraus berechnete Dauer und eventuelle Anzahl an Stops angezeigt werden. Zusätzlich soll der User hier weitere Informationen zum Flug (wie Flugnummer, Airline, …) angezeigt bekommen und selbstverständlich die Kosten aufgelistet sein. Von dieser Übersichtsliste aus kann er nun einen Flug direkt buchen und wird zur “Payment”Seite weitergeleitet. 2 Hier werden nun noch einmal alle Details zum Flug sowie zu den Kosten angeführt und anschließend Kontodaten verlangt. Abschließend erhält der User eine Bestätigung über die Buchung. 1.1.1.2 Hotel buchen Um einen Hotelaufenthalt zu buchen, muss der User zunächst einmal die gewünschte Region auswählen, wo er den Aufenthalt denn buchen möchte. Über eine Kalender Funktion kann dann das gewünschte An- bzw Abreise Datum festgelegt werden. Im weiteren Feld folgt dann eine Reihe von Optionen, welche die Suche einschränken. So kann zum Beispiel die Qualität des Hotels bestimmt werden (wie viele Sterne), die Anzahl der Zimmer, ob Meeresblick vorhanden ist, bzw sich das Hotel in Gehreichweite vom Meer befindet, ob es über eine interne Poolanlage verfügt, etc… Außerdem wird in diesem Feld auch die Anzahl der Personen angegeben. Wenn die Eingaben bestätigt werden, sucht das System die passenden Treffer und zeigt diese an, wobei hier vor allem Hotelkette, Preis pro Person pro Tag, Gesamtpreis und relevante Informationen über das Hotel und Zimmer angezeigt werden. Wählt man nun ein Angebot aus, kann man den Hotelaufenthalt direkt buchen und wird zur “Payment”-Seite weitergeleitet. Hier werden nun noch einmal alle Details zum Hotel und den Kosten angeführt und anschließend Kontodaten verlangt. Abschließend erhält der User eine Bestätigung über die Buchung. 1.1.1.3 Auto mieten Um ein Auto mieten zu können, muss der User zunächst einmal die gewünschte Region auswählen, wo er das Auto entgegen nehmen möchte. Optional kann auch eine andere Region für die Rückgabe gewählt werden, wenn dies nicht geschieht wird vom System erstere Region als Rückgabe Region gewählt. Über eine Kalender Funktion kann dann das gewünschte Abhol- und Rückgabe Datum festgelegt werden. Im weiteren Feld folgt dann eine Reihe von Optionen, welche die Suche einschränken. So kann zum Beispiel die Automarke und das Modell bestimmt werden. Außerdem steht eine Reihe an Ausstattungspaketen zur Verfügung, welche an- bzw abgehakt werden können. (zb Klima, Automatik, el Fensterheber, Navi, Bordcomputer, Lederausstattung, etc…) Wenn die Eingaben bestätigt werden, sucht das System die passenden Treffer und zeigt diese an, wobei hier sämtliche relevanten Daten über das Fahrzeug, aber auch Preis pro Tag und Aufpreis pro 100km angezeigt werden. Wählt man nun ein Angebot aus, kann man das Auto direkt mieten und wird zur “Payment”-Seite weitergeleitet. Hier werden nun noch einmal alle Details zum Auto und dessen Kosten angeführt und anschließend Kontodaten verlangt. Abschließend erhält der User eine Bestätigung über die Miete. 3 1.1.1.4 Freizeitaktivität buchen Um eine Freizeitaktivität buchen zu können, muss der User zunächst einmal den gewünschten Ort angeben, wobei zusätzlich noch eine maximale Distanz angegeben wird, welche definiert, wie weit der Ort der Freizeitaktivität vom angegebenen Ort entfernt sein darf. Über eine Kalender Funktion kann man dann das gewünschte Datum, oder den gewünschten Datumsrahmen der Aktivität festlegen. Im weiteren Feld stehen mehrere Kategorien zur Wahl, welche an- bzw abgehakt werden können um die Suche zu verfeinern. (zb Sport, Unterhaltung, Bildung, etc…) Wobei in den Großkategorien weitere Verfeinerungen zur Auswahl stehen (zb bei Sport: Ballspiele, Wandern, Klettern, etc…) Außerdem wird die Zahl der Personen angegeben. Wenn die Eingaben bestätigt werden, sucht das System die passenden Treffer und zeigt diese an, wobei hier dann die genaue Aktivität angezeigt wird, aber auch die möglichen passenden Termine, eventuelle Teilnahmebedingungen, Preis pro Person, Veranstalter, etc… Wählt man nun ein Angebot aus, kann man die Freizeitaktivität direkt buchen und wird zur “Payment”-Seite weitergeleitet. Hier werden nun noch einmal alle Details zur Aktivität und deren Kosten angeführt und anschließend Kontodaten verlangt. Abschließend erhält der User eine Bestätigung über die Buchung.Use Case Modell Erstellen sie für das zu entwickelnde System ein Use-Case Modell bestehend einem Use-CaseDiagramm und den detaillierten Beschreibungen der Use-Cases. 1.2 Use Case Diagramm Modellieren sie die Use Cases, die Akteure, und die Beziehungen zwischen den einzelnen Use Cases und Akteuren. 4 5 1.3 Use Case 1 Beschreibung Beschreiben Sie die einzelnen Use Cases, verwenden Sie dabei die Beschreibungsmuster unter Vorlesung vom 28.10.2010: Use Case Modeling Seite 7 und 8. Use Case Buchungsplattform: Ziel: Flug, Hotel, Auto, Aktivität buchen bzw. reservieren Kategorie: primär Vorbedingung: keine Nachbedingung bei Erfolg: Datei im System anlegen Nachbedingung bei Fehlschlag: Fehlermeldung Beteiligte Akteure: User, System 1.4 Use Case 2 Beschreibung Use Case Angebot verwalten: Ziel: Flug, Hotel, Auto, oder Aktivität anlegen, bearbeiten oder löschen Kategorie: primär Vorbedingung: keine Nachbedingung bei Erfolg: Datei im System anlegen, ändern oder löschen Nachbedingung bei Fehlschlag: Fehlermeldung Beteiligte Akteure: Admin, System 1.5 Use Case 3 Beschreibung Use Case Flugsuche: Ziel: Vollständige Angabe aller notwendigen Informationen, um einen Flug zu suchen Kategorie: primär Vorbedingung: Das System muss sich im „Flugbereich“ befinden Nachbedingung bei Erfolg: Vorhandene Flüge werden angegeben Nachbedingung bei Fehlschlag: Fehlermeldung: Keine passenden Flüge vorhanden Beteiligte Akteure: User, System Auslösendes Ereignis: User wählt beim Interface die Kategorie Flug aus Beschreibung Basisablauf: 1. User gibt Abflugs- und Ankunftsflughafen an 2. User gibt Flugtermine an 3. User gibt Anzahl der Personen an 4. User bestätigt die Auswahl Erweiterungen: Use Case Angebote suchen Use Case Ergebnisliste anzeigen 6 1.6 Use Case 4 Beschreibung Use Case Angebote suchen: Ziel: Anhand der angegebenen Daten werden Angebote gesucht Kategorie: primär Vorbedingung: In den Use Cases Kriterien eingeben müssen alle notwendigen Daten angegeben werden Nachbedingung bei Erfolg: Ergebnisse werden angezeigt Nachbedingung bei Fehlschlag: Fehlermeldung: Keine Angebote gefunden Beteiligte Akteure: System Auslösendes Ereignis: Nach Eingabe der Daten muss die Abfrage abgeschickt werden Beschreibung Basisablauf: 1. Das System speichert die angegebenen Daten 2. Mithilfe dieser wird die Datenbank durchsucht 3. Ergebnisse werden „gemerkt“ und weitergegeben Erweiterungen: Use Case Ergebnisliste anzeigen 1.7 Use Case 5 Beschreibung Use Case Ergebnisliste anzeigen: Ziel: Anhand der angegeben Daten werden gefundene Angebote angezeigt Kategorie: primär Vorbedingung: Use Case Angebote suchen muss abgeschlossen sein Nachbedingung bei Erfolg: Ergebniss werden dargestellt Nachbedingung bei Fehlschlag: Use Case Angebote suchen muss erneut ausgeführt werden Beteiligte Akteure: System Auslösendes Ereignis:Use Case Angebote suchen ist abgeschlossen Beschreibung Basisablauf: 1. Use Case erhält die Ergebnisse von Use Case Angebote suchen 2. Daten werden für die Ausgabe aufbereitet 3. Ergebnisse werden angezeigt Erweiterungen: Use Case Buchung abschließen Use Case Bezahlung abschließen Use Case Bestätigung versenden 7 1.8 Use Case 6 Beschreibung Use Case Buchung abschließen: Ziel: User wählt aus der Ergebnisliste ein Angebot und bucht dieses Kategorie: primär Vorbedingung: Angebote müssen verfügbar sein Nachbedingung bei Erfolg: Buchung ist abgeschlossen Beteiligte Akteure: User, System Auslösendes Ereignis: User wählt ein Angebot aus Beschreibung Basisablauf: 1. User sucht sich ein Angebot aus 2. Er bestätigt dieses 3. Alle Daten werden zusammengefasst noch einmal aufgelistet 4. User bestätigt dies ebenfalls 5. Buchung ist fixiert Erweiterungen: Use Case Bezahlung abschließen Use Case Bestätigung versenden 1.9 Use Case 7 Beschreibung Use Case Bezahlung abschließen: Ziel: User gibt seine Kontoinformationen ein und bestätigt die Zahlung Kategorie: primär Vorbedingung: Ein Angebot muss bestätigt worden sein Nachbedingung bei Erfolg: Bezahlung ist erfolgt Nachbedingung bei Fehlschlag: Zahlungsvorgang muss erneut durchgeführt werden Beteiligte Akteure: User, System Auslösendes Ereignis: Buchung wird bestätigt Beschreibung Basisablauf: 1. User gibt Kontodaten ein 2. Zahlungsmethode wird angegeben 3. Zahlung wird abgeschlossen Erweiterungen: Use Case Bestätigung versenden 8 1.10 Use Case 8 Beschreibung Use Case Bestätigung versenden: Ziel: User erhält die Bestätigung über die Zahlung und das gebuchte Angebot Kategorie: sekundär Vorbedingung: Buchung muss abgeschlossen und bezahlt sein Nachbedingung bei Erfolg: Bestätigung über Buchung ist bei Kunden angelangt Nachbedingung bei Fehlschlag: Buchung muss erneut durchgeführt werden Beteiligte Akteure: User, System Auslösendes Ereignis: Bezahlung ist abgeschlossen Beschreibung Basisablauf: 1. Angebotsinformationen werden aufgelistet 2. Zahlungsinformationen werden aufgelistet 3. Bestätigung wird versendet 1.11 Use Case 9 Beschreibung Use Case Hotelsuche: Ziel: Vollständige Angabe aller notwendigen Informationen, um einen Hotelaufenthalt zu buchen. Kategorie: primär Vorbedingung: Das System muss sich im „Hotelbereich“ befinden Nachbedingung bei Erfolg: Vorhandene Hotels werden angegeben Nachbedingung bei Fehlschlag: Fehlermeldung: Keine passenden Hotels vorhanden Beteiligte Akteure: User, System Auslösendes Ereignis: User wählt beim Interface die Kategorie Hotel aus Beschreibung Basisablauf: 1. User gibt Ort des gewünschten Aufenthalts an 2. User gibt Datum der An- bzw Rückreise an 3. User gibt gewünschte Preferenzen an (Hotelqualität, anzahl Zimmer, Meeresblick, etc...) 4. User gibt Anzahl der Personen an 5. User bestätigt die Eingabe Erweiterungen: Use Case Angebote suchen Use Case Ergebnisliste anzeigen 9 1.12 Use Case 10 Beschreibung Use Case Autosuche: Ziel: Vollständige Angabe aller notwenigen Informationen, um ein Auto zu mieten. Kategorie: primär Vorbedingung: Das System muss sich im “Autobereich” befinden Nachbedingung bei Erfolg: Vorhandene Autos werden angegeben Nachbedingung bei Fehlschlag: Fehlermeldung: Keine passenden Mietwagen vorhanden Beteiligte Akteure: User, System Auslösendes Ereignis: User wählt beim Interface die Kategorie Auto aus Beschreibung Basisablauf: 1. User gibt gewünschte Region der Abholung an 2. User gibt Von- Bis- Datum der Miete an 3. User gibt (optional) gewünschte Preferenzen an (Automarke, Modell, Zustand, Raucherfahrzeug, Ausstattung, etc…) 4. User gibt gewünschten Ort der Abgabe an 5. User bestätigt die Eingabe Erweiterungen: Use Case Angebote suchen Use Case Ergebnisliste anzeigen 1.13 Use Case 11 Beschreibung Use Case FZ-Aktivität-Suche: Ziel: Vollständige Angabe aller notwendigen Informationen, um eine Freizeitaktivität zu buchen. Kategorie: primär Vorbedingungen: Das System muss sich im “Freizeitbereich” befinden Nachbedingung bei Erfolg: Vorhandene Freizeitaktivitäten werden angegeben Nachbedingung bei Fehlschlag: Fehlermeldung: Keine passenden Freizeitaktivitäten vorhanden Beteiligte Akteure: User, System Auslösendes Ereignis: User wählt beim Interface die Kategorie Freizeit aus Beschreibung Basisablauf 1. User gibt gewünschte Region der Freizeitaktivität an (inclusive maximaler Distanz zum Ort) 2. User gibt gewünschtes Datum der Aktivität an (einmalig oder von- bis) 3. User gibt gewünschte Kategorien der Aktivität an (zb Klettern, Wandern, Vergnügungsparkbesuch, Sport, etc…) 4. User gibt Anzahl der Personen an 5. User bestätigt die Eingabe Erweiterungen: Use Case Angebote suchen Use Case Ergebnisliste anzeigen 1 0 1.14 Use Case 12 Beschreibung Use Case Registrierung: Ziel: Vollständige Angabe an Benutzerdaten um einen Account anzulegen. Kategorie: primär Vorbedingung: keine Nachbedingung bei Erfolg: Account wurde erstellt Nachbedingung bei Fehlschlag: Fehlermeldung: Account konnte nicht erstellt werden Beteiligte Akteure: User, System Auslösendes Ereignis: User wählt beim Interface das Feld Registrieren aus Beschreibung Basisablauf: 1. User gibt seine e-mail Adresse an 2. User gibt notwendige persönliche Daten an 3. User bestätigt die Eingabe Erweiterungen: Use Case Login 1.15 Use Case 13 Beschreibung Use Case Login: Ziel: Login mit erstelltem Account Kategorie: primär Vorbedingung: Account muss erstellt und aktiviert sein Nachbedingung bei Erfolg: User ist eingeloggt Nachbedingung bei Fehlschlag: Fehlermeldung: Login fehlgeschlagen Beteiligte Akteure: User, System Auslösendes Ereignis: User wählt beim Interface das Feld Login aus Beschreibung Basisablauf: 1. User gibt seinen Accountnamen ein 2. User gibt sein Passwort ein 3. User bestätigt die Eingabe Erweiterungen: Use Case Registrierung 1 1