© Prof. Dipl.-Inf. Volkhard Pfeiffer Übungen Software Engineering II WS 99/00 1 Aufgabe 1

Preview:

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

• drucken

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

drucken

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

Recommended