Upload
anneliese-mayer
View
109
Download
2
Embed Size (px)
Citation preview
Übungen Software Engineering II WS 99/00 1© Prof. Dipl.-Inf. Volkhard Pfeiffer
Aufgabe 1Aufgabe 1
Übungen Software Engineering II WS 99/00 2© Prof. Dipl.-Inf. Volkhard Pfeiffer
Aufgabe 1
In einer Autovermietung sollen alle kundenrelevanten Geschäftsprozesse durch eindurchgängiges, einheitliches Informationssystem unterstützt werden. Bisher sind einigeGeschä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 3© Prof. Dipl.-Inf. Volkhard Pfeiffer
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 4© Prof. Dipl.-Inf. Volkhard Pfeiffer
Lösung Aufgabe 1
Übungen Software Engineering II WS 99/00 5© Prof. Dipl.-Inf. Volkhard Pfeiffer
Haupttätigkeit Anforderung
Übungen Software Engineering II WS 99/00 6© Prof. Dipl.-Inf. Volkhard Pfeiffer
Use Cases und präzise Beschreibung
s. ausgeteilte Unterlagen
Wir haben folgende Use Cases identifiziert und beschrieben:
Kfz-Reservierung
Kfz-Übergabe
Kfz-Rücknahme
Telefonische Kundenberatung
Übungen Software Engineering II WS 99/00 7© Prof. Dipl.-Inf. Volkhard Pfeiffer
Systemumgebung: Domain Model
Autovermietung
Kunde Rechnungswesen
Kfz-Dispositionssystem
Kfz Tarifsystem
1
*
mietet
*
*
beraten
1
*
besitzt
*
*
anmieten
1
1bucht bei
11
1
1
Tarif ermitteln
Kfz bereitstellen
1 1
Kfz zurücknehmen
Kfz-Lieferant
*
*
bezieht von
Übungen Software Engineering II WS 99/00 8© Prof. Dipl.-Inf. Volkhard Pfeiffer
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 9© Prof. Dipl.-Inf. Volkhard Pfeiffer
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 10© Prof. Dipl.-Inf. Volkhard Pfeiffer
Haupttätigkeit Analyse
Übungen Software Engineering II WS 99/00 11© Prof. Dipl.-Inf. Volkhard Pfeiffer
Schritt 1: Identifikation von Analyse Packages
Jetzt eine erste Zerlegung des Systems in Packages
Reservierung Kfz-Rücknahme
AllgemeineGeschäftsklassen
Kundenverwaltung
Zur Erinnerung: Diese Package-Zerlegung kann sich im Laufe der Analyse und des Entwurfs ändern!!!
Lieferantenmanagement
Übungen Software Engineering II WS 99/00 12© Prof. Dipl.-Inf. Volkhard Pfeiffer
Klassendiagramm für Package „Allgemeine Geschäftsklassen“
KfzMietvertrag
Kunde Tarif
Rechnung
Kfz
Reservierung
1
*
schließt basiert auf
1
*
für 1
1
veranlasst
1
*
führt zu1
1
Übungen Software Engineering II WS 99/00 13© Prof. Dipl.-Inf. Volkhard Pfeiffer
Package Kundenverwaltung
Kunde Kundenmanager* 1verwaltet
Übungen Software Engineering II WS 99/00 14© Prof. Dipl.-Inf. Volkhard Pfeiffer
CRC Karte Kundenmanager
Kundenmanager
• Neuen Kunden anlegen Kunde
• Kunden suchen Kunde
• Kundendaten ändern Kunde
Übungen Software Engineering II WS 99/00 15© Prof. Dipl.-Inf. Volkhard Pfeiffer
visualisiert/erfasst
Klassendiagramm für Package Reservierung
ReservierungsUI
11
visualisiert/erfasst1
1
Übungen Software Engineering II WS 99/00 16© Prof. Dipl.-Inf. Volkhard Pfeiffer
• Nimmt Reservierungswunsch auf Kunde, Kfz-Dispositionssystem
• VerfügbarkeitPrüfen Liste Kfz-Typen, Kfz-Dispositionssystem
• Kfz-Reservieren Liste Kfz-Typen, Kfz-Dispositionssystem
CRC Karte Reservierungsmanager
Reservierung
ReservierungsUI
• Erfasst Reservierungswunsch
• Erfasst Kundendaten
Übungen Software Engineering II WS 99/00 17© Prof. Dipl.-Inf. Volkhard Pfeiffer
Klassendiagramm für Package Kfz-Rücknahme
RücknahmeUIvisualisiert
1
1
1
1
erfasst
Übungen Software Engineering II WS 99/00 18© Prof. Dipl.-Inf. Volkhard Pfeiffer
CRC Karten
Rechnung
• Abrechnung erstellen Tarifsystem
Rücknahme UI
• Erfasst zurückgegebenes Fahrzeug
Übungen Software Engineering II WS 99/00 19© Prof. Dipl.-Inf. Volkhard Pfeiffer
Schritt 2: Analyse der einzelnen Use Case1
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.
Fragestellung jetzt:
Welche Klassen mit welchen Verantwortungen benötige ich zur Realisierung des Use Cases?
Daher:
Übungen Software Engineering II WS 99/00 20© Prof. Dipl.-Inf. Volkhard Pfeiffer
Reservierungswunschaufnehmen
Sequenzdiagramm für den Use Case „Reservierung“1
:Reservierung :Kundenmanager
Kunden suchen
Auto reservieren
Bestätigung
Kunde identifiziert und Daten korrekt
1 Die verschiedenen Varianten bzw. Ablauf-Ausnahmen betrachten wir nicht..
KundenbetreuerVerfügbarkeit prüfen
:Reservierungs UI
Wunschdateneingeben
Kundendateneingeben
Übungen Software Engineering II WS 99/00 21© Prof. Dipl.-Inf. Volkhard Pfeiffer
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 22© Prof. Dipl.-Inf. Volkhard Pfeiffer
• Vertrag suchen
• Vertragseinhaltung prüfen
• Vertrag ausstellen
• Vertrag löschen
CRC Karte für die Klasse Vertragsmanager
Vertragsmanager
Wir haben eine neue Klasse „Vertragsmanager“ eingeführt, und können jetzt den Ablauf beschreiben:
Übungen Software Engineering II WS 99/00 23© Prof. Dipl.-Inf. Volkhard Pfeiffer
Vertrag suchen
Sequenzdiagramm für den Use Case „Kfz-Rücknahme“1
:Vertragsmanager :Rechnung
Abrechnung erstellen
Vertrag
1 Die verschiedenen Varianten bzw. Ablauf-Ausnahmen betrachten wir nicht.
Kundenbetreuer
:Rücknahme UI
Kfz-Kennzeicheneingeben
Rückgabedateneingeben
Rechnungbestätigen
Rechnunganzeigen
Vertragsdatenanzeigen
Vertragseinhaltung prüfen
Übungen Software Engineering II WS 99/00 24© Prof. Dipl.-Inf. Volkhard Pfeiffer
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 25© Prof. Dipl.-Inf. Volkhard Pfeiffer
Attribute und Operationen der Klasse Rechnung
1..2 Rechnung
drucken();
erstelleAbrechnung (Kfz-Mietvertrag)
RechnungsbetragZahlungsartRechnungsposten
Übungen Software Engineering II WS 99/00 26© Prof. Dipl.-Inf. Volkhard Pfeiffer
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)
Attribute und Operationen der Klasse Reservierung
1..2 Reservierung
Miet-ZeitraumKfz-TypSonderausstattungKfz-Zubehör-TypAbhol-NiederlassungRückgabe-Niederlassung
Übungen Software Engineering II WS 99/00 27© Prof. Dipl.-Inf. Volkhard Pfeiffer
Inventarnummer
ermittleTarif(Zeitraum);
1..2Kindersitz
1..2 Mietgegenstand
ermittleTarif(Zeitraum);getStandort()getMietstatus()setAlter(Monate)getAlter()
Attribute und Operationen der Klassen Mietgegenstand, Kfz,Kfz-Zubehör
Kfz-Zubehör
StandortMietstatus (Reserviert od. vermietet)Alter
1..2 KfzFahrzeugkennzeichenErst-ZulassungTÜV-DatumKM-StandFarbe
ermittleTarif(Zeitraum);setTüvDatum(Datum)setAlter()getAlter() ermittleTarif(Zeitraum); ermittleTarif(Zeitraum);
Dachgepäckträger
ermittleTarif(Zeitraum);Fabrikat
Übungen Software Engineering II WS 99/00 28© Prof. Dipl.-Inf. Volkhard Pfeiffer
Anhang
Der Anhang enthält einzelne Diskussionen zu den Packages.
Übungen Software Engineering II WS 99/00 29© Prof. Dipl.-Inf. Volkhard Pfeiffer
Diskussionen