I diagrammi di interazione

Documenti analoghi
DIAGRAMMI DI SEQUENZA

Descrivono la collaborazione di un gruppo di oggetti per implementare collettivamente un comportamento

UML: DIAGRAMMA DI SEQUENZA

Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION

Il diagramma dei casi d uso

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

I Diagrammi di Flusso OO

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring

Laboratorio di Sistemi Software UML per Design Patterns e Refactoring

Modello a scambio di messaggi

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Il Modello a scambio di messaggi

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Sequence Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

Microsoft Visio 2002 UML Sergio Colosio

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Fondamenti di Programmazione. Strutture di controllo

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

Costanti e Variabili

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009

Function Block Diagram

Un esempio di if annidati

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Corso di Ingegneria del Software. Activity Diagram

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

Ingegneria del Software 9. Macchine a stati. Dipartimento di Informatica Università di Pisa A.A. 2014/15

UML I diagrammi implementativi

Alcuni diagrammi. OCL (Object Constraint Language)

Sequence Diagram e Collaboration Diagram

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Modello a scambio di messaggi

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Istruzioni condizionali di diramazione in Fortran 90

Windows. La prima realizzazione di un ambiente grafico si deve alla Apple (1984) per il suo Macintosh. La gestione dei file conserva la logica del DOS

Tecniche di sviluppo di progetti. Lezione 4: Diagrammi UML

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Programmazione in Java (I modulo)

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

LEZIONE 7 - STATE MACHINE DIAGRAM

Cimino - Informatica per la Logistica Lezione 3 - slide 16 di 23

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Rappresentazione con i diagrammi di flusso (Flow - chart)

LEZIONE DI MATEMATICA SISTEMI DI NUMERAZIONE. (Prof. Daniele Baldissin)

Elementi di UML (5): Diagrammi di interazione

Attività vs. Stato. Elementi di UML (4) Activity diagram. Activity diagram: notazione (1/3) Activity diagram: notazione (2/3)

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2006/2007

Ingegneria del Software

Programmazione con Java

I Tipi di Dato Astratto

Analizzatori Lessicali con JLex. Giuseppe Morelli

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

Programmi e Oggetti Software

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Fondamenti di Informatica

Modellazione dei dati in UML

Ingegneria del Software 8. Diagrammi di attività. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

Funzioni, Stack e Visibilità delle Variabili in C

Cosa si intende con stato

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Indice. Prefazione. 3 Oggetti e Java 53

Progettazione del Sofware

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Sistemi Web per il turismo - lezione 3 -

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Informatica e Bioinformatica: Algoritmi

Informatica! Appunti dal laboratorio 1!

5 - Istruzioni condizionali

Introduzione al MATLAB c Parte 3 Script e function

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.

PROGRAMMAZIONE: Le strutture di controllo

Introduzione alla programmazione Esercizi risolti

Modelli di interazione tra processi

Esercitazione 3. Espressioni booleane I comandi if-else e while

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Modelli di interazione tra processi

Algoritmi e basi del C Struttura di un programma

Programmazione Orientata agli Oggetti in Linguaggio Java

I database. Introduzione alla teoria delle basi di dati

Laboratorio di Python

Diagrammi di classe e sistemi orientati agli oggetti

Strutture di Controllo

Istruzioni Condizionali

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test

Transcript:

I diagrammi di interazione Laboratorio di Sistemi e Processi Organizzativi Gian Piero Favini A.A. 2006-2007 Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 1 / 45

Tassonomia dei diagrammi UML 2 Structure diagrams show the static structure of the objects in a system. That is, they depict those elements in a specification that are irrespective of time. The elements in a structure diagram represent the meaningful concepts of an application, and may include abstract, real-world and implementation concepts. For example, a structure diagram for an airline reservation system might include classifiers that represent seat assignment algorithms, tickets, and a credit authorization service. Structure diagrams do not show the details of dynamic behavior, which are illustrated by behavioral Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 2 / 45

