Artefatto: Protocollo
Questo artefatto specifica il pattern di comunicazione utilizzato fra le capsule. La comunicazione fra capsule si ottiene inviando dei messaggi alla porta della capsula. La classe di protocollo definisce i messaggi che possono essere inviati o ricevuti da una porta di capsula.
Tipi di prodotto di lavoro: Elemento del modello
Relazioni
Descrizione
Descrizione principale

I protocolli consentono la specifica di un insieme di porte da definire e riutilizzare per il Prodotto di lavoro: Capsula. Il protocollo definisce un insieme di tipi di messaggi in entrata e in uscita (ad esempio operazioni, segnali), e facoltativamente una collaborazione (in genere consiste in un insieme di diagrammi di sequenza, consultare Linea guida: Diagramma di sequenza) che definisce l'ordine dei messaggi richiesto, ed una macchina a stati (descritta da un insieme di diagrammi di stati, consultare Linea guida: Diagramma di stati) che specifica il comportamento astratto che i partecipanti ad un protocollo devono fornire.

Un protocollo è una specifica di comportamento desiderato che può aver luogo su un connettore -- una specifica esplicita dell'accordo contrattuale fra i partecipanti ed il protocollo. E' puro comportamento e non specifica alcun elemento strutturale. Un protocollo comprende un insieme di partecipanti, ognuno con un ruolo specifico nel protocollo.

Ognuno di questi ruoli del protocollo è specificato da un nome univoco ed un insieme di segnali che vengono ricevuti da quel ruolo, ed un insieme di segnali che vengono inviati da quel ruolo (ognuno dei due insiemi potrebbe essere vuoto). Come opzione, un protocollo può anche disporre di una specifica di sequenze di comunicazione valide; la può specificare una macchina a stati. Infine, un protocollo può anche disporre di un insieme di sequenze di interazione prototipo (possono essere visualizzate come diagrammi di sequenza). Devono essere conformi alla macchina a stati del protocollo, se ne è definita una.

Protocolli binari, implicano solo due partecipanti e sono il protocollo di gran lunga più comune e più semplice da specificare. Un vantaggio di questi protocolli è che deve essere specificato solo un ruolo, denominato ruolo base. L'altro, denominato coniugato, può essere derivato dal ruolo base semplicemente invertendo gli insiemi di segnali in entrata e in uscita. Questa operazione di inversione è nota come coniugazione.

Composizione della classe di protocollo

Composizione della classe di <<protocollo>>.

Come si evince dalla figura precedente, un protocollo in genere contiene uno o più diagrammi di sequenza che illustrano le sequenze di scambio di messaggi valide specificate dal protocollo. Il protocollo è composto anche da un insieme di messaggi in entrata (richiesta) e uno di messaggi in uscita (risposte). Può essere utilizzata una macchina a stati facoltativa per specificare il comportamento che i partecipanti del protocollo devono supportare.

Personalizzazione
Opzioni di rappresentazioneRappresentazione UML: Classe, stereotipata come <<protocollo>>. Si noti che questa rappresentazione si basa sull'annotazione UML 1.5. Una buona parte della rappresentazione può essere effettuata in UML 2.0 utilizzando le informazioni contenute nella sezione Concetto: Classe strutturata.  Per ulteriori informazioni, fare riferimento a Differenze tra UML 1.x e UML 2.0 .
Ulteriori informazioni
Elenchi di controllo