Finite State Machines in COMET Dove si usano ? User Requirement Modeling Analysis Modeling Desing Modeling Incremental Software Construction Throwaway Prototyping Incremental Prototyping Incremental Software Integration System Testing Customer Che cosa vediamo Flat statechart Eventi Esempio Evento ``Timer`` Condizioni Esempio Azioni Esempio Azioni Entry Azioni Exit Attivita` Esempi Statechart Notazione UML per definire finite state machines Ripresa dalle statechart di D.Harel in UML statechart diagram in COMET statechart Flat = senza parallelismi interni in UML detta simple In COMET anche quelli gerarchici In UML detti compositi Eventi Occorrenza ad un certo punto nel tempo Occorrenza atomica Vedi UML Esempi di statechart con eventi Account statechart ATM statechart ATM statechart proposto Evento ``Timer`` evento speciale che specifica un evento dopo un certo intervallo di tempo Notazione after (elapsed time) after (10 seconds) Condizioni definiscono un aspetto del sistema che puo` essere vero o falso in un certo momento sono associate agli events Notazione event [condition] Esempio di Condizioni ATM partial statechart Azioni Computazione eseguita come risultato di una transizione Eseguita istantaneamente durante la transizione Notazione event/action Esempio di Azioni ATM partial statechart Azioni Entry Azione eseguita tutte le volte che si entra in uno stato Eseguita prima di qualsiasi attivita` interna Notazione entry/action Quando usare le azioni entry Se c`e` piu` di una transizione che va in uno stato Se una stessa azione necessita di essere rappresentata in ogni transizione Esempio di azioni entry ATM partial statechart Azione Exit Azione eseguita tutte le volte che si esce da uno stato Eseguita solo dopo il completamento di tutte le attivita` interne Notazione exit/action Quando usare le azioni exit Se c`e` piu` di una transizione che lascia uno stato Se un`azione necessita di essere rappresentata in ogni transizione Esempio di azione exit Cruise Control partial statechart Attività Sono computazioni eseguite per tutta la durata di uno stato Sono abilitate all`entrata in uno stato e disabilitate all`uscita di uno stato Notazioni event/enable activity event/disable activity do/activity Osservazioni In caso di combinazione di azioni – attivita` abilitate/disabilitate L`attivita` nello stato in cui si esce e` disabilitata Le azioni vengono eseguite L`attivita` nello stato in cui si entra e` abilitata Cruise Control statechart Cruise Control statechart