Architetture Software
Note sui diagrammi di attività
Versione 3.0 – AA 2014-2015
Diego Bernini
[email protected]
Argomenti
• Ripasso mirato sui diagrammi di attività: semantica di
base
• Dati e loro gestione: oggetti transienti, buffer e datastore
2
Principali costrutti
3
Diagrammi di attività
A1
:D2
A2
:D1
4
Semantica
• Condizione necessaria per l’esecuzione di A1 è che sia
disponibile il dato :D1
• L’esecuzione di A1 produce il dato :D2
• Condizione necessaria per l’esecuzione di A2 è che sia
disponibile il dato :D2
• L’esecuzione di A2 termina il flusso complessivo
5
Molteplicità dei dati
• :D1 e :D2 dell’esempio precedente si assume siano
presenti come una sola istanza
• A1 richiede un solo dato di tipo D1 per l’esecuzione
• L’esecuzione di A1 produce un dato di tipo D2
• A2 richiede un solo dato di tipo D2 per l’esecuzione
6
Attività con dati multipli
A1
{weight=1}
:D2
{weight=*}
A2
:D1
7
Molteplicità
• È possibile specificare molteplicità diverse da 1 per i dati
prodotti/consumati
• Nell’esempio precedente:
• L’esecuzione di A1 produce un dato di tipo D2
• A2 può eseguita a partire da uno o più dati di tipo D2 (*)
• Si assume che vi sia una bufferizzazione dei dati prodotti
da A1
8
Esplicitare la bufferizzazione
A1
«buffer»
:D2
A2
:D1
9
Buffer
• I dati etichettati con <<buffer>> rappresentano in realtà
collezioni di dati
• Un nuovo dato prodotto viene aggiunto al buffer
• La lettura di un dato comporta la sua rimozione dal buffer
• Da specificare la politica di gestione (es. FIFO)
• Si possono produrre e leggere più dati
• Si possono usare le molteplicità sui 2 lati per specificare
quanti valori letti/prodotti
• I dati esistono sono all’interno dello specifico flusso /
diagramma delle attività
• I dati sono visibili solo da chi li produce / consuma
10
Datastore
• Stereotipo che indica che una collezione di dati
persistente
• La lettura di un dato NON implica la rimozione del dato
• I dati devono essere rimossi esplicitamente mediante
operazione di scrittura
• I dati contrassegnati con datastore sono visibili in altri
flussi / diagrammi delle attività
11
Datastore (2)
A1
«datastore»
:D2
A2
:D1
12
Datastore (3)
A1
«datastore»
:D2
A2
:D1
A3
13
Datastore con nome
A1
«datastore»
data:D2
A2
:D1
14
Riepilogo: buffer vs. datastore
• Buffer: collezione di dati transienti
• Datastore: collezione di dati persistenti
• Per gli scopi del corso possiamo accettare che uno stesso
buffer venga utilizzato in diagrammi di attività diversi
• In realtà in questo casi i diagrammi sono separati per
comodità di lettura / presentazione, ma rappresentano
un unico flusso
15
Riferimenti
• Serie di articoli di Conrad Bock (caricati su piattaforma elearning)
16
Scarica

ActivityDiagram_note_V03