Cosa sono e a cosa servono Sono diagrammi di comportamento che modellano le interazioni tra varie entità di un sistema. Visualizzano lo scambio di messaggi tra entità nel tempo. Il loro scopo è mostrare come un certo comportamento viene realizzato dalla collaborazione delle entità in gioco (fino ad ora ci siamo occupati solo di cosa fa il sistema). La parola chiave è realizzare: questi diagrammi mostrano la realizzazione di un comportamento offerto. Come gli altri diagrammi, possono avere vari livelli di astrazione. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 3 / 45

Come procedere Un diagramma di interazione necessita di due cose: Un comportamento da realizzare tratto da un classificatore (classificatore di contesto), ad esempio... un caso d uso un operazione di classe Una serie di elementi che realizzano il comportamento, ad esempio... attori istanze di classe Questi ingredienti provengono da diagrammi creati precedentemente. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 4 / 45

I diagrammi Ci sono 4 tipi di diagrammi di interazione, noi ci concentreremo sui primi 2. Diagramma di sequenza: adatto a mostrare la sequenza temporale degli avvenimenti per ogni entità nel diagramma. Diagramma di comunicazione: adatto a mostrare le relazioni strutturali e i collegamenti tra le entità e i messaggi che vi transitano. Diagramma di interazione generale: adatto a mostrare la costruzione di interazioni complesse a partire da interazioni più semplici. Diagramma di temporizzazione: adatto a mostrare l evoluzione dell interazione in tempo reale. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 5 / 45

Elementi dei diagrammi d interazione Nei diagrammi di interazione generalmente non compaiono direttamente classificatori come le classi: al loro posto ci sono Istanze di classificatori (oggetti, istanze di attori, etc.) Linee di vita (lifeline) di classificatori (esprimono ruoli, non specifici oggetti) La differenza tra istanze e linee di vita è sottile, ma in generale è preferibile usare le linee di vita. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 6 / 45

Istanze vs. linee di vita Un istanza: rappresenta uno specifico oggetto, e solo quello Una linea di vita: è più generale rappresenta un istanza arbitraria di un classificatore fornisce modi per specificare come quest istanza viene scelta esprime il ruolo giocato da un istanza senza preoccuparsi della sua identità Un diagramma basato su istanze è chiamato in forma d istanza, uno basato su linee di vita è in forma generica. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 7 / 45

Istanze e linee di vita in UML Jim : Person buyer : Person Entrambe usano la notazione del loro classificatore, ma le linee di vita non sono sottolineate. La notazione completa per una linea di vita è: nome [selettore] : tipo Il selettore è un espressione booleana opzionale che permette di scegliere un particolare rappresentante del classificatore, ad es. [id= 1234 ]. Senza selettore la linea di vita rappresenta un arbitraria istanza. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 8 / 45

Istanze e linee di vita nei diagrammi di sequenza buyer : Person Una linea verticale tratteggiata indica una sequenza temporale. Gli eventi hanno luogo nel loro ordine sulla linea; le distanze sono irrilevanti. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 9 / 45

Messaggi Rappresentano comunicazioni tra linee di vita: segnali, chiamate di operazioni, creazione e distruzione di oggetti. Sette tipi definiti: chiamata sincrona chiamata asincrona ritorno da chiamata creazione distruzione messaggio trovato messaggio perso Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 10 / 45

Tipi di messaggi: chiamata (1) lifeline1 lifeline2 Asincrono message(param) Sincrono message2(p1,p2) Ritorno Comunicazione sincrona vs. comunicazione asincrona. I rettangoli di attivazione (indicano un focus di controllo) sono opzionali. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 11 / 45

Tipi di messaggi: chiamata (2) I messaggi sincroni fanno bloccare chi li manda fino al messaggio di ritorno del destinatario. Nei messaggi asincroni il mittente non si aspetta un messaggio di ritorno e prosegue immediatamente. I messaggi di ritorno sono opzionali e in generale inclusi solo quando non ostacolano la leggibilità del diagramma oppure per segnalare valori di ritorno. La distinzione tra messaggi sincroni e asincroni in genere emerge in fase di progettazione. In fase di analisi, conviene indicare tutti i messaggi come sincroni (è il caso più vincolante). Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 12 / 45

Tipi di messaggi: creazione/distruzione (1) a : A <<create>> b : B <<destroy>> Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 13 / 45

