Un messaggio è un elemento in un diagramma UML (Unified Modeling Language) che definisce un tipo specifico di comunicazione tra le istanze in un'interazione. Un messaggio comunica informazioni da un'istanza, rappresentata da una lifeline, a un'altra istanza in un'interazione.
Un messaggio specifica un mittente e il destinatario e definisce il tipo di comunicazione che si verifica tra lifeline. Ad esempio, una comunicazione può richiamare, o chiamare un'operazione utilizzando un messaggio di chiamata sincrono o asincrono, emettere un segnale utilizzando un segnale sincrono e creare o eliminare un partecipante.
È possibile utilizzare i cinque tipi di messaggi elencati nella seguente tabella per mostrare la comunicazione tra le lifeline in un'interazione.
Messaggio | Descrizione |
---|---|
Messaggio di creazione | Un messaggio di creazione rappresenta la creazione di un'istanza in un'interazione. Il messaggio di creazione viene rappresentato dalla parola chiave «create». La lifeline di destinazione inizia al punto del messaggio di creazione. Ad esempio, in uno scenario bancario, un dirigente bancario potrebbe iniziare un controllo crediti su un cliente inviando un messaggio di creazione al server. |
Messaggio di eliminazione | Un messaggio di eliminazione rappresenta l'eliminazione di un'istanza in un'interazione. Il messaggio di eliminazione viene rappresentato dalla parola chiave «destroy». La lifeline di destinazione termina nel punto del messaggio di eliminazione ed è indicata da una X. Ad esempio, un dirigente di banca, dopo aver iniziato un controllo crediti, potrebbe chiudere o eliminare l'applicazione del programma di crediti per un consumatore. |
Messaggio di chiamata sincrono | Le chiamate sincrone che sono associate ad un'operazione, hanno un messaggio di invio e di ricezione. Un messaggio viene inviato dalla lifeline di origine a quella di destinazione. La lifeline di origine è bloccata da altre operazioni fino a che non riceve una risposta dalla lifeline di destinazione. Ad esempio, in uno scenario bancario, un cassiere potrebbe inviare una richiesta credito al direttore della banca per l'approvazione e deve attendere una risposta prima di servire ulteriormente il consumatore. |
Messaggio di chiamata asincrono | Le chiamate sincrone che sono associate ad un'operazione, di solito hanno un messaggio di invio, ma possono anche avere un messaggio di risposta. Contrariamente al messaggio sincrono, la lifeline di origine non è bloccata dal ricevere o inviare altri messaggi. È inoltre possibile spostare i punti di invio e ricezione singolarmente per ritardare il tempo tra gli eventi di invio e ricezione. È possibile scegliere di fare questo se una risposta non è sensibile al tempo o all'ordine. Ad esempio, un consumatore potrebbe chiedere il credito ma potrebbe ricevere informazioni bancarie per telefono o richiedere soldi da uno sportello ATM, mentre attende di avere applicazioni di credito. |
Messaggio di segnale asincrono | I messaggi di segnale asincrono sono associati ad un segnale. Un segnale è diverso da un messaggio perché non esiste un'operazione associata al segnale. Un segnale può rappresentare un'interruzione o una condizione di errore. Per specificare un segnale, creare un messaggio di chiamata asincrono e modificare il tipo nella vista delle proprietà del messaggio. Ad esempio, l'agenzia di credito potrebbe inviare un messaggio del segnale di errore al direttore della banca che stabilisce un errore nella connessione all'ufficio crediti. |
Un messaggio indirizzato in modo automatico è un messaggio inviato dalla lifeline di origine a se stesso. Un messaggio indirizzato in modo automatico potrebbe essere una chiamata ricorsiva o una chiamata ad un'altra operazione o un segnale che appartiene allo stesso oggetto.
Rappresentazione messaggioIl messaggio che la lifeline di origine invia a quella di destinazione rappresenta un'operazione o un segnale implementato dalla lifeline di destinazione. È possibile assegnare un nome e ordinare i messaggi. L'aspetto della linea o della freccia riflette le proprietà del messaggio. La seguente tabella mostra le figure che rappresentano i messaggi nei diagrammi di sequenza.
Tipo | Figura | Descrizione | Rappresentazione |
---|---|---|---|
Asincrono | ![]() |
Una linea con una freccia aperta | Questa figura rappresenta una chiamata o un segnale asincrono in cui l'oggetto di origine invia il messaggio e continua immediatamente con la fase successiva. |
Sincrono | ![]() |
Una linea con una freccia piena rivolta verso la lifeline ricevente. | Questa figura rappresenta un'operazione di chiamata sincrona in cui l'origine invia un messaggio ed attende il messaggio di restituzione dalla destinazione prima che l'origine possa continuare. |
Restituzione sincrona | ![]() |
Una linea tratteggiata con una freccia piena rivolta verso la lifeline di origine. | Questa figura rappresenta un messaggio di restituzione da una chiamata a una procedura. Quando si crea un messaggio sincrono, per impostazione predefinita viene creato un messaggio di restituzione. È possibile modificare tale impostazione predefinita nella finestra Preferenze. |
Un messaggio rappresenta una chiamata di un'operazione o il mittente e il destinatario di un segnale. Quando il messaggio rappresenta un'operazione, il nome dell'operazione identifica il messaggio. Gli argomenti del messaggio vengono passati all'origine di destinazione. Il messaggio di restituzione contiene gli argomenti di chiamata dell'operazione risultante. Quando un messaggio rappresenta un segnale, gli argomenti del messaggio sono i segnali stessi. Se il messaggio è una chiamata sincrona, la lifeline chiamata invia un messaggio di restituzione alla lifeline chiamante prima che quest'ultima proceda.
Identificazione messaggioÈ possibile identificare i messaggi tramite nome e firma dell'operazione. Un nome identifica solo il nome del messaggio che non è associato con un'operazione. Quando si associa un'operazione a un messaggio, il nome dell'operazione sostituisce il nome. Una firma dell'operazione viene visualizzata per identificare il nome dell'operazione. È possibile utilizzare le firme nei diagrammi durante la fase di progettazione per fornire dettagli agli sviluppatori che codificano la progettazione.
Come viene illustrato nella seguente figura, i messaggi vengono visualizzati come una linea con una freccia rivolta nella direzione in cui viene inviato il messaggio; ossia dall'estremità mittente a quella ricevente. Il seguente esempio mostra come vengono visualizzati i messaggi in un diagramma di sequenza che rappresenta uno scenario bancario nel quale un cliente della banca richiede un prestito. Un cliente dà i documenti per il prestito al cassiere. Il cassiere li invia affinché vengano elaborati dal direttore della banca e aspetta che questo finisca. Il direttore avvia il programma di controllo crediti, immette i dati e attende che l'agenzia di credito invii i risultati. Il direttore riceve una risposta ed invia un messaggio al cassiere che stabilisce la decisione. Il cassiere invia un messaggio al cliente indicando se il prestito è stato approvato o meno. Il direttore di banca chiude il programma dell'agenzia crediti e il cliente completa la transazione.