objektorientierte analyse dynamisches modell erstellen

36
Objektorientierte Analyse Dynamisches Modell erstellen

Upload: hadwigis-adel

Post on 05-Apr-2015

117 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Objektorientierte Analyse Dynamisches Modell erstellen

Objektorientierte Analyse

Dynamisches Modell erstellen

Page 2: Objektorientierte Analyse Dynamisches Modell erstellen

Objektorientierte Analyse

Szenarios, Aktivitäten, Zustandsautomaten und Operationen

identifizieren

Interaktionsdiagramme,Aktivitätsdiagramme,

und Zustandsdiagramme erstellen

Page 3: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Szenario

Wiederholung: Was ist ein Szenario?

• 1 Anwendungsfall= Bündel von Szenarios• 1 Szenario= Beschreibung eines Anwendungsfall- Objekts• Zeigt eine Sequenz von Verarbeitungsschritten, die unter bestimmten Bedingungen auszuführen sind• Beschreibt eine Folge von Ereignissen und Systemreaktionen, die bei der Ausführung eines System(-teil)s auftreten

Page 4: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Szenario

Konstruktive Schritte zum Modellieren von Szenarios

1. Szenarios aus Use Cases ableiten

Welche Variationen des Use Cases können auftreten?

Welche dieser Variationen sind für die Modellierung des Gesamtsystems wichtig?

häufig verwendete Systemfunktionen, Ausnahmesituationen

Sind auch die Szenarios, die nicht zum erwünschten Erfolg führen, in Erwägung gezogen?

Empfiehlt sich die textuelle Beschreibung eines Szenarios?

Name des Szenarios, Bedingung, Ergebnis

Page 5: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Szenario• Beispiele: Use Case: entleihe Medium Szenario 1: Name: entleihe Medium (Standardfall Ausgabe) Bedingungen: Medium verfügbar Medium nicht vorgemerkt Entleiherausweis gültig Entleiherkonto ausgeglichen Ergebnis: Medium wird ausgegeben

Szenario 2: Name: entleihe Medium (Medium vorgemerkt) Bedingungen: Medium ist verfügbar Medium wurde vorgemerkt Ergebnis: Medium wird ausgegeben, wenn Entleiher= Vormerker Wenn Entleiher!=Vormerker, Vormerkung vorschlagen

Page 6: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste SzenarioSzenario 3Name: entleihe Medium (Ausweis ungültig)Bedingung:Ausweis des Entleihers ist ungültigErgebnis:Ausleihe verweigert, Ausweisverlängerung vorgeschlagen

Szenario 4Name: entleihe Medium (nicht standardmäßiges Medium)Bedingung:Medium liegt vorMedium nicht vorgemerktAusweis gültigMedium ist nicht StandardmediumErgebnis:Ausgabe des Mediums, Buchung von Extragebühren

Page 7: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Szenario

2. Diagrammart wählen

Sequenz- (und) oder Kommunikationsdiagramm?

Sequenzdiagramm:

- zeitliche Reihenfolge

- Operationensaufrufe/ -abfolge

- Grundsätzliche Kommunikation zwischen den

Objekten, Kern des Szenarios

Kommunikationsdiagramm:

- in der Regel einfacher zu erstellen

- Zusammenwirken ausgewählter Objekte

Page 8: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Szenario

:verkäufer

:auftrag

:auftragsposition

:lieferartikel

:lagerartikel

:nachbestellartikel

1: vorbereiten()

1.1*: [für alle Auftragspositionen] vorbereiten()

1.1.1: prüfe()1.1.2: entnehme()

1.1.2.1: nachbestellen()

1.1.3: [nicht vorhanden] neu()1.1.2.2: [nachzubestellen]

neu()

Page 9: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Szenario

Page 10: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Szenario

