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