Modulo 13. Diagrammi degli stati



Documenti analoghi
Statechart Diagrams. Ing. Orazio Tomarchio

Claudia Raibulet

Organizzazione degli archivi

FSM: Macchine a Stati Finiti

a b c Figura 1 Generatori ideali di tensione

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)

La Metodologia adottata nel Corso

Soluzione dell esercizio del 12 Febbraio 2004

Gestione del workflow

Automazione Industriale (scheduling+mms) scheduling+mms.

Esempio - Controllo di un ascensore

Traccia di soluzione dell esercizio del 25/1/2005

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

Introduzione alla teoria dei database relazionali. Come progettare un database

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

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

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

Sviluppo di processi per l automatizzazione del testing per applicazioni Android

GESTIONE FATTURE (VELINE)

Modellazione di sistema

Soluzione dell esercizio del 2 Febbraio 2004

Manuale d'uso. Manuale d'uso Primo utilizzo Generale Gestione conti Indici di fatturazione Aliquote...

Rappresentazione grafica di entità e attributi

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Il problema del produttore e del consumatore. Cooperazione tra processi

Il modello generale di commercio internazionale

Introduzione alla programmazione in C

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Macchine combinatorie: encoder/decoder e multiplexer/demultiplexer

START Affidamenti diretti e Procedure concorrenziali semplificate. Istruzioni per i concorrenti Ver. 1.0

Il concetto di valore medio in generale

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

Architettura MVC-2: i JavaBeans

La Progettazione Concettuale

Corrispondenze e funzioni

GUIDA ALLA RILEVANZA

Sostituto abilitato Entratel con più sedi: ricezione diretta e incarico ad intermediario abilitato

Diagrammi di Interazione

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Class Discovery E.

2 FUNZIONI REALI DI VARIABILE REALE

Documentazione API web v 1.0

Partenza Mercato Utente Idea Concetto Valutazione. Chi sono gli utenti target del tuo concetto di business?

Basi di dati 9 febbraio 2010 Compito A

4 3 4 = 4 x x x 10 0 aaa

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Calcolatori: Algebra Booleana e Reti Logiche

object oriented analysis

IAS 32 Strumenti finanziari: esposizione nel bilancio d esercizio e informazione integrativa

Effetto reddito ed effetto sostituzione.

PORTALE CLIENTI Manuale utente

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Macchine combinatorie

03. Il Modello Gestionale per Processi

Diagrammi dei package

LogiTrack OTG. LogiTrack Gestione logistica controllo ordine spedizioni. OTG Informatica srl

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

Aris TimeSheet. che guardano oltre. enti e aziende. Soluzioni per

Algoritmi e diagrammi di flusso

ECONOMIA CLASSE IV prof.ssa Midolo L ASPETTO ECONOMICO DELLA GESTIONE. (lezione della prof.ssa Edi Dal Farra)

CORRENTE ELETTRICA Intensità e densità di corrente sistema formato da due conduttori carichi a potenziali V 1 e V 2 isolati tra loro V 2 > V 1 V 2

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

ARCHIVIAZIONE DOCUMENTALE NEiTdoc

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Project Cycle Management

I file di dati. Unità didattica D1 1

L ANALISI ABC PER LA GESTIONE DEL MAGAZZINO

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

UML Unified Modeling Language

Sistemi Operativi (modulo di Informatica II) I processi

Sgravi Contrattazione di Secondo Livello: dettaglio dei Controlli, dei Formati e dei messaggi di errore.

Matematica Computazionale Lezione 4: Algebra di Commutazione e Reti Logiche

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Esempio ordini 08UMLEX1.1

Metodi e Modelli Matematici di Probabilità per la Gestione

DATABASE. A cura di Massimiliano Buschi

Chapter 1. Circuiti sequenziali: macchine a stati

CALCOLO COMBINATORIO

7. Architetture Software

ALGEBRA DELLE PROPOSIZIONI

LEZIONE 7 - STATE MACHINE DIAGRAM

