Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für...

21
Hans-Jürgen Steffens Systemanalyse SS 04 1 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung der 8. Vorlesung Komplettierung des Klassendiagramms Bildung von Packages

Transcript of Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für...

Page 1: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 1

9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel

Entwicklung des Klassendiagramms aus Use Cases

• Fortsetzung der 8. Vorlesung

• Komplettierung des Klassendiagramms

• Bildung von Packages

Page 2: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 2

Use Case Dauer ermitteln

Operation „dauerErmitteln()“ bei Klasse Bestellung Wovon hängt die voraussichtliche Dauer ab?

• Zubereitungszeit der Speisen– Es wird von einem Durchschnittswert ausgegangen, so dass diese Zeiten

nicht gesondert hinterlegt werden müssen

• Wartezeit, bis Speisen zubereitet werden– Diese hängt von anderen Bestellungen ab

(Kapazität der Küche sei konstant)

• Verfügbarkeit der Fahrer– Hängt ebenfalls von den anderen Bestellungen und voraussichtlichen

Rückkunftzeit der entsprechenden Touren ab– Außerdem von der Zahl der anwesenden Fahrer (Es wird davon

ausgegangen, dass die Zahl pro Schicht konstant ist)

• Entfernung zur Lieferadresse– Adressen werden Entfernungsbereichen (z. B. 5 min., 10 min., ...) zugeordnet

• Zusammenfassung von Speisen zu Touren(der genaue Algorithmus wird hier nicht betrachtet)

Page 3: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 3

Erweiterungen Klassendiagramm

BezeichnungGrößenbezeichnungGrößenbezeichnungGroß

Kategorie

1

*

berechneSumme()auf nehmen()kundeZuordnen()speisenZuordnen()dauerErmitteln()auf tragf ürKüchedrucken()f ertigMelden()rechnungDrucken()tourAnlegen()bestehendeTourZuordnen()status()

Nr

DatumUhrzeitBemerkungUhrzeitFertigmeldung

Bestellung

* 1

erechneGesamtpreis()

anlegen()speiseZuordnen()positionAusdrucken()positionFürKücheAusdrucken()

NrMengeGröße

Bestellposition

1

1..*

1 *

auswählen()alternativ enVorschlagen()ausgegangenMelden()v erf ügbarMelden()

NrNameBeschreibungPreisPreisGroßMussGekochtWerdenAusgegangen

Speise

*

*

Alternativ e

auswählen()anlegen()ändern()adresseZuordnen()adresse()f ahrtdauer()

KundennrNameVorname

HausnrTelef onnr

Kunde

PLZOrtsname

Ort

adresseAuswählen()adresse()f ahrtdauer()

Straßenname

Straße

* 1

1

1..*

Fahrtdauer

Entfernungsbereich

*

1

inAuslief erungMelden()rückkunf tMelden()v oraussichtlicheRückkunf tberechnen()status()

UhrzeitAbf ahrtUhrzeitRückkunf t

Tour

11..*

Fahrer

1

*

JahrMonatTag

Schicht-Durchführung

BezeichnungUhrzeitBeginnUhrzeitEnde

Schicht

* 1*

*

Dienst

1

*

Page 4: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 4

Weitere Use Cases

UC Speise ausgegangen melden / Speise wieder verfügbar melden

• Entsprechende Operations der Klasse Speise UC Tour als in Auslieferung melden / Rückkunft melden

• Entsprechende Operations der Klasse Tour UC Über Bestellstatus informieren

• Operation status() der Klasse Bestellung. Ermittelt den Status aus UhrzeitFertigstellung und durch Aufruf der Operation status () der Klasse Tour, welche wiederum die Uhrzeiten auswertet.

UC Arbeitsbeginn / Arbeitsende erfassen

• Klasse Mitarbeiter als Generalisierung der Klasse Fahrer

• Für jede geleistete Schicht wird eine Arbeitszeitmeldung mit Beginn und Ende (Jeweils volles Datum und Uhrzeit) angelegt.

Page 5: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 5

Arbeitszeitmeldungen

FahrerVerkäufer

ArbeitsbeginnErfassen()ArbeitsendeErfassen()auswählen()

Mitarbeiter-NrNameVornameTelefonnrStraßeHausnrPLZOrt

MitarbeiterJahrBeginnMonatBeginnTagBeginnUhrzeitBeginnJahrEndeMonatEndeTagEndeUhrzeitEnde

Arbeitszeitmeldung

1

*

mitarbeiterZuordnen()

JahrMonatTag

Schicht-Durchführung

BezeichnungUhrzeitBeginnUhrzeitEnde

