Dynamic Modeling
COMET
MARRONE DANIELE
Dynamic Modeling
Riguarda gli aspetti dinamici (o
comportamentali) del sistema


come gli oggetti interagiscono tra loro
come un oggetto state-dependent viene
definito tramite una finite-state-machine
Dynamic Modeling
Viene fatta a partire dagli use-case,
determinando le interazioni tra gli
oggetti che vi partecipano
Si basa sullo scambio di messaggi tra
oggetti
Messaggi
Rappresentano le informazioni scambiate tra
gli oggetti
Un messaggio e` un evento associato a dei
dati


Il nome del messaggio corrisponde al nome
dell`evento
I dati associati vengono chiamati attributi del
messaggio
Messaggi
Sintassi:
Message = event(message attribute)
Esempi di messaggi:
ATM Card Inserted(Card ID, Expiration Date)
Card Ejected
Rappresentazione
L`interazione tra oggetti e`
rappresentata tramite:

Interaction Diagram
Collaboration Diagram
 Sequence Diagram


Message Sequence Description
Interaction Diagram
Viene sviluppato per ogni use-case


Si determinano gli oggetti che vi
partecipano
Si rappresenta la sequenza di messaggi
scambiati
Collaboration Diagram
La sequenza temporale dei messaggi
viene rappresentata tramite numeri
progressivi che etichettano i messaggi
Mette in risalto le relazioni tra gli oggetti
<<external input
Device>>
:Shaft
Sh1:Shaft Input
<<input device
Interface>>
:ShaftInterface
Sh1.1:Update
<<entity>>
:ShaftRotationCount
Collaboration diagram per lo use-case Update Shaft Rotation
Sequence Diagram
La sequenza temporale dei messaggi
viene rappresentata graficamente
dall`alto in basso nel diagramma
Non da` una rappresentazione chiara
della relazione tra gli oggetti
Sequence Diagram
Nella fase di analisi nessuna
assunzione circa l`attivazione degli
oggetti e` presa
Gli oggetti vengono rappresentati come
passivi
 Gli attori vengono rappresentati come attivi

<<external input
Device>>
:Shaft
<< input device
interface>>
:ShaftInterface
<< entity>>
:ShaftRotationCount
Sh1:Shaft Input
Sh1.1:Update
Sequence diagram per lo use-case Update Shaft Rotation
Use case e scenario
Uno scenario è uno specifico percorso
attraverso uno use-case
Un Interaction Diagram rappresenta uno
scenario
Si usano condizioni per rappresentare più
scenari nello stesso Interaction Diagram
Generic e Instance Form
Due forme di Interaction Diagram:

Instance form
descrive in dettaglio uno specifico scenario

Generic form
descrive tutte le possibili iterazioni
Etichette dei messaggi
Sintassi:
Sequence expression, message name, argument list
dove sequence expression consiste di:
message sequence number, recurrence
Message Sequence Number
Sintassi:
[first letter] [number] [second letter]
Esempi:
A1
Use1.1a
Message Sequence Number
[first letter] [number] [second letter]
un parametro opzionale
l`identificatore di uno use-case
specifico
Message Sequence Number
[first letter] [number] [second letter]
La parte intera del numero identifica un
evento esterno
I numeri decimali rappresentano eventi
interni
Message Sequence Number
[first letter] [number] [second letter]
La sequenza temporale e` data dalle
relazioni di grandezza tra i numeri
Esempio di sequenza:
A1, A1.1, A1.1.1, A.1.2
<<external
I/O
device>>
:CardReader
<<I/O
1:Card
Reader
Input
device interface>>
:CardReaderInterface
1.1:Card Input Data
<<entity>>
:ATMCard
1.4:Pin Prompt
2.8:Selection Menu
:ATMCustomer
2:PIN Input
2.2:Card Data
2.1:Card Request
<<user
interface>>
:CustomerInterface
Collaboration diagram parziale per lo use-case Valid PIN
Message Sequence Number
[first letter] [number] [second letter]
È un parametro opzionale
Identifica casi speciali


Messaggi concorrenti (con una lettera minuscola)
Messaggi alternativi (con una lettera maiuscola)
<<subsystem>>
:BankServer
2.6[Valid]:
Valid PIN
<<state dependent
control>>
:ATMControl
2.7:Display
Menu
<<user interface>>
:CustomerInterface
2.7a:Update
Status
<<entity>>
:ATMTransaction
Esempio di messaggi concorrenti
<<subsystem>>
:BankServer
2.5,2.6A.8:
Validate PIN(Customer Info)
2.6A*[Invalid]: Invalid PIN
2.6[Valid]:Valid PIN
<<state dependent
Control>>
:ATMControl
Esempio di messaggi alternativi
Recurrence
E` un parametro opzionale
Serve per rappresentare
esecuzioni:
 Condizionali
 Iterative
Esecuzioni condizionali
Sintassi:
[condition-clause]
Identifica un ramo condizionale
Il messaggio viene mandato solo
se la condizione e` verificata
<<subsystem>>
:BankServer
2.5:Validate PIN(Customer Info)
2.6[Valid]:Valid PIN
<<state dependent
Control>>
:ATMControl
Esempio di messaggio condizionale
Esecuzioni iterative
Sintassi:
*[iteration-clause]
Specifica esecuzioni ripetute
<<subsystem>>
:BankServer
2.5,2.6A.8:
Validate PIN(Customer Info)
2.6A*[Invalid]: Invalid PIN
2.6[Valid]:Valid PIN
<<state dependent
Control>>
:ATMControl
Esempio di messaggio iterativo
Message Sequence Description
E` una descrizione a parole
Descrive come gli oggetti partecipano
ad uno use-case
Fornisce informazioni addizionali non
rappresentabili tramite i diagrammi
Scarica

marrone