LEZIONE 7 - STATE MACHINE DIAGRAM



Похожие документы
Sequence Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a

Unified Modeling Language UML 2.0 -Sequence, Communication and Interaction Overview diagrams -

Sequence Diagram e Collaboration Diagram

Modellazione dei dati in UML

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova

Elementi di UML (7): Diagrammi dei componenti e di deployment

Activity Diagrams. Ing. Orazio Tomarchio

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

Diagrammi di Interazione

Reti sequenziali sincrone

UML. Analisi Modellazione e altro. Macchine a stati, Diagrammi di attività.. UML aa 2006/7 G.Bucci 1

MODELLAZIONE DEI PROCESSI AZIENDALI. workflow 1

Registratori di Cassa

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

La Progettazione Concettuale

MODELLAZIONE DEI PROCESSI AZIENDALI. workflow 1

Strumenti di modellazione. Gabriella Trucco

Macchine sequenziali

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Sistemi Informativi. Introduzione. Processi fisici. Tipologie di processi. Processi informativi. Processi aziendali

Hub-PA Versione Manuale utente

Statechart Diagrams. Ing. Orazio Tomarchio

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Soluzione dell esercizio del 2 Febbraio 2004

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

La Metodologia adottata nel Corso

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Gestione del workflow

Gestione Turni. Introduzione

Il calcolo delle provvigioni con Excel

Una metodologia per la specifica di software basato su componenti

Sviluppo di processi per l automatizzazione del testing per applicazioni Android

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Cliens Redigo Versione Aggiornamento al manuale.

Progettazione del Software A.A.2008/09

Gestione Automatizzata di una Lista Nozze

ANALISI FUNZIONALE E DIAGRAMMI DI FLUSSO DEI DATI DFD 1

Protezione. Protezione. Protezione. Obiettivi della protezione

Modellazione di sistema

Sintesi di Reti Sequenziali Sincrone

FSM: Macchine a Stati Finiti

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Sistemi Informativi I Caso di studio con applicazione di UML

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Capitolo 4 Pianificazione e Sviluppo di Web Part

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

Object Oriented Programming

VISUALFLEET Software Overview

