Ancora una volta utilizzeremo l'esempio della macchina self-service. Nell'esempio sul sequence diagram si è già costruito il diagramma per un sistema del genere. Adesso, proviamo a convertire il sequence diagram in un collaboration diagram.
Lo scenario del caso migliore consiste di diversi passi:
- Il cliente inserisce le monete nella macchina ed esegue le selezione di uno o più prodotti presenti sulla macchina.
- Quando il dispositivo di introduzione delle monete ottiene la somma dovuta (in questo caso si suppone che il cliente inserisca il corretto numero di monete necessarie) e vi è la disponibilità dei prodotti scelti, allora viene espulso dalla macchina il prodotto scelto.
- Il prodotto (o i prodotti) viene espulso dalla parte frontale della macchina in modo che il cliente possa prelevarli.
Ma, quando si esamina in dettaglio questa macchina ed il lavoro che essa svolge, ci si rende conto che sono possibili ulteriori scenari:
- Introduzione di un numero errato di monete
- Mancata disponibilità di un prodotto selezionato.
è possibile utilizzare delle condizioni che aiuteranno a descrivere il lavoro della macchina. Esse vengono visualizzate tra una coppia di parentesi quadre in modo tale che la condizione preceda l'etichetta del messaggio. La cosa importante è tener presente che bisogna coordinare le condizioni con la numerazione progressiva.
Nello scenario in cui la macchina non abbia a disposizione il prodotto scelto è necessario che la macchina visualizzi un messaggio all'utente che gli permetta di selezionare un prodotto alternativo e ripetere, quindi, il processo oppure di avere restituite le monete. è, naturalmente, possibile descrivere un collaboration diagram anche per il caso in cui si sia inserito un numero errato di monete.
Il collaboration diagram seguente illustra entrambi i casi
Come è possibile vedere dallo schema, sono possibili fondamentalmente due scenari: Alimento Non Presente e Alimento Presente. Se assumiamo che tale differenziazione avvenga dopo il messaggio 2: InserimentoMonete(AlimentoSelezionato), il numero identificativo per questi messaggi sarà 3 per lo scenario Alimento Presente e 5 per lo scenario Alimento non Presente.
Cosa avviene quando la macchina non ha a disposizione il resto corretto? Essa deve visualizzare un messaggio, restituire le monete e chiedere al cliente di inserire la quantità esatta di monete. A questo punto, la transazione è terminata. Quando la macchina ha la giusta quantità di monete, restituisce il resto al cliente ed espelle il prodotto selezionato.
I due rami che sono prodotti dal processo annidato per il controllo del resto sono contrassegnati con 3 e 4.