Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Objektorientierte Analyse (OOA) Verhaltensmodellierung

Ähnliche Präsentationen


Präsentation zum Thema: "Objektorientierte Analyse (OOA) Verhaltensmodellierung"—  Präsentation transkript:

1 Objektorientierte Analyse (OOA) Verhaltensmodellierung

2 Objektorientierte Analyse (OOA) Verhaltensmodellierung

3 Objektorientierte Analyse (OOA) Verhaltensmodellierung

4 Objektorientierte Analyse (OOA) Bedeutung der Zustandsautomaten
Anwendung im Projekt Use Cases, deren Ablauf im wesentlichen durch Ereignisse gesteuert werden, können statt mit einem Aktivitätsdiagramm besser mit einem Zustandsautomaten beschrieben werden Parallele Zustandsautomaten kommen dann zum Einsatz, wenn mehrere Objekte in einem Diagramm spezifiziert werden sollen (z.B. Prüfen einer Bestellung und Prüfen einer Zahlung) Oberzustände sind dann sinnvoll, wenn für mehrere Zustände zum gleichen Zeitpunkt ein Übergang zu einem neuen Zustand möglich ist (z.B. Hinzufügen des Zustands „Abgewiesen“) Zu beachten Zwischen Bedingungen (Wächter) und Ereignissen unterscheiden: Ereignisse kommen von außen (entsprechen im Aktivitätsdiagramm einer anderen Swimlane), während Bedingungen selbst abgefragt werden Bevor man ein „neues“ Objekt definiert, ist zu überlegen, ob es sich bei der betrachteten Information eventuell um einen „neuen“ Zustand eines schon vorhandenen Objekts handelt.

5 Objektorientierte Analyse (OOA) Zustandsautomat allgemein
Zustandsdiagramm (STD = state transition diagram) als endlicher Automat: Alle Ausgangsgrößen lassen sich durch die derzeitigen und vergangenen Eingangsgrößen herleiten; der somit erforderliche Speicher definiert die Zustände des Automaten. Zustandsdiagramm enthält vier Basis-Komponenten: Zustand, repräsentiert durch ein Rechteck (mit abgerundeten Ecken), das den Namen des Zustands enthält; der Anfangszustand eines STD's ist extra gekennzeichnet. Zustandsübergang, repräsentiert durch einen Pfeil, dessen Spitze die Richtung des Übergangs zeigt. Ereignis, das den Zustandsübergang auslöst Aktion, die beim Zustandsübergang ausgeführt wird Syntax: Ereignis / Aktion oder Ereignis Aktion Folgendes ist möglich: Ein Zustandsübergang führt wieder zu sich selbst, wenn beim Auftreten des Ereignisses eine Aktion ausgeführt wird, aber kein Zustandswechsel stattfinden soll. Ein Zustand wird beim Auftreten des Ereignisses gewechselt, ohne dass eine Aktion ausgeführt wird.

6 Objektorientierte Analyse (OOA) Zustandsautomat
Mit Hilfe des Zustandsdiagramms visualisiert man die verschiedenen Zustände eines Objekts, die es im Laufe seines Lebens einnehmen kann, und die Funktionen, die zu Zustandsänderungen des Objektes führen. Ein Zustandsdiagramm besteht aus Zuständen (einer davon dient als Anfangszustand) und Zustandsübergängen (Transitionen), die durch ein Ereignis (auch Trigger genannt) - gegebenenfalls mit einer (Wächter-) Bedingung (engl. Guards) kombiniert - ausgelöst werden und selber Aktionen auslösen können: Ereignis [Bedingung] / Aktion. Anfangs-zustand Zustand1 entry / Aktivität2 do / Aktivität3 Ereignis1 / Aktion1 Zustand0 Implizites Ereignis Endzustand (optional) Transition Zustand3 entry / Aktivität5 exit / Aktivität6 Ereignis3 [Bedingung] Ereignis4 Zustand2 Ereignis2 / Aktion4

7 Objektorientierte Analyse (OOA) Zustandsautomat
Beschreibung von Zuständen: Zustände werden durch Zustandsvariable und (Zustands-)Aktivitäten beschrieben Zustandsvariable (Attribute der Klasse) haben das Format: variable : klasse = initialwert {merkmal} {zusicherung} Zustandsaktivitäten (interne Aktivitäten) können sein: Entry-Aktivität: nichtunterbrechbare Aktivität beim Eintreten in den Zustand Exit-Aktivität: nichtunterbrechbare Aktivität beim Verlassen des Zustands Do-Aktivität: unterbrechbare Aktivität mit und ohne definiertem Ende; das Beenden einer do-Aktivität kann zu einem Zustandswechsel führen, so dass bei der Transition ein Ereignis nicht explizit angegeben werden muss (implizites Ereignis). Verzögerte Ereignisse defer gibt an, dass ein Ereignis nicht im aktuellen Zustand verarbeitet werden kann, jedoch im nachfolgenden Zustand eine Rolle spielen könnte.

8 Objektorientierte Analyse (OOA) Zustandsautomat
Zusammengesetzter Zustand: Setzt sich aus Zuständen, Pseudozuständen und Transitionen zusammen, steht stellvertretend für einen vollständigen Zustandsautomaten und kann Ein- und Austrittspunkte besitzen

9 Objektorientierte Analyse (OOA) Zustandsautomat
Zustände können in verschiedene sequentielle oder parallele Unterzustände aufgeteilt werden, wenn es nötig ist, Ereignisse innerhalb eines Zustandes eines Objektes näher zu untersuchen (Die Notation von Unterzuständen ist gleich denen von Zuständen):

