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.