Una máquina virtual de estado finito ( VFSM ) es una máquina de estado finito (FSM) definida en un entorno virtual . El concepto VFSM proporciona un método de especificación de software para describir el comportamiento de un sistema de control utilizando nombres asignados de propiedades de control de entrada y acciones de salida .
El método VFSM introduce un modelo de ejecución y facilita la idea de una especificación ejecutable. Esta tecnología se utiliza principalmente en aplicaciones complejas de control de máquinas , instrumentación y telecomunicaciones .
Por qué
La implementación de una máquina de estado requiere la generación de condiciones lógicas (condiciones de transición de estado y condiciones de acción). En el entorno del hardware, donde las máquinas de estado encontraron su uso original, esto es trivial: todas las señales son booleanas . En contraste, las máquinas de estado especificadas e implementadas en software requieren condiciones lógicas que son per se multivalor :
- La temperatura puede ser baja, correcta, alta
- Los comandos pueden tener varios valores: Init, Start, Stop, Break, Continue
- En un sistema de control jerárquico, las máquinas de estado subordinadas pueden tener muchos estados que se utilizan como condiciones de la máquina de estado superior.
Además, las señales de entrada pueden ser desconocidas debido a errores o mal funcionamiento, lo que significa que incluso las señales de entrada digitales (consideradas como valores booleanos clásicos) son de hecho 3 valores: Bajo, Alto, Desconocido.
Un álgebra lógica positiva resuelve este problema a través de la virtualización , mediante la creación de un entorno virtual que permite la especificación de máquinas de estado para software utilizando variables multivalor.
Propiedades de control
Una variable de estado en el entorno VFSM puede tener uno o más valores que son relevantes para el Control; en tal caso, es una variable de entrada. Esos valores son las propiedades de control de esta variable. Las propiedades de control no son necesariamente valores de datos específicos, sino más bien ciertos estados de la variable. Por ejemplo, una variable digital podría proporcionar tres propiedades de control: VERDADERO, FALSO y DESCONOCIDO según sus posibles valores booleanos. Una variable de entrada numérica (analógica) tiene propiedades de control tales como: BAJA, ALTA, OK, MALA, DESCONOCIDA según su rango de valores deseados. Un temporizador puede tener su estado OVER (tiempo de espera) como su valor de control más significativo; otros valores pueden ser STOPPED o RUNNING.
Comportamiento
Otras variables de estado en el entorno VFSM pueden activarse mediante acciones; en tal caso, es una variable de salida. Por ejemplo, una salida digital tiene dos acciones: Verdadero y Falso. Una variable de salida numérica (analógica) tiene una acción: Establecer. Un temporizador que es a la vez: una variable de entrada y salida puede activarse mediante acciones como: Iniciar, Detener o Restablecer.
Ambiente virtual
El entorno virtual caracteriza el entorno de ejecución en el que opera una máquina virtual . Está definido por tres conjuntos de nombres:
- Los nombres de entrada representan las propiedades de control de todas las variables disponibles.
- Los nombres de salida representan las acciones disponibles en las variables.
- nombres de estado , como se define para cada uno de los estados del FSM.
Los nombres de entrada crean condiciones virtuales para realizar transiciones de estado o acciones de entrada. Las condiciones virtuales se construyen usando el álgebra lógica positiva . Los nombres de salida desencadenan acciones; acciones de entrada, acciones de salida, acciones de entrada o acciones de transición.
Álgebra lógica positiva
Las reglas para construir una condición virtual son las siguientes:
Nombres de entrada y entrada virtual
El estado de una entrada se describe mediante los nombres de entrada que crean un conjunto :
- entrada A:
Anames = {A1, A2, A3}
- entrada B:
Bnames = {B1, B2}
- entrada C:
Cnames = {C1, C2, C3, C4, C5}
etc.
La entrada virtual VI
es un conjunto de elementos de nombres de entrada que se excluyen mutuamente . A VI
siempre contiene el elemento always
:
VI = { siempre }VI = { siempre , A1 }VI = { siempre , A1 , B2 , C4 }
Operaciones lógicas en nombres de entrada
&
La operación (Y) es un conjunto de nombres de entrada:
A1 y B3 y C2 =>{A1, B3, C2}
|
La operación (OR) es una tabla de conjuntos de nombres de entrada:
A1 | B3 | C2 =>
~
(Complemento) es un complemento de un conjunto de nombres de entrada:
~ A2 ={A1, A3}
Expresión lógica
Una expresión lógica es una tabla OR de conjuntos AND (una forma normal disyuntiva ):
A1 y B3 | A1 y B2 y C4 | C2 =>
Las expresiones lógicas se utilizan para expresar cualquier función lógica.
Evaluación de una expresión lógica
El valor lógico (verdadero, falso) de una expresión lógica se calcula probando si alguno de los conjuntos Y en la tabla OR es un subconjunto de VI
.
Nombres de salida y salida virtual
El estado de una salida se describe mediante nombres de salida que crean un conjunto:
- salida X:
Xnames = {X1, X2}
- salida Y:
Ynames = {Y1, Y2, Y3}
La salida virtual VO
es un conjunto de elementos mutuamente excluyentes de nombres de salida.
Ambiente virtual
El nombre virtual y la salida virtual completados por los nombres de estado crean el entorno virtual VE
donde se especifica el comportamiento.
Modelo de ejecución de VFSM
Un subconjunto de todos los nombres de entrada definidos, que solo pueden existir en una situación determinada, se denomina entrada virtual o VI
. Por ejemplo, la temperatura puede ser "demasiado baja", "buena" o "demasiado alta". Aunque hay tres nombres de entrada definidos, solo uno de ellos puede existir en una situación real. Este construye el VI
.
Un subconjunto de todos los nombres de salida definidos, que solo pueden existir en una situación determinada, se denomina salida virtual o VO
. Esto está construido por las acciones actuales del VFSM.
La especificación de comportamiento se crea mediante una tabla de estado que describe todos los detalles de todos los estados del VFSM.
El ejecutor de VFSM se activa por VI
y el estado actual de VFSM. Teniendo en cuenta la especificación de comportamiento del estado actual, VO
se establece.
La Figura 2 muestra una posible implementación de un ejecutor VFSM. Con base en esta implementación, se deben considerar las características típicas de comportamiento.
Tabla de estado
Una tabla de estado define todos los detalles del comportamiento de un estado de un VFSM. Consta de tres columnas; la primera columna nombra el estado, la segunda enumera las condiciones virtuales creadas a partir de los nombres de entrada utilizando el álgebra lógica positiva, y la tercera columna contiene los nombres de salida:
Nombre del Estado | Condición (es) | Acciones (s) |
---|---|---|
Estado actual | Acción de entrada | Nombre (s) de salida |
Acción de salida | Nombre (s) de salida | |
Condición virtual | Nombre (s) de salida | |
... | ... | |
Siguiente nombre del estado | Condición virtual | Nombre (s) de salida |
Siguiente nombre del estado | Condición virtual | Nombre (s) de salida |
... | ... | ... |
Lea la tabla de la siguiente manera: las dos primeras líneas definen las acciones de entrada y salida del estado actual. Las siguientes líneas que no proporcionan el siguiente estado representan las acciones de entrada. Finalmente, las líneas que proporcionan el siguiente estado representan las condiciones de transición del estado y las acciones de transición. Todos los campos son opcionales. Un VFSM combinatorio puro es posible solo en los casos en que se utilizan acciones de entrada, pero no se definen transiciones de estado. La acción de transición puede reemplazarse por el uso adecuado de otras acciones.
Herramientas
- StateWORKS : una implementación del concepto VFSM
- PlayMaker : implementa el concepto VFSM como método de "creación de scripts visuales" en el motor de juego de Unity.
Referencias
- Wagner, F., "Software de modelado con máquinas de estados finitos: un enfoque práctico", Rosa Fischer-Löw Verlag 1994, ISBN 3-929465-04-3
- Wagner, F., "The Virtual Finite State Machines: Executable Control Flow Specification", Publicaciones de Auerbach, 2006, ISBN 0-8493-8086-3
- Especificación ejecutable de VFSM , Actas de CompEuro 1992
- Malentendidos de la máquina de estado , revista IEE "Computing and Control Engineering", 1997
- Una herramienta moderna de diseño de software en tiempo real: aplicación de lecciones de Leo , revista IEE "Computing and Control Engineering", 2003
- Modelado y construcción de software confiable y reutilizable. , Actas de Ingeniería de Software Basado en Computadora 2003 (ECBS'03)
- Cerrando la brecha entre el modelado de software y el código , procedimientos de ingeniería de software basado en computadora 2004 (ECBS'04)
- [1] , Wagner, T., "VFSMML - Estándar XML para VFSM", 2004
- [2] , "El paradigma de implementación y diseño de la máquina virtual de estados finitos", Revista técnica de Bell Labs / Volumen 2, Número 1, 2002