lecture 12 core state machines ii
play

Lecture 12: Core State Machines II 2015-12-15 Prof. Dr. Andreas - PDF document

Software Design, Modelling and Analysis in UML Lecture 12: Core State Machines II 2015-12-15 Prof. Dr. Andreas Podelski, Dr. Bernd Westphal 12 2015-12-15 main Albert-Ludwigs-Universit at Freiburg, Germany Contents & Goals


  1. Software Design, Modelling and Analysis in UML Lecture 12: Core State Machines II 2015-12-15 Prof. Dr. Andreas Podelski, Dr. Bernd Westphal – 12 – 2015-12-15 – main – Albert-Ludwigs-Universit¨ at Freiburg, Germany Contents & Goals Last Lecture: • Basic causality model • Ether/event pool • System configuration 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. • Content: – 12 – 2015-12-15 – Sprelim – • System configuration cont’d • Transformers • Step, Run-to-Completion Step 2 /47

  2. System Configuration – 12 – 2015-12-15 – main – 3 /47 System Configuration Definition. Let S 0 = ( T 0 , C 0 , V 0 , atr 0 , E ) be a signature with signals, D 0 a structure of S 0 , ( Eth , ready , ⊕ , ⊖ , [ · ]) an ether over S 0 and D 0 . Furthermore assume there is one core state machine M C per class C ∈ C . A system configuration over S 0 , D 0 , and Eth is a pair ( σ, ε ) ∈ Σ D S × Eth where • S = ( T 0 ˙ ∪ { S M C | C ∈ C 0 } , C 0 , V 0 ˙ ∪ {� stable : Bool , − , true , ∅�} ˙ ∪ {� st C : S M C , + , s 0 , ∅� | C ∈ C } ˙ ∪ {� params E : E 0 , 1 , + , ∅ , ∅� | E ∈ E 0 } , – 12 – 2015-12-15 – Sstmscnf – { C �→ atr 0 ( C ) ∪ { stable , st C } ∪ { params E | E ∈ E 0 } | C ∈ C } , E 0 ) • D = D 0 ˙ ∪ { S M C �→ S ( M C ) | C ∈ C } , and • σ ( u )( r ) ∩ D ( E 0 ) = ∅ for each u ∈ dom( σ ) and r ∈ V 0 . 4 /47

  3. System Configuration: Example C ( σ, ε ) ∈ Σ D S 0 = ( T 0 , C 0 , V 0 , atr 0 , E ) , D 0 ; S × Eth where x : Int • S = ( T 0 ˙ ∪ { S M C | C ∈ C } , C 0 , V 0 ˙ ∪ {� stable : Bool , − , true , ∅�} ˙ ∪ {� st C : S M C , + , s 0 , ∅� | C ∈ C } c 0 .. 1 ˙ ∪ {� params E : E 0 , 1 , + , ∅ , ∅� | E ∈ E 0 } , { C �→ atr 0 ( C ) ∪ { stable , st C } ∪ { params E | E ∈ E 0 } | C ∈ C } , E 0 ) � � signal � � • D = D 0 ˙ ∪ { S M C �→ S ( M C ) | C ∈ C } , and E • σ ( u )( r ) ∩ D ( E 0 ) = ∅ for each u ∈ dom( σ ) and r ∈ V 0 . b : Bool � � signal � � F a : Int SM C : – 12 – 2015-12-15 – Sstmscnf – • s 1 s 2 s 3 5 /47 System Configuration Step-by-Step • We start with some signature with signals S 0 = ( T 0 , C 0 , V 0 , atr 0 , E ) . • A system configuration is a pair ( σ, ε ) which comprises a system state σ wrt. S (not wrt. S 0 ). • Such a system state σ wrt. S provides, for each object u ∈ dom( σ ) , • values for the explicit attributes in V 0 , • values for a number of implicit attributes , namely • a stability flag , i.e. σ ( u )( stable ) is a boolean value, • a current (state machine) state , i.e. σ ( u )( st ) denotes one of the states of core state machine M C , • a temporary association to access event parameters for each class, i.e. – 12 – 2015-12-15 – Sstmscnf – σ ( u )( params E ) is defined for each E ∈ E . • For convenience require: there is no link to an event except for params E . 6 /47

  4. Stability Definition. Let ( σ, ε ) be a system configuration over some S 0 , D 0 , Eth . We call an object u ∈ dom( σ ) ∩ D ( C 0 ) stable in σ if and only if σ ( u )( stable ) = true . – 12 – 2015-12-15 – Sstmscnf – 7 /47 � � signal � � n Where are we? C E p x : Int D 0 .. 1 � � signal � � 0 .. 1 F • SM C : E [ n � = ∅ ] /x := x + 1; n ! F s 1 s 2 • : SM D F/ s 1 s 2 F/x := 0 /n := ∅ /p ! F s 3 ( { E } , { F } ) ( ∅ , ∅ ) ( { F } , ∅ ) ( σ 1 , ε 1 ) ( σ 2 , ε 2 ) ( σ 3 , ε 3 ) ( σ 4 , ε 4 ) u 1 u 1 u 2 – 12 – 2015-12-15 – Sstmscnf – u 1 : C u 1 : C u 1 : C u 1 : C x = 27 x = 28 x = 28 x = 28 st = s 1 st = s 2 st = s 3 st = s 3 stb = 1 u 3 : E stb = 0 u 4 : F stb = 0 u 4 : F stb = 0 p p p p n n to u 1 to u 2 to u 2 u 2 : D u 2 : D u 2 : D u 2 : D st = s 1 st = s 1 st = s 1 st = s 2 stb = 1 stb = 1 stb = 1 stb = 0 8 /47

  5. Transformer – 12 – 2015-12-15 – main – 9 /47 Recall • The (simplified) syntax of transition annotations: � � annot ::= � event � [ ‘ [ ’ � guard � ‘ ] ’ ] [ ‘ / ’ � action � ] • Clear : � event � is from E of the corresponding signature. • But: What are � guard � and � action � ? • UML can be viewed as being parameterized in expression language (providing � guard � ) and action language (providing � action � ). • Examples : • Expression Language : • OCL • Java, C++, . . . expressions • . . . – 12 – 2015-12-15 – Strafo – • Action Language : • UML Action Semantics, “Executable UML” • Java, C++, . . . statements (plus some event send action) • . . . 10 /47

  6. Needed: Semantics In the following, we assume that we’re given • an expression language Expr for guards, and • an action language Act for actions, and that we’re given • a semantics for boolean expressions in form of a partial function I � · � ( · , · ) : Expr × Σ D S × D ( C ) � → B which evaluates expressions in a given system configuration, Assuming I to be partial is a way to treat “undefined” during runtime. If I is not defined (for instance because of dangling-reference navigation or division-by-zero), we want to go – 12 – 2015-12-15 – Strafo – to a designated “error” system configuration. • a transformer for each action: for each act ∈ Act , we assume to have t act ⊆ D ( C ) × (Σ D S × Eth ) × (Σ D S × Eth ) 11 /47 Transformer Definition. Let Σ D S the set of system configurations over some S 0 , D 0 , Eth . We call a relation t ⊆ D ( C ) × (Σ D S × Eth ) × (Σ D S × Eth ) a (system configuration) transformer . Example : • t [ u x ]( σ, ε ) ⊆ Σ D S × Eth is • the set (!) of the system configurations – 12 – 2015-12-15 – Strafo – • which may result from object u x • executing transformer t . • t skip [ u x ]( σ, ε ) = { ( σ, ε ) } • t create [ u x ]( σ, ε ) : add a previously non-alive object to σ 12 /47

  7. Observations • In the following, we assume that • each application of a transformer t • to some system configuration ( σ, ε ) • for object u x is associated with a set of observations Obs t [ u x ]( σ, ε ) ∈ 2 ( D ( E ) ˙ ∪ {∗ , + } ) × D ( C ) . • An observation ( u e , u dst ) ∈ Obs t [ u x ]( σ, ε ) represents the information that, as a “side effect” of object u x executing t in system configuration ( σ, ε ) , the event u e has been sent to u dst . – 12 – 2015-12-15 – Strafo – Special cases : creation (’ ∗ ’) / destruction (’ + ’). 13 /47 A Simple Action Language In the following we use Act S = { skip } ∪ { update ( expr 1 , v, expr 2 ) | expr 1 , expr 2 ∈ Expr S , v ∈ atr } ∪ { send ( E ( expr 1 , ..., expr n ) , expr dst ) | expr i , expr dst ∈ Expr S , E ∈ E } ∪ { create ( C, expr , v ) | C ∈ C , expr ∈ Expr S , v ∈ V } ∪ { destroy ( expr ) | expr ∈ Expr S } and OCL expressions over S (with partial interpretation) as Expr S . – 12 – 2015-12-15 – Sactlang – 14 /47

  8. Transformer Examples: Presentation abstract syntax concrete syntax op intuitive semantics . . . well-typedness . . . semantics (( σ, ε ) , ( σ ′ , ε ′ )) ∈ t op [ u x ] iff . . . or t op [ u x ]( σ, ε ) = { ( σ ′ , ε ′ ) | where . . . } observables Obs op [ u x ] = { . . . } – 12 – 2015-12-15 – Sactlang – (error) conditions Not defined if . . . 15 /47 Transformer: Skip abstract syntax concrete syntax skip intuitive semantics do nothing well-typedness ./. semantics t skip [ u x ]( σ, ε ) = { ( σ, ε ) } observables Obs skip [ u x ]( σ, ε ) = ∅ (error) conditions – 12 – 2015-12-15 – Sactlang – 16 /47

  9. Transformer: Update abstract syntax concrete syntax update ( expr 1 , v, expr 2 ) intuitive semantics Update attribute v in the object denoted by expr 1 to the value denoted by expr 2 . well-typedness expr 1 : T C and v : T ∈ atr ( C ) ; expr 2 : T ; expr 1 , expr 2 obey visibility and navigability semantics t update ( expr 1 ,v, expr 2 ) [ u x ]( σ, ε ) = { ( σ ′ , ε ) } where σ ′ = σ [ u �→ σ ( u )[ v �→ I � expr 2 � ( σ, u x )]] with u = I � expr 1 � ( σ, u x ) . observables – 12 – 2015-12-15 – Sactlang – Obs update ( expr 1 ,v, expr 2 ) [ u x ] = ∅ (error) conditions Not defined if I � expr 1 � ( σ, u x ) or I � expr 2 � ( σ, u x ) not defined. 17 /47 Update Transformer Example SM C : /x := x + 1 s 1 s 2 t update ( expr 1 ,v, expr 2 ) [ u x ]( σ, ε ) = ( σ ′ = σ [ u �→ σ ( u )[ v �→ I � expr 2 � ( σ, u x )]] , ε ) , u = I � expr 1 � ( σ, u x ) u 1 : C u 1 : C σ : : σ ′ x = 4 x = 5 y = 0 y = 0 – 12 – 2015-12-15 – Sactlang – ε : : ε ′ 18 /47

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend