UML - Zustandsdiagramm

Ähnliche Dokumente
UML - Zustandsdiagramm

UML - Aktivitätsdiagramm

UML - Sequenzdiagramm

UML Grundlagen, Zustandsautomat. Zustandsautomaten bilden eine Erweiterung der endlichen Automaten

Zustände Zustandsdiagramme

7. Konkretisierungen im Feindesign. 7.1 Zustandsdiagramme 7.2 Object Constraint Language

Sommersemester Analyse II: Verhalten (Zustandsautomaten)

Wirtschaftsinformatik 2 Modellierung betrieblicher Informationssysteme - MobIS

Einführung: Zustandsdiagramme Stand:

Benutzerhandbuch Koala Editor

RUP Analyse und Design: Überblick

OOA-Dynamische Konzepte

State diagrams (Zustandsautomaten)

Objektorientierte Analyse (OOA) Dynamisches Modell. Objektorientierte Analyse (OOA) Sequenzdiagramm

Statecharts in UML Grundlagen und Übersetzung in Colored Petri Nets

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 8 -

Ausführen eines Makros beim Starten von OpenOffice.org

Zustände umsetzen Enumerations (Aufzählungen) Zustandsobjekte

Implementierung einer Finite State Machine

UML (UNIFIED MODELING LANGUAGE)

Programmierung einer Steuerelektronik mit Zustandsautomaten. Version Gerd Bartelt

Zustandsdiagramm - Begriffe

2. Übung zu Software Engineering

Vorlesung Software Engineering I

CARL HANSER VERLAG. Mario Jeckle, Chris Rupp, Jürgen Hahn, Barbara Zengler, Stefan Queins. UML 2 glasklar

Mario Jeckle, Chris Rupp, Jürgen Hahn, Barbara Zengler, Stefan Queins. UML2 glasklar. UNIFIED MODELING LANGUAGE l HANSER

Media Engineering. Objektorientierte Modellierung. Verhaltensmodellierung. R. Weller University of Bremen, Germany cgvr.cs.uni-bremen.

Testen mit Use Cases. Chris Rupp Dr. Stefan Queins

Software-Engineering SS03. Zustandsautomat

Software-Engineering

Labor Modellgestütztes Software Engineering. Versuch 3

Kapitel 10, VHDL, Teil 2. Prof. Dr.-Ing. Jürgen Teich Lehrstuhl für Hardware-Software-Co-Design. Grundlagen der Technischen Informatik

TEIL I Strukturdiagramme 1 Einführung Klassendiagramm Objektdiagramm Kompositionsstrukturdiagramm...

Software-Engineering

BABOK Knowledge Area Requirements Analysis Modeling Techniques - Process Models - - State Diagrams - Holger Dexel,

c) Wann erfolgt eine Transition (von einem Zustand in einen anderen)?

Dokumentation Einführung in die Business Software

Hierarchical State Machines

Inhalt. 1 Einführung 17. Strukturdiagramme. 2 Klassendiagramm 37

Softwaretechnik. Kapitel 11 : Zustandsdiagramme. Statecharts / State Machines Historisches. State Machines in UML Verwendung in OO

Name Klasse Datum. Kontrollstrukturen steuern die Ausführung von Anweisungen

Das umfassende Handbuch

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

Körper- und Galoistheorie

Christoph Kecher, Alexander Salvanos UML 2.5. Das umfassende Handbuch. Rheinwerk. Computing

Besteht aus Aktoren (actors) und use-cases sowie deren Verbindungen.

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich

UML 2.0 Das umfassende Handbuch

Objektorientierte Analyse (OOA) Inhaltsübersicht

Labor Modellgestütztes Software Engineering. Versuch 2

Strings. 3 Stringvergleiche Realisieren Sie bitte folgendes Programm: AnPr

Theorie zu Übung 8 Implementierung in Java

HdM-Stuttgart, FB1, MI Probeklausur 1, Informatik 4 Prof. Dr. Edmund Ihler. Fachhochschule Stuttgart Hochschule der Medien.

Modellierung Zusammenfassung WS2000

KLAUSUR SOFTWARETECHNIK I

Kurzeinführung in UML

Tabellarische Kurzreferenz der UML-Elemente

Christoph Kecher UML2. Das umfassende Handbuch. Galileo Press

