View
120
Download
1
Category
Preview:
Citation preview
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.
Recommended