Una Máquina de estado en una Clase genera internamente las siguientes estructuras (en los lenguajes de software) para permitir la ejecución efectiva de los comportamientos de Estados (do, entry y exit) y también codificar los efectos de las transiciones apropiadas cuando sea necesario.
Enumeraciones
• | StateType - comprende una enumeración para cada uno de los Estados contenidos dentro de la máquina de estado |
• | TransitionType – comprende una enumeración para cada transición que tenga un efecto válido asociado con este; ej. ProcessOrder_Delivered_to_ProcessOrder_Closed |
• | CommandType – comprende una enumeración para cada uno de los tipos de comportamiento que un Estado puede contener (Do, Entry, Exit). |
Atributos
• | currState:StateType - variable que contiene la información actual del estado |
• | nextState:StateType – variable que contiene la siguiente información del Estado, establecida de acuerdo con cada transición del Estado. |
• | currTransition:TransitionType – variable que contiene la información de la transición actual; esto se establece si la transición tiene un efecto válido asociado a este. |
• | transcend:Boolean - bandera usada para advertir si una transición esta involucrada en transcender entre diferentes Máquinas de estado (o estados de submáquinas) |
• | xx_history:StateType – variable del historial para cada Máquina de estado/Estado de submáquina, que contiene información acerca del último estado en el cual tomó lugar la transición. |
Operaciones
• | StatesProc - procedimiento de Estado, que contiene un mapa entre una enumeración de Estado y su operación; referencia la información de Estado actual para llamar la función del Estado respectivo. |
• | TransitionsProc - procedimiento de Transiciones, que contienen un mapa entre la enumeración de la Transición y su efecto; esta llama el efecto respectivo. |
• | <<State>> - operación para cada uno de los Estados contenidos dentro de la Máquina de estado; este ejecuta un comportamiento del Estado basado en la entrada CommandType, y también ejecuta sus transiciones. |
• | initializeStateMachine – función que inicia todos los atributos relacionados con el marco de trabajo. |
• | runStateMachine - función que itera a través de cada Estado, y ejecuta sus correspondientes comportamientos y transiciones. |
Haga clic aquí para abrir un ejemplo del código de Java generado desde el diagrama de Máquina de estado de arriba.
|