Tipi di messaggi: creazione/distruzione (2) Nel messaggio di creazione lo stereotipo può essere seguito dal nome di un operazione e relativi parametri (costruttore). Questo si rende necessario nel caso si lavori con linguaggi di programmazione senza costruttori espliciti. Differenti linguaggi di programmazione OO gestiscono la distruzione in modi diversi (esplicita, garbage collector). In fase di analisi, basta immaginare che dopo la distruzione, l oggetto non è più accessibile Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 14 / 45

Tipi di messaggi: trovati/persi (1) a : A b : B foundmsg senddata senddata senddata Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 15 / 45

Tipi di messaggi: trovati/persi (2) Raramente usati in fase di analisi. I messaggi trovati indicano situazioni in cui il mittente è sconosciuto al momento della ricezione, proviene dall esterno del diagramma o i dettagli della provenienza non interessano. I messaggi persi permettono di visualizzare il comportamento nel caso un messaggio non giunga a destinazione (situazione di errore). Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 16 / 45

Attivazioni annidate (1) a : A b : B Le linee di vita possono mandare messaggi a se stesse. Si tratta di un caso frequente (es. invocazione di operazioni private). Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 17 / 45

Attivazioni annidate (2) sd overlap cc:c aa:a oper1() callback() Figure 14.15 - Overlapping execution occurrences Le attivazioni possono generare altre attivazioni sulla linea di vita chiamante (es. callback). 14.3.11 Gate (from Fragments) Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 18 / 45

Stati (1) Uno stato è definito come una condizione o situazione durante la vita di un oggetto in cui esso soddisfa una condizione, esegue un attività o aspetta un evento. Ogni oggetto in UML può avere una macchina a stati associata che ne descrive gli stati possibili. I diagrammi di stato (state machine diagram) sono i più adatti a rappresentare gli stati e loro transizioni, ma può essere conveniente mostrare alcuni cambiamenti di stato nei diagrammi di sequenza. Generalmente, ci si limita agli stati principali all oggetto, mettendo in risalto i messaggi che provocano un cambiamento di stato. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 19 / 45

Stati (2) : Lamp : User Off switch() On In UML, gli stati si rappresentano con rettangoli arrotondati. I cambiamenti di stato sono generalmente la conseguenza di uno o più messaggi. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 20 / 45

Realizzare i casi d uso Le primitive introdotte fin qui permettono di rappresentare sequenze di eventi senza ramificazioni; tuttavia, per realizzare i casi d uso è necessario poter descrivere sequenze più complesse. Le sequenze degli eventi in un caso d uso contengono parole chiave come if, then, else, for e while. I diagrammi di sequenza permettono di tradurre questi costrutti ed inserirli nel diagramma. Si ricorre ai frammenti combinati. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 21 / 45

Frammenti combinati (1) Un frammento combinato è una sottoarea di un diagramma di sequenza che racchiude una parte dell interazione e le modalità della sua esecuzione. Gli elementi di un frammento combinato sono: un operatore, che specifica come il frammento viene eseguito uno o più operandi, sottoaree del diagramma di sequenza che possono essere eseguite zero o più condizioni di guardia, espressioni che determinano quali operandi sono eseguiti. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 22 / 45

Frammenti combinati (2) La sintassi UML per un frammento combinato è la seguente: un rettangolo con il nome dell operatore in alto a sinistra racchiuso nel simbolo di diagramma (rettangolo con angolo tagliato ) gli operandi seguono come strisce orizzontali in sequenza, separati da linee tratteggiate la guardia, se presente, compare dopo l operatore oppure nella parte alta di un operando tra parentesi quadre Il rettangolo del frammento combinato si estende orizzontalmente per includere le linee di vita interessate dall interazione. La guardia può includere qualunque tipo di condizione booleana, incluso OCL. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 23 / 45

Frammenti combinati: esempio buyer seller lawyer pay giveitem alt [buyersatisfied] handshake [buyernotsatisfied] sue(seller) Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 24 / 45

