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

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

Embed Size (px)

Citation preview

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

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

Aufgabe 1Aufgabe 1

Page 2: © Prof. Dipl.-Inf. Volkhard Pfeiffer Übungen Software Engineering II WS 99/00 1 Aufgabe 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.

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

Ü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

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

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

Lösung Aufgabe 1

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

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

Haupttätigkeit Anforderung

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

Ü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

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

Ü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

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

Ü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

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

Ü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

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

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

Haupttätigkeit Analyse

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

Ü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

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

Ü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

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

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

Package Kundenverwaltung

Kunde Kundenmanager* 1verwaltet

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

Ü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

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

Ü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

Page 16: © Prof. Dipl.-Inf. Volkhard Pfeiffer Übungen Software Engineering II WS 99/00 1 Aufgabe 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

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

Ü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

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

Ü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

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

Ü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:

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

Ü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

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

Ü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.

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

Ü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:

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

Ü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

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

Ü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

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

Ü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

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

Ü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

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

Ü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

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

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

Anhang

Der Anhang enthält einzelne Diskussionen zu den Packages.

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

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

Diskussionen