State Event Technik CT2, Donnerstag / TE402 M. Thaler, TG208, tham@zhaw.ch

Teil II: OOP und JAVA (Vorlesung 9)

- Was ist neu? - Wie fange ich an? - Noch Fragen?

Software Engineering in der Praxis

Modellierung von Echtzeitsystemen mit dem UML CASE Tool Telelogic Tau G2 Developer

Lösungsvorschlag für Übungsblatt 6 Software Engineering 1 (WS 2012/13)

Vorlesung Informatik II

UML fürs Pflichtenheft

Dipl.-Inform. Lars Ebrecht

Zustandsdiagrammeditor Pflichtenheft, Version 3.0

Together - Integrierte SWE und QA 1. Fahrstuhlsteuerung

GRAFCET. GRAFCET Spezifikationssprache für f Funktionspläne ne der Ablaufsteuerung

Modellierung von Echtzeitsystemen mit UML

Methoden zur Visualisierung von ereignisdiskreten Analysedaten

Informatik IIa: Modellierung. Frühlingssemester Assessment Prüfung 5. Juni 2009

Eingebettete Systeme

OOAD in UML. Seminar Software-Entwurf B. Sc. Sascha Tönnies

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)

Zustandsübergangsdiagramme

c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}}

Einführung in die Programmierung für NF. Übung

Schritt 1: Zustände und Ein- und Ausgaben identifizieren Schritt 2: Übergänge festlegen

Software Engineering. 7. Sequenz- und Zustandsdiagramme. Franz-Josef Elmer, Universität Basel, HS 2012

3. Tutorium zu Softwaretechnik I

SEPA - Lastschrifteinreichung

Umsetzungshilfe Java Teil 1

Objektorientiertes Design

Software Engineering 1 6. Übung. Sönke Holthusen, Matthias Kowal, Joachim Steinmetz Institut für Softwaretechnik und Fahrzeuginformatik

Transkript:

