UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come...

28
UML aa 2006/7 G.Bucci 1 UML Analisi Modellazione e altro Macchine a stati, Diagrammi di attività.. P R OV V I SOR IO

Transcript of UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come...

Page 1: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 1

UML Analisi

Modellazione e

altroMacchine a stati, Diagrammi di attività..

PROVVISORIO

Page 2: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 2

Macchine a stati in UML

� Sono una versione estesa (derivante dalle StateChart [Harel]) delle normali macchine a stati (finite state machines/finite automata)

� Modellano il comportamento dinamico degli oggetti di una data classe (tutte le possibili storie )

� Sono una delle possibili viste dinamiche

� Si rappresentano attraverso i diagrammi di stato

(stati e transizioni)

Page 3: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 3

Macchina a stati

� Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento del verificarsi di eventi

� Non mostra le interazioni con gli altri oggetti (per queste si deve ricorrere ad altre viste dinamiche:

diagrammi di sequenza e di collaborazione)

� La risposta a un evento è funzione dello stato in cui si trova la macchina: tutti gli oggetti della classe modellata, che si trovino in

un dato stato, effettuano la stessa azione al

riconoscimento di un dato evento

Page 4: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 4

Macchine a stati UML

� Macchine a stati convenzionali:

� Cambiamenti di stato solo in base agli ingressi

� Una macchina può influenzare un’altra solo attraverso le sue uscite che la seconda vede come

ingressi

� Macchine a stati in UML

� Cambiamenti di stato in base a vari tipi di eventi

(messaggi ricevuti, verificarsi di generiche condizioni

sugli stati delle macchine che sui valori delle

variabili)

� Composizione degli stati (superstati)

Page 5: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 5

Notazione

NomeStato

do/action_internal

entry/action_in

exit/action_out

Evento (par:T) [cond]/action1;…;actionx

Parametro

Azione di ingresso

Azione interna

Azione di uscita

Guardia

event/action_event

Transizione interna

Attività interne

Page 6: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 6

Esempi

Non pagata

fattura creata

Pagata

pagamento

fattura distrutta

Stato finale (pseudo stato): di solito indica l’eliminazione

dell’oggetto, o la conclusione di una traiettoria

Stato iniziale (pseudo stato): di solito indica la creazione di un

oggetto o l’inizio di una traiettoria di stato

Page 7: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 7

..Esempi

Login

entry/type "login"do/get usernamedo/get passwordexit/login(username, password)

Uno stato

Page 8: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 8

Esempio: distributore bibite

Page 9: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 9

Stati composti

Stato finale: indica il completamento dell’attività (dello stato che lo include)

Stato composto da stati sequenziali

Stato iniziale (pseudo stato): indica il punto di partenza entro lo stato composto

Stato composto da stati concorrenti (ortogonali)

(Regioni ortogonali)

Page 10: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 10

Stati composti

� Stato iniziale

Page 11: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 11

Stati composti

� Stato iniziale

Page 12: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 12

Stati composti

� Stato finale

Page 13: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 13

Stato composto Erogazione

Page 14: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 14

Stati compostie

S1 S2

S1

S211

S2

e

S212

S213

S221

S222

S3

S3Devono essere

stati raggiunti

entrambi

Page 15: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 15

Stati compostie

S1 S2

S1

S211

S2

e

S212

S213

S221

S222

S3

S3

abort

Da tutti gli stati

Page 16: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 16

Stati compostie

S1 S2

S1

S211

S2

e

S212

S213

S221

S222

Sx

S3

S3

Uscita esplicita

Page 17: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 17

Stati composti

Page 18: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 18

Diagrammi di attività

Page 19: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 19

Diagrammi di attività

� Sono i diagrammi di flusso OO

� usati per modellare processi (di elaborazione) come un

insieme di attività e di transizioni tra queste attività

� Sono essi stessi delle macchine a stati:

� gli stati rappresentano esecuzione di elaborazioni (non stati di

un oggetto); sono detti stati di attività

� uno stato di attività rappresenta l’esecuzione di uno statement

o una procedura

� si assume che l’elaborazione proceda senza essere

sollecitata da eventi: l’uscita da uno stato di attività

corrisponde al completamento dello statement/procedura, non

a un evento (si parla di transizione di completamento)

Page 20: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 20

Page 21: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 21

Segnali/eventi asincroni

� E’ prevista la

possibilità di attendere un

evento asincrono

o trasmettere un

segnale (se

diventano tanti meglio passare

alle macchine a

stati)

Dest:oggetto

do4

do1

si

do2

do3

Invio del segnale so

Ricezione del segnale siFlusso di controllo esterno

so

Page 22: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 22

Segnali

Mostra finestra "in corso di stampa"

Conversione a PDF

Print(file)

Chiudi finestra

Print(file)

Print

Attività dello spooler

Stampa in PDF da parte di un programma

Page 23: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 23

Corsie e flusso di oggetti

� Le corsie vengono normalmente utilizzate per evidenziare i ruoli/le responsabilità/le unitàorganizzative

� ad esempio raggruppando le attività di una

componente organizzativa del sistema modellato

� Oltre al flusso del controllo il diagramma può mostrare il flusso di oggetti: ovvero gli oggetti in ingresso o in uscita alle varie attività

Page 24: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 24

Corsie e flussi di oggetti

Page 25: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 25

Esempio

Page 26: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 26

Page 27: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 27

Esempio

Page 28: UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come un’entità isolata che comunica con il resto del mondo attraverso il riconoscimento

UML aa 2006/7 G.Bucci 28

In sintesi

� I diagr di attività Mostrano le attività, ma non gli oggetti che le svolgono; non mostrano i dettagli dell’elaborazione

� Sono il punto di partenza dell’analisi/progetto

� Ogni attività deve essere scomposta in una o più operazioni, assegnata a specifiche classi

� identificazione delle classi

� collaborazione tra oggetti

� interazioni tra oggetti