26
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014 Seite 1 Objektorientierte Analyse (OOA) Verhaltensmodellierung

Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

Seite 1

Objektorientierte Analyse (OOA) Verhaltensmodellierung

Page 2: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

Seite 2

Objektorientierte Analyse (OOA) Verhaltensmodellierung

Page 3: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

Seite 3

Objektorientierte Analyse (OOA) Verhaltensmodellierung

Page 4: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

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“)

• Menübaum (GUI) wird i.d.R. durch einen Zustandsautomaten widergegeben:

• Jedes neue Fenster entspricht einem „Zustand“

• Zustandsübergänge (Events) werden hervorgerufen durch Menüauswahl, Buttons, Funktionstasten,..

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.

Page 5: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

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

Page 6: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

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

Page 7: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

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

Page 8: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

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

Page 9: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

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

Page 10: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

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

Page 11: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

Seite 11

Beispiele von Zustandsübergängen:

Objektorientierte Analyse (OOA)Zustandsautomat

Page 12: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

Seite 12

Pseudozustände:

Objektorientierte Analyse (OOA)Zustandsautomat

Page 13: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

Seite 13

Pseudozustände:

Objektorientierte Analyse (OOA)Zustandsautomat

Page 14: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

Seite 14

Beispiele

für

Pseudo-

zustände:

Objektorientierte Analyse (OOA)Zustandsautomat

Page 15: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

Seite 15

Beispiel:

• Trigger (Ereignis) und Guard (Wächterbedingung) können gemeinsam oder alleine stehen

• Kreuzungspunkteermö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

Page 16: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

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.

Page 17: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

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.

Page 18: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

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

Page 19: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

Seite 19

Objektorientierte Analyse (OOA) Zustandsautomat

Unterschied zwischen einem geschachtelten und einen flachen Zustandsautomaten:

Page 20: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

Seite 20

Objektorientierte Analyse (OOA) Zustandsautomat

Übung:

Page 21: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

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.

Page 22: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

Seite 22

Objektorientierte Analyse (OOA)Anhang: Lösungen der Übungen

Lösung der Übungsaufgabe Seite 16

Page 23: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

Seite 23

Lösung der Übung Digitale Armbanduhr Seite 17

Objektorientierte Analyse (OOA)Anhang: Lösungen der Übungen

Page 24: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

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

Page 25: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

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.

Page 26: Verhaltensmodellierung - DHBW Stuttgartrie/Vorlesungsskripte/... · (Operationsrufe) als asynchrone/synchrone Signale, zumeist mit Übername von Parametern – Zeitereignis (time

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.3 Mar 2014

Seite 26

Objektorientierte Analyse (OOA) Anhang: Lösungen der Übungen

Lösung der Übung auf Seite 21: