Slide 1 Lezione 7. Modelli a stati  [GJM91, sez. 5.5.2], [BRJ99, Capp. 19, 20, 21]  Finite State Machines - definizioni, applicabilita’, esempi  Prodotto.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Capitolo 4 Logica sequenziale
Meccanismi di IPC Problemi classici di IPC
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
DFD (Data Flow Diagram)
Recupero debito quarto anno Primo incontro
Type Checking (1° parte)
Generalità Linguaggio e Macchina Astratta
Principi di Programmazione Object-Oriented
Principi di Programmazione Object-Oriented
Introduzione Cosa sono le reti di Petri?
1 Il punto di vista Un sistema è una parte del mondo che una persona o un gruppo di persone, durante un certo intervallo di tempo, sceglie di considerare.
Sequential Function Chart (SFC)
Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
Sincronizzazione fra processi
Sincronizzazione di processi
Processi Concetto di processo Scheduling dei processi
1 Defect testing Lobiettivo: scoprire difetti in un programma Un test ha successo se forza il programma a comportarsi in modo anomalo I test provano la.
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
1 9: Progettazione Architetturale Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Slide 1 [GMJ91, Sez. 5.5] [G87] u Condition-Event nets u Place-Transition nets u Time Petri Nets [Merlin] u Priorità u Token con valore u Richiami di logica.
Analisi dettagliata e design B. Pernici M.G. Fugini AA
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 29/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Argomenti Avanzati di Sistemi Informativi Approfondimento su Workflow e Web Services: "Gestione delle eccezioni: confronto tra soluzioni per applicazioni.
Algoritmi e Strutture Dati
Sincronizzazione fra thread
Strutture di controllo in C -- Flow Chart --
Progetto PERMESSO PERsistent MESSaging in ad hOc networks Presentazione di Vitalone Giuseppe.
Introduzione alla modellazione di sistemi interattivi
Gerarchie Nella lezione precedente abbiamo imparato creare una gerarchia di oggetti usando i gruppi (edit>group)
Javascript: fondamenti, concetti, modello a oggetti
Cosa sono i sistemi distribuiti Prof. Andrea Omicini Corso di Sistemi Distribuiti A.A. 2001/2002 Parte I.
L’ingegneria del software
UML: Collaboration diagram Corso IS I /03 Gianna Reggio Versione 1.0.
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
Esercitazioni di Ingegneria del Software con UML
UML.
Nota (rif. alla lezione precedente): Vector vs ArrayList Le classi generiche Vector e ArrayList sono sostanzialmente equivalenti, ma: I metodi.
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
Il linguaggio Fortran 90: 3. Procedure e Funzioni
1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
Automi temporizzati cooperanti (TCA) . Automi cooperanti (CA)  Un CA consiste di n automi finiti, ciascuno con insieme di stati, stato iniziale e tabella.
Dynamic Modeling in COMET Seconda parte Valentina Cordì.
Diagramma delle Classi
UML: Activity diagram Corso IS I /03 Gianna Reggio Versione 0.1.
Introduzione a Javascript
Analisi dettagliata e design
Commenti all’esempio del treno Nell’esempio del treno si è iniziato dalle attività generiche e/o attività operative che tipicamente costituiscono i passi.
Analisi dei requisiti Il primo passo di “qualsiasi” processo di sviluppo è la definizione dei requisiti  Definizione del Business Model  Solitamente.
Architettura dei Sistemi Operativi
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
UML: Statechart diagram Corso IS I /03
UML: Introduzione Corso IS I /03 Gianna Reggio Versione 0.0.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 3 -Modelli di fase d’analisi Ernesto Damiani Università degli Studi.
Normativa di riferimento
Informatica Generale Marzia Buscemi
Diagrammi a blocchi.
Informatica e Informatica di Base
DFD (Data Flow Diagram) Riferimenti: –Pressman, Cap. 8.
Conversione Analogico/Digitale Le grandezze fisiche che vogliamo misurare variano con continuità in un dato intervallo ed in funzione del tempo: sono descrivibili.
UML Tratto da Alberto Colombo Fulvio Frati. Sequence Diagram Evidenziano la sequenza temporale delle azioni Non si vedono le associazioni tra oggetti.
Diagramma degli Stati. Diagramma degli Stati … Definizione è un grafico con nodi ed archi in cui i nodi rappresentano gli stati di una classe e gli archi,
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti Lezione n°9.
Transcript della presentazione:

Slide 1 Lezione 7. Modelli a stati  [GJM91, sez ], [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

Slide 2 Formalismi rispetto Data/Function/Control FSM = Finite State Machines XFSM = Extended FSM PN = Petri Net Pr/T = Predicate/Transition O-O = Object-Oriented Design DFD = Data Flow Diagrams ER = Entity-Relation diagrams ADT = Abstract Data Types Z

Slide 3 FSM - Definizioni  Un FSM e’ una quintupla M = (Q, q0, F, I,  ), dove:  Qinsieme finito di stati  q0  Qstato iniziale  F  Q stati finali  Ialfabeto 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 q1q2 i

Slide 4 Applicabilità di FSMs FSM inputoutput * 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 output Data 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

Slide 5 Esempio - Controllo di impianto chimico Versione base Raffinamento Restart

Slide 6 FSM per generazione/riconoscimento di linguaggi regolari am o i amo a t e n Linguaggio finito Linguaggio infinito

Slide 7 Esercizio  Con quale State Machine si genera il linguaggio infinito delle espressioni di parentesi bilanciate?  ( )  ( () ( ( ) ) )  ( ) ( ( ( ) ( ) ) ( ( ) ( ) ( ( ) ) ) ( ) ) ( ( ) ( ( ) ) )  ……...

Slide 8 Composizione di FSM ProducerConsumerBuffer 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).

Slide 9 p1p2 write produce FSM di Producer[produce, write]...

Slide 10 c2 c1 consumeread...Consumer[read, consume]...

Slide 11 b2b0b1 read write...Buffer[read, write]

Slide 12 c1 c2 c1 c2 p1p2 p1p2 p1p2 p1p2 p1p2 p1p2 write produce Prodotto degli stati c2 c1 consumeread b2b0b1 read write

Slide 13 verso Producer  Consumer  Buffer... c1 c2 c1 c2 p1p2 p1p2 p1p2 p1p2 p1p2 p1p2 write produce c2 c1 consume read b2 b0b1 read write produce write read consume

Slide 14 Producer  Consumer  Buffer produce write read consume

Slide 15 Extended FSM (XFSM) Trattano anche i dati, e la loro trasmissione

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

Slide 17 Formato generale di una transizione From state Output su qualche OutQs Input da qualche InQs To state Condizione su Vars Effetto su Vars s5 Out2 ! ‘ok’ s7 [x = 0 AND y  99] y := y + dy In3 ? incr(dy) Esempio Se... …allora

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) | 1  i  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)

Slide 19 Esempio - Dispatcher a 2 input ChanA s2 Control Q := nil lengthQ := 0 ChanB ReplA ReplB Processing Unit 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...

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

Slide 21 Esempio di statechart

Slide 22 Stati Struttura generale Inoltre lo stato puo’ avere sottostati, sequenziali o concorrenti Puo’ mancare (stato anonimo) Puo’ essere un’altra SM, o una sequenza di azioni. Entrambe sono interrompibili da eventi che fanno uscire da ‘Tracking’

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...

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...

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 possono essere ricevuti

Slide 26 Gerarchie di segnali - Eccezioni Gerarchie di segnali: modellano i tipi di segnale che un oggetto attivo può ricevere Una 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)

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.

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’

Slide 29 Sottostati sequenziali - History state (H*) denota deep history state Lo stato finale cancella la storia I sottostati ereditano le transizioni dei superstati

Slide 30 Sottostati concorrenti (ortogonali) In alternativa a un oggetto la cui SM ha sottostati concorrenti, si possono usare piu’ oggetti attivi

Slide 31 Esempio da [F77] CheckingDispatching WaitingDelivered [all items checked && all items available] [all items checked && some items not in stock] Item Received [all items available]Delivered do / check itemdo/ initiate delivery / get first item [not all items checked] / get next item Item Received [some items not in stock] Xxx = Trigger event

Slide 32 CheckingDispatching Waiting Delivered [all items checked && all items available] [all items checked && some items not in stock] Item Received [all items available]Delivered do / check itemdo/ initiate delivery / get first item [not all items checked] / get next item Item Received [some items not in stock] Delivered Cancelled

Slide 33 Waiting Delivered Checking Dispatching Cancelled Rejected AuthorizingAuthorized cancelled delivered

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

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

Slide 36 Esempio (another activity diagram)

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

Slide 38 Join, fork; swimlanes 1 ==> N M ==> 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

Slide 39 Activity diagram come flow-chart... …per descrivere il funzionamento di operazioni (di classi)