Índice de contenido
El objetivo principal de esta tarea es que se lleve a cabo un diagrama de estados, que sea capaz de plasmar el comportamiento de un microondas en base a las distintas etapas que atraviesa en su “ciclo de vida” (estados).
Diagrama de estados
En este caso voy a mostrar primero el diagrama de estados y a ir explicando cada actividad / estado a continuación.
En el enunciado se indican que exite un interruptor para encender o apagar el microondas. El microondas apagado no sirve para nada y sólo se puede encender usando el interruptor. Por ello he indicado como condición de guardia para pasar del estado inicial al siguiente estado (encendido) que tenga que estar el interruptor en encendido.
Sólo se puede llegar a este estado al pulsar el interruptor de encendido. Sólo se puede salir de este estado pulsando el interruptor de apagado y ésta condición puede darse sea cuál sea el estado actual. Por ello, se ha decidido que el estado encendido sea una actividad compuesta conteniendo varios estados que se especificarán en sus puntos correspondientes.
Cuando se enciende el microondas se indica que el tiempo se marca a 0 y la potencia es p3. Por ello, este estado compuesto incluyen dos condiciones entry con estos dos valores. Además se indica que el estado es “parado”. En este caso lo que he indicado es que la actividad de entrada comienze con el estado “standBy” que es el equivalente a “parado”. Ésto también se ha hecho añadidendo un entry que referencia a dicha actividad.
Este es el estado de configuración del estado encendido. Este estado está contenido dentro del estado encendido.
En este estado se puede aumentar el tiempo de minuto en minuto si se pulsa el botón T. Por ello se ha incluido una transición reflexiva que aumenta dicha variable teniendo como condición de guarda que se pulse el botón T.
De la misma forma se puede rotar por la potencia seleccionada al pulsar el botón P. Por ello, se ha incluido una transición reflexiva que rota dicha variable de p1→ p2, de p2→ p3 y de p3 → p1. Como condición de guarda es que se pulse el botón P.
El útlimo botón que tiene efecto en este estado es el botón M para que se ponga en marcha. Por ello, la última transacción que sale de este estado NO es reflexiva y apunta al estado EnMarcha. Como condición de guarda es que se pulse el botón M y que la puerta esté cerrada
Este es el estado de que el microondas está calentando. Éste estado está incluido también dentro del estado Encendido.
Sólo se llega a este etado mediante el botón M del estado standBy.
Cuando se pulsa el botón M o se abre la puerta vuelve al estado standBy. Por ello, se ha incluido una transición hacia el estado standBy que tiene como condición de guarda pulsar M o abrir la puerta..
La otra forma de salir de este estado es que el tiempo llegue a 0. En dicho caso volverá al estado standBy. Se podía haber incluido esta condición junto a la transición anterior y tener una sóla transición pero creo que sería conveniente separarlas porque hacen referencia a disintos casuísticas y, si en un futuro se decide ampliar el software del microondas es más inteligible así.
En este estado se realizan dos funciones: contar el tiempo y mostrar el tiempo en el led. Por tanto, como acción en el do se han incluido estas dos funciones.
Este estado está fuera del estado encendido, de hecho es la antítesis y sólo se llega pulsando el interruptor de encendido (poniéndolo en la posición de apagado), de ahí que ésta sea su condición de guarda. A este estado se puede llegar en cualquier momento mientras se esté en el estado enc