Objektorientierte Analyse OOA.4) 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 09-0.2, 31.12.09 1) Beispiel EU-Rent Softwaretechnologie, Prof. Uwe Aßmann 1 Ü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 Prof. U. Aßmann, Softwaretechnologie 2
Die Autoverleihfirma EU-Rent EU-Rent ist eine Fallstudie, die momentan in den 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 Prof. U. Aßmann, Softwaretechnologie 3 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 von Autos Ausleihe und Rückgabe von Autos vorbestellt ad-hoc abgeholt Abholung, Rückgabe, auch an anderer Rabatte und Sonderangebote nclub-programm Rabattpunkte-Programm Prof. U. Aßmann, Softwaretechnologie 4
Stakeholder (hier: Akteure) Akteure stehen mit dem System in Beziehung. Noch keine Festlegung von Systemfunktionen EU-Rent System EU-Rent Mitarbeiter nbetreuer nbetreuer nklub Prof. U. Aßmann, Softwaretechnologie 5 Domänenmodell, 1. Streich Domänenmodelle müssen die Organisation, Dinge, Geschäftsvorgänge, -objekte modellieren. Die involvierten en werden mitmodelliert Noch ohne Kardinalitäten und Attribute AutoKlasse EU-Rent Auto Angestellter Klubmitglied nbetreuer nbetreuer nklub Prof. U. Aßmann, Softwaretechnologie 6
A) ssystem von EU-Rent Beim Ausfüllen (Elaboration) kommen neue Elemente hinzu ssystem Neu! Auto umbestellen Auto vorbestellen Auto abbestellen CallCenter- Mitarbeiter Auto ad-hoc mieten nbetreuer Prof. U. Aßmann, Softwaretechnologie 7 Erste Szenarienanalyse mit Sequenzdiagramm Auto vorbestellen hier nur die positiven Fälle Auto vorbestellen : frageautoantermin bestelle :CallCenter Mitarbeiter PrüfeTerminFrei Neu! : :ssystem Neu! CallCenter- Mitarbeiter erfasse ndaten erfasse Autodaten setze ndaten setze Autodaten Prof. U. Aßmann, Softwaretechnologie 8
BCD-Einteilung für Erste Szenarienanalyse Auto vorbestellen Einziehen einer Boundary-Klasse, Vergabe von BCD-Stereotypen Umschichten der Kommunikation der Daten-Klasse : frageautoantermin bestelle :s- Dialog prüfeterminfrei (Termin) autoreservieren (Termin) :ssystem : erfasse ndaten erfasse Autodaten setze ndaten(k-daten) setze Autodaten(A-Daten) setze ndaten(k-daten) setze Autodaten(A-Daten) Prof. U. Aßmann, Softwaretechnologie 9 2. Versuch Domänenmodell Kontextmodell Mehr Attribute, mehr Klassen. Ergibt erste Teile des Kontextmodells, der Top- Level-Architektur. des Datenmodells en liegen nur teilweise im Datenmodell, da auch aktiv name wohnort s- Dialog AutoKlasse EU-Rent Angestellter autoanfragen(termin) Data layer Top-Level-Architektur <<control>> ssystem autoreservieren(termin) setzendaten(kdaten) setzeautodaten(adaten) Auto start ende konto Klubmitglied nbetreuer nbetreuer nklub Prof. U. Aßmann, Softwaretechnologie 10
B) Ausleihesystem von EU-Rent Ausleihesystem Auto abholen Auto rückgeben <<includes>> Autoleihe bezahlen <<includes>> nbetreuer Autostörung melden Rabatt ausrechnen Neu! Mechaniker Prof. U. Aßmann, Softwaretechnologie 11 2. Szenarienanalyse mit Aktivitätendiagramm: Auto ausleihen Rabatte werden vom Mitarbeiter persönlich bestimmt Auto abholen nbetreuer nbetreuer Ausleihsystem ssystem Mechaniker Frage nach Auto aus [ok] [not ok] Setze sstatus auf ausgeliehen Vergebe grösseres Auto Setze sstatus auf ausgeliehen Drucke Vertrag Berechne Rabatt Unterzeichne Vertrag Modifiziere Vertrag Fahre Auto vor Fahre weg Prof. U. Aßmann, Softwaretechnologie 12
BCD für 2. Szenarienanalyse: Auto ausleihen <<actor>> Ausleihdialog <<control>> Ausleihsystem <<control>> ssystem <<control>> Mechaniker Frage nach Auto aus [ok] [not ok] rentcar(reservation) CarClass. ssystem. setstatus( ausgeliehen ) Contract. Rabatt. Unterzeichne Vertrag Contract. movecar( position) Fahre weg Prof. U. Aßmann, Softwaretechnologie 13 3. Versuch Domänenmodell, Kontextmodell, Toplevel- Architektur Mehr Details Kontextmodell s- Dialog autoanfragen(termin) Ausleihdialog Top-Level-Architektur <<control>> Ausleihsystem autoreservieren(termin) setzendaten(kdaten) setzeautodaten(adaten) <<controll>> ssystem rentcar(reservation) autoreservieren(termin) setzendaten(kdaten) setzeautodaten(adaten) setstatus(status) Data layer AutoKlasse Contract Auto start ende EU-Rent Rabatt konto Klubmitglied name wohnort nbetreuer Angestellter Mechaniker movecar( position) nbetreuer nklub Prof. U. Aßmann, Softwaretechnologie 14
C) nclubprogramm von EU-Rent nklubsystem Registriere Mitglied nbetreuer Melde Mitglied ab Verändere Datensatz Call Center Betreuer nbetreuer 3. Szenarienanalyse mit Statecharts: als Klubmitglied verwalten Prof. U. Aßmann, Softwaretechnologie 15 nicht registriert Anruf, Formular, Gespräch, email/ registrieren() registriert Gespräch/registrieren() email/daten ändern() abgemeldet email/einstellen() Prof. U. Aßmann, Softwaretechnologie 16
3. Szenarienanalyse: Statecharts Verfeinerung mit Methoden einer Verhaltensmaschine für das nklubprogramm nicht registriert nklubdialog.register()/ nklubprogramm.registrieren(k-daten) nklubdialog.register() [authorization==]/ nklubprogramm.registrieren(k-daten) registriert nklubdialog.change(k-daten)/ datenaendern(k-daten) nklubdialog.stop(k-daten)/ nklubprogramm.einstellen(k-daten) abgemeldet Prof. U. Aßmann, Softwaretechnologie 17 4. Versuch Domänenmodell, Kontextmodell, Top-Level- Architektur Kontextmodell Mehr Details s- Dialog autoanfragen(termin) Ausleihdialog nklubdialog rentcar(reservation) register(k-daten) change(k-daten) stop(k-daten) Top-Level-Architektur <<control>>nklubprogramm registriere(k-daten) datenaendern(k-daten) einstellen(k-daten) <<control>> Ausleihsystem autoreservieren(termin) setzendaten(kdaten) setzeautodaten(adaten) <<control>>ssystem autoreservieren(termin) setzendaten(kdaten) setzeautodaten(adaten) setstatus(status) Data layer AutoKlasse Contract Auto start ende EU-Rent Rabatt konto Klubmitglied name wohnort nbetreuer Angestellter Mechaniker movecar( position) nbetreuer nklub Prof. U. Aßmann, Softwaretechnologie 18
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 Prof. U. Aßmann, Softwaretechnologie 19 The End Prof. U. Aßmann, Softwaretechnologie 20