Post on 05-Apr-2015
transcript
Checklisten dynamisches Modell
Checklisten für:
SzenarioZustandsautomatenOperationen
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
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
Checkliste SzenarioDokumentation
Namebearbeite Schadensfall (Schaden bezahlen)
Bedingungen:• notwendige Daten vorhanden• Police gültig• Police deckt Schaden ab
Ergebnis:Schadenersatzanspruch wird vollständig beglichen
Checkliste SzenarioDokumentation
Namebearbeite Schadensfall (Police ungültig)
Bedingungen:• notwendige Daten vorhanden• Police ungültig
Ergebnis:Antragsteller erhält Schreiben
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
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?
Checkliste SzenarioBeispiel: Frisör - Geschäftsprozess
Checkliste SzenarioBeispiel: Frisör - Klassendiagramm
Checkliste SzenarioBeispiel: Frisör - Sequenzdiagramm
• Name:bediene Kunden(incl. Zusatzverkäufe)
• Bedingungen:Kunde ist angemeldet
• Ergebnis:Kunde hat bezahlt
Checkliste SzenarioSequenzdiagramm: mehrere Transaktionen
Checkliste SzenarioSequenzdiagramm: mehrere Transaktionen
• Zentral --> fork diagramein Steuerobjekt für alle weitere Operationen
• Dezentral --> stair diagramverteilte Steuerungslogik
Checkliste SzenarioSequenzdiagramm: Beispiel Bibliothek
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
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
Checkliste Zustandsautomattrivialer Lebenszyklus
Checkliste Zustandsautomatnicht trivialer Lebenszyklus
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
Checkliste ZustandsautomatEreignisse
• Externe Ereignissevom Benutzer oder anderen Objekten
• Zeitliche Ereignisse
• Reaktion des Objektes bei abweichendem Verhalten (exeption handling)
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)
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
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
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.
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.
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.