• Non ci sono risultati.

Diagrammi di stato e di attività: esercizi

N/A
N/A
Protected

Academic year: 2021

Condividi "Diagrammi di stato e di attività: esercizi"

Copied!
22
0
0

Testo completo

(1)

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

(2)

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.

(3)

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

(4)

Transizioni

Ogni transizione, oltre allo stato origine e destinazione, può specificare:

I

Event: un ‘trigger’ che attiva il passaggio di stato

I

Guard: una condizione che, se vera, permette il passaggio di stato

I

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)

(5)

Stati compositi

CompositeState

State2 State1

UML Superstructure Specification, v2.1 581

Examples

Figure 15.33 - Composite state with two states

Figure 15.34 - Composite State with hidden decomposition indicator icon

Start

entry/ start dial tone

Partial Dial

entry/number.append(n) digit(n)

digit(n)

[number.isValid()] Dialing

exit/ stop dial tone

entry / start dial tone exit / stop dial tone

HiddenComposite entry / start dial tone exit / stop dial tone

HiddenComposite

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

(6)

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

(7)

Diagramma di attività: ingredienti

UML Superstructure Specification, v2.1 349

Notation

The notations for activity nodes are illustrated below. There are three kinds of nodes: action node, object node, and control node. See these classes for more information.

Examples

This figure illustrates the following kinds of activity node: action nodes (e.g., Receive Order, Fill Order), object nodes (Invoice), and control nodes (the initial node before Receive Order, the decision node after Receive Order, and the fork node and Join node around Ship Order, merge node before Close Order, and activity final after Close Order).

Rationale

Activity nodes are introduced to provide a general class for nodes connected by activity edges.

Changes from previous UML

ActivityNode replaces the use of StateVertex and its children for activity modeling in UML 1.5.

Figure 12.50 - Activity node notation

Figure 12.51 - Activity node example (where the arrowed lines are only the non-activity node symbols)

Action node Object node Control nodes

Receive Fill

Order Ship

Order Order

Close Order

Send

Invoice Make

Payment Accept

Payment [order

accepted]

[order rejected]

Invoice

Nodi azione: specificano unità di comportamento.

Nodi oggetto: specificano oggetti usati come input e output di azioni.

Nodi controllo: specificano il flusso dell’attività.

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

(8)

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.

(9)

Nodi iniziali, finali, decisione e fusione

Action1 Action2

[x<0]

[x=0]

[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

(10)

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.

(11)

Esercizi

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

(12)

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 )

(13)

Esercizio seminario

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

(14)

Esercizio seminario

(15)

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

(16)

Esercizio radiosveglia

(17)

Esercizio radiosveglia

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

(18)

Esercizio radiosveglia

(19)

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

(20)

Esercizio spesa

(21)

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

(22)

Esercizio cena

Riferimenti

Documenti correlati

The present study aimed at investigating the self- reported prevalence of AR and NAR in the general popu- lation aged 20–84 years in Italy and to compare the risk factor

La città romana si estendeva dall’altura del Castello verso il Rio Plancia, con un’ulteriore articolazione costituita dal porto, nella zona del Grau Vell, una delle maggiori fonti

Come è emerso dalle ricerche com- piute in questi ultimi anni, il mal del- l’esca della vite non è da considerarsi una malattia complessa, ma piuttosto un complesso di malattie;

Nabokov sceglie di rappresentare la pagina esterna delle ali perché il disegno delle macchie è molto più variabile dell’azzurro della pagina interna tra le diverse specie.. Ma sono

Della stessa collana Fotovoltaico in Architettura (2007) LuciaCeccherini Nelli, EULEB EUropean high quality Low Energy Buildings (2007) Marco Sala e Lucia Ceccherini

This figure illustrates the following kinds of activity node: action nodes (e.g., Receive Order, Fill Order), object nodes (Invoice), and control nodes (the initial node before

 Selects only the vertexes for which the specified condition is satisfied and returns a new graph with only the subset of selected

La biodiversità del batterioplancton nelle acque profonde è stata studiata in maggiore dettaglio utilizzando la tecnica del pirosequenziamento (sequenziamento