Upload
brigitte-weyhrich
View
105
Download
0
Embed Size (px)
Citation preview
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 1
Objektorientierte Analyse (OOA) Verhaltensmodellierung
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 2
Objektorientierte Analyse (OOA) Verhaltensmodellierung
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 3
Objektorientierte Analyse (OOA) Verhaltensmodellierung
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 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.
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 5
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.
Objektorientierte Analyse (OOA) Zustandsautomat allgemein
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
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.
Syntax: Ereignis / Aktion
oder Ereignis
Aktion
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 6
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.
Objektorientierte Analyse (OOA) Zustandsautomat
Zustand3
entry / Aktivität5exit / Aktivität6
Zustand0
Zustand2
Ereignis1 / Aktion1
Ereignis3 [Bedingung]
Ereignis2 / Aktion4
Ereignis4
Implizites Ereignis
Anfangs-zustand
Endzustand (optional) Transition
Zustand1
entry / Aktivität2do / Aktivität3
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 7
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.
Objektorientierte Analyse (OOA) Zustandsautomat
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 8
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
Objektorientierte Analyse (OOA) Zustandsautomat
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 9
• 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):
Objektorientierte Analyse (OOA) Zustandsautomat
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 10
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).
Objektorientierte Analyse (OOA) Zustandsautomat
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 11
Beispiele von Zustandsübergängen:
Objektorientierte Analyse (OOA) Zustandsautomat
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 12
Pseudozustände:
Objektorientierte Analyse (OOA) Zustandsautomat
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 13
Pseudozustände:
Objektorientierte Analyse (OOA) Zustandsautomat
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 14
Beispiele
für
Pseudo-
zustände:
Objektorientierte Analyse (OOA) Zustandsautomat
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 15
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
Objektorientierte Analyse (OOA) Zustandsautomat
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 16
Aktivitäten und Ereignisse sind nicht streng unterschieden.
An den Transitionen fehlen Ereignisse (ggfs. mit Wächtern)
Objektorientierte Analyse (OOA) Zustandsautomat
Nebenstehendes Zustandsdiagramm hat Fehler.
Übung: Korrigieren sie bitte.
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 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.
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 18
Ü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.
Objektorientierte Analyse (OOA) Zustandsautomat
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 19
Objektorientierte Analyse (OOA) Zustandsautomat
Unterschied zwischen einem geschachtelten und einen flachen Zustandsautomaten:
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 20
Objektorientierte Analyse (OOA) Zustandsautomat
Übung:
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 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.
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 22
Objektorientierte Analyse (OOA) Anhang: Lösungen der Übungen
Lösung der Übungsaufgabe Seite 16
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 23
Lösung der Übung Digitale Armbanduhr Seite 17
Objektorientierte Analyse (OOA) Anhang: Lösungen der Übungen
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 24
Objektorientierte Analyse (OOA) Anhang: Lösungen der Übungen
Lösung der Übung „Pizzeria“ Seite 18:
00:00:00 Margerita00:00:00 Roma00:00:00 Hawaii00:00:03 Tonno00:00:07 Funghi00:00:09 Hawaii00:00:12 Tonno00:00:15 Salami00:00:15 Diavolo00:00:21 Speciale00:00:23 Calzone00:00:26 FruttiDiMare00:00:26 Margerita00:00:26 Roma
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 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.
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Okt 2010
Seite 26
Objektorientierte Analyse (OOA) Anhang: Lösungen der Übungen
Lösung der Übung auf Seite 21: