Softwaretechnologie, © Prof. Uwe Aßmann Technische Universität Dresden, Fakultät Informatik1
35 Szenarienanalyse mit Anw endungsfalldiagram men (Querschneidende dyn. Modellierung)
Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Version 11-0.1, 25.06.111)Anwendungsfall-diagramme 2)Szenarienanalyse 1)mit Interaktionsdiagrammen 2)mit Aktionsdiagrammen Prof. U. Aßmann, Softwaretechnologie2
O bl igat or ische Li ter at ur
►Zuser, Kap. 7-9, insbes. 7.3+7.5 ►Störrle Kap 9, Kap 12Prof. U. Aßmann, Softwaretechnologie3
Ü ber bl ick Tei l I II: O bj ekt or ient ier te A nal yse (O O A )
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 (35) 3.(Funktionale querschneidende Verfeinerung für komplexe Objekte) 4.Beispiel Fallstudie EU-Rent Softwaretechnologie, © Prof. Uwe Aßmann Technische Universität Dresden, Fakultät Informatik435.1 Anwendungs falldiagramme
Prof. U. Aßmann, Softwaretechnologie5
N ut zer anal yse (S takehol der A nal ysi s)
►Nutzer (Stakeholder): Nutznießer des Systems ■Akteur, Aktor (Benutzer des Systems oder Interakteur) ■Eigner von involvierten Betrieben ■Die, die mit dem System Geld verdienen oder verlieren ■Menschen, die unter Seiteneffekten des Systems leiden ►Die einfachste Form von Stakeholderanalyse kümmert sich nur um Akteure ■und liefert eine Liste von Akteuren ■Diese Akteure werden dann weiter in Anwendungsfalldiagrammen eingesetzt Prof. U. Aßmann, Softwaretechnologie6Terminverwaltung
U M L- A nw endungsf al l-D iagr am m (U se- C ase- D iagr am m )
Teambe- sprechung organi- sieren Organisator Team- mitgliedUngenutzte Raumkapazität ermittelnRaum- verwalter
Teambe- sprechung ver- schieben Persönlichen Termin einplanen
Prof. U. Aßmann, Softwaretechnologie7
A nw endungsf äl le
►EinAkteur beschreibt eine Rolle, die ein Benutzer (oder ein anderes System) spielt, wenn er/es mit dem System interagiert. op(x, y)►Eine Interaktion ist der Austausch von Nachrichten unter Objekten zur Erreichung eines bestimmten Ziels. ►Eine Nachricht ist die Beschreibung einer Operation eines Objekts mit den notwendigen Parameterwerten, so daß die Operation durch das Objekt ausführbar ist. ►EinAnwendungsfall (Nutzfall, Use-Case, engl. use case) ist die Beschreibung einer Klasse von Aktionsfolgen (einschließlich Varianten), die ein System ausführen kann, wenn es mit Akteuren interagiert. Prof. U. Aßmann, Softwaretechnologie8
A nw endungsf äl le
►Funktionale Anforderungen an ein System können durch Anwendungsfällebeschrieben werden ■Anwendungsfälle sind Funktionen des Systems im Kontext von Anwendern (Aktoren) ►Aus den Anwendungsfällen setzt man mittels Szenarienanalyse dann zusammen: ■das Kontextmodell mit ♦alle Klassen an der Schnittstelle des Systems, also die sichtbaren Funktionen des Systems ♦ihre Attribute, Methoden, Ströme, Ereignisse ♦Relationen der Klassen ■die Top-Level-Architektur, die die Realisierung der sichtbaren Funktionen des Systems auf oberster Ebene zeigt ♦Die Top-Level-Architektur ist eine Verfeinerung erster Stufe, bei der man die grobkörnigen (top-level) Subsysteme des Systems sowie ihr Zusammenspiel sieht ♦Subsysteme bestehen aus Paketen mit KlassenProf. U. Aßmann, Softwaretechnologie9
V er al lgem ei ner ung , E rw ei ter un g und A uf ru f von A nw endungsf äl len
►Die Vererbungsrelation beschreibt Generalisierung bzw. Spezialisierung ■Hier: Maintenance ist allgemeiner als Preventive Maintenance ►DieIncludes-Relation beschreibt Bestandteile der Aktionen (Aufrufbeziehung zwischen Aktionen) ■Hier: Maintenance beinhaltet Checks ►DieExtends-Relation beschreibt optionale Erweiterungen ■Hier: Oil Exchange kann Teil von Maintenance seinParking Refueling Maintenance Preventive Maintenance
CustomerManager <<extends>> Checks
<<includes>>
Garage Oil Exchange Softwaretechnologie, © Prof. Uwe Aßmann Technische Universität Dresden, Fakultät Informatik10
35.2 Sz enarienanaly se - Ableit ung von Kollaborationen aus Anwendungs fällen An we nd ung sf al lre alisie rung , use c ase r ealiz at ion
Prof. U. Aßmann, Softwaretechnologie11
E rinner ung: S chem at ischer A bl auf der A nal yse
Domain Analysis (Domain concepts) Function Analysis - Use case analysisStakeholder Analysis (Nutzergruppen) “real” requirements analysis Context Model Analysis
Domain Model Funktionale Anforderungen Anforderungen Pflichtenheft Vertrag
Produktdefinition
preparatory requirements analysis basic system analysis Top-level Architecture AnalysisCon
text Model Top-level architecture
GUI Prototyp
GUI AnalysisUse-case Realization Scenario analysis Prof. U. Aßmann, Softwaretechnologie1212
W ege der S ze nar iena nal yse (u se ca se real izat ion anal ysi s)
►Die Methode derAnwendungsfallrealisierung (use case realization, Szenarienanalyse, scenario analysis)wird verwendet, um: ■Kontextmodell und Top-Level-Architektur abzuleiten ■Querschneidende Verfeinerung durch mehrere Klassen/Objekte durchzuführen ■Kollaborationen (Konnektoren, Teams) für das Object Fattening abzuleiten ►Anwendungsfallrealisierung nutzt verschiedene Szenariodiagramme: ■Verfeinere Anwendungsfalldiagramm mit Interaktionsdiagrammen ♦mit Sequenzdiagramm (sequence diagram, sequence chart) ♦mit Kommunikationsdiagramm (communication diagram) ■Verfeinere Anwendungsfalldiagramm mit Aktionsdiagrammen ♦mit Aktivitätsdiagramm ♦mit Verhaltens-(Zustands-)maschineProf. U. Aßmann, Softwaretechnologie13
S zenar ien
►Definition: EinSzenario ist eine Beschreibung einer beispielhaften Folge von Interaktionen von Akteuren mit dem System zur Beschreibung eines Anwendungsfalls. ■Es gibt Szenarien für Normalfälle ('gut-Fälle'), Ausnahmefälle, und Fehlerfälle ('negativ'-Fall). ►Szenarien gehen von Anwendungsfällen aus ■Wähle einen Anwendungsfall aus einem Anwendungsfalldiagramm ■Spiele Anwendungsfall mit allen Akteuren durch ♦ermittle zeitliches Zusammenspiel, verfeinere über der Zeit ♦ermittle feinere Aktionen und binde sie mit Vererbung ein ♦ermittle Unteraktionen und binde sie mit <<includes>> ein ♦ermittle optionale Erweiterungen von Aktionen und binde sie mit <<extends>> ein ■Wähle als Szenariobeschreibung durch Interaktionsdiagramme oder Aktionsdiagramme ■Leite daraus eine Kollaboration ab (Konnektor, Team) ♦ Softwaretechnologie, © Prof. Uwe Aßmann Technische Universität Dresden, Fakultät Informatik1435.2.1 Szenar ienanaly se mit Interak tions diagrammen
Prof. U. Aßmann, Softwaretechnologie15
S zenar ienanal yse
►Beispiel: Eines der Normalfall-Szenarien für 'Teambesprechung organisieren' –Organisator erfährt Thema, Termin, TeilnehmerInnen einer neu geplanten Teambesprechung. –Zeitpunkt wird mit TeilnehmerInnen abgestimmt. –Raum wird reserviert (falls gewünscht). –Einladungen werden an die TeilnehmerInnen versandt.Terminverwaltung Teambe- sprechung organi- sieren Organisator Team- mitglied Prof. U. Aßmann, Softwaretechnologie16
E rst el le n ei nes U M L- S equ enz di ag ram m s für S zenar io
m3:Team- mitgliedm5:Team- mitglied bestätigttb1:Teambe- sprechung
erzeugen OKterminBestätigen() terminBestätigen OK ...
Organisator
►Sequenzdiagramm: Objekt-Lebenszeit-Matrix: Objekte von links nach rechts, Zeit von oben nach unten (Objekt-Lebenslinien) ■Sequenzen von Nachrichten, geordnet durch die Zeit ►Achtung: das Sequenzdiagramm schneidet quer durch das Lebenszyklus mehrerer Objekte und beschreibt ein Szenario Senkrechte Linien: 'Leben' einer Objektinstanz Waagrechte Pfeile: (Synchrone) Nachrichten Gestrichelte Pfeile (optional): Antworten (Ergebnisrückgaben) Blöcke auf den senkrechten Linien: Steuerfokus (Aktivierung)
Prof. U. Aßmann, Softwaretechnologie17
K apsel n ei nes S zenar ios in ei ner K ol labor at ion
m3:Teil nehmerm5:Teil nehmer bestätigttb1:Teambe- sprechungerzeugen OKterminBestätigen() terminBestätigen OKOrganisator
Person
Person Teambesprechung organisierenOrganisator Teilnehmer
Teilnehmer
►Eine Kollaboration kann mit einem Sequenzdiagramm als Verhalten unterlegt werden ►Die Kollaboration beschreibt also ein Szenario querschneidend durch die Lebenszyklen mehrerer Objekte Person Prof. U. Aßmann, Softwaretechnologie18
E inor dnung in K ont ext m odel l und Top- Level - A rchi tekt ur
►Nach der Szenarienanalyse muss unterschieden werden, welche Klassen zum Kontextmodell und welche zur Top-Level-Architektur gehören ►Hier: noch alles im Kontextmodell m3:Team- mitgliedm5:Team- mitglied bestätigttb1:Teambe- sprechung
erzeugen OKterminBestätigen() terminBestätigen OK ...
Organisator
Prof. U. Aßmann, Softwaretechnologie19
Terminverwaltung
V er fei ner ung des A nw end ung sf al ls m it E rgebni ssen der S zenar ienanal yse
Teambe- sprechung organi- sieren Organisator Team- mitgliedTermin abstimmen Raum reservieren Versenden von Einladungen
Raumverwaltung
<<includes>> Prof. U. Aßmann, Softwaretechnologie20
S zenar ienanal yse m it S equenzdi agr am m en
►Ausgangspunkt: Anwendungsfall Auto-Wartung (Maintenance) [Pfleeger] Maintenance Preventive MaintenanceCustomerManager <<extends>> Checks
<<includes>>
Garage Oil Exchange
Prof. U. Aßmann, Softwaretechnologie2121
S zenar ienanal yse S equenzdi agr am S er vi ce- S tat ion
:Manager:Technician:Car:Accounting System:Customer instruct() checks() diagnosis() therapy() recordEffort() notify() notify()►Sequenzdiagramme werden benutzt zur Analyse von Szenarien mit wenigen Objekten, die viel kommunizieren Prof. U. Aßmann, Softwaretechnologie2222
B ezi ehung zum K ont ext m odel l und Top- Level - A rchi tekt ur
:Manager:Technician:Car:Accounting System:Customer instruct() checks() diagnosis() therapy() recordEffort() notify() notify()►Jetzt: Verfeinerung in TLA hinein Kontextmodell KontextmodellTop-Level-Architektur
Prof. U. Aßmann, Softwaretechnologie23
V er fei ne rt es A nw en dun gsf al l-D iagr am m S er vi ce- S tat ion
►Aus dem Sequenzdiagramm kann nun ein verfeinertes Anwendungsfalldiagramm erstellt werden Checks CustomerManager Diagnosis TherapyTechnician Recording Efforts Accounting Services
Maintenance <<includes>> Prof. U. Aßmann, Softwaretechnologie24
A bl ei tun g vo n K ol labo ra tion en aus der S zenar ienanal yse
►Kollaborationen können Sequenzdiagramme zugeordnet werden ►Im Klassendiagramm des Analysemodells bildet die Kollaboration die technische Repräsentation des Anwendungsfalles Checks Technician Manager:Manager as orderer:Technician as executor instruct()checks() diagnosis() therapy() recordEffort() notify()
executor orderingnotify() Checks :Car as materialCarmaterial
Prof. U. Aßmann, Softwaretechnologie25
U m w and lu ng A nw endu ngsf al l-D ia gr am m in K ol labor at ionen
►Aus dem Anwendungsfalldiagramm kann ein Paket von Kollaborationen erstellt werden 1)Umwandlung der Anwendungsfälle in Konnektoren, Akteure in Klassen 2)Vergabe von Rollen-Namen Checks CustomerManager Diagnosis Therapy
Technician Recording EffortsAccounting Services
Maintenance <<includes>>Checks Diagnosis Therapy Recording Efforts
Maintenance Technician Accounting Services
Manager Customer
Maintenance collaborations Prof. U. Aßmann, Softwaretechnologie26
U m w and lu ng A nw endu ngsf al l-D ia gr am m in K ol labor at ionen
►3) Anhängen des Interaktionsdiagramms (hier Sequenzdiagramm) Checks Diagnosis Therapy Recording EffortsMaintenance Technician Accounting Services
Manager Customer
Maintenance collaborations 26
:Manager:Technician:Car:Accounting System:Customer instruct() checks() diagnosis() therapy() recordEffort() notify() notify() KontextmodellKontextmodellTop-Level-Architektur
Maintenance
Prof. U. Aßmann, Softwaretechnologie2727
K om m uni kat io nsdi ag ram m ( C om m uni cat io n D iagr am )
►EinKommunikationsdiagramm ist ein Interaktionsdiagramm ■Sequenzdiagramm „von oben gesehen“ ■Ohne Objektlebenslinien, flexibles Layout ■Hierarchische Nummerung drückt die Zeit aus (zeitliche Abfolge der Nachrichten und Aufrufe) ■Geeignet für viele Objekte, die komplex miteinander verbunden sind :Customer :Service Station:Parking Space:Purchase :Parking
1:parking() 4:newPurchase() 2:nextAvailable()5:newParking()
3:parkingAt() Softwaretechnologie, © Prof. Uwe Aßmann Technische Universität Dresden, Fakultät Informatik28
35.2.2. Szenar ienanaly se mit Ak tions diagrammen Ak tionsd iag ram m e: Ak tiv ität end iag ram m e, St at ec har ts
Prof. U. Aßmann, Softwaretechnologie29
Q uer schei dende dyn am ische M odel lier un g m it S zenar ienanal yse
►Mit Aktionsdiagrammen kann manLebenszyklen von Objekten spezifizieren ►Daneben kann man das Zusammenspiel mehrerer Objekte oder Methoden untersuchen (querschneidende dynamische Modellierung, querschneidende funktionale Verfeinerung). ►Dazu führt man eine Szenarienanalysedurch, die quasi die Draufsicht auf ein Szenario ermittelt Prof. U. Aßmann, Softwaretechnologie30S ze nar ien anal yse : B ear be iten ei ner tel ef oni schen B est el lung
Validating Customer Check AvailabilityMemorizeOrder [no valid id] [valid id] [not avail] [avail] Emit Bill
Fetch from Stock
StockCustomer ManagementCustomer Ship
►Mit Aktivitätendiagrammen kann man Szenarienanalyse betreiben ►Aktivitäten können durch Schwimmbahnen (swimlanes) gegliedert werden, die Objekten zugeordnet sind ■Daraus kann man dann Methoden für die beteiligten Objekte ableiten
Prof. U. Aßmann, Softwaretechnologie31
►Szenarienanalyse mit Statecharts funktioniert ähnlich; es entstehen Netze von kommunizierende Verhaltensmaschinen Prof. U. Aßmann, Softwaretechnologie32
W as haben w ir gel er nt ?
►Ein Anwendungsfall kann durch Szenarienanalyse verfeinert werden ■Aus dem Anwendungsfall kann eine Kollaboration abgeleitet werden ■Sowie ein Interaktionsdiagramm, das das Protokoll zwischen den Rollen der Kollaboration beschreibt ■Oder ein Aktionsdiagramm, das ebenfalls das Protokoll zwischen den Rollen der Kollaboration beschreibt ►Szenarienanalyse verfeinert querschneidend, i.G. Zu punktweiser VerfeinerungProf. U. Aßmann, Softwaretechnologie33