• Keine Ergebnisse gefunden

Objektorientierte Analyse 37) Analysebeispiel EU-Rent

N/A
N/A
Protected

Academic year: 2021

Aktie "Objektorientierte Analyse 37) Analysebeispiel EU-Rent"

Copied!
20
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Objektorientierte Analyse

37) Analysebeispiel EU-Rent

Prof. Dr. rer. nat. habil. Uwe Aßmann Institut für Software- und

Multimediatechnik

Lehrstuhl Softwaretechnologie Fakultät für Informatik

TU Dresden

Version 11-0.1, 25.06.11

1) Beispiel EU-Rent

(2)

Überblick Teil III:

Objektorientierte Analyse (OOA)

1. Überblick Objektorientierte Analyse

1. (schon gehabt:) Strukturelle Modellierung mit CRC-Karten

2. Strukturelle metamodellgetriebene Modellierung mit UML für das Domänenmodell

1. Strukturelle metamodellgetriebene Modellierung 2. Modellierung von komplexen Objekten

1. Modellierung von Hierarchien

2. (Modellierung von komplexen Objekten und ihren Unterobjekten) 3. Modellierung von Komponenten (Groß-Objekte)

3. Strukturelle Modellierung für Kontextmodell und Top-Level-Architektur

3. Analyse von funktionalen Anforderungen

1. Funktionale Verfeinerung: Dynamische Modellierung und Szenarienanalyse mit Aktionsdiagrammen

2. Funktionale querschneidende Verfeinerung: Szenarienanalyse mit Anwendungsfällen, Kollaborationen und Interaktionsdiagrammen

3. (Funktionale querschneidende Verfeinerung für komplexe Objekte)

4. Beispiel Fallstudie EU-Rent (37)

(3)

Die Autoverleihfirma “EU-Rent”

EU-Rent ist eine Fallstudie, die von der internationalen

Forschungsgemeinschaften zur Demonstration von Analyse eingesetzt wird

Formulierung von Geschäftsregeln (business rules in business model, ST- II)

Domänenmodell

Anwendungsfalldiagramme

Aktivitätsdiagramme und Statecharts für Arbeitsabläufe, auch zur Szenarioanalyse von Anwendungsfalldiagrammen

Kontextmodelle

http://www.eurobizrules.org/ebrc2005/eurentcs/eurent.htm

(4)

Aktivitäten von EU-Rent

I.a. geht man von textuellen “user stories” aus (z.B. Interviews, Tonbandmitschnitte, Protokolle, ...)

Diese gilt es nun, zu analysieren

Wir betrachten 3 Gruppen von Aktivitäten. Ein einzelnes

Anwendungsfalldiagramm reicht nicht aus, das ganze Informationssystem zu modellerien

Reservierung

von Autos Ausleihe und Rückgabe

von Autos

Kundenclub-Programm vorbestellt

ad-hoc abgeholt Abholung, Rückgabe, auch

an anderer Zweigstelle

Rabatte und Sonderangebote

Rabattpunkte-Programm

(5)

Stakeholder (hier: Akteure)

Akteure stehen mit dem System in Beziehung. Noch keine Festlegung von Systemfunktionen

EU-Rent Mitarbeiter

Kundenbetreuer Zweigstelle

Kunde

Kundenbetreuer Kundenklub

EU-Rent System

(6)

Domänenmodell, 1. Streich

Domänenmodelle müssen die Organisation, Dinge,

Geschäftsvorgänge, -objekte modellieren. Die involvierten Personen werden mitmodelliert

Noch ohne Kardinalitäten und Attribute

Kunde

Person

Angestellter EU-Rent

Zweigstelle AutoKlasse

Auto

Klubmitglied Kundenbetreuer

Zweigstelle Kundenbetreuer

Kundenklub

(7)

A) Reservierungssystem von EU-Rent

Beim Ausfüllen (Elaboration) kommen neue Elemente hinzu

Auto vorbestellen

Auto umbestellen

Auto ad-hoc mieten Reservierungssystem

Auto abbestellen

CallCenter- Mitarbeiter

Kundenbetreuer Zweigstelle

Kunde

Neu!

(8)

Erste Szenarienanalyse mit Sequenzdiagramm

”Auto vorbestellen”

hier nur die

positiven Fälle Auto vorbestellen

CallCenter- Mitarbeiter Kunde

:Kunde :CallCenter

Mitarbeiter

:Reservierung

:Reservierungs- system

frageAutoAnTermin

OK bestelle

PrüfeTerminFrei

OK

OK Neu!

Neu!

erfasse Kundendaten

OK setze Kunden-

daten erfasse Autodaten

OK setze Auto-

daten

(9)

BCD-Einteilung

für Erste Szenarienanalyse ”Auto vorbestellen”

Einziehen einer Boundary-Klasse, Vergabe von BCD-Stereotypen

Umschichten der Kommunikation der Daten-Klasse

:Kunde :Reservierungs-

Dialog

:Reservierung :Reservierungs-

system frageAutoAnTermin

OK bestelle

prüfeTerminFrei (Termin)

OK

OK

erfasse Kundendaten

OK setze Kunden-

daten(K-Daten) erfasse Autodaten

OK setze Auto-

daten(A-Daten) autoReservieren

(Termin)

setze Kunden-

daten(K-Daten)

setze Auto-

daten(A-Daten)

(10)

Data layer

2. Runde Domänenmodell

Mehr Attribute, mehr Klassen. Ergibt erste Teile des Kontextmodells, der Top-Level-Architektur. des Datenmodells

Personen liegen nur teilweise im Datenmodell, da auch aktiv

konto

Person

Angestellter

<<data>>

EU-Rent

<<data>>

Zweigstelle

<<data>>

AutoKlasse

<<data>>

Auto

<<data>>

Klubmitglied

Kundenbetreuer Zweigstelle

Kundenbetreuer Kundenklub name

wohnort Person

<<data>>

Kunde

<<data>>

Reservierung start

<<control>>

Reservierungssystem autoReservieren(termin) setzeKundenDaten(kDaten) setzeAutoDaten(aDaten)

Top-Level-Architektur Kontextmodell

<<boundary>>

Reservierungs- Dialog

autoAnfragen(termin)

(11)

B) Ausleihesystem von EU-Rent

Auto rückgeben

Auto abholen

Autostörung melden

Ausleihesystem

Autoleihe bezahlen

Kundenbetreuer Zweigstelle

Kunde

Neu!

<<includes>>

Rabatt ausrechnen

<<includes>>

(12)

2. Szenarienanalyse mit Aktivitätendiagramm:

Auto ausleihen

Rabatte werden vom Mitarbeiter persönlich bestimmt

Auto abholen

Kundenbetreuer Zweigstelle

Kunde

Kunde Kundenbetreuer

Zweigstelle

Frage nach Auto aus Reservierung

Ausleih- system

Setze Reservierungs- status auf

„ausgeliehen“

Mechaniker

Fahre Auto vor Unterzeichne

Vertrag

Drucke Vertrag Modifiziere

Vertrag

Berechne Rabatt

Setze Reservierungs- status auf

„ausgeliehen“

Vergebe grösseres Auto [ok]

[not ok]

Reservierungs-

system

(13)

BCD für 2. Szenarienanalyse: Auto ausleihen

<<actor>>

Kunde <<boundary>>

Ausleihdialog

Frage nach Auto aus Reservierung

<<control>>

Ausleih- system

rentCar(reservation)

<<control>>

Mechaniker

moveCar(

position) Unterzeichne

Vertrag

Contract.

compute()

Contract.

adjust() Rabatt.

compute() CarClass.

adjust() [ok]

[not ok]

<<control>>

Reservierungs- system

Reservierungssystem.

setStatus(

„ausgeliehen“)

(14)

3. Runde Domänenmodell, Kontextmodell, Toplevel-Architektur

Mehr Details

Data layer

konto

Person

Angestellter

<<data>>

EU-Rent

<<data>>

Zweigstelle adjust()

<<data>>

Auto

<<data>>

Kundenbetreuer Zweigstelle

Kundenbetreuer name

wohnort Person

<<data>>

Kunde

start autoReservieren(termin)

setzeKundenDaten(kDaten) setzeAutoDaten(aDaten) Top-Level-Architektur

Kontextmodell

<<boundary>>

Reservierungs- Dialog

autoAnfragen(termin)

<<control>>

Ausleihsystem autoReservieren(termin) setzeKundenDaten(kDaten) setzeAutoDaten(aDaten)

<<data>>

AutoKlasse

Mechaniker moveCar(

position)

<<data>>

Rabatt compute()

<<boundary>>

Ausleihdialog rentCar(reservation)

<<data>>

Contract compute() adjust()

<<controll>>

Reservierungssystem

<<data>>

Reservierung

(15)

C) Kundenclubprogramm von EU-Rent

Melde Mitglied ab

