UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come...
-
Upload
phungnguyet -
Category
Documents
-
view
214 -
download
0
Transcript of UML - stlab.dinfo.unifi.it · UML aa 2006/7 G.Bucci 3 Macchina a stati Descrive un oggetto come...
UML aa 2006/7 G.Bucci 1
UML Analisi
Modellazione e
altroMacchine a stati, Diagrammi di attività..
PROVVISORIO
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)
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
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)
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
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
UML aa 2006/7 G.Bucci 7
..Esempi
Login
entry/type "login"do/get usernamedo/get passwordexit/login(username, password)
Uno stato
UML aa 2006/7 G.Bucci 8
Esempio: distributore bibite
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)
UML aa 2006/7 G.Bucci 10
Stati composti
� Stato iniziale
UML aa 2006/7 G.Bucci 11
Stati composti
� Stato iniziale
UML aa 2006/7 G.Bucci 12
Stati composti
� Stato finale
UML aa 2006/7 G.Bucci 13
Stato composto Erogazione
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
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
UML aa 2006/7 G.Bucci 16
Stati compostie
S1 S2
S1
S211
S2
e
S212
S213
S221
S222
Sx
S3
S3
Uscita esplicita
UML aa 2006/7 G.Bucci 17
Stati composti
UML aa 2006/7 G.Bucci 18
Diagrammi di attività
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)
UML aa 2006/7 G.Bucci 20
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
UML aa 2006/7 G.Bucci 22
Segnali
Mostra finestra "in corso di stampa"
Conversione a PDF
Print(file)
Chiudi finestra
Print(file)
Attività dello spooler
Stampa in PDF da parte di un programma
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à
UML aa 2006/7 G.Bucci 24
Corsie e flussi di oggetti
UML aa 2006/7 G.Bucci 25
Esempio
UML aa 2006/7 G.Bucci 26
UML aa 2006/7 G.Bucci 27
Esempio
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