Schicht

* 1

*

*

Dienst

Page 6: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 6

Weitere Use Cases

UC Personaleinsatz planen

• Operation mitarbeiterZuordnen ( ) der Klasse Schicht-Durchführung

UC Speisekarte pflegen

• Nicht explizit modelliert (Nutzung der in der Analyse als gegeben vorausgesetzten „get“- und „set“-Operations zur Veränderung von Attributwerten bei der Klasse Speise und Kategorie).

Page 7: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 7

Use Case „Tageseinnahmen Fahrer abrechnen“

Operation „tageseinnahmenAbrechnen ( )“

• Diese sucht alle Touren des Fahrers heraus, die noch nicht abgerechnet sind und summiert deren Summen auf (Operation „berechne Summe“, die wiederum die entsprechende Operation bei Bestellung aufruft).

• Anschließend werden die Touren mittels des booleschen Attributs als „abgerechnet“ gekennzeichnet

berechneSumme()aufnehmen()kundeZuordnen()speisenZuordnen()dauerErmitteln()auftragfürKüchedrucken()fertigMelden()rechnungDrucken()tourAnlegen()bestehendeTourZuordnen()status()

NrDatumUhrzeitBemerkungUhrzeitFertigmeldung

Bestellung

inAuslieferungMelden()rückkunftMelden()voraussichtlicheRückkunftberechnen()status()berechneSumme()

UhrzeitAbfahrtUhrzeitRückkunftabgerechnet

Tour

1 1..*

tageseinnahmenAbrechnen()

Fahrer

1

*

Page 8: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 8

Use Case „Auswertungen erstellen“

Hier kommt es in der Analysephase weniger darauf an, entsprechende Operationen hinzuzufügen, sondern die gewünschten Arten von Auswertungen zu analysieren, ob sie mit Hilfe des Klassendiagramms realisierbar sind

Beispiele:

• Auswertung Umsatz pro Monat– Über Datum der Bestellung lassen sich die Bestellungen eines Monats

identifizieren und die Summen aufaddieren

• Auswertung Durchschnittliche Dauer von der Bestellung bis zur Auslieferung

– Uhrzeit der Zustellung wird nicht erfasst, da keine mobile Erfassung vorgesehen ist. Es lassen sich daher nur die Dauern zwischen Bestellung und Abfahrt oder zwischen Bestellung und Rückkunft der Fahrer auswerten (Mittelwert könnte als Annäherung an die gewünschte Größe gewertet werden)

• Auswertung Bestellungen pro Verkäufer– Erweiterung des Modells erforderlich: Assoziation zwischen Verkäufer und

Bestellung

Page 9: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 9

Zuordnung Verkäufer zu Bestellung

berechneSumme()aufnehmen()kundeZuordnen()speisenZuordnen()dauerErmitteln()auftragfürKüchedrucken()fertigMelden()rechnungDrucken()tourAnlegen()bestehendeTourZuordnen()status()

NrDatumUhrzeitBemerkungUhrzeitFertigmeldung

Bestellung

Verkäufer

0..1

* Untergrenze 0, da auch Internet-Bestellungen möglich sind

Page 10: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 10

UC, die über Internet abgewickelt werden

UC Bestellung über Internet aufgeben• Prinzipiell der gleiche Ablauf wie bei Bestellaufnahme durch

Verkäufer• Unterschiede liegen im Detail:

– Kunde darf seine Daten nicht über Auswahl aus Liste auswählen (er darf die anderen Kundendaten nicht sehen), sondern muss einige Mindestfelder (z. B. Name, Vorname, Telefonnr.) eingeben, bevor restliche Angaben angezeigt werden und ggf. korrigiert werden können.

– Bestellung kann einigen Beschränkungen (z. B. Höchstbestellwert) unterliegen

– Bestellung wird anschließend dem Verkäufer zur Freigabe weitergeleitet.

UC im Internet über Bestellstatus informieren• Eigene Class Operation definiert, die die Bestellung über

anonyme Eingabe der Bestellnummer auswählt, die Statusabfrage durchführt und die Antwort zurück liefert.

Page 11: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 11

Erweiterungen für Internet-UCs

berechneSumme()aufnehmen()

kundeZuordnen()speisenZuordnen()dauerErmitteln()auftragfürKüchedrucken()fertigMelden()rechnungDrucken()tourAnlegen()bestehendeTourZuordnen()status()überInternetAufgeben()internetBestellungGenehmigen()statusAbfrageInternet()

NrDatumUhrzeitBemerkung

UhrzeitFertigmeldung

Bestellung

* 1auswählen()anlegen()ändern()

adresseZuordnen()adresse()fahrtdauer()überInternetEingabeAuswählen()

KundennrNameVorname

HausnrTelefonnr

Kunde

Page 12: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 12

Use Case Bestellung stornieren / ändern

Problematik bei Stornierung / Änderung:

• Da die Aufträge sofort nach der Bestellung in die Küche gegeben werden, ist dem System nicht bekannt, ob diese bereits in Arbeit sind, oder noch problemlos umgeändert werden können.

Lösungsmöglichkeiten:

a) Der Verkäufer geht in die Küche und überprüft, ob Änderung noch problemlos möglich

b) Die Küche erhält ihre Aufträge nicht auf Papier, sondern ebenfalls elektronisch und bestätigt den Beginn der Bearbeitung. Vorher kann noch problemlos storniert werden.

c) Es wird prinzipiell so vor gegangen, dass Änderungen und Stornierungen bis zur Fertigmeldung möglich sind, danach nicht mehr.

Page 13: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 13

Use Case Bestellung stornieren / ändern

Beispielhaft wird die Stornierung einer Bestellung betrachtet:

• Operation „stornieren ( )“ der Klasse Bestellung:– Diese überprüft zunächst den Status (ob noch nicht fertig gemeldet)

– Es wird eine Storno-Meldung für die Küche ausgedruckt, damit diese ggf. die Zubereitung der Speisen stoppen kann.

– Die Tour, der die Bestellung zugeordnet ist, erhält eine Operation bestellungEntfernen( ), die an dieser Stelle aufgerufen wird.

– Die Bestellung wird gelöscht (und damit wg. der Komposition automatisch auch alle zugehörigen Bestellpositionen)

• Operation „bestellungEntfernen ( )“ der Klasse Tour:– Diese überprüft, ob noch weitere Bestellungen enthalten sind.

– Falls nicht, wird die Tour ebenfalls gelöscht.

Page 14: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 14

Erweiterungen für Stornierung

berechneSumme()aufnehmen()kundeZuordnen()speisenZuordnen()dauerErmitteln()auftragfürKüchedrucken()fertigMelden()rechnungDrucken()tourAnlegen()bestehendeTourZuordnen()status()überInternetAufgeben()internetBestellungGenehmigen()statusAbfrageInternet()stornieren()stornoMeldungDrucken()

NrDatumUhrzeitBemerkungUhrzeitFertigmeldung

Bestellung

inAuslieferungMelden()rückkunftMelden()voraussichtlicheRückkunftberechnen()status()berechneSumme()bestellungEntfernen()

UhrzeitAbfahrtUhrzeitRückkunftabgerechnet

Tour

1 1..*

Page 15: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 15

Weitere Fragestellungen

Aus Gründen des Modellumfangs hier nicht berücksichtigt:

• Änderungen (z. B. von Einzelpositionen)

• Korrektur von Fehlern / Problemen– Z. B. Kunde nimmt einen Teil der Lieferung nicht ab, weil er

telefonisch etwas anderes bestellt hat (und zahlt dann natürlich auch weniger)

– Lieferung konnte nicht zugestellt werden.

Page 16: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 16

Gesamt-Klassendiagramm Übersicht

Kategorie

1*

Bestellung

*1

Bestellposition

1

1..*1*

Speise

*

*

Alternative

Kunde

Ort

Straße

*

1

1 1..*

Entfernungsbereich

*1

Tour

1 1..*

Fahrer

1*

Verkäufer

Mitarbeiter

Arbeitszeitmeldung

1

*

Schicht-Durchführung

Schicht

*

1

*

*

Dienst

1

*

0..1*

Page 17: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

BezeichnungGrößenbezeichnungGrößenbezeichnungGroß

Kategorie

1

*

berechneSumme()aufnehmen()kundeZuordnen()speisenZuordnen()dauerErmitteln()auftragfürKüchedrucken()fertigMelden()rechnungDrucken()tourAnlegen()bestehendeTourZuordnen()status()überInternetAufgeben()internetBestellungGenehmigen()statusAbfrageInternet()stornieren()stornoMeldungDrucken()

NrDatumUhrzeitBemerkungUhrzeitFertigmeldung

Bestellung

* 1

erechneGesamtpreis()anlegen()speiseZuordnen()positionAusdrucken()positionFürKücheAusdrucken()

NrMengeGröße

Bestellposition

1 1..*

1*

auswählen()alternativenVorschlagen()ausgegangenMelden()verfügbarMelden()

NrNameBeschreibungPreisPreisGroßMussGekochtWerdenAusgegangen

Speise

