Solución al desafío de las pruebas de software con máquinas de estados
El mes pasado, en nuestra entrada del blog sobre Pruebas de software para máquinas de estados utilizando Altova UModel, descubrimos un comportamiento inesperado en nuestro modelo de un sistema de aire acondicionado y desafiamos a los lectores a mejorar el diseño. Esta publicación describe una posible solución. Cuando ejecutamos la aplicación de pruebas para nuestro modelo, observamos que el interruptor de alimentación no apagaba el sistema cuando se encontraba en el estado de "Espera". En el diagrama de máquina de estados de nuestro modelo original, la única forma de pasar del modo de "Funcionamiento" al estado de "Espera" es a través del botón de "Espera", y la única forma de salir del estado de "Espera" es volver a presionar el botón de "Espera", como se muestra en el detalle a continuación.

Podemos crear una ruta de salida alternativa para apagar el sistema desde el estado de espera, simplemente dibujando una nueva línea de transición desde el estado de espera al estado de apagado, y asignando la función powerButton() como el evento que desencadena la transición. UModel facilita esta tarea al proporcionar una ventana emergente que muestra una lista de eventos que ya están definidos en el modelo.

La revisión que hemos realizado al modelo, con la nueva transición de "en espera" a "apagado", tiene este aspecto:
![]()
Después de regenerar el código Java y compilar la nueva versión, podemos ejecutar la aplicación Tester nuevamente. La ventana de mensajes de depuración muestra que el sistema entró en modo de espera en el evento 3. El evento 4, la activación del botón de encendido, ahora establece el estado en "apagado".
![]()
Descubre por ti mismo cómo puedes mejorar la lógica de tus diagramas de máquinas de estados con Altova UModel Descarga una versión de prueba gratuita de 30 días ¡hoy mismo!