Esercitazione sul diagramma di sequenza – Guida completa con esempi

Pubblicato: 2017-01-27

Questo tutorial sui diagrammi di sequenza serve a comprendere meglio i diagrammi di sequenza; per spiegare tutto ciò che devi sapere, da come disegnare un diagramma di sequenza agli errori comuni che dovresti evitare quando ne disegna uno.

Esistono 3 tipi di diagrammi di interazione; Diagrammi di sequenza, diagrammi di comunicazione e diagrammi di temporizzazione. Questi diagrammi vengono utilizzati per illustrare le interazioni tra le parti all'interno di un sistema. Tra i tre, i diagrammi di sequenza sono preferiti sia dagli sviluppatori che dai lettori per la loro semplicità.

In questo tutorial sul diagramma di sequenza imparerai;

  • Che cos'è un diagramma di sequenza
  • Notazioni sui diagrammi di sequenza
  • Procedure consigliate per i diagrammi di sequenza
  • Come disegnare un diagramma di sequenza
  • Errori comuni del diagramma di sequenza
  • Modelli ed esempi di diagrammi di sequenza
  • Presentazione diagramma di sequenza SlideShare
  • Feedback sulla guida al diagramma di sequenza

Che cos'è un diagramma di sequenza?

I diagrammi di sequenza, comunemente usati dagli sviluppatori, modellano le interazioni tra oggetti in un singolo caso d'uso. Illustrano come le diverse parti di un sistema interagiscono tra loro per eseguire una funzione e l'ordine in cui si verificano le interazioni quando viene eseguito un particolare caso d'uso.

In parole più semplici, un diagramma di sequenza mostra diverse parti di un sistema che lavorano in una "sequenza" per portare a termine qualcosa.

mostra diverse parti di un sistema che lavorano in una "sequenza" per fare qualcosa.

Notazioni sui diagrammi di sequenza

Un diagramma di sequenza è strutturato in modo tale da rappresentare una linea temporale che inizia dall'alto e scende gradualmente per segnare la sequenza delle interazioni. Ogni oggetto ha una colonna ei messaggi scambiati tra di loro sono rappresentati da frecce.

Una rapida panoramica delle varie parti di un diagramma di sequenza

Notazione della linea di vita

Diagramma di sequenza - Linea di vita

Un diagramma di sequenza è costituito da molte di queste notazioni linea di vita che dovrebbero essere disposte orizzontalmente nella parte superiore del diagramma. Non ci sono due notazioni linea di vita dovrebbero sovrapporsi. Rappresentano i diversi oggetti o parti che interagiscono tra loro nel sistema durante la sequenza.

Una notazione della linea di vita con un simbolo dell'elemento attore viene utilizzata quando il particolare diagramma di sequenza è di proprietà di un caso d'uso.

ancora di salvezza con un simbolo elemento attore

Una linea di vita con un elemento entità rappresenta i dati di sistema. Ad esempio, in un'applicazione del servizio clienti, l'entità Cliente gestirà tutti i dati relativi a un cliente.

Entità ancora di salvezza

Una linea di vita con un elemento limite indica un limite del sistema/elemento software in un sistema; ad esempio, le schermate dell'interfaccia utente, i gateway di database o i menu con cui gli utenti interagiscono sono limiti.

Linea di vita di confine

E un'ancora di salvezza con un elemento di controllo indica un'entità controllante o un manager. Organizza e pianifica le interazioni tra i confini e le entità e funge da mediatore tra di loro.

Controllo linea di vita

Barre di attivazione

La barra di attivazione è la casella posta sulla linea di vita. Viene utilizzato per indicare che un oggetto è attivo (o istanziato) durante un'interazione tra due oggetti. La lunghezza del rettangolo indica la durata degli oggetti che rimangono attivi.

In un diagramma di sequenza, si verifica un'interazione tra due oggetti quando un oggetto invia un messaggio a un altro. L'utilizzo della barra di attivazione sulle linee di vita del Message Caller (l'oggetto che invia il messaggio) e del Message Receiver (l'oggetto che riceve il messaggio) indica che entrambi sono attivi/è istanziato durante lo scambio del messaggio.

Diagramma di sequenza - Barre di attivazione

Frecce dei messaggi

