La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Statecharts. Riferimenti (1) D. Harel, Statecharts: A visual formalism for complex systems, Science of Computer Programming 8 (1987), pp. 231-274. D.

Presentazioni simili


Presentazione sul tema: "Statecharts. Riferimenti (1) D. Harel, Statecharts: A visual formalism for complex systems, Science of Computer Programming 8 (1987), pp. 231-274. D."— Transcript della presentazione:

1 Statecharts

2 Riferimenti (1) D. Harel, Statecharts: A visual formalism for complex systems, Science of Computer Programming 8 (1987), pp. 231-274. D. Harel, On visual formalisms,Communications of the ACM 31 (1988), pp. 514-530. D. Harel, A. Pnueli, J. Schmidt, R. Sherman, On the formal semantics of Statecharts, Proc. 1st LICS, IEEE Press, pp. 54- 64, 1986. C. Huizing, G. Gerth, W. De Roever, Modeling statecharts behavior in a fully abstract way, Proc. 13th CAAP, LNCS 299, Springer, pp. 271-294, 1988. C. Huizing, W. De Roever, Introduction to design choices in the semantics of Statecharts, Information Processing letters 37 (1991), pp. 205-213.

3 Riferimenti (2) A. Maggiolo-Schettini, A. Peron, S. Tini, A comparison of Statecharts step semantics, Theoretical Computer Science 290 (2003), pp. 465-498. A. Pnueli, M. Shalev, What is a step: on the semantics of Statecharts, Proc. TACS 91, LNCS 526, Springer, pp.244- 264, 1991. A. Peron, A., Maggiolo-Schettini, Transitions as Interrupts: A New Semantics for Timed Statecharts, in: Proc. TACS94, LNCS 789, Springer, 1994, pp. 806-821. A. Maggiolo-Schettini, A., Peron, A., Retiming Techniques for Statecharts, Proc. FTRTFT96, LNCS 1135, Springer, 1996, pp. 55-71. A. Maggiolo-Schettini, M. Merro, Priorities in Statecharts, Proc. Workshop on Analysis and Verification of Multiple-Agent Languages, Stockholm, June 1996, LNCS 1192, Springer, 1996, pp. 404-429.

4 Motivazioni La descrizione di sistemi complessi con macchine a stati finiti (FSM) e della loro controparte visuale con diagrammi a transizione di stato pone le seguenti difficoltà: 1.i diagrammi sono piatti e quindi non supportano sviluppo a passi, top-down o bottom-up 2.i diagrammi non sono economici; un evento che causa la stessa transizione da un gran numero di stati, come un interrupt ad alto livello, deve essere rappresentato da una transizione con lo stesso evento da tutti gli stati 3.alla crescita lineare del sistema da descrivere corrisponde una crescita esponenziale del numero degli stati 4.i diagrammi sono sequenziali e non esprimono la concorrenza in modo naturale.

5 Statecharts (1) Gli Statecharts sono stati proposti per ovviare agli inconvenienti detti dei diagrammi di stato: Statecharts = diagrammi di stato + profondità + ortogonalità + broadcast A C B diventa A C B D f f g g e e h f h

6 Statecharts (2) h C,E C,G I H C,F diventa B,E B,F B,G k p e e f g k e p m p e k h B C G F E IH f A D f[in(G)] e k k g h e k m p e e

7 Statecharts (3) Unaltra caratteristica degli statecharts è la possibilità di ricordare la visita precedente a uno stato e di entrare in uno stato composito A non nello stato di default, ma nello stato in cui il sistema si trovava quando ha lasciato A lultima volta. CD B H e f A Esempio Entrando in A facendo la trasizione etichettata e, il sistema entrerà in quello degli stati B, C, D in cui si trovava lultima volta che ha lasciato A.

8 Statecharts (4) Le transizioni dello possono avere un comportamento di output che non è mandato al mondo esterno (come nelle macchine di Mealy), ma può influire sul comportamento dello statechart stesso nelle sue componenti ortogonali dando luogo a reazioni a catena. B G E A Esempio Se lambiente dà m si ha un passo J I, B C, D G. Se poi lambiente dà n si ha un passo I J, C B, G E. C D JI A H e f/g m/e n/f n g k e

