statechart diagrams

Transcript

statechart diagrams
Unified Modeling Language (3)
Statechart diagram
A cura di Luciano Baresi
UML: Unified Modeling Language
1
State Diagram
2
UML: Unified Modeling Language
Elementi grafici
µ Rappresentano il comportamento dei singoli
oggetti di una classe in termini di
„
„
„
Eventi a cui gli oggetti (la classe) sono sensibili
Azioni prodotte
Transizioni di stato
Stato
Stato
Š Identificazione degli stati interni degli oggetti
Stato iniziale
µ Possibilità di descrivere evoluzioni parallele
µ Sintassi mutuata da StateChart (D. Harel)
UML: Unified Modeling Language
Evento/azione
Stato finale
3
UML: Unified Modeling Language
4
Esempio
Inizio e Fine
(Telefonata)
Chiamante.Aggancia
Chiamante.Aggancia
Inattivo
Chiamante.Sgancia
T
Tono
Pronto
Compone(n)
T
Mossa
Bianca
Compone(n)
Compos.
Numero
NumNonValido
Bianco
Muovere
Inizio
Tono
TimeOut
Messaggio
Vocale
Occupato
Mossa
Nera
Nero
Muovere
NumValido
Tono
Occupato
Matto o Abbandono
ProntoA
Connettere
Vince Nero
Stallo o Accordo
Stallo o Accordo
Matto o Abbandono
Patta
Vince Bianco
Instradato
Connesso
Ricevente.Sgancia
Tono
Libero
FineMessaggio
5
UML: Unified Modeling Language
Condizioni
UML: Unified Modeling Language
Operazioni
µ Funzioni booleane sui valori degli oggetti
µ Azioni
„ Operazioni che hanno durata istantanea
µ Utili quando non basta l'evento, ma si vuole
Š Tipicamente produzione di eventi
aggiungere un predicato
„
Evento
Pronto
6
Condizione
Verde [incrocio.stato=libero]
Sono associate alle transizioni di stato oppure
all'ingresso o all'uscita da uno stato
µ Attività
„ Sono operazioni con durata significativa
„ Sono associate ad uno stato
InCorsa
Š Continue o sequenziali
UML: Unified Modeling Language
7
UML: Unified Modeling Language
8
Esempio
Stato Completo
(Prenotazione voli)
cancel()[ reservedSeats>1 ]
cancel()[ reservedSeats=1 ]
No reservations
reserve()
attributo1: tipo1 = val.iniziale
attributo2: tipo2 = val.iniziale
do / attività1
entry / azione1
exit / azione2
event1 / azione3
event2 / azione4
Partially
booked
entry/ reset()
Nome
reserve[ freeSeats>1 ]
openFlight()
cancelFlight()
event3 [condizione1] / azione5
close()
reserve()[ freeSeats=1 ]
Closed
cancel()
event4 [condizione2] / azione6
close()
Fully booked
9
UML: Unified Modeling Language
Eventi
Esempio
(Generati da Azioni)
(TV, Video Registratore e Telecomando)
VR
µ Spesso le azioni consistono nell'inviare un
toggle power
Off
evento ad un altro oggetto
„
10
UML: Unified Modeling Language
On
toggle power
evento(arg
evento(arg)) [cond
[cond]] / azione ^target.azione(arg
^target.azione(arg))
power button/
^VR.togglePower
VCR
0 Oggetti
selezionati
right-mouse-down(location) [location in window] /
object:=pick-object(location) ^object.highlight()
Controlling
TV
1 Oggetto
selezionato
Controlling
VCR
TV
power button/
^TV.togglePower
TV
toggle power
Off
On
toggle power
UML: Unified Modeling Language
11
UML: Unified Modeling Language
12
Stub
Decomposizione OR
(Sottostati nascosti)
B
Un macro stato equivale ad una scomposizione OR
degli stati
µ I sottostati ereditano le transizioni dei loro superstati
µ
W
E
A
C
F
D
levaR
Folle
W
A
levaN
Cambio Automatico
levaF
C
B
levaN
D
MarciaAvanti
accelera
Prima
13
UML: Unified Modeling Language
Oggetti Compositi
carica
Serbatoio
Fornello
Chiuso
Serbatoio
[gas > 0]
14
[gas = 0]
Pieno
Pieno
Terza
Vuoto
Fornello
[gas = 0]
decelera
Interazione fra Componenti
Accendino
carica
decelera
accelera
Seconda
UML: Unified Modeling Language
Serbatoio
Vuoto
RetroMarcia
apri
Aperto
[gas > 0]
Fornello
Chiuso
chiudi
scintilla
chiudi
apri
Acceso
scintilla
Aperto
Acceso
[Serbatoio.stato == Pieno]
UML: Unified Modeling Language
15
UML: Unified Modeling Language
16
Decomposizione AND
History
µ Quando l’esecuzione lascia uno stato S con
history
Finestre
„
Muri
Si salva l’ultimo stato visitato S1 in S
µ Quando l’esecuzione ritorna in S
„ Si riparte da S1
Imp.elettrico
A
B1
B2
17
UML: Unified Modeling Language
UML: Unified Modeling Language
C
H
18
Example
(Selezione corsi)
corsi < 4
Creazione
sospendi
Selezione
corsi = 4
Activity Diagram
Sospendi
continua
H
Selezione extra
corsiE = 2
Salva
quit
corsiE < 2
UML: Unified Modeling Language
Sottometti
19
UML: Unified Modeling Language
20
Activity Diagram
Activity Diagram (cont.)
µ Forniscono la sequenza di operazioni che
µ Derivano da event diagrams e reti di Petri
definiscono un’attività più complessa
µ Possono essere considerati State Diagram
particolari
„
µ Utili per modellare
„ comportamenti sequenziali
„ non determinismo
„ concorrenza
„ sistemi distribuiti
„ business workflow
„ operazioni
Ogni stato contiene (è) un’azione
µ Un Activity Diagram può essere associato
„ A una classe
„ All’implementazione di un’operazione
„ Ad uno Use Case
21
UML: Unified Modeling Language
22
UML: Unified Modeling Language
Esempio
Elementi grafici
(Gestione ordine)
Receive
Order
Concorrenza dinamica
*
start
attività
Attività composta
Check
Payment
end
fork
[condition]
[condition]
branch
Wait for
Paymentnot OK
join
not OK
OK
OK
Wait for
Payment
*
Check
Availability
Assign to
Order
merge
[if necessary]
Ship
Order
[else]
Order
Goods
Le attività possono essere gerarchiche
UML: Unified Modeling Language
23
UML: Unified Modeling Language
24
Swimlane
(Corsie)
Cliente
Ufficio
acquisti
Attività e flussi degli oggetti
Magazzino
Customer
µ
Identificano le
responsabilità relative
alle diverse operazioni
„
„
µ
Parti di un oggetto
Oggetti diversi
Sales
Request
product
Order
[in progress]
ricevi
ordine
ricerca
prodotto
pagamento
In un Business Model
identificano le unità
organizzative
Warehouse
Order
[forwarded]
richiesta
prodotto
Pay bill
Process
order
Find
product
Bill
[unpaid]
Order
[completed]
spedisci
prodotto
Ship
product
Receive
order
ricevi
prodotto
Order
[delivered]
UML: Unified Modeling Language
25
Statechart diagram
UML: Unified Modeling Language
26
Implementation Diagram
µ Component Diagram
„ Definiscono i componenti “fisici” che realizzano
l’applicazione (eseguibili, librerie, ecc..)
Implementation Diagram
µ Deployment Diagram
„ Definiscono il partizionamento (la struttura)
dell’applicazione: processi e/o processori
UML: Unified Modeling Language
27
UML: Unified Modeling Language
28
Component diagram
Component diagram (cont.)
µ Definiscono le relazioni fra i componenti
µ Rappresentano l’implementazione del sistema
software che realizzano l’applicazione
„
µ Parte della specifica architetturale
sorgenti, binari, eseguibili
µ Serve per
„ Organizzare il codice
„ Vincolare (definire) una versione particolare
„ Definire una base di dati
µ I diversi componenti offrono e usano
interfacce specifiche
µ Primo passo verso Component Programming
29
UML: Unified Modeling Language
Esempio
Componenti
mailer
(Scheduler)
SendMail
ReceiveMail
<<reside>>
mailer
mailer
Realizes
+Mailbox
+RoutingList
-MailQueue
30
UML: Unified Modeling Language
scheduler
+RoutingList
<<reside>>
-MailQueue
<<reside>>
planner
update
+Mailbox
mailer
+Mailbox
reservations
GUI
+RoutingList
Model View Controller
Design pattern
-MailQueue
UML: Unified Modeling Language
31
UML: Unified Modeling Language
32
Usando icone carine
Deployment Diagram
(HelloWorld)
µ Definiscono la configurazione a run-time dei
hello.class
<<reside>>
componenti identificati al passo precedente
µ Identificano processi e processori (nodi)
dell’applicazione
<<implement>>
hello.java
hello.html
µ Executable
<<implement>>
µ Library
µ Table
hello.jpg
µ File
µ Document
µ ...
33
UML: Unified Modeling Language
Nodi e componenti
Associazioni
µ
34
UML: Unified Modeling Language
(I soluzione)
server
Rappresentano le connessione fisiche tra i nodi
R
<<
>>
32
S -2
<<database>>
meetings
scheduler
Client1
reservations
Server
>>
32
-2
RS
<<
UML: Unified Modeling Language
myPC
Client2
planner
35
UML: Unified Modeling Language
36
Il 10mo modello
(Collaboration)
Nodi e componenti
(II soluzione)
server
<<become>>
scheduler
µ
mirror
reservations
scheduler
<<tcp/ip>>
Collaboration sono gruppi di classi, oggetti e altri
elementi che lavorano insieme per risolvere un
problema
„
„
Possiamo dire che i collaboration definiscono pattern
Comprendono
Š Una parte strutturale (statica) che definisce gli elementi della
<<tcp/ip>>
soluzione
myPC
Š Una parte di comportamento (dinamica) per definire le
interazioni
<<tcp/ip>>
µ
planner
use case
Relazione <<become>>
37
UML: Unified Modeling Language
Si può dire che i collaboration implementano gli use
case
Collaboration
collaboration
38
UML: Unified Modeling Language
Collaboration-Static view
TransportAgent
sender
receiver
Internode
Messaging
sendMessage()
Communication
TransportAgent
UML: Unified Modeling Language
Store
Queue
Queue
data
Message
addMessage()
removeMessage()
count()
39
UML: Unified Modeling Language
Message
header
body
40
Collaboration-Dynamic view
create
:Queue
Gestione del modello
µ Package
„ Servono per organizzare specifiche complesse
:TransportAgent
:Message
Š Visibilità, import, access
addMessage
µ Subsystem
„ Servono per strutturare sistemi complessi
removeMessage
Š Specifica e realizzazione
µ Model
„ Servono per mostrare aspetti diversi
Š Tracciabilità
41
UML: Unified Modeling Language
Subsystem
µ
42
UML: Unified Modeling Language
Interfacce
Si usano per decomporre il sistema
Porta Bagagli
Check-in
Utente
Porta Bagagli
Check-in
Utente
4:receive
1:transmit
2:send
3:ack
Collaboration
UML: Unified Modeling Language
Gerarchia
43
UML: Unified Modeling Language
44
Due aspetti
Specifica e implementazione
µ Un sottosistema ha due aspetti
„ Visione esterna: servizi forniti all’esterno
Š Possibili approcci: use case, statecharts,
statecharts, classi logiche, …
„
Specifica
Implementazione
Visione interna: come si realizzano i servizi
Š Possibili approcci: classi con le loro relazioni, gerarchia di
sottosistemi e classi (come foglie), …
µ C’è una corrispondenza tra i due aspetti
45
UML: Unified Modeling Language
Corrispondenza
Modello
µ Può essere espressa direttamente:
„ Relazioni di “implementazione”
„ Collaboration
Specifica
46
UML: Unified Modeling Language
µ Un modello è un’astrazione del sistema
Implementazione
Sistema
Use Case
Initiate Call
Network
Interface
Receive Digit and Connect
Coordinator
Design
Analysis
Database
<<trace>>
Hook Signal and Disconnect
UML: Unified Modeling Language
47
UML: Unified Modeling Language
48
Modelli e sottosistemi
µ
Possono essere combinati in gerarchie
Riassumendo
UML: Unified Modeling Language
49
Elementi
µ
µ
µ
µ Associazioni
µ Generalizazioni
interaction, automi a stati
µ Realizzazioni
Raggruppamenti
„
µ
µ Dipendenze
classi, interfacce, collaboration,
collaboration, use case, classi
attive, componenti, nodi
Elementi “dinamici” (behavioral
(behavioral))
„
50
Relazioni
Elementi strutturali
„
UML: Unified Modeling Language
package, sottosistemi
Altri elementi
„
note
UML: Unified Modeling Language
51
UML: Unified Modeling Language
52
Estendibilità
Use case diagram
µ Stereotipi
µ Catturano le funzionalità del sistema (vista
utente)
µ Restrizioni (tagged value)
µ Vincoli (constraint)
UML: Unified Modeling Language
53
Class diagram
54
Object diagram
µ Catturano il
µ Le istanze e i legami
vocabolario del
sistema
UML: Unified Modeling Language
UML: Unified Modeling Language
fra le istanze
55
UML: Unified Modeling Language
56
Sequence diagram
Collaboration diagram
µ Catturano il comportamento dinamico
µ Catturano il comportamento dinamico
(rispetto al tempo)
UML: Unified Modeling Language
(rispetto ai messaggi)
57
Statechart diagram
58
Activity diagram
µ Catturano il comportamento dinamico
µ Catturano il
(rispetto agli eventi)
UML: Unified Modeling Language
UML: Unified Modeling Language
comportamento
dinamico (rispetto alle
attività)
59
UML: Unified Modeling Language
60
Component diagram
Deployment diagram
µ Catturano la struttura fisica
µ Catturano la topologia del sistema
dell’implementazione
UML: Unified Modeling Language
61
UML: Unified Modeling Language
62