Una freccia dal chiamante del messaggio al destinatario del messaggio specifica un messaggio in un diagramma di sequenza. Un messaggio può fluire in qualsiasi direzione; da sinistra a destra, da destra a sinistra o di nuovo al chiamante stesso. Mentre puoi descrivere il messaggio inviato da un oggetto all'altro sulla freccia, con punte di freccia diverse puoi indicare il tipo di messaggio inviato o ricevuto.

La freccia del messaggio viene fornita con una descrizione, nota come firma del messaggio, su di essa. Il formato per questa firma del messaggio è riportato di seguito. Tutte le parti tranne il nome_messaggio sono facoltative.

attributo = nome_messaggio (argomenti): tipo_ritorno

  • Messaggio sincrono

Come mostrato nell'esempio delle barre di attivazione, un messaggio sincrono viene utilizzato quando il mittente attende che il destinatario elabori il messaggio e lo restituisca prima di continuare con un altro messaggio. La punta della freccia usata per indicare questo tipo di messaggio è solida, come quella qui sotto.

Freccia del messaggio sincrono
  • Messaggio asincrono

Un messaggio asincrono viene utilizzato quando il chiamante del messaggio non attende che il destinatario elabori il messaggio e lo restituisca prima di inviare altri messaggi ad altri oggetti all'interno del sistema. La punta della freccia utilizzata per mostrare questo tipo di messaggio è una freccia lineare come quella mostrata nell'esempio seguente.

Esempio di messaggio asincrono
  • Messaggio di ritorno

Un messaggio di ritorno viene utilizzato per indicare che il destinatario del messaggio ha terminato l'elaborazione del messaggio e sta restituendo il controllo al chiamante del messaggio. I messaggi di ritorno sono parti di notazioni facoltative, poiché una barra di attivazione attivata da un messaggio sincrono implica sempre un messaggio di ritorno.

Esempio di messaggio di ritorno

Suggerimento: puoi evitare di ingombrare i tuoi diagrammi riducendo al minimo l'uso dei messaggi di ritorno poiché il valore di ritorno può essere specificato nella freccia del messaggio iniziale stesso.

  • Messaggio di creazione del partecipante

Gli oggetti non vivono necessariamente per l'intera durata della sequenza degli eventi. È possibile creare oggetti o partecipanti in base al messaggio che viene inviato.

La notazione della casella del partecipante eliminato può essere utilizzata quando è necessario mostrare che il particolare partecipante non esisteva fino a quando non è stata inviata la chiamata di creazione. Se il partecipante creato fa qualcosa subito dopo la sua creazione, dovresti aggiungere una casella di attivazione proprio sotto la casella del partecipante.

Esempio di creazione del partecipante
  • Messaggio di distruzione del partecipante
Messaggio di distruzione della partecipazione

Allo stesso modo, i partecipanti quando non sono più necessari possono anche essere eliminati da un diagramma di sequenza. Questo viene fatto aggiungendo una "X" alla fine della linea di vita di detto partecipante.

  • Messaggio riflessivo

Quando un oggetto invia un messaggio a se stesso, viene chiamato messaggio riflessivo. È indicato con una freccia di messaggio che inizia e termina sulla stessa linea di vita mostrata nell'esempio seguente.

Messaggio riflessivo

Commento

I diagrammi UML generalmente consentono l'annotazione di commenti in tutti i tipi di diagramma UML. L'oggetto commento è un rettangolo con un angolo piegato come mostrato di seguito. Il commento può essere collegato all'oggetto correlato con una linea tratteggiata.

Esempio di oggetto di commento

Nota:   Visualizza le procedure consigliate per i diagrammi di sequenza per informazioni sui frammenti di sequenza.

Procedure consigliate per i diagrammi di sequenza

  • Gestisci interazioni complesse con frammenti di sequenza

Un frammento di sequenza è rappresentato come un riquadro che inquadra una sezione di interazioni tra oggetti (come mostrato negli esempi seguenti) in un diagramma di sequenza.

Viene utilizzato per mostrare interazioni complesse come flussi e loop alternativi in ​​modo più strutturato. Nell'angolo in alto a sinistra del frammento si trova un operatore. Questo, l'operatore del frammento, specifica che tipo di frammento è.

Alternative

Il frammento di combinazione alternativo viene utilizzato quando è necessario effettuare una scelta tra due o più sequenze di messaggi. Modella la logica del "se allora altro".

Il frammento alternativo è rappresentato da un grande rettangolo o da una cornice; è specificato menzionando 'alt' all'interno della casella del nome del frame (ovvero operatore frammento).

Per mostrare due o più alternative, il rettangolo più grande viene quindi diviso in quelli che vengono chiamati operandi di interazione utilizzando una linea tratteggiata, come mostrato nell'esempio del diagramma di sequenza sopra. Ogni operando ha una protezione contro cui testare ed è posizionato nell'angolo in alto a sinistra dell'operando.

Esempio di frammento alternativo - tutorial sul diagramma di sequenza

Opzioni

Il frammento di combinazione di opzioni viene utilizzato per indicare una sequenza che si verificherà solo in una determinata condizione, altrimenti la sequenza non si verificherà. Modella l'affermazione "se allora".  

Simile al frammento alternativo, anche il frammento di opzione è rappresentato con una cornice rettangolare in cui 'opt' è posizionato all'interno della casella del nome.

A differenza del frammento alternativo, un frammento di opzione non è diviso in due o più operandi. La guardia dell'opzione è posizionata nell'angolo in alto a sinistra.

(Trova un diagramma di sequenza di esempio con un frammento di opzione nella sezione Modelli ed esempi di diagramma di sequenza).

Cicli

Il frammento di loop viene utilizzato per rappresentare una sequenza ripetitiva. Metti le parole "loop" nella casella del nome e la condizione di guardia vicino all'angolo in alto a sinistra del telaio.

Oltre al test booleano, la guardia in un frammento di loop può avere altre due condizioni speciali testate. Queste sono le iterazioni minime (scritte come minnt = [il numero] e le iterazioni massime (scritte come maxint = [il numero]).

Se è una guardia di iterazioni minime, il ciclo deve essere eseguito non meno del numero indicato, e se è una guardia di iterazioni massime, il ciclo non deve eseguire più del numero indicato.

(Trova un esempio di un frammento di ciclo di seguito nei modelli di diagramma di sequenza e nella sezione di esempio)

Frammento di riferimento

È possibile utilizzare il frammento di riferimento per gestire la dimensione di diagrammi di sequenza di grandi dimensioni. Ti consente di riutilizzare parte di un diagramma di sequenza in un altro, o in altre parole, puoi fare riferimento a parte di un diagramma in un altro diagramma usando il frammento di riferimento.

Per specificare il frammento di riferimento, è necessario menzionare 'ref' nella casella del nome del frame e il nome del diagramma di sequenza a cui si fa riferimento all'interno del frame.

Esempio di frammento di riferimento

Per ulteriori frammenti di sequenza fare riferimento a Oltre le basi dei diagrammi di sequenza: parte 1 , parte 2 e parte 3 .

  • Disegna diagrammi di sequenza più piccoli che catturano l'essenza del caso d'uso

Invece di ingombrare il tuo diagramma di sequenza con diversi oggetti e gruppi di messaggi che confonderanno il lettore, disegna alcuni diagrammi di sequenza più piccoli che spieghino adeguatamente cosa fa il tuo sistema. Assicurati che il diagramma rientri in un'unica pagina e lasci spazio anche per note esplicative.

Inoltre, invece di disegnare dozzine di diagrammi di sequenza, scopri cosa è comune tra gli scenari e concentrati su quello. E se il codice è espressivo e può reggersi da solo, non c'è bisogno di disegnare un diagramma di sequenza in primo luogo.

Come disegnare un diagramma di sequenza

Un diagramma di sequenza rappresenta lo scenario o il flusso di eventi in un singolo caso d'uso. Il flusso di messaggi del diagramma di sequenza si basa sulla narrazione del caso d'uso particolare.

Quindi, prima di iniziare a disegnare il diagramma di sequenza o decidere quali interazioni dovrebbero essere incluse in esso, è necessario disegnare il diagramma del caso d'uso e preparare una descrizione completa di ciò che fa il caso d'uso particolare.

Come disegnare un diagramma di sequenza Un diagramma di sequenza rappresenta lo scenario o il flusso di eventi in un singolo caso d'uso. Il flusso di messaggi del diagramma di sequenza si basa sulla narrazione del caso d'uso particolare. Quindi, prima di iniziare a disegnare il diagramma di sequenza o decidere quali interazioni dovrebbero essere incluse in esso, è necessario preparare una descrizione completa di ciò che fa il caso d'uso particolare.

Dall'esempio di diagramma del caso d'uso sopra di "Crea nuovo account di libreria online", ci concentreremo sul caso d'uso denominato "Crea nuovo account utente" per disegnare il nostro esempio di diagramma di sequenza.

Prima di disegnare il diagramma di sequenza, è necessario identificare gli oggetti o gli attori che sarebbero coinvolti nella creazione di un nuovo account utente. Questi sarebbero;

  • Bibliotecario
  • Sistema di gestione delle biblioteche online
  • Database delle credenziali dell'utente
  • Sistema di posta elettronica

Una volta identificati gli oggetti, è quindi importante scrivere una descrizione dettagliata su ciò che fa il caso d'uso. Da questa descrizione, puoi facilmente capire le interazioni (che dovrebbero andare nel diagramma di sequenza) che si verificherebbero tra gli oggetti sopra, una volta eseguito il caso d'uso.

Di seguito sono riportati i passaggi che si verificano nel caso d'uso denominato "Crea nuovo account utente della libreria".

  • Il bibliotecario richiede al sistema di creare un nuovo account bibliotecario online
  • Il bibliotecario seleziona quindi il tipo di account utente della libreria
  • Il bibliotecario inserisce i dati dell'utente
  • I dettagli dell'utente vengono controllati utilizzando il database delle credenziali utente
  • Viene creato il nuovo account utente della biblioteca
  • Un riepilogo dei dettagli del nuovo account viene quindi inviato all'utente tramite posta elettronica

Da ciascuno di questi passaggi è possibile specificare facilmente quali messaggi devono essere scambiati tra gli oggetti nel diagramma di sequenza. Una volta che è chiaro, puoi andare avanti e iniziare a disegnare il diagramma di sequenza.

Il diagramma di sequenza seguente mostra come gli oggetti nel sistema di gestione della biblioteca online interagiscono tra loro per eseguire la funzione "Crea nuovo account utente della biblioteca".

Come disegnare un diagramma di sequenza - tutorial sul diagramma di sequenza

Errori comuni del diagramma di sequenza

Quando si disegnano diagrammi di sequenza, i progettisti tendono a commettere questi errori comuni. Evitando questi errori puoi garantire la qualità del tuo diagramma.

  • Aggiunta di troppi dettagli. Ciò ingombra il diagramma e rende difficile la lettura.
  • Diagrammi di sequenza obsoleti e non aggiornati che sono irrilevanti rispetto alle interfacce, alle architetture reali ecc. del sistema. Non dimenticare di sostituirli o modificarli.
  • Non lasciare spazi vuoti tra il testo del caso d'uso e la freccia del messaggio; questo rende difficile per chiunque leggere il diagramma.
  • Non considerando attentamente le origini delle frecce dei messaggi.

Vedere questi errori comuni spiegati in dettaglio nella Guida ai diagrammi di sequenza: errori comuni da evitare quando si disegnano diagrammi di sequenza.

Esempi e modelli di diagrammi di sequenza

Di seguito sono riportati alcuni esempi di diagrammi di sequenza e modelli disegnati utilizzando Creately. Crea diagrammi di sequenza online utilizzando lo strumento online di Creately. Fare clic sul modello per aprirlo nell'editor.

Diagramma di sequenza di un sistema di esami online

Esame in linea - Modello di diagramma di sequenza
Fare clic sull'immagine per modificarla online

Sistema di esami online - Diagramma di classe (UML)

Esempio di diagramma di sequenza di un sistema di gestione della scuola

Sistema di gestione della scuola - Modello di diagramma di sequenza

Esempio di un frammento di combinazione di opzioni

Esempio di un frammento di opzione

Esempio di una sequenza di loop

Loop - Esempio di diagramma di sequenza

Ecco altri modelli ed esempi di diagrammi di sequenza che puoi modificare immediatamente.

Esercitazione sul diagramma di sequenza – Presentazione di SlideShare

Guida al diagramma di sequenza Power Point (PPT) da Creately

Feedback sull'esercitazione sul diagramma di sequenza

Questo tutorial sui diagrammi di sequenza copre tutto ciò che devi sapere sui diagrammi di sequenza e disegnandoli. Se hai suggerimenti o domande sul tutorial del diagramma di sequenza, sentiti libero di lasciare un commento.

Altri tutorial sui diagrammi

  • Esercitazione sulla modellazione dei processi aziendali (Guida BPM che spiega le funzionalità)
  • Guida definitiva al diagramma di flusso (esercitazione completa del diagramma di flusso con esempi)
  • Esercitazione sul diagramma dei casi d'uso (Guida con esempi)