---
title: "Soluzione alla sfida relativa ai test del software con l'utilizzo di macchine a stati"
date: "2011-05-03"
categories: 
  - "software"
tags: 
  - "java"
  - "software-modeling"
  - "software-tools"
  - "uml"
  - "uml-tool"
  - "umodel"
  - "v2011r2"
description: Questo articolo presenta una soluzione a una sfida nella progettazione di macchine a stati, riscontrata in Altova UModel, e si concentra in particolare sul comportamento del sistema in modalità di attesa.
---
Status: #blog

Tags:  #java #software-modeling #software-tools #uml #uml-tool #umodel #v2011r2

Categories: [uml](/blog/it/category/uml.md)
# 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](https://www.altova.com/blog/2011/04/software-testing-for-state-machines.html)" con [Altova UModel](https://www.altova.com/it/umodel.html), 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](https://www.altova.com/it/umodel/state-diagrams.html) 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. 

[![Dettaglio di un diagramma a stati in Altova UModel](https://lh5.ggpht.com/_REdrfeVqYdU/TbBqA8gVCnI/AAAAAAAAAYE/3PfcEd2PcKo/clip_image002%5B6%5D.jpg?imgmax=800 "Detail of a state machine diagram in Altova UModel")](https://www.altova.com/umodel/state-diagrams.html) 

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. 

[![Elenco a comparsa dei trigger per le transizioni in un diagramma di macchina a stati in Altova UModel](https://lh3.ggpht.com/_REdrfeVqYdU/TbBqBGFuyKI/AAAAAAAAAYI/63ZNLF_dU3A/clip_image004%5B6%5D.jpg?imgmax=800 "Pop-up list of triggers for transitions in a state machine diagram in Altova UModel")](https://www.altova.com/umodel/state-diagrams.html)

La revisione completata del modello, con la nuova transizione da "Standby" a "Spento", è la seguente:

[![Diagramma a stati in Altova UModel](https://lh6.ggpht.com/_REdrfeVqYdU/TbBqBUKsVYI/AAAAAAAAAYM/jSeTZcHJL4g/Snap10_new%20transition_thumb%5B6%5D.png?imgmax=800 "State machine diagram in Altova UModel")](https://www.altova.com/umodel.html) 

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". 

[![Applicazione di test per macchine a stati generata da Altova UModel](https://lh3.ggpht.com/_REdrfeVqYdU/TbBqCLuSc2I/AAAAAAAAAYU/13GMhNPkg7s/clip_image008_thumb%5B2%5D.jpg?imgmax=800 "State machine test application generated by Altova UModel")](http://lh6.ggpht.com/_REdrfeVqYdU/TbBqBgADPsI/AAAAAAAAAYQ/0AsFb3WdtAU/s1600-h/clip_image008%5B5%5D.jpg) 

**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**](https://www.altova.com/it/download/umodel/uml_tool_enterprise.html) **oggi stesso!**
