310 likes | 533 Views
Aufgabe 1. Aufgabe 1 In einer Autovermietung sollen alle kundenrelevanten Geschäftsprozesse durch ein durchgängiges, einheitliches Informationssystem unterstützt werden. Bisher sind einige Geschäftsprozesse noch nicht oder sehr ungenügend DV - unterstützt. Für die übrigen
E N D
Aufgabe 1 Übungen Software Engineering II WS 99/00
Aufgabe 1 In einer Autovermietung sollen alle kundenrelevanten Geschäftsprozesse durch ein durchgängiges, einheitliches Informationssystem unterstützt werden. Bisher sind einige Geschäftsprozesse noch nicht oder sehr ungenügend DV - unterstützt. Für die übrigen existieren verschiedene spezielle Systeme. Um einen Kunden rundum zu betreuen, müssen mehrere Systeme benutzt werden. Das zu entwickelnde System soll alle Funktionen bereitstellen, die in direktem Zusammen- hang mit der Betreuung von Kunden und anderen Geschäftspartnern (z.B. Lieferanten) stehen. Dazu gehören die Kundenberatung, die Verwaltung der Stammdaten, die Reservierung, die Vermietung von Kfz und die Abrechnung mit dem Kunden. Geschäftsferne und indirekte Bereiche wie die interne Buchhaltung, Tarif- und Produktplanung, Kfz- Überführung und Disposition u.ä. sind keine Systembestandteile. Übungen Software Engineering II WS 99/00
Führen Sie für die ausgeteilten Unterlagen eine Use-Case-Analyse und eine • objektorientierte Analyse durch. • Entwerfen Sie: • Use Cases + präzise Beschreibung • Domänenmodell • Analysemodell • Hilfsmittel: • CRC Karten • Klassendiagramme • Sequenzdiagramme Übungen Software Engineering II WS 99/00
Lösung Aufgabe 1 Übungen Software Engineering II WS 99/00
Haupttätigkeit Anforderung Übungen Software Engineering II WS 99/00
Use Cases und präzise Beschreibung Wir haben folgende Use Cases identifiziert und beschrieben: Kfz-Reservierung Kfz-Übergabe Kfz-Rücknahme Telefonische Kundenberatung s. ausgeteilte Unterlagen Übungen Software Engineering II WS 99/00
Systemumgebung: Domain Model Kfz-Lieferant Kunde * * Rechnungswesen 1 1 * buchtbei anmieten bezieht von Kfz bereitstellen beraten 1 1 * * 1 Autovermietung Kfz-Dispositionssystem * 1 1 1 1 mietet Kfz zurücknehmen besitzt * 1 * Kfz Tarifsystem Tarif ermitteln Übungen Software Engineering II WS 99/00
CRC-Karte für Kfz-Dispositionssystem Kfz-Dispositionssystem • Ermittelt Standort und Status von Kfz Auto • Gibt Auskunft über Reservierungsmöglichkeit (Ort, Zeitraum) Auto • Gibt Auskunft über Standort v. Zubehörteilen (Kindersitz,Dachgepäckträger) • Gibt Auskunft über Ausstattungs- u. Leistungsmerkmalen Auto • Ermöglicht Kfz-Statusänderungen (reserviert, vermietet) Auto • Führt Statistik über Fahrzeugauslastung Auto Auch CRC-Karten können zur Klärung der Schnittstellen verwendet werden Übungen Software Engineering II WS 99/00
CRC-Karte für Tarifsystem Tarifsystem • Ermittelt Tarif Auto, Kunde • Gibt Auskunft über Billigtarife Auto • Ermöglicht Tarifänderungen Übungen Software Engineering II WS 99/00
Haupttätigkeit Analyse Übungen Software Engineering II WS 99/00
Reservierung Kfz-Rücknahme AllgemeineGeschäftsklassen Kundenverwaltung Lieferantenmanagement Schritt 1: Identifikation von Analyse Packages Jetzt eine erste Zerlegung des Systems in Packages Zur Erinnerung: Diese Package-Zerlegung kann sich im Laufe der Analyse und des Entwurfs ändern!!! Übungen Software Engineering II WS 99/00
Klassendiagramm für Package „Allgemeine Geschäftsklassen“ 1 1 Kunde Tarif 1 schließt basiert auf * * KfzMietvertrag veranlasst 1 1 führt zu 1 * Rechnung Reservierung für 1 Kfz Übungen Software Engineering II WS 99/00
Package Kundenverwaltung verwaltet Kunde Kundenmanager * 1 Übungen Software Engineering II WS 99/00
CRC Karte Kundenmanager Kundenmanager • Neuen Kunden anlegen Kunde • Kunden suchen Kunde • Kundendaten ändern Kunde Übungen Software Engineering II WS 99/00
Klassendiagramm für Package Reservierung visualisiert/erfasst ReservierungsUI 1 1 1 1 visualisiert/erfasst Übungen Software Engineering II WS 99/00
ReservierungsUI • Erfasst Reservierungswunsch • Erfasst Kundendaten CRC Karte Reservierungsmanager Reservierung • Nimmt Reservierungswunsch auf Kunde, Kfz-Dispositionssystem • VerfügbarkeitPrüfen Liste Kfz-Typen, Kfz-Dispositionssystem • Kfz-Reservieren Liste Kfz-Typen, Kfz-Dispositionssystem Übungen Software Engineering II WS 99/00
Klassendiagramm für Package Kfz-Rücknahme 1 1 erfasst 1 visualisiert RücknahmeUI 1 Übungen Software Engineering II WS 99/00
CRC Karten Rechnung • Abrechnung erstellen Tarifsystem • drucken Rücknahme UI • Erfasst zurückgegebenes Fahrzeug Übungen Software Engineering II WS 99/00
Schritt 2: Analyse der einzelnen Use Case1 Fragestellung jetzt: Welche Klassen mit welchen Verantwortungen benötige ich zur Realisierungdes Use Cases? Daher: Alle Use Cases betrachten, Frage beantworten und den Ablauf durch Objekte der bis jetzt gefundenen Klassen durch Sequenzdiagramme beschreiben. Falls Klassen fehlen, neue Klassen einführen. Viele neue Klassen werden bei dieser Use Case Analyse gefunden! 1 Wir beschränken uns im Beispiel auf die zwei Use Cases Kfz-Reservierung und Kfz-Rücknahme. Übungen Software Engineering II WS 99/00
:Reservierung :Kundenmanager :Reservierungs UI Sequenzdiagramm für den Use Case „Reservierung“1 Wunschdaten eingeben Reservierungswunschaufnehmen Kundendaten eingeben Kunden suchen Kunde identifiziert und Daten korrekt Auto reservieren Kundenbetreuer Verfügbarkeit prüfen Bestätigung 1 Die verschiedenen Varianten bzw. Ablauf-Ausnahmen betrachten wir nicht.. Übungen Software Engineering II WS 99/00
Use Case „Kfz-Rücknahme“ Bei der Analyse des Ablaufs müssen Klassen für „Vertrag suchen“, Vertragseinhaltung prüfen“, „Abrechnungsdaten erheben“, „Rechnung erstellen“ gefunden werden. Offen: Welche Klasse hat die Verantwortung „Vertrag suchen“, „Vertragseinhaltung prüfen“? Daher: Entweder neue Klasse einführen oder Verantwortungen existierender Klassen um die neuen Verantwortungen ergänzen. Übungen Software Engineering II WS 99/00
CRC Karte für die Klasse Vertragsmanager Vertragsmanager • Vertrag suchen • Vertragseinhaltung prüfen • Vertrag ausstellen • Vertrag löschen Wir haben eine neue Klasse „Vertragsmanager“ eingeführt, und können jetzt den Ablauf beschreiben: Übungen Software Engineering II WS 99/00
:Vertragsmanager :Rechnung :Rücknahme UI Sequenzdiagramm für den Use Case „Kfz-Rücknahme“1 Kfz-Kennzeichen eingeben Vertrag suchen Vertrag Vertragsdaten anzeigen Rückgabedaten eingeben Vertragseinhaltung prüfen Kundenbetreuer Abrechnung erstellen Rechnung anzeigen Rechnung bestätigen drucken 1 Die verschiedenen Varianten bzw. Ablauf-Ausnahmen betrachten wir nicht. Übungen Software Engineering II WS 99/00
Schritt 3: Analyse der einzelnen Klassen1 • Verantwortungen, Assoziationen, Aggregationen und Vererbungs- beziehungen notieren und präzisieren • hierzu Attribute und Operationen identifizieren 1 Wir führen dies nur exemplarisch für einzelne Klassen der beiden Packages durch Übungen Software Engineering II WS 99/00
Attribute und Operationen der Klasse Rechnung Rechnung 1..2 Rechnungsbetrag Zahlungsart Rechnungsposten drucken(); erstelleAbrechnung (Kfz-Mietvertrag) Übungen Software Engineering II WS 99/00
Attribute und Operationen der Klasse Reservierung Reservierung 1..2 Miet-Zeitraum Kfz-Typ Sonderausstattung Kfz-Zubehör-Typ Abhol-Niederlassung Rückgabe-Niederlassung prüfeVerfügbarkeit(Kfz-Typ, Kfz-Zubehör-Typ, Sonderausstattung); reserviere(Kfz-Typ, Sonderausstattung, Kfz-Zubehör-Typ, Zeitraum) reserviereWunsch(Kfz-Typ, Sonderausstattung, Kfz-Zubehör-Typ, Zeitraum) Übungen Software Engineering II WS 99/00
Attribute und Operationen der Klassen Mietgegenstand, Kfz,Kfz-Zubehör Mietgegenstand 1..2 Standort Mietstatus (Reserviert od. vermietet) Alter ermittleTarif(Zeitraum); getStandort() getMietstatus() setAlter(Monate) getAlter() Kfz-Zubehör Kfz 1..2 Inventarnummer Fahrzeugkennzeichen Erst-Zulassung TÜV-Datum KM-Stand Farbe ermittleTarif(Zeitraum); setTüvDatum(Datum) setAlter() getAlter() Kindersitz Dachgepäckträger 1..2 Fabrikat ermittleTarif(Zeitraum); ermittleTarif(Zeitraum); ermittleTarif(Zeitraum); ermittleTarif(Zeitraum); Übungen Software Engineering II WS 99/00
Anhang Der Anhang enthält einzelne Diskussionen zu den Packages. Übungen Software Engineering II WS 99/00
Diskussionen Übungen Software Engineering II WS 99/00