Soluzione alla sfida relativa ai test del software con l'utilizzo di macchine a stati
Il mese scorso, nel nostro blog dedicato a "Test del software per macchine a stati" con Altova UModel, abbiamo riscontrato un comportamento inatteso nel nostro modello di un sistema di condizionamento e abbiamo invitato i lettori a migliorare il progetto. Questo articolo descrive una possibile soluzione. Quando abbiamo eseguito l'applicazione Tester per il nostro modello, abbiamo notato che l'interruttore di alimentazione non spegneva il sistema quando si trovava nello stato di "Standby". Nel diagramma a stati del nostro modello originale, l'unico modo per passare dallo stato di "Funzionamento" allo stato di "Standby" è tramite il pulsante "Standby", e l'unico modo per uscire dallo stato di "Standby" è premere nuovamente il pulsante "Standby", come si può vedere nel dettaglio riportato di seguito.

Possiamo creare un percorso alternativo per spegnere il sistema dallo stato di "standby" semplicemente disegnando una nuova linea di transizione dallo stato "standby" allo stato "spento" e assegnando la funzione powerButton() come l'evento che innesca la transizione. UModel semplifica questo processo fornendo una finestra a comparsa che elenca gli eventi già definiti nel modello.

La revisione completata del modello, con la nuova transizione da "Standby" a "Spento", è la seguente:
![]()
Dopo aver rigenerato il codice Java e compilato la nuova versione, possiamo eseguire nuovamente l'applicazione Tester. La finestra di output del debugger mostra che il sistema è entrato in modalità Standby all'evento 3. L'evento 4, ovvero la pressione del pulsante di alimentazione, ora imposta lo stato su "Spento".
![]()
Scoprite di persona come potete migliorare la logica dei vostri diagrammi di macchine a stati con Altova UModel – scaricate una versione di prova gratuita di 30 giorni oggi stesso!