Software Design, Modelling and Analysis in UML Lecture 17: Hierarchical State Machines Ib 2015-01-20 Prof. Dr. Andreas Podelski, Dr. Bernd Westphal – 17 – 2015-01-20 – main – Albert-Ludwigs-Universit¨ at Freiburg, Germany
Contents & Goals Last Lecture: • State Machines and OCL • Rhapsody Demo II 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 does this hierarchical State Machine mean? What may happen if I inject this event? • What is: AND-State, OR-State, pseudo-state, entry/exit/do, final state, . . . – 17 – 2015-01-20 – Sprelim – • Content: • Hierarchical State Machines Syntax • Initial and Final State • Composite State Semantics • The Rest 2 /37
Hierarchical State Machines – 17 – 2015-01-20 – main – 3 /37
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 Wenn der Endzustand eines abmelden()/ 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, Zustand an einer anderen Stelle betreten wird, als Reguläre Beendigung löst ein 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/Suchanfrage starten entry/Karte auswerfen - entry beim Betreten; überprüfen do/Anzeigelämpchen blinkt do/Drehkreuz freigeben - do während des [ valide ] Aufenthaltes; Der Anfangszustand markiert - completion beim Erreichen Ergebnis der Such- den voreingestellten Startpunkt timeout after(10s) Passagier-ID 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 warten können als Auslöser für 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 aufnehmen der gleiche Zustand mehrere Regionen enthalten, aus den Oberzustand zu verlassen. die wiederum Zustands- wie vor dem Aussetzen einge- nommen wird. automaten enthalten können. Wenn ein Zustand mehrere Regionen enthält, werden ZA Kartenleser ZA Boardingautomat (HW) diese in verschiedenen – 17 – 2015-01-20 – Shiersyn – Abteilen angezeigt, die durch Auch Zeit- und Änderungs- drehkreuz gestrichelte Linien ereignisse können Zustands- voneinander getrennt sind. übergänge auslösen: leer an/ gesperrt Regionen können benannt werden. Alle Regionen - after definiert das when(k=1)/ when(k=0)/ “Drehkreuz “Drehkreuz “Karte liegt an” werden parallel zueinander Verstreichen eines Intervalls; blockieren” freigeben” abgearbeitet. - when definiert einen “Karte zurückweisen” / setze(s,1) / setze(s,0) / setze(f,-1) Zustandswechsel. bereit Wenn ein Regionsend- freigegeben zustand erreicht wird, wird der Zustände und zeitlicher gesamte komplexe Zustand “Karte laden” / “Karte auswerfen” 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 Kartenleser Ein verfeinerter Zustand Ports, siehe das Montage- “Karte auslesen” / when(k=0) / setze(f,0) verweist auf einen Zustands- diagramm „ Abfertigung “ links inhalt = i automaten (angedeutet von oben. dem Symbol unten links), der Ereignisse können innerhalb eines Zustands das Verhalten des Zustandes 4 /37 definiert. Aktionen auslösen.
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 1 H simple state exit / act exit 1 E 1 / act E 1 deep history . . . H ∗ E n / act E n fork/join , final state composite state junction, choice , • s s 1 OR s 2 entry point s 3 – 17 – 2015-01-20 – Shiersyn – exit point s s 1 s 2 s 3 AND terminate s ′ s ′ s ′ 1 2 3 submachine state S : s 5 /37
Representing All Kinds of States • Until now : ( S, s 0 , → ) , s 0 ∈ S, → ⊆ S × ( E ∪ { } ) × Expr S × Act S × S – 17 – 2015-01-20 – Shiersyn – 6 /37
Representing All Kinds of States • Until now : ( S, s 0 , → ) , s 0 ∈ S, → ⊆ S × ( E ∪ { } ) × Expr S × Act S × S • 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, – 17 – 2015-01-20 – Shiersyn – (new) • → is a set of transitions, (changed) • ψ : ( → ) → 2 S × 2 S is an incidence function , and (new) • annot : ( → ) → ( E ∪ { } ) × Expr S × Act S provides an annotation for each transition. (new) 6 /37
From UML to Hierarchical StM: By Example ( S, kind , region , → , ψ, annot ) example ∈ S kind region simple state s s st ∅ final state q fin ∅ composite state s s 1 OR , s st {{ s 1 , s 2 , s 3 }} s 2 s 3 region s {{ s 1 , s ′ 1 } , { s 2 , s ′ 2 } , s 1 s 2 s 3 AND s st { s 3 , s ′ 3 }} s ′ s ′ s ′ 1 2 3 – 17 – 2015-01-20 – Shiersyn – submachine state (later) - - - pseudo-state • , . . . q init , . . . ∅ � �� � ( s, kind ( s )) for short 7 /37
From UML to Hierarchical StM: 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 �→ ∅} , – 17 – 2015-01-20 – Shiersyn – � �� � region { t 1 , t 2 } , { t 1 �→ ( { s 1 } , { s } ) , t 2 �→ ( { s } , { s 2 } ) } , � �� � � �� � ψ → { t 1 �→ ( tr , gd , act ) , t 2 �→ annot } ) � �� � annot 8 /37
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 st { S 1 , . . . , S n } , n ≥ 1 S 1 ∪ · · · ∪ S n ∅ ∅ pseudo-state s init , . . . { S 1 } implicit top state top st S 1 • Each state (except for top ) lies in exactly one region, • States s ∈ S with kind ( s ) = st may comprise regions. • No region: simple state. – 17 – 2015-01-20 – Shiersyn – • One region: OR-state. • Two or more regions: AND-state. • Final and pseudo states don’t comprise regions. • The region function induces a child function. 9 /37
Well-Formedness: Initial State (requir. on diagram) • Each non-empty region has exactly one initial pseudo-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 ( for simplicity! ). – 17 – 2015-01-20 – Shiersyn – • Recall: DON’T! DON’T! [ gd ] / act tr • annot s 10 /37
Plan example example pseudo-state s 1 initial • entry / act entry 1 do / act do (shallow) history 1 H simple state exit / act exit 1 E 1 / act E 1 deep history . . . H ∗ E n / act E n fork/join , final state composite state junction, choice , • s s 1 OR s 2 entry point s 3 exit point s s 1 s 2 s 3 AND terminate s ′ s ′ s ′ 1 2 3 submachine state S : s • Entry/do/exit actions, internal transitions. – 17 – 2015-01-20 – Shiersyn – • Initial pseudostate, final state. • Composite states. • History and other pseudostates, the rest. 11 /37
Entry/Do/Exit Actions, Internal Transitions – 17 – 2015-01-20 – main – 12 /37
Recommend
More recommend