Diagramma della macchina a stati e diagramma del diagramma di stato in UML
Cos'è un diagramma della macchina a stati?
Diagramma di stato vengono utilizzati per acquisire il comportamento di un sistema software. I diagrammi della macchina a stati UML possono essere utilizzati per modellare il comportamento di una classe, un sottosistema, un pacchetto o anche un intero sistema. È anche chiamato Statechart o diagramma di transizione di stato.
Cos'è un diagramma Statechart?
I diagrammi di stato ci forniscono un modo efficiente per modellare le interazioni o la comunicazione che si verificano all'interno delle entità esterne e di un sistema. Questi diagrammi vengono utilizzati per modellare il sistema basato sugli eventi. Lo stato di un oggetto viene controllato con l'aiuto di un evento. I diagrammi di stato vengono utilizzati per descrivere i vari stati di un'entità all'interno del sistema applicativo.
Esistono in totale due tipi di diagrammi della macchina a stati in UML:
1. Diagramma della macchina a stati comportamentale
- Cattura il comportamento di un'entità presente nel sistema.
- Viene utilizzato per rappresentare l'implementazione specifica di un elemento.
- Il comportamento di un sistema può essere modellato utilizzando il diagramma della macchina a stati comportamentale in OOAD.
2. Diagramma della macchina a stati del protocollo
- Questi diagrammi vengono utilizzati per acquisire il comportamento di un protocollo.
- Rappresenta come cambia lo stato del protocollo riguardo all'evento. Rappresenta anche i corrispondenti cambiamenti nel sistema.
- Non rappresentano l'implementazione specifica di un elemento.
Perché il diagramma della macchina a stati?
Il diagramma Statechart viene utilizzato per catturare l'aspetto dinamico di un sistema. I diagrammi della macchina a stati vengono utilizzati per rappresentare il comportamento di un'applicazione. Un oggetto attraversa vari stati durante la sua vita. La durata di vita di un oggetto rimane fino alla conclusione del programma. L'oggetto passa da più stati a seconda dell'evento che si verifica all'interno dell'oggetto. Ogni stato rappresenta alcune informazioni univoche sull'oggetto.
I diagrammi di stato vengono utilizzati per progettare sistemi interattivi che rispondono a eventi interni o esterni. Il diagramma Statechart in UML visualizza il flusso di esecuzione da uno stato a un altro stato di un oggetto.
Rappresenta lo stato di un oggetto dalla creazione di un oggetto fino a quando l'oggetto viene distrutto o terminato.
Lo scopo principale di un diagramma di stato è modellare sistemi interattivi e definire ogni singolo stato di un oggetto. I diagrammi di stato sono progettati per catturare il comportamento dinamico di un sistema applicativo. Questi diagrammi vengono utilizzati per rappresentare vari stati di un sistema ed entità all'interno del sistema.
Notazione e simbolo per il diagramma della macchina a stati (diagramma Statechart)
Di seguito sono riportate le varie notazioni utilizzate nel diagramma del grafico di stato. Tutte queste notazioni, se combinate, costituiscono un singolo diagramma.
Stato iniziale
Il simbolo dello stato iniziale viene utilizzato per indicare l'inizio di un diagramma della macchina a stati.
stato finale
Questo simbolo viene utilizzato per indicare la fine di un diagramma della macchina a stati.
Scatola di decisione
Contiene una condizione. A seconda del risultato di una condizione di guardia valutata, viene preso un nuovo percorso per l'esecuzione del programma.
Transizione
Una transizione è un cambiamento da uno stato ad un altro che si verifica a causa di qualche evento. Una transizione provoca un cambiamento nello stato di un oggetto.
Scatola di stato
È un momento specifico nella vita di un oggetto. Viene definito utilizzando alcune condizioni o un'istruzione all'interno del corpo del classificatore. È usato per rappresentare qualsiasi situazione statica e dinamica.
È indicato utilizzando un rettangolo con angoli arrotondati. Il nome di uno stato è scritto all'interno del rettangolo arrotondato.
Il nome di uno stato può anche essere posizionato all'esterno del rettangolo. Questo può essere fatto in caso di stati compositi o sottomacchina. Si può posizionare il nome di uno stato all'interno del rettangolo o all'esterno del rettangolo in una casella tabellare. Non si possono eseguire entrambe le operazioni contemporaneamente.
Uno stato può essere attivo o inattivo. Quando uno stato è in modalità operativa, è attivo, non appena interrompe l'esecuzione e transita in un altro stato, lo stato precedente diventa inattivo e lo stato corrente diventa attivo.
Tipi di Stato
Unified Modeling Language definisce tre tipi di stati:
- Stato semplice
- Non hanno alcun sottostato.
- Stato composito
- Questi tipi di stati possono avere uno o più sottostati.
- Uno stato composito con due o più sottostati è chiamato stato ortogonale.
- Stato della sottomacchina
- Questi stati sono semanticamente uguali agli stati compositi.
- A differenza dello stato composito, possiamo riutilizzare gli stati della sottomacchina.
Come disegnare un diagramma Statechart?
I diagrammi di stato vengono utilizzati per descrivere i vari stati attraverso i quali passa un oggetto. Una transizione da uno stato a un altro avviene a causa di qualche evento innescato. Per disegnare un diagramma di stato UML, bisogna identificare tutti i possibili stati di ogni particolare entità.
Lo scopo di questi Diagrammi UML è rappresentare gli stati di un sistema. Gli stati svolgono un ruolo vitale nei diagrammi di transizione degli stati. Tutti gli oggetti essenziali, gli stati e gli eventi che causano cambiamenti all'interno degli stati devono essere analizzati prima di implementare il diagramma.
Quando si disegna un diagramma di stato, è necessario tenere in considerazione le seguenti regole:
- Il nome di una transizione di stato deve essere univoco.
- Il nome di uno Stato deve essere facilmente comprensibile e descrivere il comportamento di uno Stato.
- Se sono presenti più oggetti, è necessario implementare solo gli oggetti essenziali.
- È necessario fornire nomi propri per ciascuna transizione e un evento.
Quando utilizzare un diagramma della macchina a stati?
I diagrammi di stato vengono utilizzati per implementare in modo approfondito modelli di lavoro reali e sistemi orientati agli oggetti. Questi diagrammi vengono utilizzati per confrontare la natura dinamica e statica di un sistema catturando il comportamento dinamico di un sistema.
I diagrammi di stato vengono utilizzati per catturare i cambiamenti nelle varie entità del sistema dall'inizio alla fine. Vengono utilizzati per analizzare come un evento può innescare un cambiamento all'interno di più stati di un sistema.
Vengono utilizzati i diagrammi dei caratteri di stato:
- Modellare gli oggetti di un sistema.
- Modellare e implementare sistemi interattivi.
- Per visualizzare gli eventi che innescano cambiamenti all'interno degli stati.
Esempio di macchina a stati
Il seguente diagramma di stato di esempio rappresenta il processo di autenticazione dell'utente.
Ci sono due stati in totale, e il primo stato indica che l'OTP deve essere inserito per primo. Dopo di che, l'OTP viene controllato nella casella di decisione, se è corretto, allora si verificherà solo la transizione di stato e l'utente verrà convalidato. Se l'OTP è errato, allora la transizione non avrà luogo e tornerà di nuovo allo stato iniziale finché l'utente non inserisce l'OTP corretto come mostrato nell'esempio di diagramma della macchina di stato sopra.
Diagramma della macchina a stati e diagramma di flusso
Di seguito sono riportate le principali differenze tra diagramma di stato e diagramma di flusso
Diagramma della macchina a stati | Diagramma di flusso |
---|---|
Rappresenta i vari stati di un sistema. | Il diagramma di flusso illustra il flusso di esecuzione del programma. |
La macchina a stati ha un concetto WAIT, cioè aspetta un'azione o un evento. | Il diagramma di flusso non si occupa dell'attesa di un concetto. |
Le macchine a stati vengono utilizzate per un sistema in esecuzione live. | Il diagramma di flusso visualizza sequenze di ramificazioni di un sistema. |
La macchina a stati è un diagramma di modellazione. | Un diagramma di flusso è un flusso sequenziale o un diagramma DFD. |
La macchina degli stati può esplorare vari stati di un sistema. | Il diagramma di flusso si occupa dei percorsi e del flusso di controllo. |
Sommario
- I diagrammi dei diagrammi di stato sono anche chiamati diagrammi della macchina a stati.
- Questi diagrammi vengono utilizzati per modellare il sistema basato sugli eventi.
- Lo stato di un'entità è controllato con l'aiuto di un evento.
- Esistono in totale due tipi di diagrammi della macchina a stati: 1) Diagramma della macchina a stati comportamentale 2) Diagramma della macchina a stati del protocollo
- Il diagramma Statechart viene utilizzato per catturare l'aspetto dinamico di un sistema.
- Uno stato è un momento specifico nella vita di un oggetto.