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.

Diagramma di sequenza con 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:

  1. Fai clic sulla linea di vita del partecipante sorgente
  2. Trascina alla linea di vita del partecipante di destinazione
  3. Rilascia per creare il messaggio

Tipi di messaggio

TipoStile frecciaDescrizione
SincronoLinea continua, freccia pienaIl mittente attende la risposta
AsincronoLinea continua, freccia apertaIl mittente continua senza attendere
RitornoLinea tratteggiata, freccia apertaRisposta a una chiamata sincrona
CreazioneLinea tratteggiata, freccia aperta verso boxCrea un nuovo partecipante
DistruzioneLinea che termina con XTermina un partecipante

Tipi di messaggio

Etichette dei messaggi

Fai doppio clic su un messaggio per modificare la sua etichetta. Formati comuni:

  • nomeMetodo() - Chiamata di metodo semplice
  • nomeMetodo(param1, param2) - Chiamata con parametri
  • risultato := 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

  1. Seleziona un messaggio
  2. Nell'Inspector, abilita "Show Activation"
  3. 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.

Box di attivazione

Frammenti

I frammenti raggruppano i messaggi per mostrare logica condizionale, cicli o altri flussi di controllo.

Tipi di frammento

TipoParola chiaveScopo
AlternativaaltRamificazione if-else
OpzioneoptEsecuzione opzionale (if senza else)
CicloloopEsecuzione ripetuta
InterruzionebreakUscita dal ciclo contenitore
ParalleloparEsecuzione concorrente
CriticocriticalSezione atomica/critica

Creare frammenti

  1. Seleziona i messaggi che vuoi raggruppare
  2. Fai clic destro e scegli "Add Fragment" o usa lo strumento Frammento
  3. Seleziona il tipo di frammento
  4. Aggiungi condizioni/guardie secondo necessità

Esempio di frammento

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

  1. Inizia con il flusso principale - Modella prima il percorso felice, poi aggiungi le alternative
  2. Mantieni la leggibilità - Limita a 5-7 partecipanti per diagramma
  3. Usa nomi significativi - Etichetta i messaggi con nomi di metodo reali o descrizioni
  4. Mostra i messaggi di ritorno - Specialmente per le chiamate sincrone dove il valore di ritorno è importante
  5. Usa i frammenti con moderazione - Troppi frammenti annidati riducono la leggibilità
  6. Aggiungi note - Usa elementi nota per spiegare la logica complessa

Esempio: Flusso di Login Utente

Una tipica sequenza di login potrebbe includere:

  1. L'utente inserisce le credenziali
  2. Il Client invia la richiesta di login al Server
  3. Il Server valida con il Database
  4. Il Database restituisce il record dell'utente
  5. Il Server crea la sessione
  6. Il Server restituisce successo/fallimento al Client
  7. Il Client aggiorna l'interfaccia

Questo flusso dimostra chiamate sincrone, messaggi di ritorno e potenziali frammenti alt per i percorsi di successo/fallimento.