10 Objektorientierte Analyse (OOA) Zustandsautomat
Beschreibung von Zustandsübergängen: Es existieren verschiedene Formen von Ereignissen: Empfangsereignis (signal/call event): Empfang von (Aufruf)Nachrichten (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern Zeitereignis (time event) definiert mittels eines relativen (after) oder absoluten (when) Zeitpunkts, zu dem die Transaktion ausgelöst werden soll Zustandsereignis (change event) als Änderung von beobachteten Datenwerten (logischer Ausdruck, z.B. [number < 10]), im englischen „guard“ (Wächter). Aktionen beinhalten in der Regel das Senden von Nachrichten („Ausgangsereignisse“) an andere Klassen Eine Transition feuert nur dann, wenn das zugehörende Ereignis eintritt UND die im Wächter spezifizierte Bedingung erfüllt ist (in den Zustand TRUE wechselt) Bei einem impliziten Ereignis wird die Transition ausgeführt, wenn die dem Zustand verbundene Verarbeitung beendet ist (i.d.R. eine do-Aktivität).

11 Objektorientierte Analyse (OOA) Zustandsautomat
Beispiele von Zustandsübergängen:

12 Objektorientierte Analyse (OOA) Zustandsautomat
Pseudozustände:

13 Objektorientierte Analyse (OOA) Zustandsautomat
Pseudozustände:

14 Objektorientierte Analyse (OOA) Zustandsautomat
Beispiele für Pseudo- zustände:

15 Objektorientierte Analyse (OOA) Zustandsautomat
Beispiel: Trigger (Ereignis) und Guard (Wächterbedingung) können gemeinsam oder alleine stehen Kreuzungspunkte ermöglichen das Hintereinanderschalten verschiedener Transitionen ohne verbindende Zustände Interne Aktivitäten können durch Bedingungen erweitert werden Interne Aktivitäten werden häufig als „Zustandsverhalten“ bezeichnet

16 Objektorientierte Analyse (OOA) Zustandsautomat
Nebenstehendes Zustandsdiagramm hat Fehler. Aktivitäten und Ereignisse sind nicht streng unterschieden. An den Transitionen fehlen Ereignisse (ggfs. mit Wächtern) Übung: Korrigieren sie bitte.

17 Objektorientierte Analyse (OOA) Zustandsautomat
Übung: Zustandsautomat für eine Digitale Armbanduhr Eine einfache digitale Armbanduhr hat eine Anzeige und zwei Knöpfe, um die Uhr zu stellen (Knopf A und Knopf B). Die Uhr hat zwei Betriebsarten: Zeit anzeigen und Zeit einstellen. Im Modus Zeit anzeigen werden die Stunden und Minuten angezeigt. Sie sind durch einen blinkenden Doppelpunkt voneinander getrennt. Im Modus Zeit einstellen gibt es die Untermodi Stunden einstellen und Minuten einstellen. Mit Knopf A werden die Modi gewählt. Mit jedem Drücken des Knopfes wird der nächste Modus eingeschaltet. Dabei gilt die Reihenfolge: anzeigen, Stunden einstellen, Minuten einstellen, anzeigen, usw. In den Untermodi werden durch Drücken von Knopf B die Stunden oder Minuten jeweils um eine Einheit vorgestellt. Die Knöpfe müssen losgelassen werden, bevor sie ein anderes Ereignis veranlassen können. Zeichnen Sie ein Zustandsdiagramm der Uhr, indem Sie die drei Zustände Zeit anzeigen, Stunden einstellen und Minuten einstellen verwenden.

18 Objektorientierte Analyse (OOA) Zustandsautomat
Übung: Der Automat soll gestartet werden und anschließend, nach dem Betreten von Links.Zustand1, schrittweise die Eingabesequenz A,B,C,B,A,X,Y,Z,Y,X,P,Q verarbeiten. Vollziehen Sie die Ausführung des Automaten nach und notieren Sie die Ausgaben, die während der Ausführung produziert werden, in der korrekten Reihenfolge. Tipp: Die Bedingung in <name> prüft, ob der Zustand <name> aktiv ist.

19 Objektorientierte Analyse (OOA) Zustandsautomat
Unterschied zwischen einem geschachtelten und einen flachen Zustandsautomaten:

20 Objektorientierte Analyse (OOA) Zustandsautomat
Übung:

21 Objektorientierte Analyse (OOA) Zustandsautomat
Übung für den Zusammenhang zwischen Zustands- und Klassendiagramm : Kennzeichnen Sie die Transitionen mit den möglichen Ereignissen, die den Methoden aus der Klasse entsprechen.

22 Objektorientierte Analyse (OOA) Anhang: Lösungen der Übungen
Lösung der Übungsaufgabe Seite 16

23 Objektorientierte Analyse (OOA) Anhang: Lösungen der Übungen
Lösung der Übung Digitale Armbanduhr Seite 17

24 Objektorientierte Analyse (OOA) Anhang: Lösungen der Übungen
Lösung der Übung „Pizzeria“ Seite 18: 00:00:00 Margerita 00:00:00 Roma 00:00:00 Hawaii 00:00:03 Tonno 00:00:07 Funghi 00:00:09 Hawaii 00:00:12 Tonno 00:00:15 Salami 00:00:15 Diavolo 00:00:21 Speciale 00:00:23 Calzone 00:00:26 FruttiDiMare 00:00:26 Margerita 00:00:26 Roma

25 Objektorientierte Analyse (OOA) Anhang: Lösungen der Übungen
Lösung der Übung flaches Diagramm Seite 20: Ein Oberzustand wird verlassen, wenn in jeder Region ein Endzustand erreicht ist oder wenn eine Transition direkt nach außen führt.

26 Objektorientierte Analyse (OOA) Anhang: Lösungen der Übungen
Lösung der Übung auf Seite 21:


Herunterladen ppt "Objektorientierte Analyse (OOA) Verhaltensmodellierung"

Ähnliche Präsentationen


Google-Anzeigen