Diagrammi di Sequenza
I diagrammi di sequenza visualizzano come gli oggetti interagiscono nel tempo. Mostrano l'ordine dei messaggi scambiati tra i partecipanti per compiere un'attività o uno scenario specifico.
Concetti Fondamentali
Partecipanti
I partecipanti rappresentano gli oggetti o gli attori coinvolti nell'interazione. Ogni partecipante ha una linea di vita — una linea verticale tratteggiata che si estende verso il basso e rappresenta il tempo.
Messaggi
I messaggi sono le comunicazioni tra i partecipanti, mostrati come frecce orizzontali tra le linee di vita. Il tempo scorre dall'alto verso il basso.
Box di attivazione
I box di attivazione (chiamati anche specifiche di esecuzione) sono rettangoli sottili su una linea di vita che mostrano quando un partecipante sta elaborando attivamente.
Creare Partecipanti
Usare lo strumento Partecipante
Premi P per attivare lo strumento Partecipante, poi fai clic sulla tela per posizionare i partecipanti.

Tipi di partecipante
I partecipanti possono rappresentare diversi tipi di entità:
- Attore - Un utente o sistema esterno (icona omino stilizzato)
- Oggetto - Un'istanza di una classe (rettangolo)
- Componente - Un componente di sistema (rettangolo con stereotipo)
- Confine - Interfaccia utente o confine di sistema
- Controllo - Logica di processo o controller
- Entità - Dati o oggetto di dominio
Configura il tipo di partecipante nel pannello Inspector.
Creare Messaggi
Usare lo strumento Messaggio
Premi M per attivare lo strumento Messaggio, poi:
- Fai clic sulla linea di vita del partecipante sorgente
- Trascina alla linea di vita del partecipante di destinazione
- Rilascia per creare il messaggio
Tipi di messaggio
| Tipo | Stile freccia | Descrizione |
|---|---|---|
| Sincrono | Linea continua, freccia piena | Il mittente attende la risposta |
| Asincrono | Linea continua, freccia aperta | Il mittente continua senza attendere |
| Ritorno | Linea tratteggiata, freccia aperta | Risposta a una chiamata sincrona |
| Creazione | Linea tratteggiata, freccia aperta verso box | Crea un nuovo partecipante |
| Distruzione | Linea che termina con X | Termina un partecipante |

Etichette dei messaggi
Fai doppio clic su un messaggio per modificare la sua etichetta. Formati comuni:
nomeMetodo()- Chiamata di metodo semplicenomeMetodo(param1, param2)- Chiamata con parametririsultato := nomeMetodo()- Chiamata con assegnazione del ritorno[condizione] nomeMetodo()- Messaggio condizionale (guardia)
Box di Attivazione
I box di attivazione mostrano il periodo durante il quale un partecipante sta eseguendo o attendendo una risposta.
Aggiungere box di attivazione
- Seleziona un messaggio
- Nell'Inspector, abilita "Show Activation"
- Il box di attivazione appare sulla linea di vita del partecipante ricevente
Attivazioni annidate
Quando un partecipante chiama se stesso (chiamata ricorsiva) o gestisce chiamate annidate multiple, i box di attivazione possono essere impilati.

Frammenti
I frammenti raggruppano i messaggi per mostrare logica condizionale, cicli o altri flussi di controllo.
Tipi di frammento
| Tipo | Parola chiave | Scopo |
|---|---|---|
| Alternativa | alt | Ramificazione if-else |
| Opzione | opt | Esecuzione opzionale (if senza else) |
| Ciclo | loop | Esecuzione ripetuta |
| Interruzione | break | Uscita dal ciclo contenitore |
| Parallelo | par | Esecuzione concorrente |
| Critico | critical | Sezione atomica/critica |
Creare frammenti
- Seleziona i messaggi che vuoi raggruppare
- Fai clic destro e scegli "Add Fragment" o usa lo strumento Frammento
- Seleziona il tipo di frammento
- Aggiungi condizioni/guardie secondo necessità

Guardie dei frammenti
Le guardie sono condizioni mostrate tra parentesi quadre:
[x > 0]- Condizione numerica[user.isAdmin]- Verifica di proprietà[else]- Ramo predefinito/else nei frammenti alt
Riordinare gli Elementi
Spostare i partecipanti
Trascina i partecipanti orizzontalmente per riordinarli. I messaggi collegati seguiranno.
Spostare i messaggi
Trascina i messaggi verticalmente per cambiare il loro ordine nella sequenza. Questo influisce sulla tempistica/ordine dell'interazione.
Best Practice
- Inizia con il flusso principale - Modella prima il percorso felice, poi aggiungi le alternative
- Mantieni la leggibilità - Limita a 5-7 partecipanti per diagramma
- Usa nomi significativi - Etichetta i messaggi con nomi di metodo reali o descrizioni
- Mostra i messaggi di ritorno - Specialmente per le chiamate sincrone dove il valore di ritorno è importante
- Usa i frammenti con moderazione - Troppi frammenti annidati riducono la leggibilità
- Aggiungi note - Usa elementi nota per spiegare la logica complessa
Esempio: Flusso di Login Utente
Una tipica sequenza di login potrebbe includere:
- L'utente inserisce le credenziali
- Il Client invia la richiesta di login al Server
- Il Server valida con il Database
- Il Database restituisce il record dell'utente
- Il Server crea la sessione
- Il Server restituisce successo/fallimento al Client
- Il Client aggiorna l'interfaccia
Questo flusso dimostra chiamate sincrone, messaggi di ritorno e potenziali frammenti alt per i percorsi di successo/fallimento.