Diagrammi di stato e di attività: esercizi

Documenti analoghi
I diagrammi di attività e stato

ESERCITAZIONE. Francesco Poggi A.A

Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa

Ingegneria del Software 9. Macchine a stati. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 8. Diagrammi di attività. Dipartimento di Informatica Università di Pisa A.A. 2014/15

UML e i diagrammi di attività

I diagrammi di attività e stato

I Diagrammi di Flusso OO

Note sugli Statechart Diagrams

Activity Diagrams (lezione 3)

Elementi di UML (6): Diagrammi dinamici di flusso

LEZIONE 7 - STATE MACHINE DIAGRAM

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

Corso di Ingegneria del Software. Activity Diagram

SOMMARIO DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE. Introduzione. Concetti base. Introduzione. Concetti base

LEZIONE 7 STATE MACHINE DIAGRAM

Esempio Modello DFD per ordini. Modelli di comportamento. Diagramma delle attività. Diagramma attività UML per ordini. Attività: Apri file da browser

LEZIONE 3 USE CASE DIAGRAM && ACTIVITY DIAGRAM

SOMMARIO DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE. Introduzione. Concetti base. Introduzione. Concetti base

SOMMARIO DIAGRAMMI DI ATTIVITÀ

Attività vs. Stato. Elementi di UML (4) Activity diagram. Activity diagram: notazione (1/3) Activity diagram: notazione (2/3)

SOMMARIO. DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Concetti base.

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

I diagrammi di attività e stato

Diagrammi di attività. Diagrammi di attività. Activity diagrams. Sintassi dei diagrammi di Attività (1) Sintassi dei diagrammi di Attività (2)

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

Automazione. 4 Aprile 2016

Sintassi dei diagrammi di Attività

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

PIANIFICAZIONE BASATA SU GRAFI

UML e i diagrammi di stato

Verifica Formale in Spin di WF-nets e Diagrammi delle Attività UML

[Larman] Applicare UML e i pattern, Capitolo 28, Diagrammi di attività di UML e modellazione

UML2. Progettazione della realizzazione dei casi d uso. Andrea Polini

Ingegneria del Software. Simulazione Prova parziale del 24/4/2015

Simulazione di sistemi non lineari Introduzione a Stateflow

Introduzione alla programmazione strutturata

***************** AvvioModoRiscaldamentoForzato L Utente attiva la modalità di ripristino veloce della temperatura.

Somma 3-bit. somma 3-bit con I/O sequenziale. somma 3-bit con I/O sequenziale. Osservazione

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring

Risoluzione di un problema

SOMMARIO DIAGRAMMI DI SEQUENZA

UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Descrivono la collaborazione di un gruppo di oggetti per implementare collettivamente un comportamento

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

GRAPH PLAN GRAPH PLAN

Modellazione di processi

Antinisca Di Marco. Laboratorio di Ingegneria del Software a.a

LEZIONE 7 - STATE MACHINE DIAGRAM

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi D1_2 V3.

Introduzione ai Calcolatori Elettronici

A.A ALLIEVI DEL III ANNO IN INGEGNERIA INFORMATICA

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

GARA SECONDARIA DI PRIMO GRADO INDIVIDUALE

Informatica per la Comunicazione/ Verdicchio/ 19/06/2013/ Domande / Versione 1

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Class diagram COMPORTAMENTO associazioni

Corso di Ingegneria del Software. Esempi di casi d uso

Proff. Toni Mancini & Monica Scannapieco Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza

Introduzione agli Algoritmi

Catia Trubiani. Laboratorio di Ingegneria del Software a.a

Architetture data-flow

Laboratorio di Sistemi Software UML per Design Patterns e Refactoring

Ingegneria del Software 18. Realizzazione casi d uso. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Informatica per la Comunicazione/ Verdicchio/ 15/01/2015/ Domande / Versione 1

LabVIEW (Laboratory Virtual Instrument Engineering Workbench)

Statechart Diagrams. Ing. Orazio Tomarchio

LabView Parte 1 IL LABVIEW LEZ_1. Corso di. Misure per la Automazione e la Qualità (Studenti Ingegneria Elettrica III anno Nuovo Ordinamento )

Modellazione di sistemi software

Laboratorio di Informatica

SOMMARIO. DIAGRAMMI DI SEQUENZA INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Partecipanti e messaggi.

GARA SECONDARIA DI PRIMO GRADO INDIVIDUALE

3. Programmi e algoritmi

Esercitazione 05. Prima di iniziare. Packet Filtering [ ICMP ] Sommario. Angelo Di Iorio (Paolo Marinelli)

Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION

PRINCIPI GENERALI. Corso di Tecniche di Simulazione, a.a. 2005/2006. Francesca Mazzia. Dipartimento di Matematica Università di Bari.

Diagrammi di attività

Macchine sequenziali. Automa a Stati Finiti (ASF)

UML. UML Book. Diagrammi di attività. Cosa sono? Notazione. Cosa sono?

Modulo 13. Diagrammi degli stati

Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno Corso di Ingegneria del Software - B UML

Architettura dei Sistemi Operativi Centro Multimediale Montiferru GRAFI DI PRECEDENZE. Cobegin-Coend e Fork-Join

Corso di Informatica

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

Introduzione a UML. Obiettivi. Unified Modeling Language. Gli autori di UML. Cos è UML. Cos è UML (cont.) Unified Modeling Language

Transcript:

Diagrammi di stato e di attività: esercizi Angelo Di Iorio (in parte di: Gianpiero Favini) A.A. 2012-2013 Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 1 / 22

Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state machine diagram) sono diagrammi che descrivono comportamento. Il diagramma di attività modella un comportamento (che riguarda una o più entità) come un insieme di azioni organizzate secondo un flusso. Il diagramma di stato modella il comportamento (generalmente di una sola entità) come variazioni del suo stato interno. Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 2 / 22

Stati, eventi e transizioni Una macchina a stati descrive la sequenza di stati in cui si trova un oggetto durante il suo ciclo di vita e in risposta a eventi Uno stato è una condizione o situazione nella vita di un oggetto in cui esso: soddisfa una condizione, esegue un attività o aspetta un evento Un evento è la specifica di un occorrenza che ha una collocazione nel tempo e nello spazio. Una transizione è il passaggio da uno stato a un altro in risposta ad un evento. Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 3 / 22

Transizioni Ogni transizione, oltre allo stato origine e destinazione, può specificare: Event: un trigger che attiva il passaggio di stato Guard: una condizione che, se vera, permette il passaggio di stato Action: un azione che risulta dal cambio di stato Sintassi: event[guard]/action La transizione avviene come risposta a uno degli eventi (quando la guardia è vera), e al momento della transizione il contesto esegue l azione specificata Uno stato può reagire ad eventi anche senza una transizione ad uno stato diverso (internal activities) Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 4 / 22

Figure 15.33 - Composite state with two Stati compositi CompositeState HiddenComposite State1 State2 entry / start dial tone exit / stop dial tone Figure 15.34 - Composite State with hid Permettono di suddividere la complessità del modello: dall esterno si vede un macro-stato, al cui interno vi sono altri stati. Si può anche creare uno stato che fa riferimento ad un altro diagramma di macchina a stati (submachine state). Si può usare un icona per rappresentare uno stato composito il cui comportamento interno non è mostrato. Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 5 / 22

Concorrenza e sincronizzazione Gli stati compositi sono utili per modellare la concorrenza. Si divide lo stato composito in (sotto-)diagrammi ortogonali eseguiti in mutua esclusione Gli stati compositi sono inoltre utili per modellare la sincronizzazione. Si divide lo stato composito in (sotto-)diagrammi e si usano gli operatori di fork e join Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 6 / 22

Notation Diagramma di attività: ingredienti The notations for activity nodes are illustrated below. There are three kinds of nodes: action control node. See these classes for more information. Action node Object node Control nodes Nodi azione: specificano unità di comportamento. Figure 12.50 - Activity node notation Nodi oggetto: specificano oggetti usati come input e output di azioni. Examples This figure illustrates the following kinds of activity node: action nodes (e.g., Receive Orde (Invoice), Nodi and controllo: nodes specificano (the initial node il before flussoreceive dell attività. Order, the decision node after node and Join node around Ship Order, merge node before Close Order, and activity final a [order Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 7 / 22

Diagramma di attività: semantica Il flusso dell attività è definito da entità, dette token, che viaggiano lungo il diagramma. I token possono rimanere fermi in un nodo azione/oggetto in attesa che si avveri una condizione su una freccia, oppure una precondizione o postcondizione su un nodo. Un nodo azione viene eseguito quando sono presenti token su tutti gli archi in entrata, e tutte le precondizioni sono soddisfatte. Al termine di un azione, sono generati control token su tutti gli archi in uscita. Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 8 / 22

Nodi iniziali, finali, decisione e fusione [x<0] Action1 [x=0] Action2 [x>0] Action3 Il disco nero marca l inizio dell attività (nodo iniziale, genera token). Quando un token raggiunge un disco nero bordato (nodo finale), l attività ha termine. I nodi decisione hanno un input e vari output mutuamente esclusivi: copiano i token in entrata su uno degli output. I nodi fusione hanno vari input e un solo output, sul quale vengono indirizzati tutti i token in ingresso. Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 9 / 22

Nodi fork/join Action1 Action2 I nodi fork hanno un ingresso e varie uscite: i token in ingresso sono duplicati su tutte le uscite. I nodi join hanno vari ingressi e una sola uscita: quando sono presenti token su tutti gli ingressi, viene prodotto almeno un token in uscita. I nodi fork dividono un esecuzione in più flussi concorrenti, i nodi join sincronizzano e riuniscono i flussi. Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 10 / 22

Esercizi Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 11 / 22

Esercizio seminario Disegnare un diagramma di stato (relativo a studente) che modella il seguente dominio: Uno studente può iscriversi ad un seminario fino all inizio del semestre. Può anche cancellare l iscrizione prima dell inizio. Lo studente è tenuto a dare un esame e può abbandonare il seminario in qualunque momento. Il seminario inoltre è interrotto se tutti gli studenti abbandonano (il numero di partecipanti è 0 ) Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 12 / 22

Esercizio seminario Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 13 / 22

Esercizio seminario Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 14 / 22

Esercizio radiosveglia Disegnare un diagramma di stato relativo ad una radiosveglia: La radiosveglia può essere spenta o accesa e, se accesa, far ascoltare la radio o un CD. Alla riaccensione la sveglia riparte con la radio o il CD in base alla selezione attiva in fase di spegnimento La radiosveglia permette inoltre di ascoltare musica o visualizzare l orario E possibile visualizzare sia l ora corrente che l ora della sveglia Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 15 / 22

Esercizio radiosveglia Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 16 / 22

Esercizio radiosveglia Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 17 / 22

Esercizio radiosveglia Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 18 / 22

Esercizio spesa Disegnare un diagramma di stato (relativo ad un cliente) che descrive una spesa in un supermercato: Il cliente cerca parcheggio prima di iniziare a fare la spesa Deve acquistare surgelati e carne e fa la fila in macelleria prima di essere servito. Finita la spesa paga alla cassa ma può decidere di andare via in qualunque momento. Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 19 / 22

Esercizio spesa Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 20 / 22

Esercizio cena Disegnare un diagramma di attività relativo all organizzazione di una cena: Si può cenare a casa, a ristorante o non cenare del tutto La cena a casa richiede di apparecchiare la tavola e cucinare, dopo aver trovato la ricetta e gli ingredienti necessari. Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 21 / 22

Esercizio cena Laboratorio Ingegneria del Software () Diagrammi di stato e di attività: esercizi A.A. 2012-2013 22 / 22