3. Auslöser des Szenarios finden Aus Use Case Diagramm oder Beschreibungen der Use Cases 4. Kommunikationsobjekte ermitteln und eintragen - Welche Klassen bzw. Objekte sind an dem Szenario beteiligt?

Klassendiagramm - Sequenzdiagramm: Anordnung der Kommunikationspartner

beachten

5. Ablauf des Szenarios konstruieren Vorgehensweise: - Zerlegen der Aufgaben des Use Case in Teile, bis jeder Teil einer

Operation entspricht. - Welcher Schritt folgt nun? Welcher Kommunikationspartner führt die

Operation aus?

Page 11: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Szenario

6. Zentrale vs. Dezentrale Steuerungsstruktur

in Sequenzdiagrammen

Page 12: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Szenario

Analytische Schritte- Ist das Sequenzdiagramm konsistent mit dem Klassendiagramm?

Fehlerquellen- zu viele Details- Keine GUI betreffenden Objekte modellieren (=Entwurf)

Page 13: Objektorientierte Analyse Dynamisches Modell erstellen

Übung 1

Ziel: Aus Use Case Beschreibung Szenarios ableiten und Sequenzdiagramm erstellen

Use Case Name: Medium ausleihen Ziel: Medium wird verbucht und ausgegebenVorbedingung: Medium ist vorhandenNachbedingung +: Entleiher erhält MediumNachbedingung -: Entleiher erhält Medium nichtAkteure: Entleiher, BibliotheksangestellteAuslösendes Ereignis: Entleiher legt Medium zur Ausleihe vorBeschreibung: 1. Ausweisnummer des Entleihers wird überprüft2. Mediennummmer wird überprüft3. Medium wird verbucht4. Medium wird zur Ausleihe ausgegebenErweiterungen:1a. Ausweis ist nicht mehr gültig; Ausweis verlängern oder zurückgeben und

Ausleihvorgang beenden1b. Konto des Entleihers ist im Soll; Konto ausgleichen oder Vorgang beenden2a. Medium ist vorgemerkt; Entleiher vormerken und Vorgang beenden3a. Medium ist nicht Standardmedium; Leihfrist setzen, Sondergebühren verbuchenAlternativen:4a. Medium wird zur Benutzung im Lesesaal bereitgestellt

Page 14: Objektorientierte Analyse Dynamisches Modell erstellen

Lösung

1. Szenarios ableiten und kurz beschreiben

Beispiel: Szenario 4Name: entleihe Medium (nicht standardmäßiges

Medium)Bedingung:Medium liegt vorMedium nicht vorgemerktAusweis gültigMedium ist nicht StandardmediumErgebnis:Ausgabe des Mediums, Buchung von Extragebühren

Page 15: Objektorientierte Analyse Dynamisches Modell erstellen

2. Akteure und Objekte identifizieren

Es existiert bereits folgendes Klassendiagramm :

Entleiher Medium

Konto

nameanschrift

typ

mediennummerleihstatus

vormerkungmedienart

gebuehrenstatuskontonummer

1

1

* *

In der Beschreibung sind bereits Bibliotheksangestellte und Entleiher als Akteure gelistet; im Klassendiagramm wurden die nebenstehenden Klassen identifiziert; sie stellen möglich Kommunikationspartner dar; der Entleiher ist als Klasse modelliert

Page 16: Objektorientierte Analyse Dynamisches Modell erstellen

3. Sequenzdiagramm erstellen

Hinweis: Das Diagramm könnte in weiteren Stufen verfeinert werden

Page 17: Objektorientierte Analyse Dynamisches Modell erstellen

4. Operationen aus Sequenzdiagramm im Klassendiagramm ergänzen (hier Auswahl):

Entleiher Medium

Konto

nameanschrift

typ

mediennummerleihstatus

vormerkungmedienart

gebuehrenstatuskontonummer

1

1

* *

hole_kontodaten()setze_gebuehren()

...

liefere_daten()aktualisiere()

liefere_daten()

Page 18: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Aktivität

Aktivitätsdiagramme können zur Spezifikation von Use Cases und zur Verdeutlichung des Zusammenwirkens mehrerer Use Cases verwendet werden.

Konstruktive Schritte

1. Start und Ende der Aktivität bestimmen. Hilfreich kann dabei eine bereits vorhandene Use Case Beschreibung sein.

Wann terminiert die Aktivität? Handelt es sich bei der Aktivität um eine nichtterminierende, teilterminierende (nur einzelne Flows terminieren) oder vollständig terminierende?

2. Zuerst den Standardfall modellieren.

Page 19: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Aktivität

3. Welche Erweiterungen zum Standardfall sind möglich?

Müssen Entscheidungsknoten modelliert werden?

Liegt Parallelität in der Aktivität vor? Kann die Reihenfolge von Teilaktionen nicht genau bestimmt werden?

Bei einer Modellierung als Entscheidung muss nicht jeder Teilfluss durchlaufen werden, beim Splitting bzw. der Synchronisation geht die Verarbeitung erst dann weiter, wenn alle Teilpfade durchlaufen wurden.

4. Objektknoten eintragen, um die Aussagefähigkeit des Diagramms zu erhöhen. Erzeugen die Aktionen Daten oder werden Daten benötigt?

Page 20: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Aktivität

• Exkurs: Objektknoten in Aktivitätsdiagrammen

Ein Objektknoten gibt an, das ein oder mehrere Objekte existieren. Sie können Eingangs- oder Ausgangsparameter von Aktionen sein.

Darstellung: Als Pins oder Rechtecke

Page 21: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Aktivität

Semantik:

ObjektflussOder-Semantik

KontrollflussUnd-Semantik

ObjektflussUnd-Semantik

Eine Aktion startet erst dann, wenn die benötigten Objekte vorliegen bzw. am Ende einer Aktion werden die neuen Objekte bereitgestellt.

Permanenter Objektfluss kann durch das Schlüsselwort {stream} oder alternativ durch einen ausgefüllten Pin dargestellt werden.

Exkurs Ende

Page 22: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Aktivität

5. Aktivitätsbereiche modellieren, wenn dies zur Aussagefähigkeit beiträgt und zeichentechnisch nicht problematisch ist. Alternativ sollte in diesem Fall und im Falle vieler Aktivitätsbereiche eine Textnotation bevorzugt werden.

Analytische Schritte

- Name: Analog zur Benennung von Operationen (Aktionen sind

Verarbeitungsschritte!)

- Gibt es Aktionsknoten, in die keine Kanten hineinführen oder

aus der keine Kanten führen?

- Sind Bedingungen bei einer Entscheidung eindeutig

formuliert? x>1 nicht: x>=1

- Ist die Menge der Bedingungen einer Entscheidung vollständig?

Page 23: Objektorientierte Analyse Dynamisches Modell erstellen

Übung 2Ziel: Aktivitätsdiagramm aus Use Case Beschreibung modellieren.

Wir betrachten nochmal den Use Case aus Übung 1 und versuchen daraus ein

Aktivitätsdiagramm zu entwickeln.

Use Case Name: Medium ausleihen Ziel: Medium wird verbucht und ausgegebenVorbedingung: Medium ist vorhandenNachbedingung +: Entleiher erhält MediumNachbedingung -: Entleiher erhält Medium nichtAkteure: Entleiher, BibliotheksangestellteAuslösendes Ereignis: Entleiher legt Medium zur Ausleihe vorBeschreibung: 1. Ausweisnummer des Entleihers wird überprüft2. Mediennummmer wird überprüft3. Medium wird verbucht4. Medium wird zur Ausleihe ausgegebenErweiterungen:1a. Ausweis ist nicht mehr gültig; Ausweis verlängern oder zurückgeben und Ausleihvorgang beenden1b. Konto des Entleihers ist im Soll; Konto ausgleichen oder Vorgang beenden2a. Medium ist vorgemerkt; Entleiher vormerken und Vorgang beenden3a. Medium ist nicht Standardmedium; Leihfrist setzen, Sondergebühren verbuchenAlternativen:4a. Medium wird zur Benutzung im Lesesaal bereitgestellt

Page 24: Objektorientierte Analyse Dynamisches Modell erstellen

Lösung

1. Start und Ende ermitteln.

Dazu lesen wir in der Beschreibung das auslösende Ereignis sowie das Ziel:

Startaktion: Medium zur Ausleihe vorlegen

Ende der Aktivität: Medium ausgeben

2. Dann modellieren wir den Standardfall, so wie er in der Beschreibung vorliegt. Gibt es bereits Entscheidungsknoten oder Splittings?

3. Danach wird analog der Erweiterungen und Alternativen das Diagramm verfeinert. Gibt es (weitere) Entscheidungen oder Splittings? Sind die Bedingungen für die Entscheidungen vollständig und korrekt? Sollen Aktivitätsbereiche modelliert werden? Empfiehlt sich das Einfügen von Objektknoten?

Page 25: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Zustandsautomat

Anwendungsgebiet in der Analyse- Modellierung des dynamischen Verhaltens von Klassen und Use

Cases (Verhaltenszustandsautomat)- Spezifikation der Zustände und Bedingungen von

Operationsabläufen (Protokollzustandsautomat)

Konstruktive Schritte

1. Muss überhaupt ein Zustandsautomat bzw. ein Zustandsdiagramm erstellt werden?

Lebenszyklus der Klasse/ Objekt; meist trivial

- sinnvoll, wenn ein Objekt auf eine bestimmte Botschaft abhängig vom aktuellen Zustand unterschiedlich reagieren kann

- wenn einige Operationen nur in bestimmten Zuständen auf ein Objekt anwendbar sind

Page 26: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Zustandsautomat

Beispiel 1:

Der Zustandsautomat der Klasse Seminartyp ist trivial: der Seminartyp existiert oder er existiert nicht

Page 27: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Zustandsautomat

Beispiel 2:

VerhaItenszustands-automat

im ausgebuchten oder stornierten Zustand können keine Anmeldungen vorgenommen werden

Page 28: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Zustandsautomat

Beispiel 3: Protokollzustands-automat

Die Operationen der Klasse werden so modelliert,dass sie zeigen, in welchen Zustand sie auf Objekte der Klasse angewandt werden können

Page 29: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Zustandsautomat

Beispiel 4:Der Use Case ‚Parkgebührbezahlen‘ wird durch ein Zustandsdiagramm spezifiziert. Automaten lassen sich sehr gut durchZustandsautomaten modellieren.

Page 30: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Zustandsautomat

2. Zustandsautomatenelemente identifizieren und in Beziehung setzen

Mögliche Vorgehensweisen:

- Brainstorming:

Tabelle erstellen, in der alle Zustände, Ereignisse und Verarbeitungsschritte, die innerhalb eines Anwendungsfalls oder durch Objekte der Klasse ausgeführt werden, eingetragen werden.

- In welchen Zustand befindet sich ein Objekt der Klasse direkt nach seiner Erzeugung? Welche Ereignisse können eintreten? Welche Zustände können ausgehend davon folgen?

Page 31: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Zustandsautomat

3. Gibt es einen oder mehrere Endzustände oder ist der Zustandsautomat zyklisch?

4. Aktivitäten (Verarbeitungen) eintragen - Gibt es mit einer Transition eine Verarbeitung? - Besitzen alle eingehenden Transitionen eines Zustands die

gleiche Aktivität? entry/ - Besitzen alle ausgehenden Übergänge die gleiche Aktivität?

exit/ - Wird über die Dauer eines Zustands eine Verarbeitung

ausgeführt und ruft ihre Beendigung einen Zustandsübergang hervor? do/