Registriere Mitglied Kundenklubsystem

Verändere Datensatz

Kundenbetreuer

Kunde

Call Center

Betreuer Kundenbetreuer

Zweigstelle

(16)

3. Szenarienanalyse mit Statecharts: Kunde als Klubmitglied verwalten

Kunde nicht registriert

Kunde registriert

Kunde abgemeldet

Gespräch/registrieren()

Anruf, Formular, Gespräch, email/

registrieren()

email/Daten ändern()

email/einstellen()

(17)

3. Szenarienanalyse: Statecharts

Verfeinerung mit Methoden einer Verhaltensmaschine für das Kundenklubprogramm

Kunde nicht registriert

Kunde registriert

Kunde

KundenKlubDialog.register() [authorization==OK]/

Kundenklubprogramm.registrieren(k-Daten)

KundenKlubDialog.register()/

Kundenklubprogramm.registrieren(k-Daten)

KundenKlubDialog.change(k-Daten)/

datenAendern(k-Daten) KundenKlubDialog.stop(k-Daten)/

Kundenklubprogramm.einstellen(k-Daten)

(18)

4. Versuch Domänenmodell, Kontextmodell, Top-Level-Architektur

Mehr Details

Data layer

konto

Person

Angestellter

<<data>>

EU-Rent

<<data>>

Zweigstelle adjust()

<<data>>

Auto

<<data>>

Kundenbetreuer Zweigstelle

Kundenbetreuer name

wohnort Person

<<data>>

Kunde

<<data>>

Reservierung start

<<control>>Reservierungssystem autoReservieren(termin)

setzeKundenDaten(kDaten) setzeAutoDaten(aDaten) Top-Level-Architektur

Kontextmodell

<<boundary>>

Reservierungs- Dialog

autoAnfragen(termin)

<<control>> Ausleihsystem autoReservieren(termin) setzeKundenDaten(kDaten) setzeAutoDaten(aDaten)

<<data>>

AutoKlasse

Mechaniker moveCar(

position)

<<data>>

Rabatt compute()

<<boundary>>

Ausleihdialog rentCar(reservation)

<<data>>

Contract compute() adjust()

<<boundary>>

Kundenklubdialog register(k-Daten) change(k-Daten) stop(k-Daten)

<<control>>Kundenklubprogramm registriere(k-Daten)

datenAendern(k-Daten) einstellen(k-Daten)

(19)

Was haben wir gelernt?

Szenarienanalyse hilft uns, aus Anforderungsfalldiagrammen

Domänenmodelle zu finden

Die Klassen des Domänenmodells nach BCD einzuteilen (hauptsächlich:

boundary, control, data)

Weitere Modelle abzuleiten

♦ Kontextmodell

♦ Top-Level-Architektur (als Teil der Kontrollschicht)

♦ Datenschicht

Je nach Situation verwendet man Sequenzdiagramme, Aktivitätsdiagramme, Kommunikationsdiagramme, oder Zustandsdiagramme

Merke: In der Analyse sind noch viele Details ausgeklammert

(20)

The End

Referenzen

ÄHNLICHE DOKUMENTE

Questi mettono in luce le nuove fonti della ricchezza (e dei rendimenti crescenti) in un modello che è proprio del capitalismo cognitivo. Tra questi elementi menzioniamo: i) la

In our baseline model, an increase in the aid ratio f has two effects on the growth rate γ : 12 A positive effect because higher aid payments increase the provision of productive

das Projekt „Rent-a-Teacherman“ (www.maenner-in-die-grundschule.de) hat in den vergange- nen sieben Jahren nicht nur viele Bremer und Bremerhavener Grundschulen (&gt;20) mit

The traditional interpretation of rent-seeking suggests that as a result of the economic agents rent-seeking society incurs losses of two types: losses due to

It is evident from the third row of the Table 1 that resource abundance increases the incentives to invest in political capital, and since high investment in political capital

Ob Weihnachtsfeier, Produktpräsentation im Dunkeln oder Incentive für Kunden und Mitarbeiter (Teambuilding), wir helfen Ihnen einen wirklich nachhaltigen Event in einem

Die PCC AG weist denn auch folgerichtig in ihrem Prospekt auf die „Vorteile“ des Anlegers durch ihre festen, ho- hen Zinsen im „Vergleich zu Sparbuch, Festgeld und

 strukturiertes Controlling häufig nicht im Hauptfokus Kaufmännische Unternehmensführung =.. Ferdinand Rüchardt, Josef