Skip to main content

Esercitazione: Carta di stato

Redazione e attuazione di una carta di stato

Un diagramma di stato è una macchina che passa da uno stato all'altro in fase di esecuzione. Gli stati sono collegati da transizioni, ciascuna delle quali ha una condizione di guardia. Le azioni oi metodi possono essere chiamati sia negli stati che nelle transizioni. Quando una condizione di guardia ottiene il valore TRUE (evento), la transizione sarà attivata. Questo esegue le azioni oi metodi che appartengono alla transizione e quindi passa allo stato successivo. Le condizioni di guardia sono semplicemente variabili booleane che riflettono eventi o sono un'espressione. Gli eventi sono input utente di una visualizzazione/interfaccia utente, I/O, eventi temporali o eventi di sistema. Un altro evento spesso richiesto è l'evento di completamento che si verifica quando le azioni oi metodi di uno stato vengono completati.

Inserisci tutti gli stati richiesti nell'editor del diagramma di stato e implementa il controllo di flusso. A tale scopo, si codificano le condizioni di guardia per le transizioni specificando una variabile booleana o un'espressione ST. Si implementa la funzionalità effettiva del diagramma di stato nelle azioni e nei metodi che vengono richiamati negli stati o durante le transizioni.

Pertanto, i metodi e le azioni assegnate a un diagramma di stato contengono gli algoritmi. Questo è il modo in cui implementi il concetto di classe orientata agli oggetti in modo convenzionale.

Durante la fase di progettazione del software, puoi già utilizzare l'editor del diagramma di stato come strumento di progettazione. Ad esempio, puoi creare un file grafico (BMP) da un diagramma di stato per aggiungerlo a una specifica oa un documento di progettazione.

  • Identificare tutti gli stati che avrà la macchina.

  • Identificare le possibili transizioni di stato da uno stato all'altro.

  • Identificare gli eventi che si verificano durante il runtime della macchina e che attivano una transizione di stato. Raggruppa gli eventi rilevanti in ordine cronologico.

  • Identifica il ENTRY, DO, e EXIT azioni o metodi da chiamare durante uno stato.

  • Identifica azioni o metodi da chiamare durante le transizioni.

  • Definire il comportamento in caso di errore.