[ Gentleware: Poseidon for UML 3.0". [ Sparxsystems: Enterprise Architect 6.1".

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Trasformazione dei Processi in Progetti DIB 1

COSTER. Import/Export su SWC701. SwcImportExport

Modulo plug&play MKMB-3-e-3. Interfaccia Modbus/RTU per contatori Iskraemeco MT831 / MT860

Progetto PI , passo A.2 versione del 6 febbraio 2007

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

UML Component and Deployment diagram

Manuale d uso per la raccolta: Sicurezza degli impianti di utenza a gas - Postcontatore

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

Automazione Industriale (scheduling+mms) scheduling+mms.

Appunti di Sistemi Elettronici

Programmi e Oggetti Software

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

STRUTTURE NON LINEARI

Corso di Amministrazione di Reti A.A. 2002/2003

Guida all uso di Java Diagrammi ER

Progettaz. e sviluppo Data Base

Le Macchine di Turing

flusso delle informazioni... 2 password... 3 password/ inserimento di una nuova richiesta... 4 le condizioni di vendita... 6

Esempio ordini 08UMLEX1.1

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/ Lato client

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

MODELLO E/R. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Fasi di creazione di un programma

Access Control List (I parte)

19. LA PROGRAMMAZIONE LATO SERVER

ANALISI E MAPPATURA DEI PROCESSI AZIENDALI

Corso di Informatica

Corso di Sistemi di Elaborazione delle informazioni

Volumi di riferimento

OPESSAN DESCRIZIONE SERVIZI VERIFICHE E APPROVAZIONI CONTROLLO APPROVAZIONE

Manuale Utente Aspire Mini Terminale Multifunzione

Ricorsione in SQL-99. Introduzione. Idea di base

Access. P a r t e p r i m a

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Sequenza alternativa degli eventi: Variazione di prezzo superiore al 20% per almeno un articolo.

Configurazione di Outlook Express

OSSIF WEB. Manuale query builder

Lezione 8. La macchina universale

Транскрипт:

Laboratorio di Ingegneria del Software a.a. 2013-2014 LEZIONE 7 - STATE MACHINE DIAGRAM Catia Trubiani Gran Sasso Science Institute (GSSI), L Aquila catia.trubiani@gssi.infn.it Riepilogo della lezione precedente Cos è un Activity Diagram? A cosa serve?! nodo decisionale nodo di inizio attività fork attività join nodo di fine attività 2 oggetto 1

Riepilogo della lezione precedente Cos è un Sequence Diagram? A cosa serve?! messaggio asincrono fragment messaggio sincrono oggetto lifeline messaggio di reply 3 Riepilogo della lezione precedente Quali sono i fragments che possono essere definiti in un Sequence Diagram?! Qual è la loro semantica?? alt: alternative opt: opzionali par: parallele loop: ciclo critical: sezione critica neg: tracce invalide 4 2

Un po di storia su state machines... State Machine Diagram deriva dalle state charts proposte da David Harel intorno al 1980, e riadattate al mondo Object Oriented Implementano anche alcuni aspetti delle macchine di Moore e Mealy, ovvero: macchina a stati e transizioni enfatizzano il flusso di controllo da stato a stato 5 Quando e perchè? Vengono usate per modellare l aspetto dinamico del comportamento di un sistema o parti di esso, in particolare: - modellano il comportamento di oggetti reattivi - modellano il comportamento di oggetti stateful - sono anche usati per modellare il comportamenti di attori, use-case o metodi 6 3

Rappresentazione grafica Graficamente sono rappresentate da una specie di grafo: nodi e archi Concettualmente aggiungono alla nozione di grafo un po' di semantica, in particolare: nodo: stato, attività, azioni arco: transizioni, eventi, invocazione di operazioni 7 Concetto di -stato- Lo stato rappresenta una situazione (nella vita di un oggetto) durante la quale delle condizioni vengono soddisfatte e delle azioni o attività possono essere eseguite Può essere semplice oppure composto Esempio: un aereo può trovarsi nei seguenti 5 stati:» On, Off, TakingOff, Landing, Flying 8 4

Come rappresentare uno stato Graficamente uno stato è rappresentato da un rettangolo con gli angoli smussati Uno stato è composto da 3+1 parti - Nome: stringa di testo - Attività interne: azioni (interne) eseguite in risposta ad eventi o ad invocazioni di operazioni user-defined/standard - Transizioni interne: cambiamenti di stato interni che avvengono al soddisfacimento di una condizione - Decomposizione: solo per state machine gerarchiche 9 Attività interne Sono caratterizzare dai seguenti concetti: event-name args-list / action-expression entry: attività eseguita nel momento in cui si entra in uno stato exit: attività eseguita nel momento in cui si esce da uno stato do: identifica un attività in esecuzione mentre l oggetto è nello stato della transizione include: invocazione ad una submachine; l azione contiene il nome della submachine invocata 10 5

Esempio di stato ed azioni event/action attività definita dall'utente 11 Alcuni stati un po' speciali (1/3) Lo stato iniziale modella il punto di inizio per l'esecuzione di una state machine, è uno stato un po speciale dato che: - è unico per ogni state machine - non può avere transizioni entranti - non ha associate attività interne - non è possibile per un sistema permanere nello stato iniziale - a dirla tutta è chiamato Pseudostate nella specifica di «UML», non è sottoclasse di State 12 6

Alcuni stati un po' speciali (2/3) Lo stato finale modella il punto di fine per l esecuzione di una state machine, è uno stato un po speciale dato che: - una state machine può avere più stati finali - non può avere transazioni uscenti - può avere associate azioni all'entrata nello stato - a differenza dello stato iniziale, lo stato finale è uno stato a tutti gli effetti, nella specifica «UML» è sottoclasse di State 13 Alcuni stati un po' speciali (3/3) Gli stati composti sono stati un po speciali dato che: - stato che ha un insieme di sotto-stato - due categorie: sotto-stati sequenziali due o più sotto-stati concorrenti (regioni) Gli stati composti includono stati iniziali e finali: - ogni transizione entrante nello stato composto è una transizione nel sotto-stato iniziale - ogni transizione entrante in un sotto-stato finale di un sottostato rappresenta il completamento dell attività nello stato 14 7

Sotto-stati sequenziali Spesso sono riferiti come or-substate I sotto-stati composti possono presentarsi solo in modo sequenziale, lo stato composto può trovarsi in un unico sotto-stato per volta Vengono utilizzati quando uno stato complesso è composto da una serie di sotto-stati mutuamente esclusivi tra loro 15 Un esempio di sotto-stati sequenziali Si vuole modellare il comportamento di un client VoIP, in particolare da specifica il client può essere in vari stati: Idle, Dialing, Offline, Call Quando il client si trova nello stato Dialing viene avviata la procedura di composizione del numero sulla rete. Viene quindi atteso il segnale di inizio digitazione e vengono fornite le cifre del numero che si vuole comporre 16 8

Un esempio di sotto-stati sequenziali N.B. l'esempio è solo illustrativo.. non abbiamo ancora spiegato bene come sono caratterizzate le transizioni 17 Sotto-stati concorrenti Spesso sono riferiti come and-substate Un insieme di stati identifica la configurazione attuale dello stato composto; lo stato composto può trovarsi contemporaneamente in più sotto-stati In pratica è costituito da un insieme di regioni concorrenti, ed ogni regione viene specificata una macchina a stati Il completamento delle attività nello stato composto è dato dal compimento delle attività in tutte le regioni concorrenti 18 9

Un esempio di sotto-stati concorrenti 19 Esempio mail-reader tratto da An Introduction to SCXML (J. Barnett) @ http://www.voicexml.org/ Sub-machine Sono semanticamente equivalenti agli stati composti Si entra in una state machine tramite un entry point Si esce da una state machine tramite un exit point Una sub-machine può essere acceduta tramite un entry point o tramite il suo stato iniziale (che rappresenta l entry point di default) 20 10

Un esempio di una sub-machine entry point sub1 se error1 si verifica uscita attraverso lo stato finale della sub-machine (exit point) 21 se error3 si verifica accesso allo stato iniziale della submachine (entry point) subend ed esecuzione di fixed1 Un esempio di sub-machine 22 11

Il concetto di -transizione- Una transizione modella la relazione tra due stati Indica un cambiamento di stato da parte di un oggetto al verificarsi di un certo evento e di una certa condizione Graficamente è una freccia con un etichetta che esce dallo stato di partenza ed entra nello stato di destinazione a seguito della transizione 23 Rappresentazione delle transizioni Una transizione è una 5-tupla composta da: 1- stato sorgente 2- evento scatenante 3- condizione di guardia 4- effetto: azione generatore di eventi 5- stato destinatario 24 12

Un esempio di transizioni 25 Caso particolare per le transizioni Quando nelle transizioni di stato non sono specificati eventi, una transizione occorre quando sono state eseguite le attività interne allo stato di partenza 26 13

Comportamento di state machines Il comportamento delle classi può essere specificato: come un algoritmo esplicitamente con una state machine in entrambi i modi Difficoltà di mapping tra state machines e O.O. rappresentazione e gestione dei segnali/eventi i modelli sono ambigui senza un trasformatore associato 27 Una possibile soluzione Le transizioni di stato di una classe avvengono solo attraverso le operazioni pubbliche esportate dalla classe Una State Machine SM può implementare il comportamento di una classe C se ogni transizione di SM corrisponde ad una operazione pubblica di C e viceversa Le classi che devono ricevere/gestire un segnale/evento devono esportare una operazione corrispondente che riceve il segnale come argomento Si possono implementare eventi e segnali come classi (con propri attributi ed operazioni) 28 14

Un esempio di state machine Si vuole modellare il comportamento di un orologio digitale. L'orologio: - si compone di una unità dedicata al controllo del display - ha diverse modalità di funzionamento (e.g. regolazione ora, regolazione minuti, display orario) - permette di scegliere la modalità di funzionamento - permette di ricevere speciali tipi di input (e.g. tick per incremento dell'ora) 29 Un esempio di modellazione statica Class Diagram e codice java che lo rappresenta 30 15

Un esempio di modellazione dinamica State Machine Diagram e codice java che lo rappresenta 31 Map in Java: mode_button 32 16

State machine diagram proviamoci! Modellare mediante uno state machine diagram il comportamento di un distibutore automatico. In particolare il focus è sui seguenti stati: - Ready: il distributore è in attesa della selezione del prodotto da parte dell utente - Visualizza prezzo: il distributore visualizza il prezzo del prodotto - Eroga resto: il distributore eroga il resto - Eroga prodotto: il distributore eroga il prodotto 33 Una possibile soluzione 34 17

Questions? catia.trubiani@gssi.infn.it 35 18