---
title: "Solución al desafío de las pruebas de software con máquinas de estados"
date: "2011-05-03"
categories: 
  - "software"
tags: 
  - "java"
  - "software-modeling"
  - "software-tools"
  - "uml"
  - "uml-tool"
  - "umodel"
  - "v2011r2"
description: Este artículo analiza una solución a un desafío de diseño de máquinas de estados que se presenta en Altova UModel, abordando específicamente el comportamiento del sistema en modo de espera.
---
Status: #blog

Tags:  #java #software-modeling #software-tools #uml #uml-tool #umodel #v2011r2

Categories: [uml](/blog/es/category/uml.md)
# 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](https://www.altova.com/blog/2011/04/software-testing-for-state-machines.html) utilizando [Altova UModel](https://www.altova.com/es/umodel.html), 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](https://www.altova.com/es/umodel/state-diagrams.html) 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. 

[![Detalle de un diagrama de máquina de estados en 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 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. 

[![Lista desplegable de disparadores para las transiciones en un diagrama de máquina de estados en 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 revisión que hemos realizado al modelo, con la nueva transición de "en espera" a "apagado", tiene este aspecto:

[![Diagrama de máquina de estados en 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) 

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". 

[![Aplicación de prueba para máquinas de estados generada por 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) 

**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**](https://www.altova.com/es/download/umodel/uml_tool_enterprise.html) **¡hoy mismo!**
