Diagrammi di interazione, collaborazione e sequenza con esempi
Cos'è il diagramma di interazione?
Diagramma di interazione sono utilizzati in UML per stabilire la comunicazione tra oggetti. Non manipola i dati associati al particolare percorso di comunicazione. I diagrammi di interazione si concentrano principalmente sullo scambio di messaggi e sul modo in cui questi messaggi costituiscono una funzionalità di un sistema. I diagrammi di interazione sono progettati per mostrare come gli oggetti realizzeranno i requisiti particolari di un sistema. La componente critica in un diagramma di interazione è l'ancora di salvezza e i messaggi.
Vari elementi UML possiedono in genere diagrammi di interazione. I dettagli dell'interazione possono essere mostrati utilizzando diverse notazioni come diagramma di sequenza, diagramma di temporizzazione, diagramma di comunicazione/collaborazione. I diagrammi di interazione catturano il comportamento dinamico di qualsiasi sistema.

Di seguito sono riportati i diversi tipi di diagrammi di interazione definiti in UML:
- Diagramma di sequenza
- Diagramma di collaborazione
- Diagramma dei tempi
Lo scopo di un diagramma di sequenza in Diagramma UML è visualizzare la sequenza di un flusso di messaggi nel sistema. Il diagramma di sequenza nell'ingegneria del software mostra l'interazione tra due linee di vita come una sequenza di eventi ordinata nel tempo.
Il diagramma di collaborazione in UML è anche chiamato diagramma di comunicazione. Lo scopo di un diagramma di collaborazione è quello di enfatizzare gli aspetti strutturali di un sistema, cioè il modo in cui si collegano le varie linee di vita nel sistema.
I diagrammi temporali si concentrano sull'istanza in cui un messaggio viene inviato da un oggetto a un altro oggetto.
Scopo di un diagramma di interazione
I diagrammi di interazione ti aiutano a visualizzare il comportamento interattivo di un sistema. I diagrammi di interazione vengono utilizzati per rappresentare il modo in cui uno o più oggetti nel sistema si connettono e comunicano tra loro.
I diagrammi di interazione si concentrano sul comportamento dinamico di un sistema. Un diagramma di interazione ci fornisce il contesto di un'interazione tra una o più linee di vita nel sistema.
In UML, i diagrammi di interazione vengono utilizzati per i seguenti scopi:
- I diagrammi di interazione vengono utilizzati per osservare il comportamento dinamico di un sistema.
- Il diagramma di interazione visualizza la comunicazione e la sequenza del passaggio dei messaggi nel sistema.
- Il diagramma di modellazione dell'interazione rappresenta gli aspetti strutturali di vari oggetti nel sistema.
- Il diagramma di interazione rappresenta la sequenza ordinata di interazioni all'interno di un sistema.
- Il diagramma di interazione fornisce i mezzi per visualizzare i dati in tempo reale tramite UML.
- I diagrammi di interazione UML possono essere utilizzati per spiegare l'architettura di un sistema orientato agli oggetti o distribuito.
Terminologia importante
Un diagramma di interazione contiene linee di vita, messaggi, operatori, invarianti di stato e vincoli.
sagola di salvataggio
Un'ancora di salvezza rappresenta un singolo partecipante in un'interazione. Descrive come un'istanza di un classificatore specifico partecipa all'interazione.
Una linea di vita rappresenta un ruolo che un'istanza del classificatore può svolgere nell'interazione. Di seguito sono riportati vari attributi di una linea di vita,
- Nome
- Viene utilizzato per indicare l'ancora di salvezza all'interno di un'interazione specifica.
- Il nome di un'ancora di salvezza è facoltativo.
- Tipo
- È il nome di un classificatore di cui la linea di vita rappresenta un'istanza.
- Selettore
- È una condizione booleana che viene utilizzata per selezionare una particolare istanza che soddisfa il requisito.
- Anche l'attributo del selettore è facoltativo.
La notazione di linea di vita è spiegata nella sezione sulla notazione.
Messaggi
Un messaggio è un tipo specifico di comunicazione tra due linee di vita in un'interazione. Un messaggio comporta le seguenti attività,
- Un messaggio di chiamata utilizzato per chiamare un'operazione.
- Un messaggio per creare un'istanza.
- Un messaggio per distruggere un'istanza.
- Per inviare un segnale.
Quando una linea di vita riceve un messaggio di chiamata, agisce come una richiesta per richiamare un'operazione che ha una firma simile a quella specificata nel messaggio. Quando un'ancora di salvezza sta eseguendo un messaggio, ha un focus di controllo. Man mano che l'interazione progredisce nel tempo, il focus del controllo si sposta tra varie linee di vita. Questo movimento è chiamato flusso di controllo.
Di seguito sono riportati i messaggi utilizzati in un diagramma di interazione del sistema:
Nome messaggio | Significato |
---|---|
Syncmessaggio cronico | Il mittente di un messaggio continua ad attendere che il destinatario restituisca il controllo dall'esecuzione del messaggio. |
Messaggio asincrono | Il mittente non attende la risposta del destinatario; invece, continua l'esecuzione di un messaggio successivo. |
Messaggio di ritorno | Il destinatario di un messaggio precedente restituisce il focus del controllo al mittente. |
Creazione di oggetti | Il mittente crea un'istanza di un classificatore. |
Distruzione di oggetti | Il mittente distrugge l'istanza creata. |
Messaggio trovato | Il mittente del messaggio è fuori dall'ambito dell'interazione. |
Messaggio perduto | Il messaggio non raggiunge mai la destinazione e si perde nell'interazione. |
Invarianti e vincoli di stato
Quando un'istanza o una linea di vita riceve un messaggio, può causare la modifica dello stato. Uno stato è una condizione o una situazione durante la vita di un oggetto in cui soddisfa alcuni vincoli, esegue alcune operazioni e attende alcuni eventi.
Nel diagramma di interazione, non tutti i messaggi provocano la modifica dello stato di un'istanza. Alcuni messaggi non hanno i valori di alcuni attributi. Non ha effetti collaterali sullo stato di un oggetto.
Operator
Un operatore specifica un'operazione su come verranno eseguiti gli operandi. Gli operatori in UML supportano le operazioni sui dati sotto forma di ramificazione e iterazione. È possibile utilizzare vari operatori per garantire l'uso dell'iterazione e della ramificazione nel modello UML. Gli operatori opt e alt vengono utilizzati per le operazioni di ramificazione. L'operatore loop viene utilizzato per garantire le operazioni di iterazione in cui una condizione viene eseguita ripetutamente fino a quando non viene prodotto un risultato soddisfacente. L'operatore Break viene utilizzato all'interno del ciclo o delle operazioni di iterazione. Garantisce che il ciclo venga terminato ogni volta che viene incontrato un operatore break. Se non viene specificata una condizione di interruzione, il ciclo viene eseguito un numero infinito di volte, provocando l'arresto anomalo del programma.
Di seguito sono riportati gli operatori utilizzati in un diagramma di interazione:
Operator | Nome | Significato |
---|---|---|
Optare | Opzione | Un operando viene eseguito se la condizione è vera. ad esempio, Se altrimenti |
altro | Alternative | L'operando la cui condizione è vera viene eseguito. ad esempio, cambiare |
Ciclo continuo | Ciclo continuo | Viene utilizzato per ripetere un'istruzione per un periodo specificato. |
Rompere | Rompere | Interrompe il ciclo se una condizione è vera o falsa e viene eseguita l'istruzione successiva. |
arbitro | Referenze | È usato per riferirsi ad un'altra interazione. |
da | Parallel | Tutti gli operandi vengono eseguiti in parallelo. |
Iterazione
In un diagramma di interazione, possiamo anche mostrare l'iterazione utilizzando un'espressione di iterazione. Un'espressione di iterazione è costituita da uno specificatore di iterazione e da una clausola di iterazione facoltativa. Non esiste una sintassi predefinita per l'iterazione UML.
Nell'iterazione per mostrare che i messaggi vengono inviati in parallelo, viene utilizzato lo specificatore di iterazione parallela. Uno specificatore di iterazione parallela è indicato con *//. L'iterazione in UML si ottiene utilizzando l'operatore loop.
ramificazione
In un diagramma di interazione, possiamo rappresentare la ramificazione aggiungendo condizioni di guardia ai messaggi. Le condizioni di guardia vengono utilizzate per verificare se un messaggio può essere inoltrato o meno. Un messaggio viene inviato solo quando la sua condizione di guardia è vera. Un messaggio può avere più condizioni di guardia oppure più messaggi possono avere la stessa condizione di guardia. La ramificazione in UML si ottiene con l'aiuto degli operatori alt e opt.
Questi sono alcuni dei più importante terminologie utilizzate nel diagramma di interazione UML.
Tipi di diagrammi di interazione e notazioni
Di seguito sono riportati i diversi tipi di diagrammi di interazione definiti in UML:
- Diagramma di sequenza
- Diagramma di collaborazione
- Diagramma dei tempi
La notazione di base dell'interazione è un rettangolo con un pentagono nell'angolo in alto a sinistra di una scatola rettangolare.
Cos'è un diagramma di sequenza?
A Diagramma di sequenza descrive semplicemente l'interazione tra gli oggetti in un ordine sequenziale. Lo scopo di un diagramma di sequenza in UML è visualizzare la sequenza di un flusso di messaggi nel sistema. Il diagramma di sequenza mostra l'interazione tra due linee di vita come una sequenza di eventi ordinata nel tempo.
- Un diagramma di sequenza mostra l'implementazione di uno scenario nel sistema. Le linee di vita nel sistema prendono parte durante l'esecuzione di un sistema.
- In un diagramma di sequenza, una linea di vita è rappresentata da una barra verticale.
- Un flusso di messaggi tra due o più oggetti è rappresentato utilizzando una linea tratteggiata verticale che si estende attraverso la parte inferiore della pagina.
- In un diagramma di sequenza vengono utilizzati diversi tipi di messaggi e operatori descritti sopra.
- In un diagramma di sequenza vengono utilizzate anche l'iterazione e la ramificazione.
Il diagramma di sequenza soprastante contiene notazioni di linea di vita e notazioni di vari messaggi utilizzati in un diagramma di sequenza, come messaggi di creazione, risposta, asincroni, ecc.
Esempio di diagramma di sequenza
Il seguente esempio di diagramma di sequenza rappresenta il sistema di ordinazione di McDonald's:
La sequenza ordinata di eventi in un dato diagramma di sequenza è la seguente:
- Effettua un ordine.
- Paga i soldi alla cassa.
- Conferma dell'ordine.
- Preparazione dell'ordine.
- Servizio dell'ordine.
Se si modifica l'ordine delle operazioni, il programma potrebbe bloccarsi. Può anche portare a generare risultati errati o difettosi. Ciascuna sequenza nel diagramma di sequenza sopra indicato è denotata utilizzando un diverso tipo di messaggio. Non è possibile utilizzare lo stesso tipo di messaggio per denotare tutte le interazioni nel diagramma perché ciò crea complicazioni nel sistema.
Devi fare attenzione mentre selezioni la notazione di un messaggio per qualsiasi interazione particolare. La notazione deve corrispondere alla sequenza particolare all'interno del diagramma.
Vantaggi di un diagramma di sequenza
- I diagrammi di sequenza vengono utilizzati per esplorare qualsiasi applicazione o sistema reale.
- I diagrammi di sequenza vengono utilizzati per rappresentare il flusso di messaggi da un oggetto a un altro oggetto.
- I diagrammi di sequenza sono più facili da mantenere.
- I diagrammi di sequenza sono più facili da generare.
- I diagrammi di sequenza possono essere facilmente aggiornati in base ai cambiamenti all'interno di un sistema.
- Il diagramma di sequenza consente l'ingegneria inversa e avanzata.
Svantaggi di un diagramma di sequenza
- I diagrammi di sequenza possono diventare complessi quando nel sistema sono coinvolte troppe linee vitali.
- Se l'ordine della sequenza dei messaggi viene modificato, vengono prodotti risultati errati.
- Ogni sequenza deve essere rappresentata utilizzando una diversa notazione del messaggio, il che può risultare un po' complesso.
- Il tipo di messaggio decide il tipo di sequenza all'interno del diagramma.
Cos'è il diagramma di collaborazione?
Diagramma di collaborazione descrive le relazioni e le interazioni tra oggetti software. Sono utilizzati per comprendere l'architettura degli oggetti all'interno di un sistema piuttosto che il flusso di un messaggio come in un diagramma di sequenza. Sono anche noti come "Diagrammi di comunicazione".
Secondo la programmazione orientata agli oggetti (OOP), un'entità oggetto ha vari attributi associati. Di solito, ci sono più oggetti presenti all'interno di un sistema orientato agli oggetti in cui ogni oggetto può essere associato a qualsiasi altro oggetto all'interno del sistema. I diagrammi di collaborazione vengono utilizzati per esplorare l'architettura degli oggetti all'interno del sistema. Il flusso di messaggi tra gli oggetti può essere rappresentato utilizzando un diagramma di collaborazione.
Vantaggi del diagramma di collaborazione
- È anche chiamato diagramma di comunicazione.
- Sottolinea gli aspetti strutturali di un diagramma di interazione: come si connette la linea di vita.
- La sua sintassi è simile a quella del diagramma di sequenza, con la differenza che le linee di vita non hanno code.
- I messaggi trasmessi tramite sequenza vengono indicati numerando gerarchicamente ciascun messaggio.
- Rispetto al diagramma di sequenza il diagramma di comunicazione è semanticamente debole.
- I diagrammi degli oggetti sono un caso speciale di diagramma di comunicazione.
- Ti consente di concentrarti sugli elementi anziché concentrarti sul flusso del messaggio come descritto nel diagramma di sequenza.
- I diagrammi di sequenza possono essere facilmente convertiti in un diagramma di collaborazione poiché i diagrammi di collaborazione non sono molto espressivi.
- Durante la modellazione dei diagrammi di collaborazione rispetto ai diagrammi di sequenza, alcune informazioni potrebbero andare perse.
La notazione del diagramma di collaborazione sopra contiene linee di vita insieme a connettori, loop automatici, messaggi di inoltro e inversione utilizzati in un diagramma di collaborazione.
Svantaggi di un diagramma di collaborazione
- I diagrammi di collaborazione possono diventare complessi quando nel sistema sono presenti troppi oggetti.
- È difficile esplorare ogni oggetto all'interno del sistema.
- I diagrammi di collaborazione richiedono molto tempo.
- L'oggetto viene distrutto dopo la conclusione di un programma.
- Lo stato di un oggetto cambia momentaneamente, il che rende difficile tenere traccia di ogni singolo cambiamento che avviene all'interno di un oggetto di un sistema.
Esempio di diagramma di collaborazione
Il diagramma seguente rappresenta la sequenza del sistema di gestione degli studenti:
Il diagramma di collaborazione sopra rappresenta un sistema di gestione delle informazioni sugli studenti. Il flusso di comunicazione nel diagramma sopra è dato da,
- Uno studente richiede un accesso tramite il sistema di accesso.
- Un meccanismo di autenticazione del software controlla la richiesta.
- Se nel database esiste una voce relativa a uno studente, l'accesso è consentito; in caso contrario, viene restituito un errore.
Cos'è il diagramma temporale?
Diagramma temporale è una forma d'onda o un grafico utilizzato per descrivere lo stato di una linea di vita in qualsiasi istante. È usato per denotare la trasformazione di un oggetto da una forma in un'altra forma. Il diagramma temporale non contiene le notazioni richieste nel diagramma di sequenza e collaborazione. Il flusso tra il programma software in vari istanti di tempo viene rappresentato utilizzando una forma d'onda.
- È una rappresentazione corretta delle interazioni che si concentra sui tempi specifici dei messaggi inviati tra vari oggetti.
- I diagrammi temporali vengono utilizzati per spiegare l'elaborazione temporale dettagliata di un particolare oggetto.
- I diagrammi temporali vengono utilizzati per spiegare come un oggetto cambia nel corso della sua vita.
- I diagrammi temporali sono utilizzati principalmente con sistemi distribuiti e integrati.
- In UML, i diagrammi temporali vengono letti da sinistra a destra in base al nome di una linea di vita specificata sul bordo sinistro.
- I diagrammi temporali vengono utilizzati per rappresentare i vari cambiamenti che si verificano di volta in volta all'interno di una linea di vita.
- I diagrammi temporali vengono utilizzati per visualizzare una rappresentazione grafica dei vari stati di una linea di vita per unità di tempo.
- UML fornisce varie notazioni per semplificare lo stato di transizione tra due linee di vita per unità di tempo.
Esempio di diagramma temporale
Il diagramma temporale riportato di seguito rappresenta alcune fasi di a ciclo di vita dello sviluppo del software.
Nel diagramma sopra, prima, il software passa attraverso la fase dei requisiti, poi la progettazione e in seguito la fase di sviluppo. L'output della fase precedente in quel dato momento viene dato alla seconda fase come input. Quindi, il diagramma temporale può essere utilizzato per descrivere SDLC (Software Development Life Cycle) in UML.
Vantaggi di un diagramma temporale
- I diagrammi temporali vengono utilizzati per rappresentare lo stato di un oggetto in un particolare istante di tempo.
- Il diagramma temporale consente l'ingegneria inversa e avanzata.
- Il diagramma temporale può essere utilizzato per tenere traccia di ogni cambiamento all'interno del sistema.
Svantaggi di un diagramma temporale
- I diagrammi temporali sono difficili da capire.
- I diagrammi temporali sono difficili da mantenere.
Come disegnare un diagramma di interazione?
I diagrammi di interazione vengono utilizzati per rappresentare il comportamento interattivo di un sistema. I diagrammi di interazione si concentrano sul comportamento dinamico di un sistema. Un diagramma di interazione ci fornisce il contesto di un'interazione tra una o più linee di vita nel sistema.
Per disegnare un diagramma di interazione, devi prima determinare lo scenario per cui devi disegnare un diagramma di interazione. Dopo aver deciso la situazione, identifica le varie linee di vita che saranno coinvolte nell'interazione. Categorizza tutti gli elementi della linea di vita ed esplorali per identificare possibili connessioni e come le linee di vita sono correlate tra loro. Per disegnare un diagramma di interazione, sono richieste le seguenti cose:
- Il numero totale di linee di vita che faranno parte di un'interazione
- è una sequenza di flusso di messaggi all'interno di vari oggetti di un sistema.
- Vari operatori per facilitare la funzionalità di un diagramma di interazione.
- Varie tipologie di messaggi per visualizzare l'interazione in modo più chiaro e preciso.
- La sequenza ordinata di messaggi.
- Organizzazione e struttura di un oggetto.
- Vari costrutti temporali di un oggetto.
Utilizzo di un diagramma di interazione
I diagrammi di interazione sono costituiti da un diagramma di sequenza, un diagramma di collaborazione e diagrammi di temporizzazione. Di seguito è riportato lo scopo specifico di un diagramma di interazione:
- I diagrammi di sequenza vengono utilizzati per esplorare qualsiasi applicazione o sistema reale.
- I diagrammi di interazione vengono utilizzati per esplorare e confrontare l'uso di sequenze, collaborazioni e diagrammi temporali.
- I diagrammi di interazione vengono utilizzati per catturare il comportamento di un sistema. Visualizza la struttura dinamica di un sistema.
- I diagrammi di sequenza vengono utilizzati per rappresentare il flusso di messaggi da un oggetto a un altro oggetto.
- I diagrammi di collaborazione vengono utilizzati per comprendere l'architettura degli oggetti di un sistema anziché il flusso dei messaggi.
- I diagrammi di interazione vengono utilizzati per modellare un sistema come una sequenza di eventi ordinata nel tempo.
- I diagrammi di interazione vengono utilizzati sia nel reverse engineering che nel forward engineering.
- I diagrammi di interazione vengono utilizzati per organizzare la struttura degli elementi interattivi.
Sommario
- Le interazioni sono semplicemente unità del comportamento di un classificatore.
- Gli elementi critici in un diagramma di interazione sono l'ancora di salvezza e i messaggi.
- I diagrammi di interazione si concentrano principalmente sullo scambio di messaggi.
- I diagrammi di interazione catturano il comportamento dinamico di qualsiasi sistema.
- Il diagramma di interazione contiene il diagramma di sequenza, il diagramma temporale, il diagramma di comunicazione/collaborazione.
- Il diagramma UML di sequenza serve a visualizzare la sequenza di un flusso di messaggi nel sistema.
- Lo scopo di un diagramma di collaborazione è quello di enfatizzare gli aspetti strutturali.
- I diagrammi temporali si concentrano sull'istanza in cui un messaggio viene inviato da un oggetto a un altro oggetto.