slide 1 lezione 7. modelli a stati [gjm91, sez. 5.5.2], [brj99, capp. 19, 20, 21] finite state...
Embed Size (px)
TRANSCRIPT
![Page 1: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/1.jpg)
Slide 1
Lezione 7. Modelli a stati
[GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21]
Finite State Machines - definizioni, applicabilita’, esempi Prodotto di FSM XFSM: Extended FSM Reti di XFSM Esempio: Dispatcher UML State diagrams e Statecharts UML Activity diagrams
![Page 2: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/2.jpg)
Slide 2
Formalismi rispetto Data/Function/ControlFSM = Finite State MachinesXFSM = Extended FSMPN = Petri NetPr/T = Predicate/TransitionO-O = Object-Oriented DesignDFD = Data Flow DiagramsER = Entity-Relation diagramsADT = Abstract Data Types
Z
![Page 3: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/3.jpg)
Slide 3
FSM - Definizioni
Un FSM e’ una quintupla M = (Q, q0, F, I, ), dove: Q insieme finito di stati q0 Q stato iniziale
F Q stati finali I alfabeto finito di inputs funzione di transizione : Q x I --> Q, tipicam. parziale
Un FSM e’ rappresentato da un grafo diretto: Arco sse (q1, i) = q2
Mealy FSM: viene associato anche un output a ogni transizione Moore FSM: viene associato un output a ogni stato
q1 q2i
![Page 4: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/4.jpg)
Slide 4
Applicabilità di FSMs
FSMinput output
* Descrive aspetti di controllo del sistema. Lo stato della FSM è il ‘luogo’ corrente del controllo, come il program counter
* Caratterizza la reattività del sistema: il suo comportamento in risposta a stimoli
* Descrive anche aspetti funzionali del sistema, modellando una funzione che trasforma il flusso di input in flusso di outputData flow e FSM sono entrambi modelli comportamentali. Una FSM non mostra il flusso dei dati fra parti del sistema, ma è associabile a un nodo di un data-flow diagram
* Utilizzabile in fase Requirements per modelli astratti del sistema, per software specification, e in fase di (Detailed) Design per modellare algoritmi
![Page 5: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/5.jpg)
Slide 5
Esempio - Controllo di impianto chimico
Versione base Raffinamento
Restart
![Page 6: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/6.jpg)
Slide 6
FSM per generazione/riconoscimento di linguaggi regolari
a m
o
i a m o
at e
n
Linguaggiofinito
Linguaggioinfinito
![Page 7: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/7.jpg)
Slide 7
Esercizio
Con quale State Machine si genera il linguaggio infinito delle espressioni di parentesi bilanciate?
( ) ( () ( ( ) ) )
( ) ( ( ( ) ( ) ) (( ) ( ) (( ))) ( ) ) ( ( ) ( ( ) ) ) ……...
![Page 8: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/8.jpg)
Slide 8
Composizione di FSM
Producer ConsumerBuffer
consume
readwrite
produce
Questa composizione in LOTOS si esprime così:
(Producer[produce, write] ||| Consumer[read, consume])|[read, write]| Buffer[read, write]
Per ottenere un modello a stati di un sistema complesso a partire dai modelli a stati dei sottosistemi, assumendo interazione a rendez-vous (transizioni condivise).
![Page 9: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/9.jpg)
Slide 9
p1 p2write
produce
FSM di Producer[produce, write]...
![Page 10: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/10.jpg)
Slide 10
c2
c1
consumeread
...Consumer[read, consume]...
![Page 11: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/11.jpg)
Slide 11
b2b0 b1
read read
write write
...Buffer[read, write]
![Page 12: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/12.jpg)
Slide 12
c1
c2
c1
c2
p1 p2
p1 p2p1 p2
p1 p2
p1 p2
p1 p2write
produce
Prodotto degli stati
c2
c1
consumeread
b2b0 b1
read read
write write
![Page 13: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/13.jpg)
Slide 13
verso Producer Consumer Buffer...
c1
c2
c1
c2
p1 p2
p1 p2p1 p2
p1 p2
p1 p2
p1 p2write
produce
c2
c1
consumeread
b2b0 b1
read read
write write
produce
produceproduceproduce
produceproduce
write
write write
write
read rea
d
read rea
d
con
sum
e
con
sum
e
con
sum
e
con
sum
e
con
sum
e
con
sum
e
![Page 14: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/14.jpg)
Slide 14
Producer Consumer Buffer
produce
produceproduceproduce
produceproduce
write
write write
write
read rea
d
read rea
d
con
sum
e
con
sum
e
con
sum
e
con
sum
e
con
sum
e
con
sum
e
![Page 15: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/15.jpg)
Slide 15
Extended FSM (XFSM)
Trattano anche i dati, e la loro trasmissione
![Page 16: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/16.jpg)
Slide 16
XFSM = (States, Vars, Trans, InQs, OutQs)
States = insieme di stati, con stato iniziale Vars = insieme di variabili (locali) Trans = insieme di transizioni etichettate InQs = insieme di code di segnali/messaggi in input OutQs = insieme di code di segnali/messaggi in output
![Page 17: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/17.jpg)
Slide 17
Formato generale di una transizione
Fromstate Output
su qualche OutQs
Input da qualche InQs
Tostate
Condizione su Vars
Effetto su Vars
s5Out2 ! ‘ok’
s7[x = 0 AND y 99]
y := y + dy
In3 ? incr(dy)
Esempio
Se...
…allora
![Page 18: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/18.jpg)
Slide 18
Rete di XFSM’s = (X, Q)
X = {X(1), …, X(n)} insieme di XFSM’s Q = insieme di code incluso in (Q’ Q”) Q’ = {q(1), …, q(n)}
• Q(i) = coda in input a X(i)
Q” = {q(i,j) | 1i n, 1 j n, i j}• q(i,j) = coda da X(i) a X(j)
X(i) usa le code q(j) in Q’ (j i) X(i) usa le code q(i,j) in Q” (j i)
![Page 19: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/19.jpg)
Slide 19
Esempio - Dispatcher a 2 input
ChanA
s2
Control
Q := nil
lengthQ := 0
ChanB
ReplAReplB
ProcessingUnit
s1
ChanA ? a1: msg[Parity(a1) = OK,lengthQ < 10]
Q := append (Q, a1);lengthQ := lengthQ+1
ReplA! ‘nack’
ChanA ? a1: msg[Parity(a1) OK]
[lengthQ = 10]ProcessingUnit ! Q;Q := nil; lengthQ := 0
ChanB...
...
...
Control ? ‘stop’
ChanB...
![Page 20: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/20.jpg)
Slide 20
Statecharts - generalità Interaction diagrams modellano cooperazione fra parecchi
oggetti nell’ambito di una singola use-case; statecharts
• modellano comportam. di singolo oggetto (che deve rispondere a stimoli asincroni, a comportamento dipendente dal passato) nell’ambito di parecchie use case.
• Ma modellano anche: interfacce, sotto-sistemi
Activity diagrams enfatizzano attività e passaggio di controllo; statecharts enfatizzano
• stati, transizioni di stato dovute a una serie di possibili
• eventi,
• risposte del sistema agli eventi (reattività),
• e ordinamento delle transizioni
![Page 21: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/21.jpg)
Slide 21
Esempio di statechart
![Page 22: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/22.jpg)
Slide 22
Stati
Struttura generale
Inoltre lo stato puo’ avere sottostati, sequenziali o concorrenti
Puo’ mancare(stato anonimo)
Puo’ essere un’altraSM, o una sequenza di azioni.Entrambe sono interrompibili da eventi che fanno uscire da ‘Tracking’
![Page 23: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/23.jpg)
Slide 23
Transizioni
Source state• anche piu’ di uno
Event trigger• signal, op call,
• time (‘after’), state change (‘when’)
[Guard condition]• valutata subito dopo trigger event; se
FALSA, trigger event è perduto; puo’ riferirsi a stati di altre SM.
/ Action• atomica - signal, op call su questo o
altri oggetti visibili; creaz. / distr. di oggetti
Target state• anche piu’ di uno
. ..
![Page 24: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/24.jpg)
Slide 24
Eventi
Eventi asincroni: - segnale, - pass. di tempo, - cambio di stato - operation call asincrona
Eventi sincroni - operation call (sincrona, di default)
Eventi interni ed esterni...
![Page 25: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/25.jpg)
Slide 25
- Segnale (evento asincrono)
E’ un oggetto che viene spedito (thrown) dall’oggetto A e ricevuto (caught) dall’oggetto B
• Subito dopo la spedizione, A è libero di procedere; non attende risultati
Tipicamente modella ‘eccezioni’ (C++, Java) Appare come
• causa o effetto di una trans. in una state machine
• etichetta di una interazione in interaction diagram
• effetto di una operazione di un dato oggetto
Un segnale è simile a una classe• puo’ avere attributi (i parametri trasmessi), e operazioni
• puo’ formare gerarchie di generalizzazione
che possonoessere ricevuti
![Page 26: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/26.jpg)
Slide 26
Gerarchie di segnali - EccezioniGerarchie di segnali:modellano i tipi di segnale che un oggetto attivo può ricevereUna transizione causata da HardwareFault puo’ essere causata anche da BatteryFault, MovementFault, ...
Le eccezioni che un oggetto puo’ spedire (throw)attraverso le sue operazioni
Template class(parametric)
![Page 27: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/27.jpg)
Slide 27
- Call (evento sincrono)
L’oggetto A chiama Op() di B, e B ha una state machine SM(B):
• il controllo passa da A a B, con A in attesa
• la transizione (s1) ==> (s2) con trigger event Op() in SM(B) viene iniziata
• Op() viene completamente eseguita (è una delle operazioni di B)
• Lo stato finale (s2) viene raggiunto in SM(B)
• Il controllo torna ad A, che riceve anche l’eventuale risultato della operazione
Tuttavia sono possibili anche call asincrone, e call a oggetti senza SM.Messaggi non previsti vengono lasciati cadere.
![Page 28: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/28.jpg)
Slide 28
- Passaggio di tempo, cambiamento di stato (eventi asincroni)
Oppure:‘after 1 ms since exiting idle’
Passaggio di tempo: - ‘after’ + espressione temporale
Cambiamento di stato o condizione: - ‘when’ + espressione booleana che viene valutata continuamente
Oppure:‘when altitude < 1000’
![Page 29: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/29.jpg)
Slide 29
Sottostati sequenziali - History state
(H*) denota deep history state
Lo stato finale cancella la storia
I sottostati ereditano le transizioni dei superstati
![Page 30: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/30.jpg)
Slide 30
Sottostati concorrenti (ortogonali)
In alternativa a un oggetto la cui SM ha sottostati concorrenti, si possono usare piu’ oggetti attivi
![Page 31: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/31.jpg)
Slide 31
Esempio da [F77]
Checking Dispatching
Waiting Delivered
[all items checked&& all items available]
[all items checked&& some items not in stock] Item Received [all items available] Delivered
do / check item do/ initiate delivery
/ get first item
[not all items checked]/ get next item
Item Received [some items not in stock]
Xxx = Trigger event
![Page 32: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/32.jpg)
Slide 32
Checking Dispatching
Waiting
Delivered
[all items checked&& all items available]
[all items checked&& some items not in stock] Item Received [all items available] Delivered
do / check item do/ initiate delivery
/ get first item
[not all items checked]/ get next item
Item Received [some items not in stock]
Delivered
Cancelled
![Page 33: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/33.jpg)
Slide 33
Waiting
Delivered
Checking Dispatching
Cancelled
Rejected
Authorizing Authorized
cancelled
delivered
![Page 34: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/34.jpg)
Slide 34
Oggetti con/senza state machine
Oggetti senza state machine• reagiscono solo a messaggi sincroni, cioè operation calls
» se arrivano messaggi asincroni, cioe segnali, sono ignorati
• comportamento indipendente dalla loro storia
Oggetti con state machine• devono reagire anche a segnali, e• in modo dipendente dalla storia
Anche le interfacce possono avere state-machines, che vengono regolarmente ereditate
![Page 35: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/35.jpg)
Slide 35
Activity diagrams
Mentre interaction diagrams (simili a Gantt charts) enfatizzano le interazioni fra oggetti che si scambiano messaggi (e flusso di controllo)
… activity diagrams enfatizzano le attività che vengono svolte dagli oggetti, e lo scambio di flusso di controllo da attività a attività.
Sono simili a flow charts, e a Pert charts usati per documentare il workflow di un progetto.
In UML sono usati anche per modellare la dinamica di:• sistema, sottosistema, classe• operazione (==> flow-chart delle singole azioni)• uno scenario di una use case• collaborations
![Page 36: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/36.jpg)
Slide 36
Esempio
(another activity diagram)
![Page 37: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/37.jpg)
Slide 37
Action state / activity state; branch
Action (esecuzione atomica, e rapida…): - call operation - send signal - create/destroy an object - compute expression and assign var.
(i messaggi che etichettano i link degli interaction diagrams,e le transizioni delle statecharts)
= nested activity diagram, o state machine
Un activity state può avere entry/exit actions, come gli stati delle statecharts
Unico tipo di trans.;esecuzione istantanea
![Page 38: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/38.jpg)
Slide 38
Join, fork; swimlanes
1 ==> NM ==> 1
(*) Fork e join si devono bilanciare, come le parentesi in una espressione.(**) La state machine di Synch mouth() puo’ mandare messaggi alla state machine di Stream audio()(***) La presenza di oggetti manipolati dalle attività rende i diagrammi simili ai data flow
![Page 39: Slide 1 Lezione 7. Modelli a stati [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21] Finite State Machines - definizioni, applicabilita’, esempi Prodotto](https://reader036.vdocuments.net/reader036/viewer/2022081403/5542eb76497959361e8dfb95/html5/thumbnails/39.jpg)
Slide 39
Activity diagram come flow-chart...
…per descrivere il funzionamento di operazioni (di classi)