Software Design, Modelling and Analysis in UML Lecture 15: Hierarchical State Machines I 2013-01-08 – 15 – 2013-01-08 – main – Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universit¨ at Freiburg, Germany
Contents & Goals Last Lecture: • RTC-Rules: Discard, Dispatch, Commence. • Step, RTC, Divergence • Putting It All Together • Rhapsody Demo 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: initial state. • What does this hierarchical State Machine mean? What may happen if I – 15 – 2013-01-08 – Sprelim – inject this event? • What is: AND-State, OR-State, pseudo-state, entry/exit/do, final state, . . . • Content: • Hierarchical State Machines Syntax 2 /54
Hierarchical State Machines – 15 – 2013-01-08 – main – 3 /54
UML State-Machines: What do we have to cover? PA Client [ true ] / [St¨ orrle, 2005] [ausstehendeAufrufe = ausstehendeAufrufe @pre + 1 ] anmelden()/ Die Zustandsübergänge von abgemeldet angemeldet Protokoll-Zustandsautomaten abmelden()/ Wenn der Endzustand eines verfügen über eine Zustandsautomaten erreicht Vorbedingung , einen [ ausstehendeAufrufe>1 ] wird, wird die Region beendet, Auslöser und eine empfangeErgebnisse(nr, parameter) / in der der Endzustand liegt. Nachbedingung (alle [ausstehendeAufrufe = ausstehendeAufrufe @pre - 1] optional) – jedoch nicht über einen Effekt. Protokollzustandsautomaten beschreiben Ein Eintrittspunkt definiert, dass ein komplexer das Verhalten von Softwaresystemen, Reguläre Beendigung löst ein Zustand an einer anderen Stelle betreten wird, als Nutzfällen oder technischen Geräten. completion -Ereignis aus. durch den Anfangszustand definiert ist. ZA Boarding when(Drehkreuzsensor=”drehen”) Ein komplexer Zustand mit / Drehkreuz blockieren Ein Zustand löst von sich aus einer Region. Bordkarte einlesen bestimmte Ereignisse aus: Passagier überprüfen Bordkarte akzeptieren Validität - entry beim Betreten; entry/Suchanfrage starten entry/Karte auswerfen überprüfen do/Anzeigelämpchen blinkt do/Drehkreuz freigeben - do während des [ valide ] Aufenthaltes; Der Anfangszustand markiert Ergebnis der Such- - completion beim Erreichen timeout den voreingestellten Startpunkt Passagier-ID after(10s) anfrage liegt vor des Endzustandes einer von „ Boarding “ bzw. „ Bordkarte after(10s) auslesen / Drehkreuz blockieren Unter-Zustandsmaschine einlesen “ . /timeout [ Passagier - exit beim Verlassen. angemeldet ] Passagier Bordkarte identifizieren aussetzen Das Zeitereignis after(10s) löst Diese und andere Ereignisse [ Passagier zurückweisen einen Abbruch von „ Bordkarte können als Auslöser für warten nicht wieder einlesen “ aus. Aktivitäten herangezogen H angemeldet ] aufnehmen werden. Der Gedächtniszustand sorgt Der Austrittspunkt erlaubt es, von Ein Zustand kann eine oder dafür, dass nach dem Wieder- einem definierten inneren Zustand mehrere Regionen enthalten, aufnehmen der gleiche Zustand aus den Oberzustand zu verlassen. wie vor dem Aussetzen einge- die wiederum Zustands- nommen wird. automaten enthalten können. Wenn ein Zustand mehrere Regionen enthält, werden – 15 – 2013-01-08 – Shiersyn – ZA Kartenleser ZA Boardingautomat (HW) diese in verschiedenen Abteilen angezeigt, die durch Auch Zeit- und Änderungs- drehkreuz gestrichelte Linien ereignisse können Zustands- leer voneinander getrennt sind. übergänge auslösen: an/ gesperrt Regionen können benannt werden. Alle Regionen - after definiert das when(k=1)/ when(k=0)/ “Drehkreuz “Drehkreuz werden parallel zueinander “Karte liegt an” Verstreichen eines Intervalls; blockieren” freigeben” abgearbeitet. “Karte zurückweisen” - when definiert einen / setze(s,1) / setze(s,0) / setze(f,-1) Zustandswechsel. bereit Wenn ein Regionsend- freigegeben zustand erreicht wird, wird der Zustände und zeitlicher “Karte laden” / “Karte auswerfen” gesamte komplexe Zustand when(d>0) / Bezugsrahmen werden über setze(f,1) / setze(f,1) beendet, also auch alle “Kreuz dreht sich” den umgebenden Classifier parallelen Regionen. aus/ definiert, hier die Werte der belegt K a r t e n l e s e r Ein verfeinerter Zustand Ports, siehe das Montage- “Karte auslesen” / when(k=0) / setze(f,0) verweist auf einen Zustands- diagramm „ Abfertigung “ links inhalt = i 4 /54 automaten (angedeutet von oben. dem Symbol unten links), der
The Full Story UML distinguishes the following kinds of states : example example pseudo-state s 1 • initial entry / act entry 1 do / act do (shallow) history H 1 simple state exit / act exit 1 E 1 / act E 1 deep history H ∗ . . . E n / act E n fork/join , final state junction, choice , composite state • s s 1 entry point OR – 15 – 2013-01-08 – Shiersyn – s 2 s 3 exit point s terminate s 1 s 2 s 3 AND s ′ s ′ s ′ submachine state S : s 1 2 3 5 /54
E S S Representing All Kinds of States s 0 ∈ S, → ⊆ S × ( E ∪ { } ) × Expr S × S S × Act • Until now : ( S, s 0 , → ) , – 15 – 2013-01-08 – Shiersyn – 6 /54
Representing All Kinds of States s 0 ∈ S, → ⊆ S × ( E ∪ { } ) × Expr S × S S × Act • Until now : ( S, s 0 , → ) , • From now on : ( hierarchical ) state machines ( S, kind , region , → , ψ, annot ) where • S ⊇ { top } is a finite set of states (as before) , • kind : S → { st , init , fin , shist , dhist , fork , join , junc , choi , ent , exi , term } is a function which labels states with their kind , (new) • region : S → 2 2 S is a function which characterises the regions of a state, • annot : ( → ) → ( E ∪ { } ) × Expr S provides an annotation for S × Act (new) • → is a set of transitions, (changed) – 15 – 2013-01-08 – Shiersyn – • ψ : ( → ) → 2 S × 2 S is an incidence function , and (new) each transition. (new) ( s 0 is then redundant — replaced by proper state (!) of kind ‘ init ’.) 6 /54
From UML to Hierarchical State Machines: By Example ( S, kind , region , → , ψ, annot ) example ∈ S kind region simple state s s ∅ st final state q ∅ fin composite state s s 1 {{ s 1 , s 2 , s 3 }} OR , s st s 2 s 3 region s {{ s 1 , s ′ 1 } , { s 2 , s ′ 2 } , AND s 1 s 2 s 3 s st { s 3 , s ′ 3 }} – 15 – 2013-01-08 – Shiersyn – s ′ s ′ s ′ 1 2 3 submachine state (later) - - - • , . . . ∅ pseudo-state q init , . . . � �� � ( s, kind ( s )) for short 7 /54
From UML to Hierarchical State Machines: By Example DON’T! DON’T! [ gd ] / act tr • annot s ... translates to ( S, kind , region , → , ψ, annot ) = ( { ( top , st ) , ( s 1 , init ) , ( s, st ) , ( s 2 , fin ) } , � �� � S, kind { top �→ {{ s 1 , s, s 2 }} , s 1 �→ ∅ , s �→ ∅ , s 2 �→ ∅} , � �� � region – 15 – 2013-01-08 – Shiersyn – { t 1 , t 2 } { t 1 �→ ( { s 1 } , { s } ) , t 2 �→ ( { s } , { s 2 } ) } , , � �� � � �� � ψ → { t 1 �→ ( tr , gd , act ) , t 2 �→ annot } ) � �� � annot 8 /54
Well-Formedness: Regions (follows from diagram) region ⊆ 2 S , S i ⊆ S ∈ S child ⊆ S kind simple state s ∅ ∅ st ∅ ∅ final state s fin composite state s { S 1 , . . . , S n } , n ≥ 1 S 1 ∪ · · · ∪ S n st pseudo-state s init , . . . ∅ ∅ { S 1 } implicit top state S 1 top st • Each state (except for top ) lies in exactly one region, • States s ∈ S with kind ( s ) = st may comprise regions. • No region: simple state. • One region: OR-state. – 15 – 2013-01-08 – Shiersyn – • Two or more regions: AND-state. • Final and pseudo states don’t comprise regions. • The region function induces a child function. 9 /54
Well-Formedness: Initial State (requirement on diagram) • Each non-empty region has a reasonable initial state and at least one transition from there, i.e. • for each s ∈ S with region ( s ) = { S 1 , . . . , S n } , n ≥ 1 , for each 1 ≤ i ≤ n , • there exists exactly one initial pseudo-state ( s i 1 , init ) ∈ S i and at least one transition t ∈→ with s i 1 as source, • and such transition’s target s i 2 is in S i , and ( for simplicity! ) kind ( s i 2 ) = st , and annot ( t ) = ( , true , act ) . • No ingoing transitions to initial states. • No outgoing transitions from final states. – 15 – 2013-01-08 – Shiersyn – DON’T! DON’T! • Recall: [ gd ] / act tr • annot s 10 /54
Plan example example pseudo-state s 1 • initial entry / act entry 1 do / act do (shallow) history H 1 simple state exit / act exit 1 E 1 / act E 1 deep history H ∗ . . . E n / act E n fork/join , final state junction, choice , composite state • s s 1 OR entry point s 2 s 3 exit point s terminate s 1 s 2 s 3 AND s ′ s ′ s ′ submachine state S : s 1 2 3 • Initial pseudostate, final state. – 15 – 2013-01-08 – Shiersyn – • Composite states. • Entry/do/exit actions, internal transitions. • History and other pseudostates, the rest. 11 /54
Initial Pseudostates and Final States – 15 – 2013-01-08 – main – 12 /54
Recommend
More recommend