Software Design, Modelling and Analysis in UML



Ähnliche Dokumente
Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML

Lecture 17: Hierarchical State Machines Ib

Lecture 11: Core State Machines I

Lecture 11: Core State Machines I


Kurzanleitung um Transponder mit einem scemtec TT Reader und der Software UniDemo zu lesen

miditech 4merge 4-fach MIDI Merger mit :

Zustandsdiagramm - Begriffe

CarMedia. Bedienungsanleitung Instruction manual. AC-Services Albert-Schweitzer-Str Hockenheim

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

Preisliste für The Unscrambler X

Verhaltensanalysegraph für Petrinetze

Number of Maximal Partial Clones

6KRSSLQJDW&DPGHQ/RFN 1LYHDX$

Unit 4. The Extension Principle. Fuzzy Logic I 123

WAS IST DER KOMPARATIV: = The comparative

SanStore: Kurzanleitung / SanStore: Quick reference guide

Daten haben wir reichlich! The unbelievable Machine Company 1

Weather forecast in Accra

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

Das neue Volume-Flag S (Scannen erforderlich)

A Classification of Partial Boolean Clones

Computational Models

English. Deutsch. niwis consulting gmbh ( manual NSEPEM Version 1.0

Registrierungsprozess des Boardgeräts (OBU) Inhalt Registrierung auf der Online-Benutzeroberfläche HU-GO

BPMN. Suzana Milovanovic

Automatentheorie und formale Sprachen reguläre Ausdrücke

CABLE TESTER. Manual DN-14003

Installation mit Lizenz-Server verbinden

Algorithms & Datastructures Midterm Test 1

RUP Analyse und Design: Überblick

Magic Figures. We note that in the example magic square the numbers 1 9 are used. All three rows (columns) have equal sum, called the magic number.

Accelerating Information Technology Innovation

Automatentheorie und formale Sprachen endliche Automaten

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

LISP. Eine Einführung

Softwareupdate-Anleitung // AC Porty L Netzteileinschub

VPN / IPSec Verbindung mit dem DI 804 HV und dem SSH Sentinel

Contents. Interaction Flow / Process Flow. Structure Maps. Reference Zone. Wireframes / Mock-Up

Discovery Tool für COMbricks PROCENTEC

Client-Server-Beziehungen

Semantic Web. RDF, RDFS, OWL, and Ontology Engineering. F. Abel, N. Henze, and D. Krause IVS Semantic Web Group

Excel Funktionen durch eigene Funktionen erweitern.

Für AX 4.0, den letzten Hotfix rollup einspielen. Der Hotfix wurde das erste Mal im Hotfix rollup eingeschlossen:

Künstliches binäres Neuron

Der Wetterbericht für Deutschland. Read the weather reports and draw the correct weather symbols for each town.

KURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich?

SharePoint 2010 Mobile Access

DYNAMISCHE GEOMETRIE

11. Aufgabenblatt

Klausur BWL V Investition und Finanzierung (70172)

DevOps bei den ID Build-Automatisierung statt Silo-Betrieb

+ROLGD\V 1LYHDX$ )HUWLJNHLW+ UYHUVWHKHQ

Aufbau eines IT-Servicekataloges am Fallbeispiel einer Schweizer Bank

Bitte vor dem Gebrauch von CD Title Catcher unbedingt lesen. Überblick über CD Title Catcher... S. 2

QS solutions GmbH. präsentiert das Zusammenspiel von. Ihr Partner im Relationship Management

Software Engineering in der Praxis

Notice: All mentioned inventors have to sign the Report of Invention (see page 3)!!!

After sales product list After Sales Geräteliste

4.1 Download der App über den Play Store

Ablauf des Unterrichtsbeispiels

Einlesen einer neuen Chipkarte in der VR-NetWorld Software Seccos 6 gültig bis 2013

Content Strategy for Mobile

0 Im folgenden sei die Wortlänge gleich 8 (d. h.: es wird mit Bytes gearbeitet).

Lehrstuhl für Allgemeine BWL Strategisches und Internationales Management Prof. Dr. Mike Geppert Carl-Zeiß-Str Jena

USB Treiber updaten unter Windows 7/Vista

Kybernetik Intelligent Agents- Decision Making

Erste Schritte HMT moodle

Einführung in die Robotik Steuerungsarchitekturen. Mohamed Oubbati Institut für Neuroinformatik. Tel.: (+49) 731 / mohamed.oubbati@uni-ulm.

Wörterbücher von MS nach Ooo konvertieren

Schreiben auf Englisch

Reaktive Programmierung Vorlesung 16 vom : Theorie der Nebenläufigkeit

p^db=`oj===pìééçêíáåñçêã~íáçå=

DOWNLOAD. Englisch in Bewegung. Spiele für den Englischunterricht. Britta Buschmann. Downloadauszug aus dem Originaltitel:

2 German sentence: write your English translation before looking at p. 3

Ein Stern in dunkler Nacht Die schoensten Weihnachtsgeschichten. Click here if your download doesn"t start automatically

Informationen für ERASMUS-Incoming Studenten der Betriebswirtschaftslehre (BWL)

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Visual Basic Express Debugging

UM ALLE DATEN ZU KOPIEREN. ZUNÄCHST die Daten des alten Telefons auf einen Computer kopieren

Für Kunden, die Windows für ihre Netzwerkverbindungen benutzen

5 Zweisprachige Seiten

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

Bitte beachten Sie die Installations-/Systemvoraussetzungen und freigegebenen Betriebssysteme.

Ergänzungsmaterial g zum Kapitel. Die Unified Modeling Language (UML) Aggregation versus Komposition

Timed Automata (Zeitbeschriftete Automaten) [R. Alur: Timed Automata]

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016

(Prüfungs-)Aufgaben zum Thema Scheduling

Änderungen bei der Mehrwertsteuerrückerstattung für den Export bestimmter Waren ab 1. August 2008

Kybernetik Intelligent Agents- Action Selection

EEX Kundeninformation

ROOT Tutorial für D. Liko

SemTalk Services. SemTalk UserMeeting

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

Apparo Fast Edit Version im Vergleich zu Was ist neu?

Unigraphics Schnittstelle entfernen

NEWSLETTER. FileDirector Version 2.5 Novelties. Filing system designer. Filing system in WinClient

Transkript:

Software Design, Modelling and Analysis in UML Lecture 11: Core State Machines I 2013-12-04 11 2013-12-04 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany

Contents & Goals Last Lecture: Core State Machines UML State Machine syntax State machines belong to classes. This Lecture: Educational Objectives: Capabilities for following tasks/questions. What does this State Machine mean? What happens if I inject this event? Can you please model the following behaviour. What is: Signal, Event, Ether, Transformer, Step, RTC. 11 2013-12-04 Sprelim Content: UML Core State Machines (first half) Ether, System Configuration, Transformer Run-to-completion Step Putting It All Together 2/71

UML State Machines 3/71 11 2013-12-04 main

UML State Machines E[n ]/x := x + 1; n! F s 1 s 2 F/x := 0 s 3 /n := 11 2013-12-04 Sstmover Brief History: Rooted in Moore/Mealy machines, Transition Systems [Harel, 1987]: Statecharts as a concise notation, introduces in particular hierarchical states. Manifest in tool Statemate [Harel et al., 1990] (simulation, code-generation); nowadays also in Matlab/Simulink, etc. From UML 1.x on: State Machines (not the official name, but understood: UML-Statecharts) Late 1990 s: tool Rhapsody with code-generation for state machines. Note: there is a common core, but each dialect interprets some constructs subtly different [Crane and Dingel, 2007]. (Would be too easy otherwise...) 4/71

Roadmap: Chronologically 11 2013-12-04 Sstmover (i) What do we (have to) cover? UML State Machine Diagrams Syntax. (ii) Def.: Signature with signals. (iii) Def.: Core state machine. (iv) Map UML State Machine Diagrams to core state machines. Semantics: The Basic Causality Model (v) Def.: Ether (aka. event pool) (vi) Def.: System configuration. (vii) Def.: Event. (viii) Def.: Transformer. Model Instances (ix) Def.: Transition system, computation. (x) Transition relation induced by core state machine. (xi) Def.: step, run-to-completion step. (xii) Later: Hierarchical state machines. CD, SM! Ë= (Ì,, V,atr), SM! M = (Σ Ë,AË, SM )! UML ϕ OCL expr CD, SD Ë,SD B = (Q SD, q 0, AË, SD, F SD ) π = (σ 0, ε 0 ) (cons 0,Snd 0 ) (σ 1, ε 1 ) w π = ((σ i,cons i,snd i )) u i N 0 G = (N, E, f) OD W Mathematics UML 5/71 N S

UML State Machines: Syntax 6/71 11 2013-12-04 main

UML State-Machines: What do we have to cover? [Störrle, 2005] Wenn der Endzustand eines Zustandsautomaten erreicht wird, wird die Region beendet, in der der Endzustand liegt. PA Protokollzustandsautomaten beschreiben das Verhalten von Softwaresystemen, Nutzfällen oder technischen Geräten. Ein komplexer Zustand mit einer Region. Der Anfangszustand markiert den voreingestellten Startpunkt von Boarding bzw. Bordkarte einlesen. Das Zeitereignis after(10s) löst einen Abbruch von Bordkarte einlesen aus. ZA after(10s) /timeout Client Boarding abgemeldet anmelden()/ abmelden()/ Reguläre Beendigung löst ein completion-ereignis aus. Bordkarte einlesen Validität überprüfen [ valide ] Passagier-ID auslesen Passagier identifizieren H timeout aussetzen wieder aufnehmen Passagier überprüfen entry/suchanfrage starten do/anzeigelämpchen blinkt Ergebnis der Suchanfrage liegt vor warten [ true ] / [ausstehendeaufrufe = ausstehendeaufrufe @pre + 1 ] angemeldet [ ausstehendeaufrufe>1 ] empfangeergebnisse(nr, parameter) / [ausstehendeaufrufe = ausstehendeaufrufe @pre - 1] Ein Eintrittspunkt definiert, dass ein komplexer Zustand an einer anderen Stelle betreten wird, als durch den Anfangszustand definiert ist. [ Passagier angemeldet ] [ Passagier nicht angemeldet ] when(drehkreuzsensor= drehen ) / Drehkreuz blockieren Bordkarte akzeptieren entry/karte auswerfen do/drehkreuz freigeben after(10s) / Drehkreuz blockieren Bordkarte zurückweisen Die Zustandsübergänge von Protokoll-Zustandsautomaten verfügen über eine Vorbedingung, einen Auslöser und eine Nachbedingung (alle optional) jedoch nicht über einen Effekt. Ein Zustand löst von sich aus bestimmte Ereignisse aus: - entry beim Betreten; - do während des Aufenthaltes; - completion beim Erreichen des Endzustandes einer Unter-Zustandsmaschine - exit beim Verlassen. Diese und andere Ereignisse können als Auslöser für Aktivitäten herangezogen werden. 11 2013-12-04 Sstmsyn Auch Zeit- und Änderungsereignisse können Zustandsübergänge auslösen: - after definiert das Verstreichen eines Intervalls; - when definiert einen Zustandswechsel. Zustände und zeitlicher Bezugsrahmen werden über den umgebenden Classifier definiert, hier die Werte der Ports, siehe das Montagediagramm Abfertigung links oben. Der Gedächtniszustand sorgt dafür, dass nach dem Wiederaufnehmen der gleiche Zustand wie vor dem Aussetzen eingenommen wird. ZA when(k=1)/ Karte liegt an Karte laden / setze(f,1) Kartenleser leer bereit belegt when(k=0) / setze(f,0) when(k=0)/ Der Austrittspunkt erlaubt es, von einem definierten inneren Zustand aus den Oberzustand zu verlassen. Karte auswerfen / setze(f,1) Karte zurückweisen / setze(f,-1) Karte auslesen / inhalt = i ZA Boardingautomat (HW) an/ aus/ Drehkreuz freigeben / setze(s,0) gesperrt freigegeben when(d>0) / Kreuz dreht sich Kartenleser drehkreuz Drehkreuz blockieren / setze(s,1) Ein Zustand kann eine oder mehrere Regionen enthalten, die wiederum Zustandsautomaten enthalten können. Wenn ein Zustand mehrere Regionen enthält, werden diese in verschiedenen Abteilen angezeigt, die durch gestrichelte Linien voneinander getrennt sind. Regionen können benannt werden. Alle Regionen werden parallel zueinander abgearbeitet. Wenn ein Regionsendzustand erreicht wird, wird der gesamte komplexe Zustand beendet, also auch alle parallelen Regionen. Ein verfeinerter Zustand verweist auf einen Zustandsautomaten (angedeutet von dem Symbol unten links), der 7/71

11 2013-12-04 Sstmsyn UML State-Machines: What do we have to cover? [Störrle, 2005] Wenn der Endzustand eines Zustandsautomaten erreicht wird, wird die Region beendet, in der der Endzustand liegt. PA Protokollzustandsautomaten beschreiben das Verhalten von Softwaresystemen, Nutzfällen oder technischen Geräten. Ein komplexer Zustand mit einer Region. Auch Zeit- und Änderungsereignisse können Zustandsübergänge auslösen: - after definiert das Verstreichen eines Intervalls; - when definiert einen Zustandswechsel. Zustände und zeitlicher Bezugsrahmen werden über den umgebenden Classifier definiert, hier die Werte der Ports, siehe das Montagediagramm Abfertigung links oben. ZA ZA Client when(k=1)/ Karte liegt an Karte laden / setze(f,1) Boarding abgemeldet Proven approach: Bordkarte einlesen Validität überprüfen [ valide ] Der Anfangszustand markiert den voreingestellten Startpunkt Passagier-ID von Boarding bzw. Bordkarte after(10s) auslesen einlesen. basic/leaf /timeout states Passagier identifizieren Das Zeitereignis after(10s) löst aussetzen einen Abbruch von Bordkarte transitions, einlesen aus. H Der Gedächtniszustand sorgt dafür, dass nach dem Wiederaufnehmen der gleiche Zustand wie vor dem Aussetzen eingenommen wird. Kartenleser leer bereit belegt when(k=0) / setze(f,0) when(k=0)/ Karte auswerfen / setze(f,1) anmelden()/ abmelden()/ Reguläre Beendigung löst ein completion-ereignis aus. wieder aufnehmen Passagier überprüfen entry/suchanfrage starten do/anzeigelämpchen blinkt Karte zurückweisen / setze(f,-1) Ergebnis der Suchanfrage liegt vor warten Karte auslesen / inhalt = i [ true ] / [ausstehendeaufrufe = ausstehendeaufrufe @pre + 1 ] angemeldet [ ausstehendeaufrufe>1 ] empfangeergebnisse(nr, parameter) / [ausstehendeaufrufe = ausstehendeaufrufe @pre - 1] ZA Boardingautomat (HW) an/ aus/ [ Passagier angemeldet ] [ Passagier nicht angemeldet ] Der Austrittspunkt erlaubt es, von einem definierten inneren Zustand aus den Oberzustand zu verlassen. Ein Eintrittspunkt definiert, dass ein komplexer Zustand an einer anderen Stelle betreten wird, als durch den Anfangszustand definiert ist. when(drehkreuzsensor= drehen ) / Drehkreuz blockieren Bordkarte akzeptieren entry/karte auswerfen do/drehkreuz freigeben Start out simple, consider the essence, namely Drehkreuz freigeben / setze(s,0) gesperrt freigegeben when(d>0) / Kreuz dreht sich after(10s) / Drehkreuz blockieren Bordkarte zurückweisen then extend to cover the complicated rest. timeout Kartenleser drehkreuz Drehkreuz blockieren / setze(s,1) Die Zustandsübergänge von Protokoll-Zustandsautomaten verfügen über eine Vorbedingung, einen Auslöser und eine Nachbedingung (alle optional) jedoch nicht über einen Effekt. Ein Zustand löst von sich aus bestimmte Ereignisse aus: - entry beim Betreten; - do während des Aufenthaltes; - completion beim Erreichen des Endzustandes einer Unter-Zustandsmaschine - exit beim Verlassen. Diese und andere Ereignisse können als Auslöser für Aktivitäten herangezogen werden. Ein Zustand kann eine oder mehrere Regionen enthalten, die wiederum Zustandsautomaten enthalten können. Wenn ein Zustand mehrere Regionen enthält, werden diese in verschiedenen Abteilen angezeigt, die durch gestrichelte Linien voneinander getrennt sind. Regionen können benannt werden. Alle Regionen werden parallel zueinander abgearbeitet. Wenn ein Regionsendzustand erreicht wird, wird der gesamte komplexe Zustand beendet, also auch alle parallelen Regionen. Ein verfeinerter Zustand verweist auf einen Zustandsautomaten (angedeutet von dem Symbol unten links), der 7/71

Signature With Signals Definition. A tuple Ë= (Ì,, V,atr, ), a set of signals, is called signature (with signals) if and only if is a signature (as before). (Ì,,V,atr) Note: Thus conceptually, a signal is a class and can have attributes of plain type and associations. 11 2013-12-04 Sstmsyn 8/71

Core State Machine 11 2013-12-04 Sstmsyn Definition. A core state machine over signatureë= (Ì,, V,atr, ) is a tuple M = (S, s 0, ) where S is a non-empty, finite set of (basic) states, s 0 S is an initial state, and S ( { }) } {{ } trigger is a labelled transition relation. } {{ } guard ExprË S } {{ } action ActË We assume a set ExprËof boolean expressions (may be OCL, may be something else) and a set ActËof actions overë. 9/71

From UML to Core State Machines: By Example UML state machine diagram SM: s annot 1 s 2 annot ::= [ event [. event ] [ [ guard ] ] [ / action ] ] with event, guard ExprË action ActË (default: true, assumed to be in ExprË) (default: skip, assumed to be in ActË) 11 2013-12-04 Sstmsyn maps to M(SM) = ( ) {s 1, s 2 }, s 1, (s } {{ } }{{} 1,event,guard,action, s 2 ) } {{ } S s 0 10/71

Annotations and Defaults in the Standard Reconsider the syntax of transition annotations: annot ::= [ event [. event ] [ [ guard ] ] [ / action ] ] and let s play a bit with the defaults: [true] / skip / [true] / skip E / E [true] / skip / act [true] / act E / act E [true] / act 11 2013-12-04 Sstmsyn In the standard, the syntax is even more elaborate: E(v) when consuming E in object u, attribute v of u is assigned the corresponding attribute of E. E(v : τ) similar, but v is a local variable, scope is the transition 11/71

What is that useful for? No Event: No annotation: 11 2013-12-04 Sstmsyn 12/71

State-Machines belong to Classes In the following, we assume that a UML models consists of a set of class diagrams and a setëåof state chart diagrams (each comprising one state machines SM). 11 2013-12-04 Sstmsyn Furthermore, we assume that each state machine SM is associated with a class C SM (Ë). ËÅ For simplicity, we even assume a bijection, i.e. we assume that each class C (Ë) has a state machine SM C and that its class C SMC is C. If not explicitly given, then this one: SM 0 := ({s 0 }, s 0, ). We ll see later that, semantically, this choice does no harm. Intuition 1: SM C describes the behaviour of the instances of class C. Intuition 2: Each instance of C executes SM C with own program counter. Note: we don t consider multiple state machines per class. (Because later (when we have AND-states) we ll see that this case can be viewed as a single state machine with as many AND-states.) 13/71

References 70/71 11 2013-12-04 main

References 11 2013-12-04 main [Crane and Dingel, 2007] Crane, M. L. and Dingel, J. (2007). UML vs. classical vs. rhapsody statecharts: not all models are created equal. Software and Systems Modeling, 6(4):415 435. [Harel, 1987] Harel, D. (1987). Statecharts: A visual formalism for complex systems. Science of Computer Programming, 8(3):231 274. [Harel and Gery, 1997] Harel, D. and Gery, E. (1997). Executable object modeling with statecharts. IEEE Computer, 30(7):31 42. [Harel et al., 1990] Harel, D., Lachover, H., et al. (1990). Statemate: A working environment for the development of complex reactive systems. IEEE Transactions on Software Engineering, 16(4):403 414. [OMG, 2007a] OMG (2007a). Unified modeling language: Infrastructure, version 2.1.2. Technical Report formal/07-11-04. [OMG, 2007b] OMG (2007b). Unified modeling language: Superstructure, version 2.1.2. Technical Report formal/07-11-02. [Störrle, 2005] Störrle, H. (2005). UML 2 für Studenten. Pearson Studium. 71/71