Generación de código - Diagrama de máquina de estado

Superior  Previo  Próximo

 

stm processorder

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.