L’UML specifica tre simboli che definiscono il destinatario del messaggio come espressione del parametro. Il destinatario è il cosiddetto obiettivo di assegnazione del messaggio (in inglese: Assignment Target). Il messaggio di risposta assegna il valore di ritorno del parametro di output del mittente. Questi sono i simboli standardizzati:
- Unknown
- Interaction Parameter
- Attribute
Unknown (sconosciuto) è un parametro vuoto e rappresenta il carattere jolly. Il parametro di interazione (Interaction Parameter) è un ownedParameter dell’interazione alla quale appartiene. Cioè l’interazione possiede il parametro, il quale ha un nome. I parametri di operazione e i parametri di interazione hanno lo stesso tipo. Gli attributi possono essere nominati senza restrizioni e rappresentano il nome di un comportamento di contesto che determina la linea di vita a cui il messaggio ritorna o l’interazione circostante. Se l’interazione non definisce il comportamento, agisce essa stessa come un contesto.
I gates, ovvero le porte, sono semplicemente punti alla fine di un messaggio. Appartengono al tipo MessageEnd (fine del messaggio) e segnano il mittente e il destinatario di un messaggio. I gates chiariscono il flusso di informazioni e mostrano come si muovono i messaggi tra due frammenti di interazione. In particolare rappresentano punti di connessione per i messaggi tra gli utilizzi delle interazioni e le interazioni, nonché tra operandi di interazioneall’interno e all’esterno di un frammento combinato. Si pongono sulla cornice del diagramma.
Il diagramma di sequenza UML ha quattro tipi di gates che differiscono a seconda dei frammenti di interazione a cui sono associati:
- La porta fattuale: gli utilizzi dell’interazione rinviano da un diagramma all’altro. La porta fattuale (in inglese: Actual Gate) apre la connessione con il bordo esterno dell’interazione per messaggi al di fuori dell’interazione, alla quale rimanda l’utilizzo dell’interazione. La porta ha perciò un’associazione con l’utilizzo dell’interazione e accetta i messaggi in entrata e in uscita.
- La porta formale: affinché un’interazione sia in grado di scambiare messaggi con un utilizzo di interazione, è necessaria una porta formale (in inglese: Formal Gate). Essa si trova all’interno del frame.
- La porta interna per frammenti combinati: all’interno di un frammento combinato si trova un gate al frame che scambia i messaggi con estremità di messaggi dal frammento combinato con messaggi con estremità dei messaggi all’esterno del frammento combinato. In inglese prende il nome di Inner Combined Fragment Gate).
- La porta esterna per frammenti combinati: questa porta si trova all’esterno di un frammento combinato. Essa forma il polo opposto alla porta interna (in inglese: Outer Combined Fragment Gate).
Le porte hanno nomi espliciti o impliciti che devono corrispondere in coppia. Le porte fattuali e formali devono coincidere, così come le porte interne ed esterne per i frammenti combinati. Inoltre i messaggi devono andare nella stessa direzione e avere gli stessi inconfondibili valori di proprietà nonché lo stesso MessageSort.
Un ruolo particolare è giocato dai messaggi nei diagrammi di comunicazione. Questo tipo di diagramma è una forma semplice del diagramma di sequenza. I diagrammi di comunicazione modellano il modo in cui interagiscono le linee di vita. A differenza dei diagrammi di sequenza, si concentrano sull’architettura del sistema e su come essa influisca sul flusso dei messaggi.
Sebbene sia possibile mostrare un’architettura dettagliata, i frammenti di interazione come i frammenti combinati non la utilizzano. Di conseguenza manca un elemento strutturale. Invece, numerate i messaggi: talvolta i messaggi possono traghettarne altri. L’ordine dei messaggi in uscita differisce dall’ordine dei messaggi in arrivo. Tuttavia lo standard UML non consiglia tali messaggi non sequenziali nel diagramma di comunicazione.
La notazione UML del diagramma di comunicazione detta un semplice diagramma di sequenza: un rettangolo con un’etichetta pentagonale nell’intestazione. L’etichetta “sd” contrassegna questo tipo di diagramma. Inoltre notate il nome dell’interazione: i messaggi qui hanno una forma diversa e collegano le linee di vita rettangolari (UML: nodi oggetto) come linee semplici (UML: linee).
Annotate la descrizione della sequenza (in inglese: Sequence Expression) insieme a una freccia rivolta verso il ricevitore. Il nome della sequenza ha la seguente forma: [Integer|Name][Repetition]. L’integer specifica la gerarchia degli elementi nidificati. Se uno dei due Integer (ad esempio 1.2.2 e 1.2.3) si differenzia in due messaggi, il sistema li manda uno dopo l’altro. Il nome d’altra parte significa trasmissione simultanea. Il sistema manda due messaggi con i nomi di sequenza 1.2.3a e 1.2.3b in modo simultaneo per via dell’identico Integer. La ripetizione contiene una restrizione che determina quando viene mandato il messaggio o un valore che determina quanto spesso il messaggio viene ripetuto.