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" com o Altova UModel, 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 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.

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.

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:

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".

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 hoje mesmo!