Name Klasse Datum 1 Allgemeines Die Zustandsdiagramme in UML basieren im Wesentlichen auf den Statecharts von David Harel. Der Grundgedanke ist, das Verhalten eines endlichen Zustandsautomaten grafisch zu modellieren. Bei Zustandsautomaten gelten folgende Grundregeln: der Zustandsautomat befindet sich zu jeder Zeit in einem der definierten Zustände der Zustandsautomat kann niemals in zwei Zuständen gleichzeitig sein es gibt eine endliche Menge an Zuständen jeder Zustand kann eingenommen werden Im Rahmen von UML wurde das Statechart jedoch erweitert, um das Zustandsdiagramm breiter nutzbar zu machen. So ist es im UML Zustandsdiagramm durchaus möglich, dass ein Zustandsdiagramm zwei Zustände gleichzeitig darstellen kann, wobei man dies dergestalt interpretiert, dass man einen inneren Prozess betrachtet, der in sich zwei eigenständige Systeme aufweist ( nebenläufige Teilzustände ). Da dies jedoch im Regelfall für Verwirrung sorgt, wird dieses Feature selten genutzt. Aus diesem Grunde werden wir uns an dieser Stelle nur mit den elementaren Symbolen des Zustandsdiagramms beschäftigen. Für die Programmierung hat das Zustandsdiagramm insofern eine hohe Bedeutung, als dass komplexe Systeme mit Hilfe einer Statemachine programmiert werden, welche auf Signale wie Buttonclicks unterschiedlich reagiert: private void statemachine(actionobject actioninfo) { switch(this.currentstate) { case: STATE_IDLE: handlebuttonclick(actioninfo); case: STATE_BLOCK: // do nothing case: STATE_BUSY: showinfomessage(actioninfo); Die Instanzvariable currentstate bestimmt also das zentrale Verhalten des Programms. Dieses kann somit sehr einfach mit Hilfe eines Zustandsdiagramms dokumentiert werden. Eine andere Alternative zu der zentralen Zustandsauswertung ist es, in den einzelnen Methoden den aktuellen Zustand für die Bewertung der Weiterverarbeitung heranzuziehen: private void savebuttonclicked() { switch(this.currentstate) { case: IMAGE_DIALOG: savecurrentimage(); case: TEXT_DIALOG: savecurrenttext(); _UML_Zustandsdiagramm_v01.docx Seite 1

In diesem Beispiel wird beim Klick des Save Buttons die Methode savebuttonclicked() aufgerufen und je nachdem, in welchem Zustand sich das Programm befindet, wird entweder ein Bild, oder ein Text gespeichert. Hier noch ein einfaches Beispiel für eine Fußgängerampel. Sie kennt die drei Zustände Rot (Normalzustand), Starttimer läuft (und zwar wenn ein Fußgänger den Knopf gedrückt hat) und nach Ablauf dieses Timers folgt die Grünphase, welche erst nach Ablauf des Grüntimers wieder beendet wird. Dadurch wird der Zustand Rot wieder eingenommen. Wie man erkennen kann, beeinflusst der Knopf unseren Zustandsautomaten nur im Zustand Rot. In allen anderen Zuständen hat der Knopf keine Auswirkung. Anmerkung: Dieses Diagramm ist in gewisser Weise ein Sonderfall, da es weder einen Start- noch einen Endpunkt besitzt. 2 UML-Zustandsdiagramm, Notation Hier die wichtigsten Elemente des Zustandsdiagramms. Symbol Beschreibung Startzustand: Markiert, in welchem Zustand das System zu existieren beginnt. Da er kein richtiger Zustand ist, bezeichnet man ihn auch als Pseudozustand. Im Regelfall besitzt ein Zustandsdiagramm einen Startzustand, es können aber auch mehre sein. Dies ist ein eigentlicher Zustand. Er wird eindeutig benannt und das System kann eine begrenzte Zeit in diesem Zustand verharren. Alternative Notation mit Verhaltensspezifikationen. Hier können verschiedene Aktionen notiert werden, welche im Falle des Eintritts in den Zustand (entry), nach dem Eintritt in den Zustand (do), Austritt aus dem Zustand (exit) oder einem definierten Ereignis (event) durchgeführt werden. Ereignisse werden jedoch üblicherweise an der ausgehenden Transition notiert. Eine Transition führt immer von einem Zustand zu einem anderen (wobei auch reflexive Transitionen erlaubt sind, also ein Zustand wechselt in sich selbst). An einer Transition werden noch folgende Informationen notiert: Ereignis, welches den Zustandswechsel triggert (erforderlich) Bedingung für das Ereignis in eckigen Klammern (optional) Aktion, welche ausgeführt wird, wenn die Transaktion durchlaufen wird (optional) Wenn Aktionen angegeben werden, so spricht man von einem vollen Zustandsübergang und das Zustandsdiagramm bezeichnet man somit als Verhaltensmaschine (im Gegensatz zur Protokollmaschine, welche lediglich die Transitionen inklusive Ereignis aufweisen). Endzustand: Markiert das Ende des Systems also die Terminierung. Es kann pro Zustandsdiagramm mehrere Endzustände geben. Wie der Startzustand ist der Endzustand ein Pseudozustand. Seite 2

UML - Zustandsdiagramm 3 Beispiel Im Folgenden Beispiel werden die wichtigsten Elemente eines UML Diagramms dargestellt: Seite 3

4 Aufgabenstellung Zeichnen Sie ein UML Zustandsdiagramm für eine Schleusenanlage, bei der Schiffe vom Unterwasser in Richtung Oberwasser bzw. umgekehrt transportiert werden können. Folgende Signalgeber existieren: Signalname: Bedeutung: S1_open Knopf: Öffne Schleuse 1 S1_close Knopf: Schließe Schleuse 1 S2_open Knopf: Öffne Schleuse 2 S2_close Knopf: Schließe Schleuse 2 S_down Knopf: Senke Wasser S_up Knopf: Hebe Wasser Schleuse 1 zu Endschalter: Schleuse 1 komplett zu Schleuse 1 auf Endschalter: Schleuse 1 komplett auf Schleuse 2 zu Endschalter: Schleuse 2 komplett zu Schleuse 2 auf Endschalter: Schleuse 2 komplett auf Oberwasser Schwimmschalter: Wasserstand ganz oben Unterwasser Schwimmschalter: Wasserstand ganz unten Verwenden Sie dabei folgende Elemente: Seite 4

5 Lizenz UML - Zustandsdiagramm Diese(s) Werk bzw. Inhalt von Maik Aicher (www.codeconcert.de) steht unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz. Seite 5