5. Welche externen oder internen Ereignisse lösen Zustandsübergänge aus? Handelt es sich um zeitliche Ereignisse?

Page 32: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Zustandsautomat

Analytische Schritte

- Name: Sollte die Zeitspanne beschreiben, in der sich das Objekt in einem Zustand befindet. Möglichst nicht in Form einer Verarbeitung ausdrücken: „prüfend“ statt „prüfen“

- Die Aktivitäten und Verarbeitungen des Zustandsdiagramms sollten konsistent zum Klassendiagramm sein, d.h. mindestens eine Teilmenge der Operationen aus dem Klassendiagramm sein

- Besitzen alle Zustände ein- und ausgehende Transitionen? Gibt es Situationen, die nicht durch die bestehenden Transitionen modelliert sind?

Page 33: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Operationen

Konstruktive Schritte

1. Operationen aus den Interaktionsdiagrammen/ Zustandsdiagrammen in das Klassendiagramm eintragen

2. Gibt es Listenoperationen (=Operationen, die auf Listen zurückgreifen, z.B. die Operation „ermittleKunden()“ aus Beispiel 1) die das statische Modell vervollständigen? als Klassenoperation eintragen

3. Verwaltungsoperationen werden nicht in das Klassendiagramm der Analyse eingetragen

4. Operationen in einer Vererbungsstruktur so hoch wie möglich eintragen

5. Ergänzende Beschreibungen der Operationen vornehmen, wenn Funktionsweise nicht klar wird kann eine Operation in diesem Fall zerlegt werden?

Page 34: Objektorientierte Analyse Dynamisches Modell erstellen

Checkliste Operationen

Analytische Schritte

- Name: Verb, Verb/Substantiv Kombination; sollte aussagen, was die Operation macht; konsistenter Aufbau

- Allgemein gehaltene Namen können ein Indiz auf Operationen sein, die verschiedene Verarbeitungsschritte beinhalten. Hier evtl. prüfen, ob sich mehrere aussagekräftige Verben finden lassen.

Z.B.: „verarbeite()“ ladeDaten(), ermittleWert(), …

Page 35: Objektorientierte Analyse Dynamisches Modell erstellen

Übung 3Ziel: Für eine Klasse den Zustandsautomaten (Lebenszyklus) erstellen.

Spezifizieren Sie für die Klasse Mietwagen (s.u.) den Lebenszyklus. Die Wirkung der Operationen ist wie folgt definiert:

vermieten(): Ein neues Objekt von Mietvertrag erzeugen und entweder vorhandenem Kunden zuordnen oder neuen Kunden erfassen.

zurücknehmen(): Gibt der Kunde den Mietwagen vertragsgemäß zurück, so wird das Auto gewaschen und überprüft.

bereitstellen(): Ergibt sich bei der Prüfung die einwandfreie Funktion, so wird der Wagen wieder in den Fuhrpark überstellt.

anmeldenWerkstatt(): Ein defekter Mietwagen wird zur Reparatur angemeldet. Sobald ein Mietwagen repariert ist, wird er wieder bereitgestellt.

ausmustern(): ergibt sich bei der Prüfung, dass der Kilometerstand des Mietwagens > 80000 km ist, wird er aus dem Fuhrpark des Mietwagenverleihs entfernt und zum Verkauf bereitgestellt. Ist der Wagen defekt, wird er zunächst repariert, um einen höheren Verkaufspreis zu erzielen.

Page 36: Objektorientierte Analyse Dynamisches Modell erstellen

Weitere Übungen

• Stellen Sie das Szenario aus Übung 1 als Kommunikationsdiagramm dar.

• Leiten Sie aus Übung 1 weitere Szenarien ab und stellen Sie diese in einem Interaktionsdiagramm dar.

• Erstellen Sie für das Medium Buch einen innerhalb einer Bibliothek typischen Lebenszyklus.