Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

25
Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomat en Operationen

Transcript of Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Page 1: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checklisten dynamisches Modell

Checklisten für:

SzenarioZustandsautomatenOperationen

Page 2: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste Szenario

• Szenario = verfeinerter GPjede Variante des GP ist ein Szenario

• helfen Operationen zu finden• Darstellung: Interaktionsdiagramme

Sequenzdiagramm/Kollaborationsdiagramm• validieren das statische Modell• primär --> Standardverhalten (fundamentale

Funktionen)sekundär --> Variation zu Standardverhalten (Ausnahmeverhalten)

• positiv --> erfolgreiche Bearbeitungnegativ --> erfolgloser Ausgang

Page 3: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste SzenarioDokumentation

• Name des Szenarios• Bedingungen, die zu Szenario führen• Ergebnis des Szenarios

Beispiel: Versicherung -- bearbeite SchadensfallS1: bearbeite Schadensfall (Schaden bezahlen)S2: bearbeite Schadensfall (Police ungültig)S3: bearbeite Schadensfall (unvollständige Deckung)Wichtig:• alle Bedingungen explizit angeben• 1 Szenario --> 1 Interaktionsdiagramm

Page 4: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste SzenarioDokumentation

Namebearbeite Schadensfall (Schaden bezahlen)

Bedingungen:• notwendige Daten vorhanden• Police gültig• Police deckt Schaden ab

Ergebnis:Schadenersatzanspruch wird vollständig beglichen

Page 5: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste SzenarioDokumentation

Namebearbeite Schadensfall (Police ungültig)

Bedingungen:• notwendige Daten vorhanden• Police ungültig

Ergebnis:Antragsteller erhält Schreiben

Page 6: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste SzenarioDokumentation

Namebearbeite Schadensfall (unvollständige Deckung)

Bedingungen:• notwendige Daten vorhanden• Police gültig• Police deckt Schaden nur unvollständig ab• erfolgreiches Verhandeln mit Antragsteller

Ergebnis:Schaden wird gemäß Vergleich beglichen

Page 7: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste Szenario

• Welche Klassen sind beteiligt?Basis: Klassendiagramm, evt. erweitern

• Welche Aufgaben gibt es im GP?Aufgaben zerlegen, bis Operationen extrahiert sind

Fragen:Was ist jetzt zu tun?Wer führt es aus?

Page 8: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste SzenarioBeispiel: Frisör - Geschäftsprozess

Page 9: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste SzenarioBeispiel: Frisör - Klassendiagramm

Page 10: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste SzenarioBeispiel: Frisör - Sequenzdiagramm

• Name:bediene Kunden(incl. Zusatzverkäufe)

• Bedingungen:Kunde ist angemeldet

• Ergebnis:Kunde hat bezahlt

Page 11: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste SzenarioSequenzdiagramm: mehrere Transaktionen

Page 12: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste SzenarioSequenzdiagramm: mehrere Transaktionen

• Zentral --> fork diagramein Steuerobjekt für alle weitere Operationen

• Dezentral --> stair diagramverteilte Steuerungslogik

Page 13: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste SzenarioSequenzdiagramm: Beispiel Bibliothek

Page 14: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste SzenarioErgebnis Sequenzdiagramm (Kollaborationsdiagramm)Konstruktive Schritte• Jeder Geschäftsprozess ergibt mehrere Szenarios

Standard/Alternativen, positiv/negativ, Dokumentation• Wie läuft das Szenario ab?

Beteiligte Klassen, Aufgaben in Operationen zerlegen, Operationenreihenfolge• Zu welcher Klasse gehören die Operationen?• Wie ist das Szenario strukturiert?

Mehrere Transaktionen? Zentral/dezentral (fork/stair diagram) Analytische Schritte• Ist das Sequenzdiagramm konsistent mit dem Klassendiagramm?Fehlerquelle• Zu viele Details

Page 15: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste Zustandsautomat

• spezifiziert Lebenszyklus einer Klasse• hilft Operationen und deren Abhängigkeiten zu

finden• nur bei nicht trivialen Lebenszyklen, also wenn

* ein Objekt auf eine Botschaft je nach aktuellem Zustand unterschiedlich reagiert* Operation nur auf ein Objekt in bestimmten Zuständen anwendbar ist, sonst ignoriert wird

Page 16: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste Zustandsautomattrivialer Lebenszyklus