INVIO SMS

Manuale di Aggiornamento BOLLETTINO. Rel F1. DATALOG Soluzioni Integrate a 32 Bit

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

MANUALE UTENTE Profilo Azienda Partecipata. APPLICATIVO CAFWeb

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Transcript:

Modulo 13 Diagrammi degli stati Stato degli oggetti Descrive una macchina a stati specifica i vari stati che un oggetto può assumere durante la sua vita in risposta agli eventi uno stato è una condizione o situazione di un oggetto in cui esso soddisfa certe condizioni, esegue certe attività/azioni, o aspetta qualche evento Lo stato è definito dall'insieme dei valori degli attributi e dei link posseduti da un oggetto in un certo istante Ci interessa lo stato astratto esempio: motore acceso/spento (non ci interessa il numero di giri/min.) può corrispondere a diverse - anche infinite - combinazioni di valori degli attributi Lo stato influenza il comportamento L'oggetto reagisce in modo qualitativamente diverso agli eventi esterni, in funzione dello stato in cui si trova. Esempio: risultato pop dipende dallo stato della pila (vuota o no) Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 2 1

Concetti fondamentali Uno stato perdura nel tempo finché un evento non fa cambiare stato all oggetto (es. un versamento fa passare un conto corrente da saldo negativo a saldo positivo) Eventi: stimolo esterno un evento è la specificazione di un accadimento, che è possibile posizionare nel tempo, e fa da trigger per una transizione di stato Sono raggruppabili in classi di eventi Una transizione è una relazione tra due stati indicante che un oggetto nel primo stato eseguirà certe action e passerà nel secondo quando accadrà uno specifico evento Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 3 Notazione UML Stato iniziale Stato Stato composito Stato finale Transizione Evento/Azione Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 4 2

Una semplice rappresentazione Stato A Attività A Evento [Guardia]/ Azione Stato B Attività B Attività: il processo (o i processi) che l oggetto svolge quando è in un certo stato. Un attività può prendere un tempo più o meno lungo e può essere interrotta da un evento (Event). Evento: ciò che potenzialmente scatena una transizione. Guardia: una condizione logica che può essere vera o falsa. Azione: il processo (o i processi) che accompagna una transizione. Attività, Guardia ed Azione sono comunque elementi opzionali Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 5 Individuazione degli stati Per ciascun oggetto occorre identificare tutti gli stati in cui può trovarsi Euristiche: Trascurare gli attributi ininfluenti Alcuni attributi non modificano in modo qualitativo il comportamento di un oggetto, ma al più i valori degli eventi che l'oggetto produce. Individuare le condizioni limite Trovare tutti i confini e i limiti dello stato Definire un corretto livello di astrazione Per un sistema di prenotazione la partenza di un aereo è un evento, ma per il software di controllo dell'aereo sono centinaia di eventi distinti. Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 6 3

Un esempio: un libro di una bilioteca stato iniziale acquisizione libro( dati libro, autori, editore ) evento transizione di stato stato acquisito prestito( data ) in prestito restituzione( data restituzione ) scadenza termini cancellazione libro( ISDN ) stato finale restituzione( data restituzione ) sollecito in ritardo cancellazione libro( ISDN ) Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 7 Un esempio: la chiamata telefonica Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 8 4

Parti di uno stato Uno stato è composto da più parti Name: una stringa che lo distingue dagli altri stati; uno stato può essere anonimo Entry / Exit action: azioni eseguite quando si entra e/o si esce dallo stato Internal transition: transizione che sono gestite senza causare un cambiamento di stato Substates: struttura innestata di stati, comprendente sotto-state disgiunti (sequenzialmente attivi) o concorrenti (concorrentemente attivi) Deferred events: una lista di eventi che non sono gestiti in quello state ma posposti ed accodati per essere gestiti da altri oggetti in un altro stato una transizione ha 5 parti Source state name Event trigger entry action Guard condition Action Target State uno state può contenere attvità exit action activity internal transition Tracking entry / setmode(on) exit / setmode(off) newtarget / tracker.acquire ( ) do / followtarget selftest / defer Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 9 deferred event Guardia Sono funzioni booleane sui valori degli oggetti. Sono valide in un intervallo di tempo Sono utili come guardie delle transizioni di stato (non basta l'evento, deve essere verificata la condizione). Evento Guardia Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 10 5

Stati innestati I diagrammi piatti diventano ingestibili per problemi reali. Diagrammi strutturati la strutturazione favorisce la descrizione sintetica di sistemi complessi L'attività corrispondente ad uno stato può essere espansa in un diagramma a stati di più basso livello, dove ogni stato rappresenta una fase dell'attività. Aggregazione (stati concorrenti) Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 11 Esempio Uno stato strutturato equivale ad una composizione OR degli stati: l'oggetto si trova, all'interno di uno stato più generale, in un qualunque sotto-stato. I sottostati ereditano le transizioni dei loro superstati (a meno di overriding) Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 12 6

Esempio Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 13 Elementi del diagramma initial state final state composite state nested state state sendfax Idle Transmitting error / print error ringing event hangup Receiving Connected headerok Processing checksumok Cleaning up entry/ pickup exit/ disconnect action transition Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 14 7

Sotto-stati sequenziali composite state sequential substate Receiving Connected headerok Processing Cleaning up checksumok entry/ pickup exit/ disconnect Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 15 Sotto-stati concorrenti Più stati si susseguono in parallelo entro l oggetto che li racchiude. Se un sotto-stato raggiunge lo stato finale prima dell altro, il controllo aspetta per lo stato finale dell altro Quando avviene una transizione in uno stato con sottostati concorrenti, il flusso di controllo subisce un fork per ciascun sottostato concorrente; alla fine esso si ricompone in un unico flusso con uno join composite state Idle fork maintain Maintenance Testing join Testing Self devices diagnosis Concurrent substate Commanding Waiting [continue] Command keypress [not continue] Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 16 8

Esempio Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 17 Esempio: ORDINE Un oggetto ORDINE che deve: 1. controllare la disponibilità di tutte le voci presenti in un certo ordine di acquisto; 2. nel caso in cui tutte le voci sono disponibili deve inviarle al cliente che le ha ordinate. 3. nel caso in cui alcune voci non sono presenti in magazzino in quantità sufficiente deve ritardare l invio fino a quando anche tali voci non siano reperite. Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 18 9

Esempio: ORDINE start /get first item [Not all items checked] /get next item Checking do/check item [All items checked && all items available] Dispatching do/initiate delivery [All items checked && some itemsnot in stock] Item Received [all items available] delivered cancelled cancelled Item Received [some not in the stock] Waiting cancelled Cancelled Delivered Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 19 Oggetti compositi Il diagramma di stato di un oggetto complesso è l'aggregazione dei diagrammi di ciascun componente. L'aggregazione è la "and-relationship": lo stato complessivo (aggregato) è dato dall unione degli stati dei vari diagrammi. Accendino Serbatoio Fornello Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 20 10

Oggetti compositi: esempio Accendino Serbatoio Fornello Vuoto Fornello Chiuso carica [gas=0] apri Chiudi Serbatoio Pieno [gas>0] Aperto scintilla Acceso Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 21 Oggetti composti Gli stati dei componenti possono interagire (la guardia che regola le transizioni di un oggetto dipende dallo stato di un altro oggetto). Vuoto Fornello Chiuso carica [gas=0] apri Chiudi Pieno scintilla Aperto [Serbatoio.stato == Pieno] Acceso Serbatoio [gas>0] Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 22 11

Sommario I diagrammi degli stati descrivono come evolve lo stato di un oggetto Lo stato di un oggetto è formato: Dai valori dei suoi attributi e relazioni Dallo stato degli oggetti componenti Lo stato cambia a seguito di eventi Luigi Troiano - Tecnologie di Produzione del Software: Modulo 13 23 12