Operatori L operatore determina la semantica dell esecuzione del frammento. UML specifica parecchi tipi di operatori, ma solo alcuni sono usati frequentemente (quelli che corrispondono alle primitive di controllo del flusso definite dai linguaggi di programmazione). I più usati: opt corrisponde a if/then alt corrisponde a case/select loop corrisponde a for/while break corrisponde a break Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 25 / 45

Operatori: opt e alt opt accetta solo un operando, che viene eseguito se e solo se la guardia è valutata true. alt accetta un qualunque numero di operandi e ne esegue al più uno. esamina la lista a partire dal primo operando, valuta le guardie ed esegue solo il primo operando la cui guardia è vera l operando opzionale [else] è eseguito se nessuna delle guardie è vera le condizioni di guardia devono essere mutualmente esclusive; al massimo una può essere vera nello stesso istante, altrimenti il modello non è corretto Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 26 / 45

Operatori: loop Un solo operando, sintassi speciale: loop min,max [condizione] Esegue l operando min volte, e poi al massimo altre (max - min) volte mentre la condizione è vera. Si possono omettere min e max. La condizione è molto flessibile (può essere espressa in linguaggio naturale), e permette di ciclare su un insieme di oggetti (es. condizione [foreach oggetto in lista]). Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 27 / 45

Operatori: break Operando singolo, si usa per terminare l esecuzione del frammento di interazione corrente (spesso si tratta di un operatore loop). Se break ha una condizione di guardia ed è vera, viene eseguito l operando ma non il resto dell interazione dopo il frammento break. Se la condizione di guardia esiste ed è falsa, non viene eseguito l operando e si continua normalmente. Se non c è una guardia, la scelta tra continuare e saltare è non-deterministica. Il frammento break deve essere globale rispetto a quello che interrompe: nella notazione UML, lo interseca ma si trova ad un livello di nesting superiore. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 28 / 45

Esempio: loop e break buyer seller lawyer loop 10,10 pay giveitem break [buyernotsatisfied] sue(seller) Vengono completate al massimo 10 transazioni, se si passa a vie legali le transazioni finiscono. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 29 / 45

Altri operatori significativi par: gli operandi sono eseguiti in parallelo, senza vincoli sull ordinamento dei messaggi appartenenti a operandi diversi. critical: sezione critica, l operando è eseguito in maniera atomica e senza interruzioni dalle linee di vita interessate, anche se all interno di par o altri frammenti. ref: l operando contiene il nome di un altra interazione che viene eseguita qui (rende i diagrammi di sequenza modulari). neg: l operando rappresenta un interazione che non deve accadere. assert: l operando rappresenta l unica interazione ammissibile in quel momento. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 30 / 45

Usare ref sd authentication : User : ATM : User : ATM insertpin ref authentication alt allowuser opt withdraw yes no A sinistra, un diagramma di sequenza. A destra, l interazione di sinistra inclusa in un altra interazione. Si tratta del modo più semplice di usare ref. sd vuol dire sequence diagram, ma vale per tutti i diagrammi di interazione. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 31 / 45

Gate Si tratta di un qualunque punto sulla cornice esterna del diagramma, che può essere la fonte o la destinazione di una freccia. Usati per modellare la comunicazione delle linee di vita del diagramma con l esterno. I gate possono avere un nome e comparire qualunque numero di volte nello stesso diagramma o in diagrammi diversi. Possono essere usati in combinazione con ref, forniscono l interfaccia di collegamento tra l interazione chiamante e quella chiamata (il frammento combinato può avere gli stessi gate a cui agganciare messaggi). Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 32 / 45

Gate: esempio sd example a : A in <<create>> b : B <<destroy>> out Vengono definiti due gate, in e out. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 33 / 45

Diagrammi di comunicazione Chiamati diagrammi di collaborazione in UML 1.x. In UML 1.x erano semanticamente equivalenti ai diagrammi di sequenza, in UML 2 non sono altrettanto espressivi. Si tratta comunque di diagrammi utili a visualizzare i canali di comunicazione tra le entità. Sono simili ai diagrammi degli oggetti, ma i link tra gli oggetti trasportano messaggi come nei diagrammi di sequenza. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 34 / 45

