Frammenti combinati in diagrammi di sequenza

Nei diagrammi di sequenza, i frammenti combinati sono raggruppamenti logici rappresentati da un rettangolo che contiene strutture condizionali che riguardano il flusso di messaggi. Un frammento combinato contiene operandi di interazione ed è definito da un operatore di interazione.

Il tipo di frammento combinato è determinato dall'operatore di interazione. È possibile utilizzare frammenti combinati per descrivere diverse strutture di controllo e logiche in modo compatto e conciso. L'operatore di interazione identifica il tipo di istruzione logica o condizionale che definisce il funzionamento del frammento combinato.

Come illustra la seguente figura, un frammento combinato viene visualizzato come un frame che comprende le lifeline e contiene operandi di interazione. Un frammento combinato separa gli operandi di interazione contenuti con una linea orizzontale tratteggiata tra ogni operando.

Un frame di interazione mostra l'operatore di interazione, l'operando e le condizioni di guardia che il frammento combinato contiene.

Operatori di interazione

Un operatore di interazione definisce la semantica di un frammento combinato e determina come utilizzare gli operandi di interazione in tale frammento. L'operatore definisce il tipo di condizioni logiche da applicare agli operandi. Ad esempio, un frammento combinato con l'operatore di interazione alternativo (alt) agisce come un'istruzione if-then-else. Nella figura precedente, un loop ed un operatore di interazione alternativo (alt) definiscono i due frammenti combinati.

Operandi di interazione

Nei diagrammi di sequenza, un operando di interazione è un contenitore che raggruppa i frammenti di interazione e i messaggi che sono in esecuzione se viene riscontrata una condizione di guardia. In assenza di guardia, il blocco sarà sempre in esecuzione.

Ogni operando di interazione è un frammento di un'interazione e include le lifeline nel frammento combinato. Tale operando contiene una condizione di guardia che contiene un vincolo di interazione. L'operando di interazione è in esecuzione solo se la condizione di guardia ha il valore true.

In base al tipo di operatore di interazione, è possibile avere uno o più operandi di interazione in un frammento combinato. Ogni operando deve avere una condizione di guardia.

Quando si crea un operando di interazione, esso viene visualizzato in uno stato espanso. È possibile ridurlo per nasconderlo insieme ai relativi messaggi associati e ai frammenti di interazione e per ridurre la dimensione del frammento combinato nel frame di interazione.

Nella figura precedente, il frammento combinato alternativo (alt) contiene due operandi di interazione; uno con una condizione di guardia x>5 e l'altro operando di interazione con la condizione di guardia x<=5. Se x=6, la condizione di guardia x<=5 e l'operando corrispondente e i messaggi vengono eseguiti. La condizione di guardia x>5 e l'operando corrispondente e i messaggi contenuti non vengono eseguiti.

Condizioni di guardia

Nei diagrammi di sequenza, una condizione di guardia contiene un vincolo di interazione che è un'espressione booleana o, in caso di loop, un'espressione che indica il numero di volte minimo e massimo in cui il loop è in esecuzione e, facoltativamente, il valore incrementale.

Una condizione di guardia è una limitazione o una condizione semantica impostata tra parentesi quadre in un operando di interazione all'interno di un frammento combinato. Quando si crea un frammento combinato, viene creata automaticamente una condizione di guardia. È inoltre possibile creare manualmente una condizione di guardia in un operando di interazione che non dispone di tale condizione.

Una condizione di guardia viene visualizzata all'inizio dell'interazione e contiene tutte le informazioni necessarie per decidere se eseguire o meno l'operando di interazione. Se la condizione di guardia verifica true, il frammento di interazione viene eseguito.

Come viene illustrato nella seguente figura, un operando di interazione viene visualizzato come un rettangolo in un frammento combinato. Il rettangolo può contenere messaggi che vengono eseguiti se la condizione di guardia ètrue. Il codice a destra è come apparirebbe lo pseudocodice per il frammento combinato alternativo (alt).
Un frame di interazione mostra due lifeline con due frammenti combinati che incrociano le lifeline. Il primo frammento combinato di loop ha un operando di interazione e una condizione di guardia. Il secondo frammento combinato alt ha due operandi di interazione, ognuno con una condizione di guardia.
// Questa sezione è un frammento combinato


//if else rappresenta l'operatore di interazione
//if-else è un frammento combinato alternativo(alt)
if ( valore maggiore di 5)
// la condizione tra () è la condizione di guardia
// Il codice tra {} è l'operando di interazione
// Viene eseguito se la condizione di guardia è true
	{ A send a message to B;
	B sends a return message to A;
	}
else if(x is less than or equal to 5)		 
{
	B sends a message to A;
}
Attività correlate
Creazione di frammenti combinati nei diagrammi di sequenza
Gestione degli operandi di interazione nei diagrammi di sequenza
Aggiunta di condizioni di guardia alle transizioni
Gestione di frammenti combinati nei diagrammi di sequenza
Riferimenti correlati
Operatori di interazione nei diagrammi di sequenza

Feedback