9 Statecharts (5) Data una configurazione C la reazione dello statechart allinput che viene dallambiente è descritto come un passo. Si tratta di trovare linsieme T di transizioni che sono rilevanti in C, ossia originano in qualche antenato di una sottoconfigurazione di C, che sono abilitati dallevento e sono consistenti (di qui può venire non determinismo). A un micropasso determinato da un evento proveniente dallambiente possono seguire micropassi determinati sia dallambiente sia da segnali emessi come output da transizioni del micropasso precedente sia dallaggiornamento di condizioni. Una sequenza di micropassi termina quando non restano più scelte consistenti da effettuare. A questo punto il passo, che è una sequenza massimale di micropassi, è osservabile dallestermo nei suoi effetti.

10 Statecharts (6) Esempio B D A Il sistema può passare dalla configurazione (A,B,C) alla configurazione (D,B,F) C D B C A e e Se il sistema è in B e occorre e, allora può andare in C o in D nondeterministicamente se le transizioni sono considerate nellordine A D, B E, C F e alla configurazione (D,E,F) se le transizioni sono considerate nellordine B E, A D, C F. FE e/fe[ny f] e f

11 Statecharts (7) Esempio D A B E sono avvenute in due micropassi differenti allora in un micropasso successivo sarà x = y e potrà avvenire la transizione C F. BC Se i valori iniziali di x e y sono 0 alloccorrere di e il sistema effettuerà le due transizioni che assegnano 1 a x e a y. Se le due transizioni A D, FE e/x:=1e/y:=1x = y Esempio Come descrivere lesclusività di un evento. Le configurazioni finali sono (C,B) con x=1 oppure (A,D) con x=2. A C D B e[cur(in B)]/x:=1 e[cur(in A)]/x:=2

12 Statecharts (8) Esempio F E B C Quando il sistema è in (A,C) la componente a sinistra può andare in F o in B nondeterministicamente ma la componente a destra può andare in D solo se è stata fatta la prima scelta. G e/f f[cur(in(F))] Esempio Come descrivere priorità. Se e ed f occorrono simultaneamente la e-transizione ha priorità. A D B e e/f f[ny(e)] A

13 Semantica HPSS86 (1) Consideriamo un sottoinsieme ristretto di Statecharts. La reazione del sistema agli stimoli esterni (eventi) è fatta dalle transizioni. Le transizioni sono etichettate con unetichetta della forma e/a (evento/azione). Si assume lipotesi di sincronia: il sistema è infinitamente più veloce dellambiente e la risposta a uno stimolo esterno è sempre generata nel medesimo passo in cui si ha lo stimolo. Esempio Si abbiano le transizioni parallele t 0 : a/e 1, t 1 : e 1 /e 2, …, t n : e n /b. In presenza di a gli eventi e 1, …, e n, b sono tutti generati nel medesimo passo.

14 Semantica HPSS86 (2) Si vuole però mantenere la relazione di causalità ed escludere situazioni in cui ci sono due transizioni che si causano luna laltra. Esempio t 1 : a/b t 2 : b/a Possiamo voler assegnare priorità alle risposte agli stimoli. Si può fare usando eventi negati ed espressioni trigger. Esempio Nel caso di due transizioni in conflitto t 1 : a, t 2 : b tra cui la scelta sarebbe nondeterministica possiamo dare priorità alla transizione stimolata da b: t 1 : a.b -- t 2 : b

15 Semantica HPSS86 (3) Il comportamento di uno statechart è una sequenza di passi ciascuno dei quali porta da una configurazione stabile alla successiva. Lambiente può introdurre nuovi eventi esterni allinizio di ciascun passo. La risposta del sistema è una sequenza di micropassi. Il primo micropasso consiste di tutte le transizioni stimolate dallinsieme degli eventi di input. I micropassi successivi consistono di tutte le transizioni stimolate dallinsieme di eventi contenenti gli eventi di input e gli eventi generati dai micropassi precedenti. Poiché il numero di transizioni che possono essere fatte in un passo è finito la sequenza di micropassi termina quando non ci sono più transizioni abilitate da aggiungere. Questo conclude un passo e linsieme degli eventi generati dal passo è linsieme degli eventi generati nei micropassi. Tale semantica soddisfa sincronia, causalità ed espressione della priorità mediante eventi negati.

