---
title: "Solução para o desafio de testes de software com máquinas de estados"
date: "2011-05-03"
categories: 
  - "software"
tags: 
  - "java"
  - "software-modeling"
  - "software-tools"
  - "uml"
  - "uml-tool"
  - "umodel"
  - "v2011r2"
description: Este artigo aborda uma solução para um desafio de design de máquinas de estados que surgiu no Altova UModel, focando especificamente no comportamento do sistema em modo de espera.
---
Status: #blog

Tags:  #java #software-modeling #software-tools #uml #uml-tool #umodel #v2011r2

Categories: [uml](/blog/pt/category/uml.md)
# Solução para o desafio de testes de software com máquinas de estados

No mês passado, no nosso blogue sobre "[Testes de Software para Máquinas de Estados](https://www.altova.com/blog/2011/04/software-testing-for-state-machines.html)" com o [Altova UModel](https://www.altova.com/pt/umodel.html), detetámos um comportamento inesperado no nosso modelo de um sistema de ar condicionado e desafiámos os leitores a melhorar o design. Esta publicação descreve uma possível solução. Quando executámos a aplicação de testes para o nosso modelo, verificámos que o interruptor de alimentação não desligava o sistema quando este se encontrava no estado de "Standby". No [diagrama de máquina de estados](https://www.altova.com/pt/umodel/state-diagrams.html) do nosso modelo original, a única forma de passar do modo de "funcionamento" para o estado de "Standby" é através do botão de "Standby", e a única forma de sair do estado de "Standby" é pressionar novamente o botão de "Standby", como se pode ver nos detalhes abaixo. 

[![Detalhe de um diagrama de máquina de estados no 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) 

Podemos criar uma saída alternativa para desligar o sistema a partir do estado de espera, simplesmente desenhando uma nova linha de transição do estado de espera para o estado de desligado, e atribuindo a função `powerButton()` como o evento que desencadeia essa transição. O UModel facilita a atribuição do evento, fornecendo uma janela pop-up que lista os eventos já definidos no modelo. 

[![Lista suspensa de gatilhos para as transições num diagrama de máquina de estados no 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)

A revisão que concluímos no modelo, com a nova transição do modo de espera para o modo desligado, tem a seguinte aparência:

[![Diagrama de máquina de estados no 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) 

Após regenerar o código Java e compilar a nova versão, podemos executar novamente a aplicação Tester. A janela de saída de depuração mostra que o sistema entrou em modo de espera no evento 3. O evento 4, a ativação do botão de energia, define agora o estado para "Desligado". 

[![Aplicação de teste de máquina de estados gerada pela 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) 

**Descubra por si mesmo como pode aprimorar a lógica dos seus diagramas de máquinas de estados com o Altova UModel –** [**descarregue uma versão de avaliação gratuita de 30 dias**](https://www.altova.com/pt/download/umodel/uml_tool_enterprise.html) **hoje mesmo!**