Sequenza vs. comunicazione sd sequence a : A b : B msg1 sd communication a : A 1: msg1 2: msg2 b : B msg2 Questi diagrammi sono equivalenti. I messaggi e le loro frecce seguono le stesse regole nei diagrammi di comunicazione. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 35 / 45

Numerazione messaggi sd sequence a : A b : B c : C sd communication 1: msg1 msg1 msg2 a : A b : B 2: msg3 1.1: msg2 msg3 c : C Nei diagrammi di comunicazione è necessario numerare i messaggi. Poiché msg2 si trova nel focus di controllo di msg1 (viene generato come parte dell esecuzione di msg1), il suo numero di sequenza è quello di msg1 seguito da. e un numero di sottosequenza. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 36 / 45

Ancora sulla numerazione Il numero di sequenza ha tanti componenti quanti sono i livelli di profondità delle attivazioni: es. 2.5.1.10. I numeri di sequenza possono velocemente diventare complessi e danneggiare la leggibilità del diagramma. Per questo motivo, da un lato si cerca di limitare la complessità dei diagrammi di comunicazione...... e dall altro è consentito raggruppare vari messaggi correlati in uno solo per ridurne il numero (specialmente in fase di analisi). Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 37 / 45

Ramificazione Si può rappresentare una condizione if/then nei diagrammi di comunicazione. Il numero di sequenza è seguito da una guardia tra parentesi quadre, ad esempio 1.2.1 [!error]: msg(param1,param2) Il messaggio è inviato solo se la guardia è vera. Questo costrutto può complicare il diagramma molto in fretta, e dovrebbe essere usato solo in casi semplici. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 38 / 45

Iterazione (1) L operatore di iterazione nei diagrammi di comunicazione è *. Per esempio 1.2.1 * [for i=1 to n]: msg(param1,param2) Si può sostituire * con * che significa invio parallelo dei messaggi. La guardia può essere scritta in qualunque linguaggio o pseudocodice, compresa la notazione [loop min, max [condizione]] dei diagrammi di sequenza. Come mandare lo stesso messaggio ad una collezione di istanze con l iterazione? Due modi: con indici o con molteplicità. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 39 / 45

Iterazione (2) 1 * [for i=1 to n]: sendmessageto(i) a : A a : A [i] : B 1.1: message() * b : B 1 *: message() Nel primo caso [i] è una sola istanza, rappresentata tramite un indice. Nel secondo caso a è collegato a molti b, e l operatore * manda il messaggio a tutti. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 40 / 45

Interaction overview diagram (cenni) Il diagramma di interazione generale (interaction overview) è un diagramma di interazione introdotto con UML 2. Serve a mostrare come interazioni più semplici si combinino a formare interazioni più complesse. Si tratta in effetti di diagrammi di attività in cui le attività sono altri diagrammi di interazione o loro riferimenti che servono da mattoni. Il controllo di flusso tipico dei diagrammi di attività definisce le transizioni tra le varie interazioni. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 41 / 45

Interaction overview: esempio sd buyer seller sd [satisfied] handshake buyer seller pay giveitem sd [else] buyer lawyer sue(seller) Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 42 / 45

Timing diagram (cenni) Un altro diagramma introdotto in UML 2. Il suo scopo è quello di ragionare sulle interazioni nel tempo: esprime e visualizza vincoli temporali, transizioni da uno stato all altro nel tempo, etc. Ha un asse temporale orizzontale sul quale si collocano gli eventi. Somiglia ad un grafico con il tempo sull asse x. Stati e attributi di interesse occupano le righe del diagramma. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 43 / 45

Timing: esempio Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 44 / 45

Conclusioni Si usano i diagrammi di interazione per mostrare come varie entità collaborino nel fornire un comportamento desiderato, ad esempio un caso d uso. Possono essere usati sia in fase di analisi che in fase di progettazione. Aiutano a scoprire e correggere inconsistenze nel comportamento desiderato (ad esempio una specifica scorretta del caso d uso). Spesso è utile modellare una situazione semplificata con un diagramma di comunicazione, per poi passare a uno di sequenza per i dettagli. Lab Sistemi e Processi Organizzativi () I diagrammi di interazione A.A. 2006-2007 45 / 45