16 Semantica HPSS86 (4) La semantica data è localmente consistente, ma non globalmente consistente. Esempio Consideriamo due transizioni parallele t 1 : a -- /b t 2 : b/a Supponiamo inizialmente E =. Poiché a E allora t 1 è abilitata e il primo micropasso fa t 1 generando b, nel micropasso successivo b E e si può fare t 2 generando a. Il passo {{t 1 }, {t 2 }} è localmente consistente ma non globalmente consistente.

17 Semantica HPSS86 (5) La semantica data è operazionale in quanto definisce il comportamento del sistema in termini di operazioni atomiche. E` utile per una realizzazione del linguaggio. Una semantica dichiarativa definisce il comportamento mediante equazioni ignorando dettagli operazionali (e.g.ordine delle operazioni). Se la semantica dichiarativa è composizionale si chiama denotazionale. Si vuole consistenza delle due semantiche. La mancanza di consistenza globale della semantica a micropassi di HPSS86 impedisce di dare una semantica dichiarativa e una operazionale consistenti luna con laltra.

18 Semantica PS91 (1) Vediamo per un insieme ristretto di Statecharts una semantica dichiarativa e una semantica operazionale consistenti. Sia uno statechart una 5-tupla, dove è un insieme di eventi primitivi S è un insieme di stati T è un insieme di transizioni r S è lo stato radice V è un insieme di variabili assunto inizialmente vuoto. Per ogni stato la funzione children: S 2 S dà linsieme dei suoi sottostati immediati. Uno stato s è basilare se children(s) =, altrimento è composto. Linsieme degli stati basilari è chiamato Basic. Se s 2 children(s 1 ) diciamo s 1 padre di s 2 e s 2 figlio di s 1. Esiste un unico stato che non ha padre, è r lo stato radice.

19 Semantica PS91 (2) Chiamiamo children* e children + le chiusure riflessiva-transitiva e transitiva, rispettivamente, di children. La funzione children* può essere estesa a un insieme di stati children*(X) = x X children*(s) Se s 2 children*(s 1 ) diciamo s 1 antenato di s 2 e s 2 discendente di s 1. Uno stato s 1 è antenato e discendente di se stesso. Se uno stato s 1 è antenato o discendente di uno stato s 2 diciamo che s 1 e s 2 sono ancestralmente relati. La radice è un antenato di tutti gli stati. Si richiede che ogni stato abbia un solo padre. Cosí la relazione di figliolanza organizza gli stati di uno statechart in un albero con radice r le cui foglie sono stati basilari e i nodi intermedi sono stati composti.

20 Semantica PS91 (3) La funzione type: S {and, or} è una funzione parziale che assegna a ciascuno stato composto il suo tipo. Se children(s) e type(s) = or, allora children(s) è una or-decomposizione di s, ossia quando il sistema è in s è in uno e uno solo dei suoi sottostati. Se children(s) e type(s) = and, allora children(s) è una and-decomposizione di s, ossia quando il sistema è in s è simultaneamente in tutti i suoi sottostati. La funzione type è indefinita sugli stati basilari e la radice deve essere uno stato or. La funzione default: S S identifica per ciascuno stato or s uno dei suoi immediati discendenti come stato di default, ossia come stato in cui il sistema entra entrando in s. Per un insieme di stati X S lca(X), il minimo antenato comune di X, è lo stato x tale che X children*(x) e per ogni altro s S tale che X children*(s) vale x children*(s). Per un insieme di stati X esiste un minimo antenato comune unico.

21 Semantica PS91 (4) Un insieme di stati X S è consistente se per ogni due stati s 1, s 2 X o s 1, s 2 sono ancestralmente relati oppure s 1 _|_ s 2. Un insieme X è massimalmente consistente se per ogni stato s S -X, X {x} non è consistente. Un insieme massimalmente consistente è una configurazione dello statechart. Se X è un insieme consistente il completamento per default di X, completion(X), è la configurazione Y contenente X tale che per ogni stato s Y se X oppure children(s) = allora default(s) Y. Tale richiesta identifica ununica configurazione Y. La configurazione iniziale X 0 è il completamento per default della radice. Per ogni transizione t T source(t) denota linsieme di stati da cui la transizione esce, target(t) denota linsieme di stati bersaglio della transizione.

22 Semantica PS91 (5) source(t1) ={c2,d2} target(t1) ={g1,h1,i1} t1t1 t 2 t3t3 c1c1 c2c2 d1d1 d2 g1 f2f1 e2e1 g2 j1j1 j2j2 i2i2 i1i1 h2h2 h1h1 B2B1 Esempio

23 Semantica PS91 (6) Larena di una transizione t, denotata arena(t), è il minimo contesto che contiene tutti i cambiamenti causati dalla transizione. Usualmente è il più piccolo stato or contenente source(t) target(t), ma ci possono essere altri casi. Nellesempio larena di t 3 non è lo stato N che contiene source(t 3 ) target(t 3 ), bensí lo stato A. Labilitazione di una transizione t, denotato trigger(t), consiste di letterali l 1,…, l k, k 0, ciascuno dei quali è o un evento primitivo e o la negazione e di un tale evento e --. Dato un insieme di eventi E la transizione t è abilitata da E se e E per ogni e trigger(t) ed e E per ogni e -- trigger(t). Denotiamo con triggered(E) linsieme di transizioni abilitate da E. Denotiamo con actions(t) linsieme di eventi g 1,…, g n, g i 1 i 0, generati dalla transizione t. Per un insieme di transizioni T, si ha generated(T) = t T actions(t).

24 Semantica PS91 (7) Due transizioni t 1, t 2 sono consistenti se t 1 = t 2 oppure arena(t 1 ) _|_ arena(t 2 ). In caso contrario le transizioni sono in conflitto. Ogni transizione è consistente con se stessa. Un insieme di transizioni T è un insieme consistente se t 1, t 2 sono consistenti per ogni t 1, t 2 T. Denotiamo con consistent(T) linsieme di tutte le transizioni che sono consistenti con ogni t T.

25 Running example (1) Binary_stopwatch ShowTime Off Stopwatch On HighMediumLow aa bb H0 H1 M0L0 M1L1 Time Time /cl cl cm cm/ cl cl/ cm Esempio

26 Running example (2) Lattività dellorologio ha due modi, Stopwatch e ShowTime. Il sistema passa da uno stato allaltro alloccorrenza dellevento a che può rappresentare il premere il bottone dellorologio. Quando il sistema è nel modo Stopwatch è nello stato Off e va nello stato On alloccorrenza di b che può rappresentare il premere un altro bottone dellorologio. Lo stato On rappresenta il conteggio del tempo. Lo stato On consiste di tre sottostati Low, Medium e High che rappresentano tre bit di un contatore binario. Ciascun contatore può essere a zero oppure a uno. Inizialmente i contatori sono tutti a zero. Il conteggio è stimolato dal segnale esterno Time. Quando un contatore passa da uno a zero emette un segnale che fa passare di stato il contatore della cifra di ordine più alto. Tutte le reazioni hannoluogo nello stesso passo stimolato da Time. Ad ogni punto dellattività la pressione del bottone b ferma il sistema e la pressione di a mostra il tempo conteggiato.

27 Semantica PS91 (8) Si abbia una configurazione C e un insieme di eventi primitivi I. Si vuole definire un insieme di transizioni T che è fatto in un solo passo in risposta a I. Questo passo sarà costruito incrementalmente prendendo dapprima linsieme delle transizioni che sono abilitate da I che generano altri eventi e abilitano altre transizioni, e cosí via. La funzione abilitante En(T) assume che si sia già deciso di effettuare linsieme di transizioni T e identifica tutte le transizioni che sono abilitate come conseguenza della decisione En(T) = relevant(C) consistent (T) triggered (I generated(T)) dove relevant(C) è linsieme di tutte le transizioni i cui insiemi sorgente sono contenuti nella configurazione C. Linsieme consistent(T) sceglie dallinsieme relevant(C) quelle transizioni che sono consistenti con ogni t T. Si considerano solo quelle transizioni che sono abilitate dagli eventi in I e quelle che sono abilitate da queste.

28 Running example (3) Sia C = {Binary-Stopwatch, Stopwatch, On, H0, M1, L1}. Le transizioni rilevanti a C sono relevant( C) = Stopwatch ShowTime, On Off, H0 H1, M1 M0, L1 L0. Consideriamo linsieme di eventi di input I = {a, time} e prendiamo T = {L1 L0}. Allora si ha consistent(T) = {L1 L0, M0 M1, M1 M0, H0 H1, H1 H0} I generated(T) = {a, Time, cl} triggered (I generated(T)) = {L0 L1, L1 L0, M0 M1, M1 M0, Stopwatch ShowTime, ShowTime Stopwatch} Abbiamo infine En({L1 L0})= {L1 L0, M1 M0}.

29 Semantica PS91 (9) Una proprietà importante della funzione En è che sia concava. Siano X e Y due domini. Una funzione f : 2 X 2 Y è concava se per ogni X 1, X 2, X 3 X con X 1 X 2 X 3 si ha f(X 1 ) f(X 3 ) f(X 2 ). Se f,g sono funzioni concave lo è anche la loro intersezione f g. Infatti (f(X 1 ) g(X 1 )) (f(X 3 ) g(X 3 )) = (f(X 1 ) f(X 3 )) (g(X 1 ) g(X 3 )) f(X 2 ) g(X 2 ). Una funzione è monotonicamente decrescente se per ogni X 1 X 2 X 3 si ha f(X 3 ) f(X 2 ) f(X 1 ) e quindi f(X 1 ) f(X 3 ) = f(X 3 ) f(X 2 ). Ora relevant (C) essendo indipendente da T, è concava. Mostriamo che triggered (E) è una funzione concava da 2 a 2 T. Basta dimostrare che se E 1 E 2 E 3 sono tre insiemi di eventi e una transizione t è abilitata sia da E 1 che da E 3 è abilitata anche da E 2. Consideriamo un evento e trigger(t). Poiché t triggered(E 1 ) ne segue e E 1 e quindi anche e E 2 poiché E 1 E 2. Daltra parte se e -- trigger(t) e t triggered(E 3 ) allora non e E 3 e quindi anche non e E 2 E 3. Poiché la concavità è chiusa per intersezione, En(T) è una funzione concava di T.

30 Semantica PS91 (10) Consideriamo ora due definizioni degli insiemi di transizioni che sono considerati passi ammissibili da una configurazione C in risposta a un insieme di eventi esterni T. La prima è una definizione operazionale, la seconda è una definizione dichiarativa. Mostreremo che, grazie alla concavità, le due definizioni coincidono. La definizione operazionale è basata su una procedura non deterministica che costruisce un passo T aggiungendo una transizione alla volta.

31 Semantica PS91 (11) Procedura Step construction 1.Poni T = 2.Confronta En(T) con T 2.1 Se T = En(T) riporta successo 2.2 Se T En(T) prendi una transizione t En(T)-T, aggiungila a T e ripeti il passo 2 2.3 altrimenti, ossia se non T En(T) riporta fallimento. Un insieme T che può essere ottenuto con una successione di scelte di transizioni t En(T)-T è chiamato costruibile.

32 Running example (4) Sia T =, I = {time}. En( ) = {L1 L0} quindi T En(T). Poniamo allora T = {L1 L0}. Abbiamo En ({L1 L0}) = {L1 L0, M1 M0} e quindi ancora T En(T). Poniamo allora T = {L1 L0, M1 M0}. Abbiamo En {L1 L0, M1 M0} = {L1 L0, M1 M0, H0 H1} e quindi ancora T En(T). Poniamo T = {L1 L0, M1 M0, H0 H1} e abbiamo infine En(T) = T.

33 Semantica PS91 (12) Un insieme di transizioni T è separabile se esiste un sottoinsieme T T tale che En(T) (T-T) =, altrimenti è detto inseparabile. Un insieme di transizioni T inseparabile che soddisfa T = En(T) è detto passo ammissibile del sistema. Proposizione. Un insieme di transizioni T è una soluzione inseparabile dellequazione T = En(T) se e solo se è costruibile. Prova. Assumiamo che t 0 sia una soluzione inseparabile dellequazione T 0 = En(T 0 ). Mostriamo che T 0 è costruibile. Applichiamo la procedura Step construction aggiungendo nel passo 2.2 solo transizioni nellinsieme (En(T)-T) T 0.

34 Semantica PS91 (13) a)La procedura non può fallire. Inizialmente si ha T = che implica T En(T). Assumiamo che la procedura fallisca dopo aver aggiunto una transizione t a un T T 0. Questo implica che sia T En(T), ma esista un t T {t} tale che t En(T {t}). Se t = t poiché t (En(T)-T) T 0 segue t En(T). Altrimenti t T En(T) e quindi ancora t En(T). Inoltre poiché t T {t} T 0 e T 0 = En(T 0 ) segue t En(T 0 ). Cosí abbiamo identificato tre insiemi di transizioni T T {t} T 0. Con t appartenente a En(T) e a EN(T 0 ) ma non a En(T {t}). Ma questo contraddice che la funzione En sia concava. Quindi la procedura non può fallire.

35 Semantica PS91 (14) b) La procedura non può fermarsi a T T 0. La procedura può fermarsi a T T 0 solo se (En(T)-T) T 0 =, ma (En(T)-T) T 0 = En(T) (T 0 -T) = contraddice il fatto che T sia inseparabile. Viceversa, sia stato ottenuto T con la procedura Step-construction. Mostriamo che T è una soluzione inseparabile. Siano le transizioni ordinate in una sequenza t 1, t 2, …, t n secondo lordine della loro aggiunta a T. Poiché la costruzione si è fermata T abbiamo che T soddisfa T = En(T). Rimane da mostrare che T è inseparabile. Consideriamo un T T. Sia t k la prima transizione nellordinamento che appartiene a T-T. Asseriamo che t k En(T), che conduce al fatto che En(T) (T -T) (poiché t k appartiene a entrambi gli insiemi).

36 Semantica PS91 (15) Assumiamo, al contrario, che t k En(T). Allora abbiamo tre insiemi: T 1 = {t 1, t 2, …, t k-1 }, T 2 = T, T 3 = T = {t 1, t 2, …, t n } tali che T 1 T 2 T 3 e tuttavia 1. t k En({t 1, t 2, …, t k-1 }) 2. t k En(T) 3. t k En(T) 1 segue dal fatto che la procedura Step-construction prende le transizioni da aggiungere solo se sono abilitate sotto lapprossimazione corrente, 2 è il nostro assunto, 3 segue dal fatto che t k T = En(T). Ma questo contraddice la proprietà di concavità. Dobbiamo allora concludere che En(T) (T -T) per un T T, e quindi T è inseparabile.

37 Semantica PS91 (16) Vediamo ora leffetto del passo T. Come reazione allinput I vengono generati gli eventi generated(T). La configurazione successiva è Nextconfig(C,T) = completion ((C- children*(arena (T))) t T target(t)) Ossia leffetto di ogni transizione t T sulla configurazione C è di rimuovere da C tutti gli stati che sono tra i discendenti di arena(T) e di aggiungere a C tutti gli stati che sono in target di T. Questo dà una configurazione parziale il cui completamento per default dà la nuova configurazione risultante dal passo T.

38 Running example (5) Asssumiamo che C sia il completamento per default dellinsieme di stati consistente {H0, M1, L1}. Supponiamo che sia I = { Time}. Il solo passo possibile consiste dellinsieme di transizioni T = {L1 L0, M1 M0, H0 H1} che genera gli eventi addizionali cl, cm. Per calcolare la nuova configurazione prima sottraiamo da C le arene delle tre transizioni e i loro figli, ossia rimuoviamo da C gli stati High, H0, Medium, M1, Low, L1, quindi aggiungiamo a C i bersagli delle tre transizioni e completiamo, ossia aggiungiamo High, H1, Medium, M0, Low, L0.


Scaricare ppt "Statecharts. Riferimenti (1) D. Harel, Statecharts: A visual formalism for complex systems, Science of Computer Programming 8 (1987), pp. 231-274. D."

Presentazioni simili


Annunci Google