Page 17: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste Zustandsautomatnicht trivialer Lebenszyklus

Page 18: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste ZustandsautomatZustände

• AnfangszustandObjekt direkt nach der Erzeugung

• ZwischenzuständeWelches Ereignis führt zu einem Folgezustand?

• Endzustandnur bei linearen Automatenzyklische Automaten (Bsp: Tank, Geldautomat, ...) durchlaufen die Zustände iterativ --> kein Endzustand

Page 19: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste ZustandsautomatEreignisse

• Externe Ereignissevom Benutzer oder anderen Objekten

• Zeitliche Ereignisse

• Reaktion des Objektes bei abweichendem Verhalten (exeption handling)

Page 20: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste Zustandsautomat

Ergebnis Zustandsdiagramme für nicht triviale Lebenszyklen

Konstruktive Schritte

• Welche nicht triviale Lebenszyklen existieren?

• Welche Zustände kann ein Objekt annehmen?

• Gibt es Endzustände?

• Welche Ereignisse sind zu modellieren?

Analytische Schritte

• Geeigneter Zustandsname? (kein Verb!)

• Ist jeder Zustand erreichbar?

• Gibt es für jede Operation einen Zustand für eine Objektreaktion?

• Konsistenz mit Klassendiagramm (Operationen)

Page 21: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Checkliste OperationenErgebnis Klassendiagramm mit allen Operationen

Konstruktive Schritte

• Operationen aus Szenarios und Zustandsautomaten in Klassendiagramm übertragen

• Vererbung von Operationen berücksichtigenso hoch wie möglich in der Hierarchie eintragen

• Nur bei Bedarf: Operationsbeschreibung

Analytische Schritte

• Geeigneter Operationssname? (beginnt immer mit Verb)

• Balance zwischen Attributen und Operationen?Klassen sollen nur Attribute enthalten, die von den Operationen benötigt werden

Page 22: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

AufgabenAufgabe 1: Ziel: Ein Szenario als Sequenzdiagramm beschreiben.Für folgende Beschreibung sind die Bedingungen und das Ergebnis zu identifizieren.

Erstellen Sie dann ein Sequenzdiagramm.Eine Palette ist aus einem Lager in ein anderes umzulagern. Jedes Lager besteht aus mehreren

Lagerplätzen. Prüfen Sie zuerst, ob die Palette eine Klimatisierung benötigt und prüfen Sie dann, ob im gewünschten Lager ein geeigneter Platz frei ist. Anschließend wird die Palette aus der Quelle entfernt und am Ziel eingefügt.

Aufgabe 2: Ziel: Aus einem Geschäftsprozeß ein Klassendiagramm und Szenarios erstellen.

Leiten Sie aus folgendem Geschäftsprozeß ein Klassendiagramm ab und spezifizieren Sie für folgende Szenarios Sequenzdiagramme:

1. Existierendem Kunden wird der Kredit gewährt.2. Existierendem Kunden wird der Kredit nur mit einem Bürgen gewährt.Geschäftsprozeß: bearbeite KreditantragZiel: Dem Kunden den gewünschten Kredit gewährenKategorie: -Vorbedingung: -Nachbedingung Erfolg: Kunde erhält den KreditNachbedingung Fehlschlag: Kreditantrag wird abgelehntAkteure: KreditsachbearbeiterAuslösendes Ereignis: Kreditantrag liegt vor

Page 23: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

AufgabenBeschreibung:

1. prüfen, ob Kunde der Bank bekannt ist2. prüfen, ob entsprechende Sicherheiten vorhanden sind3. prüfen, ob Kunde feste Beschäftigung hat4. Kreditwürdigkeit prüfen5. Kredit gewähren

Erweiterungen:1a neuer KundeAlternativen:2a prüfen, ob ein Bürge vorhanden ist5a niedrigeren Kredit gewähren

Aufgabe 3: Ziel: 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.

Page 24: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

Aufgaben• 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 25: Checklisten dynamisches Modell Checklisten für: Szenario Zustandsautomaten Operationen.

AufgabenAufgabe 4: Ziel: OOA-Modelle prüfen.Prüfen Sie, wie die Modelle a und b verbessert werden können.Mit welcher Checkliste stellen Sie die Fehler fest?Prüfen Sie, ob die beiden Modelle in c gleichwertig sind. Erstellen Sie dazu

Objektdiagramme.