*

*

Alternative

auswählen()anlegen()ändern()adresseZuordnen()adresse()fahrtdauer()überInternetEingabeAuswählen()

KundennrNameVornameHausnrTelefonnr

Kunde

PLZOrtsname

Ort

adresseAuswählen()adresse()fahrtdauer()

Straßenname

Straße

*1

1

1..*

Fahrtdauer

Entfernungsbereich

* 1

inAuslieferungMelden()rückkunftMelden()voraussichtlicheRückkunftberechnen()status()berechneSumme()bestellungEntfernen()

UhrzeitAbfahrtUhrzeitRückkunftabgerechnet

Tour

1 1..*

tageseinnahmenAbrechnen()

Fahrer

1

*

Verkäufer

ArbeitsbeginnErfassen()ArbeitsendeErfassen()auswählen()

Mitarbeiter-NrNameVornameTelefonnrStraßeHausnrPLZOrt

Mitarbeiter

JahrBeginnMonatBeginnTagBeginnUhrzeitBeginnJahrEndeMonatEndeTagEndeUhrzeitEnde

Arbeitszeitmeldung

1*

mitarbeiterZuordnen()

JahrMonatTag

Schicht-Durchführung

BezeichnungUhrzeitBeginnUhrzeitEnde

Schicht*1

*

*

Dienst

1

*

0..1

*

UML-Class Diagram für das Informationssystem Pizza-Service Fachhochschule KaiserslauternStandort Zweibrücken

Vorlesung SystemanalyseAI2, Sommersemester 2002

Prof. Dr. Thomas Allweyer

Bestellung und Lieferung

Zeitplanungund-erfassung

Mitar-beiter

Kunden

Speisekarte

Page 18: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 18

Bildung von Packages

Zeitplanungund

-erfassungMitarbeiter

Kunden

Bestellungund

Lieferung

SpeisekarteIst abhängig von

Page 19: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 19

Detaildiagramm für Package Kunden

auswählen()anlegen()ändern()adresseZuordnen()adresse()fahrtdauer()überInternetEingabeAuswählen()

KundennrNameVornameHausnrTelefonnr

Kunde

PLZOrtsname

Ort

adresseAuswählen()adresse()fahrtdauer()

Straßenname

Straße

*1

1

1..*

Fahrtdauer

Entfernungsbereich

* 1berechneSumme()aufnehmen()kundeZuordnen()speisenZuordnen()dauerErmitteln()auftragfürKüchedrucken()fertigMelden()rechnungDrucken()tourAnlegen()bestehendeTourZuordnen()status()überInternetAufgeben()internetBestellungGenehmigen()statusAbfrageInternet()stornieren()stornoMeldungDrucken()

NrDatumUhrzeitBemerkungUhrzeitFertigmeldung

Bestellung und Lieferung::Bestellung

* 1

Klasse aus anderem Package

Page 20: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 20

Zusammenfassung

Das Klassendiagramm aus der vorangehenden Vorlesung wurde mit Hilfe der weiteren Use Case-Beschreibungen vervollständigt

Für die Erstellung von Auswertungen ist zu untersuchen, ob die gewünschten Auswertungen mit Hilfe der modellierten Lösung möglich sind, bzw. ob sie ergänzt werden muss

Bestellungen über das Internet laufen fachlich genauso wie die direkt am System, gewisse Funktionalitäten, z. B. Auswahl der Kundendaten müssen im Detail geändert werden

Für Stornierungen und Änderungen von Aufträgen ist deren Bearbeitungsstatus von Bedeutung, der allerdings erst einmal erfasst sein muss

Es wurde gezeigt, wie sich ein umfangreiches Modell mit Hilfe von Packages übersichtlicher strukturieren lässt

Page 21: Hans-Jürgen Steffens Systemanalyse SS 041 9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel Entwicklung des Klassendiagramms aus Use Cases Fortsetzung.

Hans-Jürgen Steffens Systemanalyse SS 04 21

Übungsfragen

Versuchen Sie, die gezeigten Erweiterungen des Klassendiagramms selbst nachzuvollziehen

Erläutern Sie mit Hilfe des Klassendiagramms, wie eine Bestellung abläuft

• Welche Operations sind beteiligt, was tun diese jeweils, welche Attributwerte werden genutzt / verändert?

Überlegen Sie sich für die zur Änderungs-/Stornierungsthematik vorgeschlagene Lösung b (Küche erhält Aufträge elektronisch) die notwendige Erweiterung für das Klassendiagramm

Welche neue nichtfunktionale Anforderung an das System resultiert aus diesem Lösungsvorschlag?