Objektorientierte Analyse Dynamisches Modell erstellen.

Post on 05-Apr-2015

115 views 1 download

Transcript of Objektorientierte Analyse Dynamisches Modell erstellen.

Objektorientierte Analyse

Dynamisches Modell erstellen

Objektorientierte Analyse

Szenarios, Aktivitäten, Zustandsautomaten und Operationen

identifizieren

Interaktionsdiagramme,Aktivitätsdiagramme,

und Zustandsdiagramme 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

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

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

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

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

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()

Checkliste Szenario

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?

Checkliste Szenario

6. Zentrale vs. Dezentrale Steuerungsstruktur

in Sequenzdiagrammen

Checkliste Szenario

Analytische Schritte- Ist das Sequenzdiagramm konsistent mit dem Klassendiagramm?

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

Ü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

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

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

3. Sequenzdiagramm erstellen

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

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()

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.

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?

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

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

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?

Ü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

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?

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

Checkliste Zustandsautomat

Beispiel 1:

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

Checkliste Zustandsautomat

Beispiel 2:

VerhaItenszustands-automat

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

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

Checkliste Zustandsautomat

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

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?

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?

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?

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?

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(), …

Ü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.

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.