ES2226356T3 - Metodo y aparato para analizar un modelo de sistema basado en estados. - Google Patents
Metodo y aparato para analizar un modelo de sistema basado en estados.Info
- Publication number
- ES2226356T3 ES2226356T3 ES99911631T ES99911631T ES2226356T3 ES 2226356 T3 ES2226356 T3 ES 2226356T3 ES 99911631 T ES99911631 T ES 99911631T ES 99911631 T ES99911631 T ES 99911631T ES 2226356 T3 ES2226356 T3 ES 2226356T3
- Authority
- ES
- Spain
- Prior art keywords
- states
- state
- machines
- machine
- transitions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Testing And Monitoring For Control Systems (AREA)
- Testing Of Devices, Machine Parts, Or Other Structures Thereof (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
Método para analizar un modelo de sistema basado en estados que comprende un conjunto de máquinas (MI, Mn), cada una de dichas máquinas comprendiendo al menos un estado posible y cada máquina estando en uno de sus estados previstos en un momento dado, el comportamiento dinámico de dichas máquinas (MI, Mn) estando definido por transiciones predefinidas entre los estados de cada máquina (MI;...;Mn) y por condiciones predefinidas (C) para las transiciones, dicho método comprendiendo las fases de: - selección de un conjunto objetivo de estados (A) dentro de un subconjunto de máquinas (MI); - repetición de las fases de iteración hasta que se satisface un criterio de terminación; caracterizado por el hecho de que las fases de iteración comprenden las fases de: (a) selección de un conjunto de estados (X) que tienen transiciones hacia el conjunto objetivo (a), donde las transiciones tienen condiciones (C), si las hay, que se refieren a máquinas dentro del conjunto de máquinas (MI) únicamente; (b) expansión del conjunto objetivo (A) incluyendo el conjunto de estados (X) en el conjunto objetivo (A); (c) expansión del subconjunto de máquinas (MI) incluyendo otro subconjunto de máquinas, mientras se mantiene el conjunto objetivo (A) construido en dicha fase de expansión del conjunto objetivo (A).
Description
Método y aparato para analizar un modelo de
sistema basado en estados.
La invención se refiere a un método para analizar
un modelo de sistema basado en estados que comprende un conjunto de
máquinas como se afirma en la reivindicación principal 1. Otras
formas de realización ventajosas se proporcionan en las
reivindicaciones dependientes anexas.
Si se considera el hecho de que muchos segmentos
de productos en el mercado tienden a comprender una creciente
cantidad de software incorporado, y puesto que los productos
incluidos en dichos segmentos tienden a diferenciarse cada vez más
tan sólo por las diferencias de prestaciones del software
incorporado más que por el hardware utilizado, la futura demanda de
diseño de software en general variará en gran medida con respecto al
reconocimiento y eliminación de fallos, así como a los plazos de
desarrollo a corto plazo.
Uno de los muchos ejemplos relevantes puede
hallarse en la industria del automóvil. Incluso los automóviles
producidos en masa tienden a comprender un número cada vez mayor de
microprocesadores especializados. Los microprocesadores pueden
estar especializados, por ejemplo, en el control de ABS, inyección
de combustible, control de luces, diferentes tipos de
monitorización, control de calor, sistemas de seguridad, etc., y
muchos de los diversos subsistemas deberán ser controlados a menudo
por un protocolo común.
Es evidente que la aparición a gran escala de
unidades controladas por software causará problemas cada vez
mayores a los diseñadores de sistemas, ya que puede ser difícil
tener una visión general de cada aspecto del posible estado de cada
unidad, y naturalmente puede incluso ser todavía más complicado
pretender seguir la sinergia entre todos los subsistemas utilizados.
Otra dificultad que debe ser mencionada es que la mayor parte de
los subsistemas serán diseñados por diversos desarrolladores o
grupos de éstos, y que las interfaces entre estos subsistemas
pueden ser difíciles de controlar dado que no se pueden
proporcionar instrumentos eficaces a los desarrolladores para los
análisis necesarios de estos sistemas a gran escala en conjunto o
incluso en cada unidad individual.
Esto puede provocar retrasos importantes y
costosos con respecto a la duración del desarrollo del producto y
su introducción en el mercado. Un hecho aún más crucial es que
algunos productos también pueden ser introducidos en el mercado con
errores inherentes ocultos que, en ciertas condiciones
desconocidas, pueden desencadenarse y salir a la luz.
Evidentemente, este problema es muy serio en los
sistemas de seguridad importantes, donde un defecto o una fallo
puede provocar incluso daños a personas afectadas por un defecto de
este tipo.
Una forma de comprobar este tipo de productos es
controlar el diseño lógico antes de la fabricación de un
dispositivo, a través del control de un modelo simbólico. La
técnica se ha revelado muy eficaz para el análisis y la
comprobación de sistemas de hardware. Sin embargo, no se ha aclarado
si el control de un modelo es un instrumento eficaz para otros
tipos de sistemas concurrentes, como por ejemplo los sistemas de
software.
Una razón por la cual el control de un modelo
simbólico puede no ser tan eficaz es que los sistemas de software
suelen ser más grandes y suelen estar estructurados de forma menos
regular que un hardware. Por ejemplo, muchos de los resultados que
se han destacado por comprobar grandes sistemas de hardware tienen
estructuras lineares, tales como en pila o pipeline, mediante los
cuales se ha observado que el tamaño de la relación de transición,
cuando se representa como un ROBDD, Diagrama de Decisión Binario
Ordenado Reducido, aumenta de manera lineal al tamaño del
sistema.
Otra aproximación a este tema se describe en la
patente US n° 5,465,216 donde se describe un método de verificación
de diseño automática. El método descrito sustancialmente acepta el
hecho de que la verificación formal sufre una deficiencia en el
"problema de explosión de estado", y además concluye que la
verificación formal de sistemas de grandes dimensiones está más
allá de la capacidad de las actuales técnicas de verificación
formal. Por lo tanto, la patente anteriormente mencionada describe
una forma de 1 descomponer y reducir el modelo de sistema en lugar
de enfrentarse al método de verificación. Como consecuencia, un
inconveniente del método descrito es que los resultados posibles
serán sólo parciales y no exhaustivos.
Una técnica más prometedora basada en los ROBDD
anteriormente mencionados, que también aprovecha la estructura del
sistema, se presenta en W. Lee et Al., Tearing based
automatic abstraction for CTL model checking, 1996 IEEE/ACM
International Conference on Computer-Aided Design,
págs 76-81, San Jose, CA, 1996 IEEE Comput. Soc.
Press. Esta técnica utiliza una relación de transición partida, y
se usa un "greedy" heurístico para seleccionar los
subconjuntos de la relación de transición. Para cada subconjunto
seleccionado, se efectúa una iteración completa de coma fija. Si la
fórmula no puede ser probada después de esta iteración, se
selecciona un subconjunto más grande. En el caso de una fórmula no
válida el algoritmo termina sólo cuando la relación de transición
completa ha sido construida (o bien se agota la memoria o el
tiempo). Un inconveniente de la técnica es que emplea una
estrategia greedy que incluye una iteración de coma fija para
cada una de las máquinas restantes. Si el sistema tiene sólo un
estado individual inicial, como es típico en los sistemas de
software incorporado, la estrategia greedy se reduce a la
selección de una máquina arbitraria, comportando así unas
iteraciones de coma fija extrañas.
La presente invención satisface la necesidad de
una verificación formal y un uso de un modelo de sistema no
reducido y proporciona la posibilidad de efectuar "pruebas de
choque" de modelos teóricos incluso en modelos de sistema
basados en estados a gran escala. Además, los análisis y las
verificaciones de dichos modelos pueden obtenerse en modelos no
reducidos a una mayor velocidad que con los instrumentos de
análisis y verificación de la técnica precedente.
Cuando el método de análisis de un modelo de
sistema basado en estados comprende un conjunto de máquinas
(MI,...., Mn), cada una de dichas máquinas comprendiendo al menos un
posible estado (pS1 Mi,...., pSkMi), cada máquina estando en uno de
sus estados incluidos en cualquier momento dado, y cuando el
comportamiento dinámico de dichas máquinas (MI,...,Mn) está
definido por transiciones predefinidas entre los estados de cada
máquina (MI,..,Mn) y por condiciones predefinidas (C) para las
transiciones mediante la selección de un conjunto objetivo de
estados (A) dentro un subconjunto de máquinas (MI), repitiendo las
fases de iteración hasta que se satisface un criterio de
terminación; dichas fases de iteración comprendiendo las fases
de:
(a) selección de un conjunto de estados (X) que
tienen transiciones en el conjunto objetivo (A), donde las
transiciones tienen unas condiciones (C), si las hay, que se
refieren sólo a máquinas dentro del conjunto de máquinas (MI),
(b) expansión del conjunto objetivo (A) mediante
la inclusión del conjunto en los estados (X) dentro del conjunto
objetivo (A),
(c) expansión del subconjunto de máquinas (MI)
mediante la inclusión de otro subconjunto de máquinas, pero
manteniendo el conjunto objetivo (A) construido en dicha fase de
expansión del conjunto objetivo (A),
es posible obtener un análisis muy
rápido de un modelo de sistema basado en
estados.
Así, según lo anterior, la invención se refiere a
una expansión dinámica de un conjunto dado de posibles estados A,
que está siendo examinado, en un modelo de sistema basado en
estados con los estados de la máquina o el conjunto de máquinas
examinadas en ese momento. Cuando los posibles estados A ya no
pueden expandirse más, es decir, todos los estados en las máquinas
examinadas son posibles, o cuando el resto de los estados son
posibles sólo si se satisfacen ciertas condiciones en otras
máquinas, el número de máquinas examinadas aumenta y el conjunto de
posibles estados es expandido. Este procedimiento iterativo puede
continuar hasta obtener ciertos resultados. Un resultado deseado
por ejemplo podría ser la verificación de que un estado dado de la
máquina puede ser llevado al conjunto de posibles estados iniciales
A.
Más específicamente, la invención proporciona un
resultado preciso cuando se efectúa el llamado control de
accesibilidad, es decir, cuando se comprueba que un conjunto
inicial de estados de la máquina puede ser llevado a ciertas
condiciones deseadas o indeseadas.
Los resultados experimentales han mostrado que
los denominados controles de accesibilidad típicos, según la
invención, pueden ser efectuados de manera considerablemente más
rápida con respecto a los métodos de la técnica precedente.
Además, según la invención, ahora es posible
analizar y verificar modelos de sistema que comprenden un número de
máquinas muy grande, debido a que no hay que determinar ningún
cálculo completo de todos los posibles vectores de estados
globales. Este aspecto importante aumenta la posibilidad de crear
sistemas basados en estados muy grandes, dado que ahora se puede
establecer y analizar completamente un modelo real de sistema antes
de comercializar el producto, eliminando así el riesgo de
introducir en el mercado productos con errores inherentes
ocultos.
Puesto que muchos segmentos de productos del
mercado suelen comprender una cantidad creciente de software
incorporado, y puesto que los productos incluidos en dichos
segmentos tienden a ser diferenciados cada vez más sólo por las
diferencias de prestaciones del software incorporado más que por el
hardware utilizado, la futura demanda de proyectos de software será
en general muy elevada con respecto al reconocimiento y eliminación
de fallos, así como a los plazo de desarrollo a corto plazo
anteriormente mencionados.
La invención satisface la necesidad de esta
tendencia, dado que la invención proporciona la posibilidad de
efectuar "pruebas de choque" de modelos teóricos incluso en
modelos de sistemas basados en estados a gran escala, y además se
puede lograr el análisis y la verificación de dichos modelos en
modelos no reducidos a una velocidad mucho mayor que con los
instrumentos de análisis y verificación de la técnica
precedente.
Se debe observar que el tipo de criterios de
control establecidos puede variar en gran medida dentro del campo
de la invención. Algunos ejemplos de esto podrían ser una
verificación, una indicación de interbloqueo potencial o, si fuera
necesario, una determinación específica y minuciosa de este
interbloqueo.
Otra característica ventajosa de la invención es
que la estructura de composición básica de la expansión paso a paso
del resultado de la búsqueda precedente permite reutilizar los
resultados del análisis obtenidos anteriormente. Así, aunque fuera
necesario un examen completo de todas las máquinas en un modelo de
sistema, se ganaría mucho, ya que no habría que efectuar cálculos
innecesarios durante el análisis en curso.
Gracias al reconocimiento de una monotonicidad
central, los resultados de la parte anteriormente calculada del
espacio de los estados pueden ser reutilizados en lugar de tener
que comenzar desde el principio cada vez que se añade una máquina
nueva, como en las técnicas conocidas.
Incluso cuando todas las máquinas son necesarias,
los experimentos han mostrado que el método de la invención que
incluye las máquinas de una en una, es decir aprovechando la
propiedad de la monotonicidad, es más rápido que efectuar la
denominada iteración de coma fija tradicional usando una relación
de transición partida y la cuantificación de variable temprana.
En las situaciones en las que un modelo de
sistema es analizado para comprobar la accesibilidad con respecto a
una gran secuencia de conjuntos objetivos, (AI),..., (An), puede
ser provechoso que los últimos problemas de accesibilidad
reutilicen los resultados ya calculados de los problemas
precedentes. En particular, en la expansión precedente del conjunto
objetivo (Ai) puede realizarse una terminación positiva temprana en
cualquier fase, donde la expansión actual del conjunto objetivo
(Ai) contenga completamente un conjunto objetivo precedente (Aj)
(j<i) para el cual ya se haya obtenido un resultado
positivo.
Se debe destacar que la invención no tiene
limites en lo que se refiere a la manera de definir los
"componentes" del sistema. La invención por ejemplo no está
limitada a los modelos de sistema simples llamados de estados
planos. Según la invención, un sistema puede ser definido por
ejemplo como un sistema de eventos de estados jerárquicos que
comprende máquinas jerárquicas y/o estados jerárquicos. Teniendo
esto presente, la invención preferiblemente es efectuada de manera
ventajosa en un modelo de sistemas planos, lo que significa que los
sistemas jerárquicos deberán ser transformados preferiblemente en
modelos planos antes de iniciar un análisis según la invención.
Según la invención, los estados en un modelo de
sistema pueden comprender, por ejemplo, observaciones discretas,
valores de variables de programación o registros o bloqueos de un
circuito secuencial, observaciones de funciones continuas y en
función del tiempo como por ejemplo temperatura, tiempo, velocidad,
altitud, posición. Además, como se ha indicado anteriormente, los
estados pueden ser en sí mismos modelos de sistema proporcionando
los llamados modelos de sistemas jerárquicos.
Las dependencias se derivan de las condiciones de
las transiciones en otras máquinas en el modelo del sistema.
Las condiciones de las transiciones son
condiciones del estado actual de otras máquinas en el modero del
sistema o bien condiciones del estado actual del entorno del modelo
del sistema.
Además, debe observarse que las variaciones de
los criterios de expansión o de las condiciones de terminación
pueden ser aplicables en el ámbito de la invención.
Cuando la fase de expansión (MI) con al menos un
subconjunto de máquinas (MI,...,Mn) comprende una expansión de (MI)
con al menos un subconjunto de máquinas del cual depende el
precedente (MI), se obtiene una expansión muy provechosa de MI.
La invención efectúa un análisis de un modelo de
sistema dado incorporando sólo las máquinas necesarias para el
objeto en cada momento, es decir sólo las máquinas de las que
dependen las transiciones evaluadas en cada momento.
Así, según una forma de realización muy preferida
de la invención, debería efectuarse la expansión de la MI
actualmente examinada con máquinas fuera de MI, teniendo en cuenta
que las máquinas que no tienen dependencias en el conjunto de
máquinas MI no expandido no proporcionarán en este momento
información adicional. Por lo tanto, según la forma de realización
preferida de la invención anteriormente mencionada, la expansión del
conjunto de máquinas MI examinado es optimizada sólo con las
máquinas inmediatamente necesarias. Puesto que se pueden realizar
muchos análisis de aplicaciones de la vida real sin la evaluación
de una notable cantidad de máquinas en un modelo de sistema, se
puede obtener un método de análisis extremadamente valioso.
Se apreciará que los análisis de modelos de
sistema a gran escala se beneficiarán aún más de esta importante
característica, gracias a que el espacio estimado necesario del
modelo de sistema puede ser reducido considerablemente y se puede
evitar un gran número de evaluaciones.
Un aspecto importante de la expansión dinámica en
curso anteriormente mencionada es que, al analizar modelos de
sistema a gran escala, únicamente puede obtenerse un resultado
utilizable al considerar las dependencias, como se ha descrito
anteriormente. Los ensayos piloto han mostrado de hecho que las
verificaciones casi imposibles con los sistemas de la técnica
precedente pueden ser ahora efectuados usando modestos recursos en
un PC estándar.
Otro aspecto importante de la invención es que
las dificultades para analizar modelos de sistema reducidos basados
en estados pueden ser eliminadas o reducidas de forma considerable,
debido a que la invención puede operar con modelos de sistema no
reducidos. Es preciso destacar que la invención puede ser
considerada como un modelo de sistema dinámicamente reducido, donde
sólo las máquinas del modelo de sistema absolutamente necesarias
son determinadas y examinadas de forma dinámica. Así, la invención
se beneficia del comportamiento general empíricamente demostrado de
los modelos de sistema basados en estados, es decir, que los
posibles análisis o verificaciones de la actividad real afectarán
sólo a parte de todas las máquinas del modelo de sistema.
Básicamente, es preciso destacar que las
transiciones entre los estados de la máquina en una máquina dada
están limitadas sólo por las dependencias asociadas con
transiciones específicas. Por lo tanto, el presente método según la
invención requiere que una transición sin dependencias pueda ser
activada por un evento en cualquier momento.
Es evidente que, si efectivamente existen las
condiciones de los eventos anteriormente mencionados, se deberían
incorporar en el modelo de sistema, si fuera necesario.
La provechosa forma de realización de la
invención anteriormente mencionada se beneficia de la estructura de
un modelo de sistema basado en estados, puesto que considera el
hecho de que las transiciones están caracterizadas sustancialmente
de dos modos diversos. Algunas transiciones pueden ser activadas de
manera incondicionada, sólo pudiendo ser dependientes de ciertos
eventos conocidos y siempre posibles, mientras que las otras
transiciones están ligadas por ciertas condiciones o dependencias a
otras máquinas.
En consecuencia, según la forma de realización
anteriormente mencionada, la invención se refiere a una expansión
dinámica de un conjunto dado de posibles estados A, que está siendo
examinado, en un modelo de sistema basado en estados con los
estados de la máquina o conjunto de máquinas examinada en ese
momento. Cuando los posibles estados A ya no pueden ser expandidos,
es decir, cuando todos los estados de las máquinas examinadas son
posibles, o cuando el resto de los estados son posibles sólo si se
cumplen ciertas condiciones en otras máquinas, el número de máquinas
examinadas es aumentado y el conjunto de estados posibles es
expandido. Según la presente forma de realización es preciso
destacar que la expansión se refiere sólo a las máquinas o a
algunas máquinas que presentan algún tipo de relevancia con
respecto a la máquina examinada en cuestión, es decir, si tienen
dependencias con respecto a las transiciones de la máquina que se
está examinando en ese momento. Este procedimiento reiterativo
puede continuar hasta que se obtenga un resultado determinado. Un
resultado deseado por ejemplo podría ser una verificación de que un
dado estado de una máquina puede ser llevado al conjunto de
posibles estados A.
Es evidente que la forma de realización preferida
anteriormente mencionada puede reducir de forma considerable la
duración de las iteraciones, dado que el método descuida, por así
decirlo, de forma dinámica la parte del modelo de sistema que no
comprende información relevante para las transiciones y/o las
máquinas examinadas en ese momento.
La presente invención proporciona una técnica que
mejora de forma considerable el rendimiento de, por ejemplo, el
control del modelo simbólico en sistemas reactivos incorporados
modelados usando un modelo de estados/eventos u otros modelos
basados en estados como por ejemplo los gráficos de estados.
La invención mejora de este modo la conveniencia
del empleo de modelos basados en estados, por ejemplo la parte del
control de sistemas reactivos incorporados, incluyendo sistemas
pequeños, como teléfonos celulares, aparatos de alta fidelidad y
controladores de velocidad automáticos para automóviles, así como
sistemas de grandes dimensiones, como por ejemplo simuladores de
trenes, sistemas de control de vuelo, protocolos de telefonía y
comunicación. El método según la invención puede ser usado, por lo
tanto, en instrumentos comerciales para ayudar al desarrollo de
reactivos de software incorporados, permitiendo que el diseñador
construya un modelo basado en estados y lo analice o por simulación
o efectuando un control de consistencia. El instrumento genera
automáticamente el código para el hardware del sistema incorporado.
El control de consistencia es de hecho un instrumento de
verificación que controla una gama de propiedades que todo modelo
basado en estados debería tener. Algunos controles deben pasar por
el código generado para ser correctos, por ejemplo, es crucial que
el modelo sea determinista. Otros controles son emitidos como
advertencias que podrían ser errores de diseño, como por ejemplo
transiciones que no deben ser nunca activadas.
Los modelos basados en estados pueden ser
extremadamente grandes. Y, a diferencia del control tradicional de
los modelos, el número de controles es lineal al menos respecto al
tamaño del modelo. La presente invención recoge los resultados de
modelos con hasta 1421 máquinas de estados concurrentes, e incluso
se pueden tratar fácilmente sistemas más grandes. Para sistemas de
este tamaño, las técnicas tradicionales de control de los modelos
simbólicos fallan, incluso usando una relación de transición
partida y una iteración en retroceso.
La presente invención usa una técnica de
composición que inicialmente considera sólo una pocas máquinas para
determinar si se cumple la tarea de verificación y, si es
necesario, aumenta gradualmente el número de máquinas consideradas.
Las máquinas consideradas pueden ventajosamente ser determinadas
usando un análisis de dependencia de la estructura del sistema.
Se han verificado varios modelos basados en
estados de grandes dimensiones con aplicaciones industriales, e
incluso el modelo anteriormente mencionado con 1421 máquinas
concurrentes puede ser verificado con recursos modestos. En
comparación con los instrumentos de análisis conocidos, los
resultados mejoran en la eficacia del control de los ejemplos más
pequeños y aumentan drásticamente el tamaño de los sistemas que
pueden ser verificados.
Cuando el análisis termina de forma negativa,
después de dicha fase de expansión del conjunto objetivo (A) con un
conjunto de estados que pueden ser levados al conjunto objetivo (A)
precedente independientemente de las máquinas no incluidas en (MI),
si ninguna de las máquinas en (MI) depende de máquinas externas a
(MI), se obtiene una estimación válida del comportamiento del
sistema, puesto que se ha proporcionado el método según la
invención, ya que, cuando se termina, si ninguna de las máquinas en
MI es dependiente de máquinas externas a MI, se puede probar
evidentemente que los criterios de la prueba no pueden ser
alcanzados. Por lo tanto, los diseñadores de sistemas basados en
estados incluso a una escala muy grande tienen la posibilidad de
prever problemas potenciales durante el funcionamiento.
Se debe tener en cuenta que la terminación
negativa, naturalmente, será absolutamente necesaria en muchas
aplicaciones, puesto que una indicación negativa exacta tendrá a
menudo un gran valor. En muchos tipos de análisis esta indicación
negativa es en realidad lo que el usuario busca. Por lo tanto, se
comprenderá que la terminación automática negativa en sí misma será
de gran importancia, y el método de la invención será mucho más
eficaz y sencillo para el usuario cuando se incorpora un tipo de
terminación automática al método cuando son inútiles otras
iteraciones adicionales. Sin embargo se debe destacar que se pueden
usar otros criterios de terminación óptimos distintos a éste.
Por otra parte, la invención tiene la posibilidad
de proporcionar un conocimiento exacto cuando se trata del control
positivo de los criterios de prueba que representan estados o
combinaciones de estados no deseados. Por lo tanto, si el método
según la invención prueba que un cierto estado o una combinación de
estados no pueden ser obtenidos en ciertas condiciones, se puede
considerar evidentemente que esta situación no ocurrirá en una
situación real, aunque la invención utilice de hecho sólo una parte
del modelo de sistema durante la situación de prueba dinámica. Esta
característica es muy importante cuando se tratan un amplio
espectro de aplicaciones del procedimiento donde un defecto, es
decir un estado no deseado, puede causar un daño o confusión
grave.
Por lo tanto debe destacarse que una terminación
negativa, así como una terminación positiva del análisis según la
invención, puede ser determinada con certeza, lo que supone una
característica extremadamente útil y valiosa cuando se efectúan
pruebas de los modelos de sistema. La invención proporciona a la
vez una gran velocidad de aplicación y unos resultados precisos y
fiables.
La información dada por la terminación positiva o
negativa puede, por lo tanto, ser adaptada para representar
cualquier condición de prueba.
Otro aspecto de la presente forma de realización
de la invención es que los criterios óptimos de terminación pueden
ser de gran importancia en un gran número de aplicaciones, gracias
a que las iteraciones no necesarias deberían ser evitadas, si es
posible. Los criterios de parada positivos y negativos
anteriormente mencionados aseguran que se calculan todas las
iteraciones, pero no más de las necesarias, con respecto a un
análisis de accesibilidad. Un experto en la técnica será capaz de
adaptar el método de la invención a otros objetivos de análisis
deseados.
Cuando una indicación visual o de audio es
proporcionada a un usuario, si ninguna de las máquinas en (MI)
dependen de máquinas externas a (MI), después de dicha fase de
expansión del conjunto objetivo (A) con un conjunto de estados que
pueden ser llevados al conjunto objetivo precedente (A)
independientemente de las máquinas no incluidas en (MI), se obtiene
un entorno conveniente de la información proporcionada a un
usuario.
Se debe destacar que una interfaz sencilla para
el usuario es de mayor importancia incluso cuando se espera un
procedimiento rápido interactivo de análisis. No sólo puede ser
acelerado el procedimiento de análisis de un modelo de sistema
dado, sino que todo el procedimiento de diseño de un modelo de
sistema basado en estados puede ser reducido considerablemente.
Cuando el análisis es terminado a petición del
usuario, se obtiene otra interfaz provechosa para el usuario. Este
tipo de interfaz puede por ejemplo ser provechosa cuando se tratan
sistemas a gran escala. De nuevo, según se ha mencionado arriba, se
debe destacar que la necesidad de una interfaz sencilla para el
usuario aumenta con la capacidad del método de análisis.
Cuando las dependencias (D) están representadas
como un gráfico dirigido, se obtiene una forma de realización
adicional provechosa.
Una representación en forma de un gráfico
orientado, que en sí mismo es una estructura de datos bien conocida
para representar las dependencias entre objetos arbitrarios, es un
enfoque muy conveniente y óptimo que se puede utilizar para un
amplio espectro de aplicaciones de análisis.
Cuando los crecientes conjuntos de máquinas (MI)
son determinados por un recorrido en anchura transversal del
gráfico orientado que representa las dependencias, se obtiene una
forma de realización provechosa adicional, ya que lleva a una
dependencia mínima cerrada MI, y por tanto a una rápida
terminación.
Esto ocurre debido a que incluye sólo las
máquinas de las que MI es inmediatamente dependiente.
Además este método se puede calcular de forma muy
eficaz.
Cuando los conjuntos de estados de la máquina
están representados en forma de Diagramas de Decisión Binaria
Ordenados Reducidos (ROBDD) y las operaciones sobre éstos son
efectuadas como operaciones eficaces en los Diagramas de Decisión
Binaria Ordenados Reducidos (ROBDD), se obtiene una forma de
realización provechosa adicional según la invención.
Así, se pueden obtener operaciones eficaces de
cálculo de imágenes de una relación de transición en un conjunto de
estados. Se debe destacar que un cálculo de imágenes de una
relación de transición requiere que la relación de transición esté
representada como un ROBDD individual, lo cual puede a veces causar
problemas debido al gran tamaño de representación.
En estos casos la relación de transición puede
ser representada de forma más eficaz como una disyunción o
conjunción de relaciones más pequeñas llamada relación de
transición partida.
Cuando la relación de transición se representa
como transiciones partidas de Diagramas de Decisión Binaria
Ordenados Reducidos (ROBDD), y el conjunto de estados (A) son
dinámicamente calculados por una iteración de coma fija
reiterativa, se obtiene un funcionamiento sencillo y eficaz de la
invención implementado por técnicas bien conocidas en la
técnica.
Cuando el comportamiento dinámico de dichas
máquinas (MI,.,Mn) está definido por transiciones predefinidas
entre dichos estados de cada máquina (MI,.,Mn) y por dependencias
(D) entre dichas máquinas (M2,..., Mn), para cada máquina (MI,....,
Mi,..,Mn), se inicia un subconjunto de máquinas (MI) para incluir
la máquina actualmente analizada (Mi), se inicia un conjunto (Ai) de
estados vivos (Ai), dichos estados vivos siendo los estados de la
máquina actualmente analizada (Mi) que, independientemente de otras
máquinas, puede cambiar el estado a otros estados posibles (pSIMi,
...,pSkMi) de dicha máquina, las siguientes fases son iniciadas
hasta que el análisis es terminado o, si (MI) comprende todas las
máquinas (MI,...,Mn), el conjunto de estados vivos (Ai) es
expandido con un conjunto de estados que a través de las
transiciones puede ser llevado al conjunto precedente de estados
vivos (Ai) independientemente de las máquinas no incluidas en (MI),
y/o un conjunto de estados que a través de transiciones puede ser
llevado a cambiar estado de (Mi) independientemente de las máquinas
no incluidas en (MI), el análisis es terminado de forma positiva si
(Ai) comprende todos los estados posibles de la máquina en dicha
máquina (Mi), de lo contrario (MI) es expandido con al menos un
subconjunto de máquinas, se obtiene una forma de realización
provechosa adicional.
Como se entenderá, la presente forma de
realización de la invención dará la posibilidad de detectar todos
los estados globales, es decir un conjunto de estados de la
máquina, para cada máquina que puede tener la posibilidad de
cambiar de estados bajo ciertas condiciones posibles. Estos estados
serán considerados como estados vivos según la presente
terminología.
Es además evidente que la determinación de todos
los estados vivos de cada máquina puede dar una indicación de las
posibles trampas inherentes, ya que un estado de la máquina para el
cual una máquina dada no tiene transiciones posibles a otros
estados puede ser un estado potencialmente peligroso, o los
llamados estados potencialmente muertos.
Sin embargo se debería destacar que un estado
potencialmente muerto no representa necesariamente un estado
indeseado o ilegal. El estado o los estados determinados deben, de
hecho, ser críticos sólo si pueden ser alcanzados mediante
condiciones del sistema iniciales conocidas o dadas.
Cuando la invención comprende además las fases de
cada máquina (Mi) con los estados potencialmente muertos de la
máquina (Adi), se inicia un conjunto inicial de estados de la
máquina (F) de dicha máquina (MI, ..,Mn), se inicia un conjunto
objetivo de estados de la máquina (Adi) que representa los estados
potencialmente muertos de las máquinas (MI), y se repiten las fases
siguientes hasta que se termina el análisis y/o si el subconjunto de
máquinas (MI) comprende todas las máquinas (MI,..,Mn), se expande
el conjunto objetivo (Adi) con un conjunto de estados que a través
de transiciones pueden ser llevados al conjunto objetivo precedente
(Adi) independientemente de las máquinas no incluidas en (MI), si
(Adi) comprende al menos uno de los estados en el conjunto inicial
de estados (F) termina entonces de forma positiva, de lo contrario
se expande el subconjunto de las máquinas (MI) con al menos un
subconjunto de las máquinas (MI,.,Mn), se obtiene un mayor
conocimiento importante sobre el modelo del sistema examinado.
El significado de una terminación positiva en la
anterior forma de realización de la invención por lo tanto no es
particularmente positivo, ya que ahora se ha establecido que se
puede alcanzar efectivamente el estado examinado o la combinación de
estados muertos potenciales. Por lo tanto, se ha determinado un
interbloqueo, y la máquina Mi que comprende el estado o los estados
determinados no será capaz de cambiar de estado, independientemente
de lo que suceda en el sistema circundante.
Cuando el método de la invención comprende la
determinación para al menos una máquina (Mi) de al menos uno,
preferiblemente todos, de los estados muertos potenciales de la
máquina (Adi) el cual, cuando dicha máquina (Mi) está en cualquiera
de dichos estados (Adi) de la máquina, independientemente de los
posibles eventos externos, permanecerá en el mismo estado de la
máquina (Adi), para cada máquina (Mi) con estados muertos
potenciales de la máquina (Adi) se inicia un conjunto inicial de
estados de la máquina (F) de dichas máquinas (MI,...,Mn), se inicia
un conjunto objetivo de estados de la máquina (Adi) que representa
los estados muertos potenciales de las máquinas (MI), y se repiten
las siguientes fases hasta que el análisis es terminado y/o, si el
subconjunto de máquinas (MI) comprende todas las máquinas
(MI,.,Mn), se expande el conjunto objetivo (Adi) con un conjunto de
estados que a través de transiciones puede ser llevado al conjunto
objetivo precedente (Adi) independientemente de las máquinas no
incluidas en (MI), si (Adi) comprende al menos uno de los estados
en el conjunto inicial de estados (F) termina entonces de forma
positiva, de lo contrario se expande el subconjunto de máquinas
(MI) con al menos un subconjunto de las máquinas (MI,.,Mn), se
obtiene una forma de realización particularmente preferida de la
invención, ya que se ha detectado un interbloqueo real.
La invención proporciona un método convincente
para detectar un tipo de fallo muy fastidioso, ya que un
interbloqueo podría provocar que un sistema, como por ejemplo un
sistema basado en estados, entre en un bucle sin fin, provocando
estrés y condiciones de trabajo inoportunas para el usuario, en el
mejor de los casos.
Es evidente que la determinación de interbloqueos
alcanzables en un modelo de sistema proporciona una información
extremadamente valiosa al diseñador del sistema, ya que un fallo de
interbloqueo no detectado puede provocar un daño serio si fuera
detectado o experimentado por un usuario de un producto introducido
en el mercado. Además, se debe destacar que una rápida detección de
interbloqueos, así como otros criterios de prueba, como el análisis
de verificación anteriormente mencionado, proporcionará una
herramienta de trabajo impresionante en un mercado que es
extremadamente sensible a evitar retrasos y que depende de fases de
diseño de corto plazo.
La presente invención está ilustrada mediante
varios ejemplos, que no representan una limitación, en las figuras
de los dibujos incluidos, en los que
Las Figs. 1 - 4 ilustran las máquinas básicas en
una forma de realización de la invención,
La Fig. 5 ilustra las combinaciones de las
máquinas con las dependencias mutuas entre las máquinas de las
Figs. 2-4,
Las Figs. 6 - 8 ilustran un primer ejemplo de una
forma de realización de la invención,
Las Figs. 9 - 10 ilustran un segundo ejemplo de
una forma de realización de la invención,
Las Figs. 11 y 12 ilustran un tercer ejemplo de
una forma de realización de la invención,
La Fig. 13 ilustra un método de determinación de
un interbloqueo en un modelo de sistema según una forma de
realización de la invención,
Las Figs. 14 - 20 ilustran cómo se obtiene un
modelo de sistema de estado expandido mediante una transformación
de un modelo de sistema jerárquico,
Las Figs. 21 - 24 ilustran las propiedades
matemáticas básicas de la invención.
La Fig. 25 ilustra la eliminación de señales,
antes de la eliminación, y
La Fig. 26 ilustra la eliminación de señales,
después de la eliminación.
La primera parte de la descripción ilustra, a
continuación, las características básicas de la invención mediante
términos sencillos y las figuras incluidas. Los principios y
características básicas se ilustrarán por lo tanto mediante el
modelo de sistema de un tren de juguete.
La siguiente segunda parte tratará de los
antecedentes teóricos de la invención con mayor detalle. La segunda
parte detallada está destinada a un ejemplo de la invención
descrito como sistema de eventos de estados. Sin embargo se debe
resaltar que la invención puede ser utilizada en cualquier sistema
basado en estados.
En referencia ahora a la Fig. 1, se describe un
pequeño ejemplo para ilustrar los aspectos clave de la técnica.
El ejemplo consiste en un tren de juguete, una
barrera y una señal. El control del tren se describirá como un
sistema de control con tres sistemas de estados paralelos. En la
Fig. 1 se muestra un tren 1, con tres botones 2, 3, 4 que pueden
verse afectados desde el exterior de cuatro formas diferentes. Un
botón 2 está colocado encima del tren. Si se aprieta, el sistema
considerará la orden como "encima". Se han colocado otros dos
botones 3, 4 debajo del tren. Pueden ser activados de forma
individual o como una unidad (el tren está inspirado en un tren
DUPLO accionado con pilas de LEGO A/S.) Estando en la misma
dirección que el tren, cuando se pulsa el botón 3 de la izquierda,
el sistema considerará la orden como "izquierda". Estando en
la misma posición, si se pulsa el botón de la derecha 4, el sistema
considerará la orden como "derecha". Si ambos botones 3, 4 son
pulsados al mismo tiempo, esta orden será considerada como
"ambos".
Como se muestra en la Figura 2, el tren 1 tiene
tres estados de funcionamiento: STOP, abr. ST; adelante, FW; y
atrás BW. Estos estados pueden ser cambiados, como muestran las
flechas marcadas con to, le, ri, ri, le, to bo y to bo. Se puede
considerar que las flechas representan las transiciones, y to,
le,...., etc. representan eventos que pueden desencadenar una
activación de la transición conectada de tal manera que el tren 1
cambia de estado.
La barrera está mostrada en la Fig. 3 con dos
posiciones o estados posibles: arriba, con la señal UP, o abajo,
DO. Estos dos estados pueden ser cambiados mediante la orden o los
llamados eventos "up" o "do".
La señal está mostrada en la Fig. 4 con dos
estados: stop, con la señal R, o adelante, G. Estos dos estados
pueden ser cambiados por los eventos "on" y "off".
En conjunto, todo el sistema consiste en el tren
como se muestra en la Figura 2, en la barrera como se muestra en la
Figura 3 y en la señal como se muestra en la Figura 4, conectados
entre sí. Los tres sistemas de estados 11, 12 y 13 son mutuamente
dependientes en la Fig. 5, ya que el tren puede sólo ir de "stop,
ST" a "adelante, FW" o "atrás, BW" si la barrera 12
está hacia abajo, DO. Por lo tanto, las transiciones
correspondientes se muestran como to DO, le (DO) y ri DO, donde to
DO indica que la transición puede activarse si se produce el evento
to, es decir si el botón superior 2 es activado, con la condición
de que la barrera 12 esté en el estado DO, abajo. La referencia de
la transición en el sistema del tren 11 respecto al estado DO puede
considerarse una condición o un requisito de seguridad. De forma
similar, la señal 13 puede cambiar sólo si la barrera está en un
estado aceptable "UP" o "DO", respectiva-
mente.
mente.
El presente ejemplo descrito arriba está mostrado
en la Fig. 5.
El objetivo del presente análisis es descubrir si
un sistema consistente en un cierto número de sistemas de estados
puede ser llevado desde su estado inicial a un estado objetivo dado
(deseado o no deseado).
En el caso del Sistema DUPLO, por ejemplo, podría
ser interesante descubrir si se podría hacer que el tren vaya hacia
adelante. Una cuestión de este tipo se puede responder observando
más de cerca los estados globales de todo el sistema. Para el
Sistema DUPLO hay un total de 12 estados globales que consisten en
las combinaciones disponibles de los tres estados locales del tren,
los dos estados locales de la barrera y los dos estados de la
señal. El estado "inicial" se ha establecido de tal manera que
sea (parada, ST; arriba, UP; rojo, R) y la cuestión es si seremos
capaces de cambiar el sistema a otro estado como (FW,?,?) ("?"
indica que los estados de la barrera y de la señal son
irrelevantes.)
Un análisis de los estados globales revela que la
respuesta a la cuestión es SÍ, demostrada por la siguiente
secuencia de estados globales:
(ST,UP, R) - do \rightarrow (la barrera se
baja)
(ST, DO, R) - to \rightarrow (el tren sale)
(FW, DO, R)
que es un estado objetivo deseado.
El método tradicional usado anteriormente, sin
embargo, no es el ideal, ya que generalmente requiere una
construcción y una búsqueda de los estados globales que aumenta
exponencialmente con el número de sistemas de estados: si hay 100
sistemas con dos estados cada uno, el espacio de estados globales
tendrá 2100 estados.
El método según la invención está basado en una
técnica composicional y gradual. La técnica es composicional porque
el análisis está basado en un número limitado de estados, al
principio, e incluye el uso de máquinas adicionales sólo cuando es
absolutamente necesario. Éstas son incluidas después de un análisis
de dependencia precalculado entre las máquinas de estado.
En el ejemplo del tren DUPLO, se examina si todo
el sistema puede ser llevado a un estado que permita que el tren se
mueva hacia adelante. Evidentemente esta capacidad depende del tren
y éste es el motivo por el que nuestro análisis comienza con el
tren.
En referencia ahora a la Fig. 6, el estado
examinado inicial puede ser considerado como un conjunto objetivo
80 que se muestra en la Fig. 6, como (FW; ?; ?).
Se puede observar además que un cambio de estado
de "BW" a "FW" está condicionado sólo por el estado
"BW" y no por el estado de la barrera, ni por el estado de la
señal. El conjunto objetivo 80 puede por tanto ser expandido a 81 y
comprender BW y FW, como se muestra en la Figura 7.
Sin embargo, todavía no puede concluirse si el
tren puede ser llevado de "ST" a "FW" o "BW".
Además, se observa que las transiciones del tren dependen solamente
de la barrera 12, de la condición "DO", por lo tanto el
análisis continúa después de haber incluido la barrera 12, como se
muestra en la Figura 8.
Basándonos en el análisis ya efectuado, es
suficiente sólo con llevar el sistema a uno de los estados objetivo
(FW, ?,?) o (BW, ?,?), ya que el tren solo, independientemente de
la barrera 12 y de la señal 13 de la Fig. 5, podrá llevar
posteriormente el tren al estado objetivo deseado. Esto naturalmente
con la condición fundamental de que todos los eventos son posibles
en cualquier momento dado. Es obvio que los estados globales del
sistema (ST, DO, ?) - independientemente de la señal 13 de la Fig.
5, pueden ser llevados a los estados (FW,DO, ?) y (RW, DO, ?) y,
por lo tanto, al nuevo estado objetivo. Esto significa también que
todos los estados disponibles en el sistema (ST, UP, ?) pueden ser
colocados en los estados objetivo deseados como (ST, UP, ?) - do
\rightarrow (ST, DO,?) independientemente de la señal 13 de la
Fig. 5, como se indica en la Fig. 8 por el conjunto objetivo
expandido 82.
Los estados iniciales están ahora incluidos en el
conjunto objetivo 82, y FW puede ser considerado alcanzable, cuando
el estado inicial del sistema de estados globales (ST, UP, R) se
encuentra en el conjunto objetivo, por lo tanto podemos concluir
que se puede lograr que el tren vaya hacia adelante, sin incluir el
sistema de estados de la señal.
Mediante la sencilla forma de realización de la
invención descrita arriba, se ha demostrado de este modo que un
análisis completo, según una cuestión específica, es un estado dado
en la máquina 11 alcanzable o no alcanzable, sin incluir todas las
máquinas 11, 12 y 13, y sin la necesidad de calcular todos los
estados globales posibles.
Asimismo, debería resaltarse que la señal 13 no
ha sido examinada, a pesar de que tiene dependencias relacionadas
con la barrera 12, es decir on(DO) y off(UP).
Es evidente que este enfoque composicional tendrá
un beneficio considerable, si un modelo de sistema comprende un
número muy elevado de máquinas y estados de las máquinas.
Haciendo ahora referencia a la Fig. 9, se
describe otro ejemplo de una forma de realización de la invención.
El modelo de sistema es sustancialmente el mismo que el sistema de
la Fig. 5, pero ahora con dependencias o requisitos de seguridad
modificados en el tren 14 y en la señal 16.
La variante del ejemplo precedente del DUPLO
prevé por lo tanto una versión modificada del tren, ya que el tren
14 tiene ahora una transición ri(UP) de ST a BW. Se puede
ahora considerar que el cambio de los estados de "ST" a
"BW" por alguna razón está condicionado porque la barrera 15
esté en el estado "UP" (dado por la nueva condición
"UP"). De nuevo, el método de la invención comprobará si el
modelo de sistema puede lograr que el tren vaya hacia adelante, FW
desde el estado inicial del sistema de estados globales (ST, UP,
R).
Como en el ejemplo anterior, el análisis comienza
con el tren solo, ya que el estado objetivo depende evidentemente
de este componente solo.
Al igual que antes, vemos que todos los estados
del sistema (BW, ?,?)- independientemente de la barrera 15 y de la
señal 16- pueden ser llevados al estado objetivo global (FW,?,?),
es decir, el conjunto objetivo 83 de la Fig. 10. Un cambio de ST a
FW y un cambio de ST a BW depende obviamente de la barrera 15 ya
que el cambio a FW de ST depende de que la barrera esté abajo, DO,
y el cambio de BW de ST depende de que la barrera 15 esté arriba,
UP. Esto lleva a una dependencia semántica que siempre puede ser
satisfecha sin tener en cuenta el estado de la barrera 15, ya que
la barrera deberá estar en el estado UP o DO. Así el análisis dará
como resultado una expansión del conjunto objetivo 83 hasta el
conjunto objetivo 84. Esto significa que en esta situación se puede
lograr que el tren vaya hacia adelante sin incluir los sistemas de
la barrera o de la señal, ya que el conjunto objetivo 84 ahora
incluye el estado inicial deseado del sistema de estados globales
(ST, UP, R).
La expansión del conjunto objetivo en el ejemplo
anterior ha sido efectuado por lo tanto mediante un examen de la
"suma de dependencias" limitando las transiciones a los
estados FW y BW, evitando así la necesidad de incorporar las
máquinas 15 y 16.
Considerando ahora una tercera variante del
Sistema DUPLO original en la Fig. 11, donde el modelo del tren 17 y
de la señal 19 corresponden completamente al modelo del tren 11
descrito en la Fig. 5. La modificación ha sido ahora dirigida al
cambio de la barrera de "UP" a "DO", que está por alguna
razón condicionado porque el tren que esté en el estado "FW",
es decir la transición do(FW). El estado objetivo es siempre
el mismo: es posible lograr que el tren vaya hacia adelante, es
decir, es posible alcanzar el estado global (FW, ?;?) desde el
estado inicial (ST, UP, R)?
Como ocurre en el primer análisis, se inicia con
el tren solo con un conjunto objetivo 85 que comprende FW. De
nuevo, sólo es posible concluir de forma inmediata que el tren
puede alcanzar el estado objetivo desde el estado (BW,?, ?), si los
estados de la barrera 18 y de la señal 19 no han sido todavía
examinados. Para poder concluir si el tren 17 puede ser llevado de
un estado de "ST" a "FW" o a "BW", deberemos incluir
de nuevo la barrera 18 en el análisis, ya que todas las
transiciones a FW o BW desde ST dependen de que la barrera esté en
el estado DO.
Haciendo ahora referencia a la Fig. 12, una vez
incluida la barrera 18 y una expansión del conjunto objetivo al
conjunto objetivo 86, es ahora obvio que todos los estados de la
combinación (ST, DO, ?) pueden ser llevados al estado deseado
independientemente de la señal 19 de la Fig. 11. Sin embargo, el
estado (ST, UP, ?), que representa las condiciones de partida o
iniciales, no puede ser cambiado a (ST, DO, ?) en el conjunto
objetivo expandido 86, ya que las condiciones de la barrera 18, es
decir la transición do(FW), que afecta al tren "FW", no
han sido claramente satisfechas. Es obvio también que considerando
la señal 19 de la Fig. 11 no se resolverá este problema ni directa
ni indirectamente, ya que ninguno de los estados del tren 17 o de la
barrera 18 dependen de la señal. Se puede concluir, por lo tanto,
sin incluir la señal, que el estado objetivo no puede ser
alcanzado.
El método ilustrado arriba puede ser descrito
brevemente como sigue:
Dado: un cierto número de sistemas de máquinas
MI,...,Mk con los estados de partida s1,...,sk.
Cuestión: es posible que el sistema alcance un
estado objetivo dado.
- 1.
- Sea que A ilustra el sistema de estados globales que evidentemente es capaz de alcanzar el estado objetivo.
- 2.
- Se incluyen los sistemas directamente indicados en el estado objetivo (sean llamados I).
- 3.
- Se contabilizan todos los estados globales, independientemente de los sistemas aún no incluidos, que pueden alcanzar los estados en A. Estos estados se llaman BI* (A).
- 4.
- Si BI* (A) incluye el estado inicial global, el método se detiene aquí con SÍ.
- 5.
- Si los sistemas en 1 no se refieren a sistemas externos, el método se para aquí con un NO.
- 6.
- En el resto de los casos, los sistemas se agregan a 1 bajo las condiciones indicadas, y el estado objetivo A es sustituido por BI* (A) y el método es repetido desde la fase 3.
El método composicional puede ser usado para
otros objetivos distintos de un examen de acceso. Se puede mostrar
que es posible comprobar si en un modelo de sistema hay
interbloqueos. Un interbloqueo global en un sistema es un estado
global en el que el sistema no puede cambiar el estado de la
máquina, independientemente de cuál sea la orden o la acción. Un
interbloqueo podría producirse si el sistema alcanzara un estado en
el que no hubiera más transiciones de los estados de la máquina.
Puede también producirse si hay transiciones reales fuera de los
estados de la máquina locales simplemente porque estos estados
dependen de requisitos/condiciones que no han sido satisfechos.
Un término más refinado es un bloqueo local en el
que una o más máquinas no son capaces de cambiar de estado
independientemente de cómo cambien las otras máquinas sus estados.
Más precisamente, un estado global s es un interbloqueo local para
la máquina i e, independientemente de los eventos a los que el
sistema sea expuesto permanece en el mismo estado. El concepto está
ilustrado en la Fig. 13.
La Fig. 13 muestra también otra variación del
tren. El tren 21 ha sido conectado a una barrera 22. Las
transiciones hacia el estado "ST" del tren 21 dependen,
preferiblemente por fases, de que la barrera 22 está abajo, DO. La
barrera 22 puede, también por fases, cambiar de "UP" a
"DO" solo si el tren se ha detenido, es decir la transición
do(ST).
El estado global (FW, UP) es un interbloqueo
local para la barrera 22. Sin considerar el evento, la barrera 22
nunca podrá cambiar su estado a "DO". Esto se debe al hecho de
que la transición del estado "UP" al estado "DO" requiere
que el tren 21 esté en el estado "ST". Al mismo tiempo, todas
las transiciones hacia el estado "ST" dependen de que la
barrera esté en el estado "DO". Naturalmente, esto no puede
ocurrir hasta que el tren no esté en el estado "ST", y así
sucesivamente. En otras palabras: la barrera 22 tiene un
interbloqueo. El tren 21 no tiene un interbloqueo en este estado ya
que el tren puede cambiar entre el estado "FW" y "BW" con
las órdenes "ri" y "le". En consecuencia, también el
estado (BW, UP) es un interbloqueo local para la barrera.
Para beneficiarse de un método de prueba para
localizar cualquier interbloqueo local. Puesto que el método
comienza calculando los estados en la máquina i, que están
activos/vivos y por lo tanto no están provistos de interbloqueos.
Más precisamente, el estado global s está activo/vivo para la
máquina i si hay una secuencia de estados globales s1, s2,.,sk con
s=s1, lo cual indica que ciertos eventos hacen que el estado global
sj sea capaz de cambiar a sj+1 a través de una transición, mientras
que s1 y sk tienen también estados locales diferentes. En otras
palabras, hay una secuencia de transiciones de estados de manera
que la máquina i habrá cambiado de estado en cierto punto.
El método que se explica más abajo describirá
como pueden localizarse los estados globales que son activos/vivos
para una máquina M1. Estos estados de la máquina se denominan Ai.
Los conjuntos de estados que no se hallan en Ai constituyen
bloqueos potenciales para Mi. Son sólo bloqueos potenciales, ya que
podrían no ser accesibles desde el estado "inicial". Se puede
determinar si esto es posible usando el anterior método de análisis
composicional y gradual de sistemas de estados basado en el análisis
de dependencias.
Un método de prueba para calcular estados
activos/vivos para una máquina Mi según la invención.
Dado: un conjunto de máquinas de estados MI,....,
Mk, y, entre éstas, una máquina seleccionada Mi.
Cuestión: calcular los estados globales
vivos/activos para la máquina Mi.
- 1.
- Sea que A ilustra el conjunto desconocido de estados globales.
- 2.
- Inclusión de la primera máquina i. Luego, sea I el símbolo para el conjunto de máquinas examinadas, partiendo de I=(i).
- 3.
- Cálculo de todos los estados globales que, independientemente de las máquinas no incluidas hasta este momento, en una o más fases, son capaces de realizar una transición que cambia el estado de la máquina i o que cambia a un estado en A. El resultado es A_{Ii}*(A).
- 4.
- Si A_{Ii}*(A) comprende todos los estados globales, el examen termina aquí. (Esto significa que todos los estados están activos/vivos para la máquina Mi y por lo tanto no constituirán un bloqueo).
- 5.
- Si este no es el caso y con la condición de que las máquinas en I no se refieran a máquinas externas a I, el resultado es A_{Ii}*(A).
- 6.
- Si esto no fuera así, I se añade un cierto número de nuevas máquinas a ésta, las cuales están indicadas en las condiciones/requisitos para las máquinas de transiciones en I, A se asigna igual a A_{Ii}*(A) y el método es repetido desde el punto 3.
Para determinar si una máquina tiene un
interbloqueo "real", es decir un estado que sea un
interbloqueo y que además sea alcanzable, la primera fase consiste
en usar el método de prueba mencionado arriba para hallar los
estados Li que están activos/vivos para la máquina i. La siguiente
fase es la de descubrir si uno de los estados no incluido en este
conjunto es alcanzable. Cuando se combinan, aparece el siguiente
método.
Un método para localizar interbloqueos locales
alcanzables según la invención.
Dado: Un conjunto de máquinas de estado MI,
Mk.
Cuestión: una de las máquinas MI, Mk tiene un
interbloqueo local?
- 1.
- Usando el método para calcular el conjunto de estados vivos/activos, es posible determinar un conjunto para cada una de las máquinas; Ai Las fases 2, 3 y 4 deben ser repetidas para todas las máquinas.
- 2.
- Sea A el conjunto de estados globales que no están en Ai. Éstos son interbloqueos potenciales para la máquina Mi.
- 3.
- Usando el método para determinar la accesibilidad de un estado de destino dado, se puede determinar si el acceso para A es posible desde el estado de "partida". Si la respuesta es SÍ, la máquina tiene un bloqueo local alcanzable y se da la respuesta SÍ.
- 4.
- Si esto no ocurre, la respuesta es NO.
En el ejemplo anterior, los métodos tendrán la
siguiente secuencia. En primer lugar, la barrera es controlada para
comprobar la presencia de un interbloqueo local. La máquina con el
número 2, es decir la barrera, es la única inclusión hasta ahora, y
éste es el motivo por el que, mediante el segundo método, se puede
descubrir que L_{\{2\},2}*(\diameter) =
{(?, DO)}.
{(?, DO)}.
Ahora se incluye la máquina 1 y se descubre
que
L_{\{1,2\},2}*({?, DO)} = {{?,
DO),(ST,
UP)}.
Éste es el resultado final de estados
activos/vivos para la barrera. Esto significa que el número de
estados globales que no están vivos/activos para la barrera son
{(FW, UP),(BW, UP)}.
Ahora es el momento de descubrir si algunos de
éstos son alcanzables. Los dos son alcanzables a partir de unas
condiciones iniciales dadas, y la barrera 22 está por lo tanto
dotada de un interbloqueo local en ambos estados.
Los cálculos para el tren 21 serán diferentes. La
primera fase es la de incluir sólo el tren, y se descubre que los
estados vivos/activos son:
L_{\{2\},2}*
(\diameter) = {(ST,?) . (FW,?) .
(BW,?)}.
Esto incluye todos los estados y los cálculos dan
el resultado de que el tren no tiene interbloqueos.
Se calcula el conjunto L_{\{i\},1}*(A), como en
el caso con BI* (A), por iteraciones de coma fija bien conocidas en
la técnica.
Los modelos de sistema descritos arriba pueden
ser considerados como modelos de estados/eventos que son versiones
concurrentes de las máquinas Mealy, es decir, consisten en un
número fijo de máquinas de estados limitados concurrentes que
tienen parejas de eventos de entrada y acciones de salida asociadas
a las transiciones de las máquinas. El modelo es sincrónico: cada
evento de entrada tiene un efecto en todas las máquinas en fase de
bloqueo; la acción de salida total es la unión
multi-conjunto de las acciones de salida de las
máquinas individuales. Se consigue una mejor sincronización entre
las máquinas asociando un requisito de seguridad a las transiciones.
Los requisitos de seguridad son combinaciones Booleanas de
condiciones en los estados locales de las otras máquinas. De esta
manera la activación de transiciones en una máquina puede
realizarse basándose en el estado local de las otras máquinas. Si
una máquina no tiene una transición habilitada para un evento de
entrada particular, simplemente no realiza ningún cambio de
estado.
En referencia a las Figs. 1 a 12 es muy conocido
que los subconjuntos de un espacio de estados pueden ser
representados usando los Diagramas de Decisión Binaria Ordenados
Reducidos (ROBDD). Esto está descrito en R.E. Bryant,
"Graph-based algorithms for Boolean function
manipulation", IEEE Transactions on Computers, volumen 8, número
C-35, páginas 677-691, 1986.
Operaciones eficaces para evaluar el vacío y la
equivalencia de estos subconjuntos y para efectuar las operaciones
de los conjuntos de unión e intersección, son bien conocidas para
los ROBDD y están descritas en Bryant, supra. Además, en
Bryant se describen operaciones eficaces que calculan la imagen de
una relación de transición en un conjunto de estados. Un cálculo de
la imagen de una relación de transición requiere que la relación de
transición esté representada en forma de un ROBDD individual. Esto
a veces crea problemas debido al gran tamaño de la representación.
En estos casos la relación de transición puede ser representada de
forma más eficaz como una disyunción o conjunción de relaciones más
pequeñas, llamada relación de transición partida, como se explica
en J. R. Burch, E. M. Clarke, y D. E. Long, "Symbolic Model
Checking with Partitioned Transition Relations". In Proceedings
of 1991 Int. Conf. on VLSI, A. Halaas y P. B. Denyer (eds), agosto,
1991.
Muchos modelos de sistema basados en estados
pueden ser designados y descritos preferiblemente como los
denominados modelos de sistemas jerárquicos.
A continuación, se describirá una transformación
preferida de este tipo de modelos de sistema, ya que la invención
puede efectuarse preferiblemente en los llamados modelos de sistema
basados en estados planos.
Haciendo ahora referencia a la Fig. 14, se
describen las propiedades básicas de un modelo de sistema
jerárquico.
En la Fig. 14 los dos estados anteriores
"FW" y "BW" han sido sustituidos por un nuevo estado
individual y más abstracto "GO". El sistema de control
ilustrado en la Fig. 14 proporciona por lo tanto una descripción más
abstracta del comportamiento del tren, correspondiente a lo que
experimentaría una persona ligeramente miope, que no pueda
distinguir la diferencia entre la extremidad anterior y posterior
del tren.
Mientras, es posible mantener la descripción
original del tren 31 refinando el estado "GO" en forma de un
sistema de estado que contiene los estados exactos "FW' y
"BW'. Esto da como resultado la descripción jerárquica del tren
DUPLO, tal y como está ilustrado en la Fig. 15.
Aparte de la mejora del sistema de estados con
dos nuevos estados "FW" y "BW", las tres transiciones
originales del estado "GO" también han sido refinadas con
"FW" y "BW" respectivamente como estados resultantes. Por
último, la transición de la barrera 32 de "UP" a "DO"
tiene su estado mejorado en "FW".
Un sistema de estados que comprende un conjunto
de máquinas de estados MI,...,Mn.
Una máquina de estados M comprende un conjunto de
estados S1,...,Sk, junto con un número transiciones Si
\rightarrow Sj
La versión abstracta del tren DUPLO es un sistema
de estados con una máquina de estados individual, el tren 31, en el
que hay dos estados: "ST" y "GO" entre los cuales hay un
total de 5 transiciones, como se muestra en las Figs. 14 y 15.
Para que no haya confusión, se ha preferido
llamar a los sistemas de estados sin jerarquía, sistemas de estados
planos.
Un sistema de estados jerárquicos, HSys,
comprende un conjunto de máquinas jerárquicas HMI ...HMn. Las
máquinas de estados jerárquicas HM comprenden un cierto número de
estados jerárquicos HS1...HSk y un cierto número de transiciones
Hsi\rightarrowHSj entre ellos.
Un estado jerárquico HS puede ser primitivo o
bien un sistema de estados jerárquicos en sí mismo.
La versión jerárquica del tren DUPLO es un
sistema de estados jerárquicos con una máquina de estados 31
individual que presenta dos estados jerárquicos "ST" y
"GO" entre los cuales hay 5 transiciones. El estado "ST"
es primitivo, mientras que "GO" es en sí mismo un sistema de
estados jerárquicos con dos estados "FW" y "BW" entre los
cuales hay 2 transiciones. "FW" y "BW" son estados
primitivos.
Los estados jerárquicos y las máquinas de estados
son asignados a un cierto nivel dependiendo de su alcance en la
jerarquía. En la versión jerárquica del tren DUPLO, los estados
"ST" y "GO" están presentes en ambos niveles, mientras
que los estados "FW" y "BW" se hallan en el segundo
nivel.
Es preciso observar que un sistema de estados
planos constituye un casos especial de sistema de estados
jerárquicos en el que todos los estados son primitivos o bien, de
forma correspondiente, todos los estados se hallan en el primer
nivel.
Los sistemas de estados jerárquicos permiten
ofrecer descripciones más compactas y estructuradas con respecto a
los sistemas de estados planos. Cualquier sistema de estados
jerárquicos también puede, sin embargo, ser expandido a un sistema
de estados planos, según el cual se puede usar el método de
análisis composicional y gradual de la invención.
La expansión consiste en una función continua del
procedimiento de expansión indicado a continuación, hasta que se
genere un sistema de estados planos.
Haciendo referencia ahora a la Fig. 16, Hsys es
iniciado por ser el sistema de estados jerárquicos actual en el
nivel n (Ln). El procedimiento de expansión toma su punto de
partida en un estado jerárquico S en un nivel diferente de n, que
en sí mismo es otro sistema de estados jerárquicos consistente en
un cierto número de máquinas jerárquicas MI,..., Mn, que está en el
nivel n+1.
Haciendo ahora referencia a la Fig. 17, el
procedimiento de expansión consiste en cambiar el status de los
estados S a unos primitivos llevando las máquinas MI..JMn al nivel
de S. Después de la ejecución del procedimiento de expansión, se
obtiene el sistema de control mostrado en la Fig. 17.
De esta manera, el procedimiento de expansión
reduce el número de estados jerárquicos (en 1) y, mediante la
repetición de la fase de reducción, el resultado final será un
sistema de estados jerárquicos donde todos los estados sean
primitivos, llamado también sistema de estados planos.
En este punto, las transiciones están incluidas
en el procedimiento de expansión. Generalmente las transiciones
dependen de ciertas condiciones, o requisitos de seguridad, que
deben ser satisfechas antes de que se pueda realizar la transición
en cuestión. Estas condiciones pueden ser demandas/requisitos en
parte que influyen en la concurrencia de acciones en el entorno en
que se sitúa todo el sistema de estados, y en parte que influyen en
otras máquinas de entrada de otros sistemas de estados. Durante el
procedimiento de expansión estas demandas/requisitos pueden ser
modificados de distintas formas para asegurar que esté presente la
relación/conexión correcta entre el sistema de estados jerárquico
antes del procedimiento de expansión y después de su ejecución.
Unos ejemplos de estas modificaciones se proporcionan en la Fig.
18.
En referencia a la Fig. 19, se considera el
escenario indicado anteriormente y se añaden a éste las
transiciones y las condiciones/requisitos de la forma ilustrada. En
este caso los requisitos/condiciones son a, b, c y d.
Es evidente que las transiciones en las máquinas
en S (MI,...., Mn), por ejemplo la transición de A a B, pueden
producirse sólo si el sistema de control M está en realidad en el
estado S (no S1 o S2). Para asegurar que esto mismo vale para la
transición de A a B, la condición/requisito b es expandida a b
S.
La transición en M de S1 a S tiene distintos
modos de escoger los subestados en S que deben ser activados; por
ejemplo, el estado X podría ser elegido para la submáquina MI. Para
asegurar que también el estado X es activado cuando se efectúa la
expansión de SI a S, se pueden añadir transiciones a X desde todos
los demás estados en M1 con la limitación de S1 a, que es
precisamente lo que se requiere para hacer la transición de
S1\rightarrowS.
La transición en M de S a S2 presenta
condiciones/requisitos que se refieren a los subestados en S que
deben estar activos si se debe efectuar una transición. Por
ejemplo, una condición/requisito podría ser que la máquina M1 esté
en el estado Y. Para asegurar que esto mismo es válido después de la
expansión, la condición/requisito c con respecto a la transición de
S a S2 puede ser expandida a c Y.
En una máquina en el nivel de M, hay una
transición cuya condición/requisito incluye el estado A. Después de
una expansión, se debe asegurar que no sólo M1 está en el estado A
sino que también la máquina M está en el estado S.
Con las modificaciones dadas de las
condiciones/requisitos para las transiciones, el resultado de un
procedimiento de transformación puede ser ilustrado como se muestra
en la Figura 20.
El efecto de una expansión será ahora mostrado en
la ilustración del tren DUPLO en la Fig. 20. Es preciso destacar
que las tres transiciones de los estados "ST" a "GO"
indican explícitamente qué subestados de "GO" deben ser
activados. El único candidato obvio para la expansión es el estado
"GO" que es el único estado no primitivo. El resultado del
procedimiento de expansión es el siguiente.
Dado: Un sistema de control jerárquico, Hsys.
Resultado: Un sistema de estados planos
equivalente/similar, Sys.
- 1.
- Sea S un estado en el nivel de n, que es en sí mismo un sistema de estados jerárquicos que consiste en un cierto número de máquinas jerárquicas MI,..,Mk.
- 2.
- Se ejecuta la expansión de S, que implica llevar las máquinas MI,..,Mk al nivel de S con las modificaciones y requisitos pertinentes de las transiciones.
- 3.
- Si todos los estados son primitivos. STOP
- 4.
- En caso contrario, se repite el procedimiento desde 1.
En muchas aplicaciones es útil considerar un
modelo de sistema que contiene un cierto número de variables que
comprenden dominios limitados. Los valores de estas variables
pueden ser comprobados en los requisitos de seguridad de las
transiciones y manipulados mediante asignaciones como parte de la
acción de una transición. La presente invención puede ser adaptada
fácilmente para ser aplicada a sistemas de este tipo usando una
técnica de codificación de variables y operaciones sobre éstas,
como es muy conocido en la técnica (ver por ejemplo la tesis PhD de
Allan John Hu, Techniques for Efficient Formal Verification Using
Binary Decision Diagrams, Department of Computer Science, Stanford
University, diciembre 1995, número
CS-TR-95-1561). La
adaptación podría incluir la visión de cada variable como una
máquina con un estado para cada valor posible de la variable. Las
asignaciones de valores a la variable pueden ser implementadas por
transiciones en esta máquina, y las condiciones en otras máquinas
referentes a la variable podrían ser implementadas como condiciones
de sincronización en esa máquina. Todos los métodos mencionados en
la invención pueden luego ser aplicados directamente sobre el
modelo adaptado.
En otras aplicaciones es útil considerar los
modelos de sistemas que incluyen una colección de temporizadores.
Los valores de los temporizadores disminuyen con el tiempo, ya sea
en fases discretas determinadas por la frecuencia horaria, o bien de
manera continua con el tiempo global. En estos modelos de sistemas
extendidos en el tiempo, las transiciones pueden ser activadas por
eventos de tiempo límite liberados en to-t cuando el
valor del temporizador t alcanza cero. A la vez, un valor del
temporizador puede ser dispuesto como parte de la acción de las
transiciones. La presente invención puede ser adaptada fácilmente
para ser aplicada a sistemas temporizados introduciendo cada
temporizador t como una máquina T con los estados T0, T1,....,
Tmax, donde max es el valor máximo asignado al temporizador t. La
máquina T tendrá las siguientes transiciones básicas:
Ti+1 - tic []/ \rightarrow Te,
para i=1 ..max-1, donde 'tic'' es
un nuevo evento que representa el paso de una unidad de tiempo. Una
transición de tiempo límite
A1 - to-t [g]/ a \rightarrow
A2
es sustituida por la siguiente transición:
A1 -- tic [gT1]/a \rightarrow A2
es decir, la reacción al evento
to-t es sustituida por la reacción de tic con la
condición de que la máquina temporizadora T esté en el estado Ti (y
por lo tanto en el estado T0 justo después del evento tic). Una
transición con disposición de temporización
A1 -- E[g]/a,t:=n \rightarrow A2
es sustituida por
A1 - E[g]/a \rightarrow A2
y genera además transiciones en T de la forma
Tj-E[gA1]/ \rightarrow
Tn
para todos j=O..max. Todos los métodos
mencionados en la invención pueden luego ser aplicados directamente
al modelo adaptado, y darán análisis correctos para temporizadores
discretos y continuos según una forma muy conocida en la técnica
(ver por ejemplo E. Asarin, O. Maler, A.Pnueli, On Discretization
of Delays in Timed Automata and Digital Circuits, Proc. CONCUR'98,
Lecture Notes in Computer 1466, 1998).
En otras aplicaciones puede ser útil permitir
eventos internos (a veces referidos como señales), que son
generados por algunas máquinas y a los que reaccionan otras
máquinas. Un modelo de sistema con eventos/señales internos podría
ser entendido por tener diversas interpretaciones. Según una
interpretación, las señales deben ser entendidas como emitidas y
reaccionadas instantáneamente. Con esta interpretación, el efecto
de la presencia de señales puede ser obtenido por un modelo
modificado en el que se han eliminado las señales. La modificación
se obtiene modificando las transiciones con señales o añadiendo
transiciones de manera que obtenga un efecto similar a través de
condiciones en eventos externos y sincronizaciones de estados. Como
ejemplo de la eliminación de señales, se considera un sistema con
un evento externo E y una señal S, como se muestra en la figura 25.
Sustituyendo la presencia de S por E A1 en la transición de B1 a
B2, y eliminando la generación de S de la transición de A1 a A2, se
obtiene un modelo de sistema con el mismo comportamiento pero sin
señales, ver figura 26.
Este enfoque es fácilmente generalizado en
situaciones en las que hay diversas señales presentes en el modelo
de sistema. La generalización puede ser descrita como sigue. Se
añade una transición para cada presencia de combinaciones de las
siguientes transiciones
A1 - E[g]/S a \rightarrow A2
B1 - S[h]/b \rightarrow B2,
donde E es un algún evento externo, S es una
señal, g y h son condiciones, y a y b son secuencias de acciones
que deben ser efectuadas cuando se considera la transición. La
transición añadida se forma sustituyendo la condición en S en la
transición de B1 por una condición en E, g, y
A1:
B1 -- E[g A1 h]/b \rightarrow B2.
La adición de transiciones se repite, teniendo en
cuenta la nueva transición al formar pares, hasta que no se generen
nuevas transiciones. Una vez añadidas todas las transiciones
posibles, todas las transiciones aseguradas por señales son
eliminadas, y en todas las transiciones que generan una o más
señales, se eliminan estas señales. Por lo tanto, el modelo de
sistema resultante no contiene ninguna señal y los métodos de la
invención pueden ser aplicados para analizar el modelo de
sistema.
Según otra interpretación, las señales podrían
ser comunicadas entre las máquinas a través de una serie interna de
señales. Las señales en la serie interna deben recibir una reacción
antes de que el modelo de sistema pueda reaccionar ante cualquier
evento externo. Las señales son a continuación consideradas como
cualquier otro evento externo: Cuando la serie interna no está
vacía, la señal en la parte delantera de la serie es el único evento
habilitado. Todos los eventos externos están inhabilitados. Cuando
la serie interna está vacía, no hay ninguna señal habilitada pero
sí se habilitan todos los eventos externos.
La serie interna de señales podría estar limitada
para tener una longitud máxima determinada. El efecto de la serie
puede entonces obtenerse añadiendo al modelo de sistema en primer
lugar un cierto número de máquinas que implementan la serie y luego
se modifican las transiciones eliminando cualquier generación de
señales. La emisión de una señal S en una transición de A1 a A2 con
una condición en el evento externo E es luego modelada por una
transición en la serie que añade el elemento que representa S al
final de la serie. Cuando la serie no está vacía, sólo el evento
correspondiente al primer elemento en la serie está habilitado. Si
la serie está vacía, todas las señales externas son habilitadas. La
habilitación e inhabilitación de eventos se consigue juntando un
predicado en los eventos y el primer elemento de la serie en el
modelo de sistema de las máquinas. Una vez realizadas estas fases,
todos los métodos de la invención pueden ser aplicados al modelo de
sistema resul-
tante.
tante.
La Fig. 21 muestra dos máquinas de
estados/eventos y la combinación paralela correspondiente. Los
requisitos de seguridad, que formalmente deberían tener la forma,
Ij=p, se escriben simplemente como el estado [p] ya
que la posición Ij es derivable del nombre del estado. Las flechitas
indican los estados iniciales. La referencia r es un requisito para
un estado en una tercera máquina no mostrada.
La combinación completa de todas las máquinas n
produce una máquina Mealy en la que las transiciones
están definidas
por
Un control de consistencia según la invención
puede ser una propiedad de accesibilidad. Por ejemplo, se puede
efectuar un control para comprobar las "transiciones
conflictivas", es decir, un control para comprobar si dos o más
transiciones pueden ser habilitadas en el mismo estado local,
conduciendo a una indeterminación. Esto se puede reducir a
cuestiones de accesibilidad considerando todos los pares de
requisitos de seguridad g_{1} y g_{2} de las transiciones con
el mismo estado local s, y el evento de entrada e. Se puede
producir un conflicto si se puede alcanzar un estado global en el
que se cumple la ecuación (I_{j} = s_{i}) \wedge g_{1}
\wedge g_{2}.
Este control puede ser reducido a los controles
de accesibilidad. Otros controles, como por ejemplo los controles
de transiciones que no son nunca habilitadas y los controles de
estados que nunca se alcanzan, generan un cierto número de
controles de accesibilidad, cuyo número de transiciones, 1, es
lineal. En el peor de los casos, el control de las transiciones
conflictivas provoca un cierto número de controles de accesibilidad
cuyo número de transiciones es cuadrático. De cualquier modo, en la
práctica muy pocas transiciones tienen el mismo estado local de
partida y evento de entrada, por lo tanto en la práctica el número
de controles generado es mucho más pequeño
que t.
que t.
Otro tipo de controles de consistencia se reducen
a un control de la ausencia de interbloqueos locales. Un
interbloqueo local ocurre si el sistema puede alcanzar un estado en
el que una de las máquinas gira en vacío siempre en todos los
eventos de entrada. Este control se realiza para cada una de las
máquinas n. En total, al menos t+n controles deben ser
efectuados, lo que hace que la verificación de los sistemas de
estados/eventos sea bastante diferente al control de modelo
tradicional en el que normalmente sólo se verifican algunas
propiedades clave.
El método según la invención intenta reducir el
número de controles de accesibilidad efectuando un análisis
implicacional entre los requisitos de seguridad de los controles.
Si el requisito de seguridad g_{1} implica otro requisito de
seguridad g_{2}, entonces obviamente, si g_{1} es alcanzable,
también lo es g_{2}. Para usar esta información, todos los
requisitos de seguridad son memorizados en orden creciente del
tamaño de su espacio de estado satisfactorio iniciado. De esta
manera, los requisitos de seguridad más específicos son controlados
primero, y cada nuevo requisito de seguridad que debe ser controlado
es comparado con todos los requisitos de seguridad ya controlados
(y alcanzables). Si el nuevo requisito de seguridad incluye uno de
éstos, se determina que es satisfactorio. A través de los
experimentos, entre el 40% y el 94% de los controles de
accesibilidad según los instrumentos de la técnica anterior son
eliminados de esta manera.
Esta sección describe cómo los Diagramas de
Decisión Binaria Ordenados y Reducidos son usados para representar
conjuntos de estados y la relación de transición.
Para construir los ROBDD \tilde{T} para la
relación de transición T, primero se construyen las relaciones de
transición local \tilde{T}_{i} para cada máquina M_{i}. Las
variables de los ROBDD representan una codificación de los eventos
de entrada, los estados actuales, y los estados sucesivos. Las
variables se ordenan como sigue: las primeras variables ||E||
codifican los eventos de entrada E(||E|| indica [log_{2}|X|] y se
indican V_{E}. Luego siguen las variables 2||S_{j}|| V_{i},1,
V'_{i},1, .., V_{i||si||}, V'_{i,||si||} que codifican los
estados actuales (variables no primas) y sucesivos (variables
primas) para la máquina i.
La relación de transición \tilde{T}_{i}, para
la máquina i está construida como un predicado ROBDD sobre estas
variables. El ROBDD para una transición (S_{b} e, g, o_{1},
s'_{i})\inT_{i} se construye como la conjunción de las
codificaciones ROBDD de S_{h} e, g y s'_{i}. (Las señales de
salida no son codificadas dado que no influyen en los estados
alcanzables del sistema.) La codificación de s_{i}, e y s'_{i}
es directa, y la codificación del requisito de seguridad g se
realiza convirtiendo todos los predicados atómicos I_{j} =
p en predicados de ROBDD sobre las variables de estados
actuales para la máquina M_{j} y luego efectuando las operaciones
Booleanas del requisito de seguridad. La codificación de todas las
transiciones de la máquina i se obtiene por la disyunción de la
codificación de las transiciones individuales:
donde \tilde{e} es la
codificación ROBDD del evento de entrada e, y \tilde{s}_{i} y
\tilde{s}'_{i}, son las codificaciones ROBDD del estado actual
s_{i} y del estado sucesivo s'_{i},
respectivamente.
Para codificar adecuadamente la relación de
transición global T_{i} se deben afrontar situaciones en las que
no está habilitada ninguna transición de T_{i}. En estos casos se
desea que la máquina i permanezca en su estado actual. Se construye
un ROBDD neg_{i} que representa que ninguna transición está
habilitada mediante la negación de todos los requisitos de seguridad
en la máquina i (incluidos los eventos de entrada):
El ROBDD equ_{i} codifica que la máquina i no
cambie de estado, al exigir que el estado sucesivo sea idéntico al
estado actual:
La relación de transición local para la máquina i
es por lo tanto:
El ROBDD \tilde{T} para la relación de
transiciones completa es la conjunción de las relaciones de
transiciones locales:
Los problemas de las iteraciones de la técnica
anterior pueden ser resueltos típicamente usando un análisis de
accesibilidad hacia atrás. La tarea de verificación es determinar
si el requisito de seguridad g puede ser satisfecho. En lugar de
calcular el espacio de estado alcanzable y controlar que g sea
válido en alguna parte de este conjunto, comenzamos con el conjunto
de estados en el que g es válido y calculamos, en una iteración
hacia atrás, los estados que pueden alcanzar un estado en el cual g
es satisfecho. El objetivo es determinar si el estado inicial se
encuentra entre estos estados. Nuestra idea innovadora es realizar
la iteración hacia atrás de una manera composicional, considerando
sólo un número de máquinas mínimo. Inicialmente, sólo se
considerarán las máquinas mencionadas en g. A continuación, se
incluirán también las máquinas que dependen de éstas.
Se observa que con respecto a la iteración hacia
adelante, este enfoque tiene un inconveniente aparente cuando se
efectúa un gran número de controles de accesibilidad: en lugar de
sólo una iteración de coma fija para construir el espacio de
estados alcanzables R (y luego verificar trivialmente las
propiedades), es necesaria una nueva iteración de coma fija para
cada propiedad verificada. Sin embargo, los experimentos demuestran
claramente que cuando se usa una iteración composicional hacia
atrás, cada una de las iteraciones de coma fija puede ser
completada, incluso para modelos muy grandes, mientras que la
iteración hacia adelante no consigue completar la construcción de
R incluso para modelos de un tamaño medio.
Para formalizar la técnica composicional hacia
atrás, es necesaria una versión semántica del concepto de
dependencia. Para un subconjunto de máquinas I \subseteq { 1,....
n}, dos estados s, s'\inS son I-equivalentes,
escrito s=_{I}s', siempre que i \in I, s_{i} = s'_{i} (las
primas se usan aquí para indicar otro estado y no están
relacionadas con los estados sucesivos). Si un subconjunto P de los
estados globales S está sólo retenido por componentes en algunos
conjuntos de índice I, se puede considerar que P tiene I como
modelo. Esto conduce a la siguiente definición: un subconjunto P de
S es de modelo-I, siempre que s, s' \in S,
s \in P y s =
_{i}s' \Rightarrow s' \in
P
En la Fig. 22, la figura es un ejemplo que
muestra el efecto de B_{I}(g). Si X es el requisito de
seguridad I_{j} = p y Y el requisito de seguridad I_{k} = q con
j, k \notin I, entonces las transiciones de s_{i} parecen
depender de las máquinas M_{j} y M_{k} externas a I. De
cualquier modo, los requisitos de seguridad X, \neg X Y, y \neg
Y en conjunto abarcan todas las posibilidades, y por lo tanto, al
seleccionar e_{1}, e_{2}, o e_{3}, el estado s_{I} puede
alcanzar g sin tener en cuenta los estados de las máquinas M_{j}
y M_{k}.
La Fig. 23 ilustra las dependencias entre 9
máquinas de estados tomadas de un ejemplo real. Una flecha de una
máquina M_{i} a otra M_{j} indica la existencia de una
transición en M_{i} con un requisito de seguridad que depende de
un estado en la máquina M_{j}.
Como ejemplo, se considera un requisito de
seguridad g que menciona sólo las máquinas 1 y 3. El conjunto de
estados definido por g es de modelo-I para
cualquier I que contenga 1 y 3. Otra interpretación de la definición
es que un conjunto P es de modelo-I si es
independiente de las máquinas en el complemento
\overline{I}
=
{1,....n}\I
A partir de un conjunto g de
modelo-I efectuamos un cálculo de accesibilidad
hacia atrás incluyendo estados que, sin tener en cuenta los estados
de las máquinas en \overline{I}, pueden alcanzar g. Una fase hacia
atrás se da por la función B_{I(g)} definida por:
Por definición B_{1}(g) es de
modelo-I. El conjunto B_{1}(g) es el
conjunto de estados que pueden alcanzar un estado en g
independientemente de las máquinas en \overline{I}, mediante
algún evento de entrada e. Se observa que B_{1}(g) es
monotónico tanto en g como en I. La Figura 22 muestra como un estado
s_{I}, de una máquina está incluido en B_{1}(g), aunque
sintéticamente parece depender de máquinas externas a I.
Mediante la iteración de la aplicación de
B_{I}, se puede ahora calcular el conjunto mínimo de estados que
contienen g y están cerrados bajo la aplicación de B_{1}. Esto es
la coma fija mínima \muX.g \cup B_{s}(X), que indicamos
como B_{I}*(g). Observar que B*_{\{I...n\}}(g) se
convierte en el conjunto deseado de estados que pueden alcanzar
g.
Se dice que un conjunto de índices I es de
dependencia cerrada, si ninguna de las máquinas en I depende de
máquinas externas a I. Formalmente, I es de dependencia cerrada
siempre que i \in I, los estados s'. s, s_{i}, los eventos de
entrada e, y de salidas o,
y s' =_{I} s implica
que
Para el control de interbloqueos locales, se usa
una estructura parecida a la accesibilidad hacia atrás. Para hacer
aplicable el lema composicional hacia atrás, se usa la noción de
máquina viva, que es el doble exacto del hecho de tener un
interbloqueo local. En otras palabras, una máquina está viva si se
cumple siempre el caso de que existe una manera de poder llevar la
máquina a un nuevo estado local. Formalmente, un estado global s
está vivo para la máquina i si existe una secuencia de estados
s^{1}, s^{2},....s^{k} con s=s^{I} y
(para algunos e y o) de modo que s^{k}i \neq
s^{I}i. La máquina i está viva si todos los estados alcanzables
están vivos. Un ejemplo sencillo de un sistema de estados/eventos
con un interbloqueo local se muestra en la Fig. 24.
La Fig. 24 muestra un sistema de estados/eventos
con un interbloqueo local. El estado global s(p_{2},
q_{I}) no es vivo para la máquina de la derecha ya que para todos
los eventos de entrada el requisito de seguridad p_{1} es falso.
El estado s es alcanzable (por ejemplo recibiendo inicialmente e1),
y por tanto la máquina de la derecha tiene un interbloqueo
local.
El control se divide en dos partes. En primer
lugar se calcula el conjunto de todos los estados vivos L*_{i}
para la máquina i. En segundo lugar, se controla que todos los
estados alcanzables están en L*_{i}. Un enfoque directo pero
ineficaz sería calcular los dos conjuntos y comprobar la inclusión.
Sin embargo, el beneficio de la estructura composicional según la
invención se emplea en la accesibilidad hacia atrás en ambas partes
del control.
De forma similar a la definición de
B_{I}(g), L_{Ij}(X) se define como el conjunto de
estados que están inmediatamente vivos para la máquina i \in 1
independientemente de las máquinas externas a I o que conducen a los
estados en X (que son estados considerados vivos para la máquina
i):
Se observa que en comparación con la definición
(1) la única diferencia es la posibilidad extra de que el estado
sea inmediatamente vivo, es decir s_{i} \neq s''_{i}. El
conjunto de estados vivos para la máquina i, independientemente de
las máquinas externas a I, es por lo tanto el conjunto L*_{I,
j}(\diameter), donde L*_{I, j}(Y) es la coma
fija mínima definida por
L*_{I, j}(Y)=\muX.Y \cup L_{I, i}(X).
L*_{I, j}(Y)=\muX.Y \cup L_{I, i}(X).
Las tres propiedades del lema 1 valen también
para L*_{I,f}(Y) cuando Y es de modelo-I.
Si I tiene dependencia cerrada, se deduce de la propiedad (iii) del
lema que L*_{I, j}(\diameter) es igual a L*_{\{1....,
n\}I}(\diameter) que es precisamente el conjunto de
estados vivos de la máquina i. Esto ofrece una manera eficaz de
calcular los conjuntos L*_{I, j}(\diameter) para
diversas opciones de I. Empezando por I_{I}, igual a {i} y
continuando por un I_{k}'s más grande, exactamente como ocurre con
la accesibilidad hacia atrás. La única diferencia se encuentra en
las condiciones de terminación. Un posible caso de terminación es
si L*_{Ik, i}(\diameter) es igual a S para algunos k. En
este caso, es indiferente que el conjunto de estados alcanzables
esté incluido en L*_{Ik, i}(\diameter), según la
propiedad de monotonicidad (i) del lema. Se deduce que la máquina i
está viva y por lo tanto libre de interbloqueos locales. Otro caso
de terminación es cuando I_{k} tiene dependencia cerrada. Entonces
tenemos que controlar si existen estados alcanzables que no estén
en L*_{Ik, i}(\diameter). Esto se realiza mediante un
control de accesibilidad composicional hacia atrás con g =
S\L*_{Ik, i}(\diameter).
Es preciso observar que la invención puede ser
implementada como un programa para ordenador o como parte de un
programa de ordenador, que puede ser cargado en la memoria de un
ordenador y ejecutado desde el mismo. El programa para ordenador
puede ser distribuido a través de cualquier medio de almacenamiento
de datos o de transmisión de datos. Los medios de almacenamiento
pueden ser cintas magnéticas, discos ópticos, discos compactos (CD
o CD-ROM), mini-discos, discos
duros, disquetes, memorias ferroeléctrica, memorias eléctricas de
sólo lectura programables y borrables (EEPROM), memorias flash,
EPROM, memorias de sólo lectura (ROM), memorias estáticas de acceso
aleatorio (SRAM), memorias dinámicas de acceso aleatorio (DRSAM),
memorias ferromagnéticas, almacenamiento óptico, dispositivos de
acoplamiento de cargas, tarjetas inteligentes, etc. El medio de
transmisión puede ser una red, por ejemplo una red local (LAN), una
red de área amplia (WAN), o cualquier combinación de éstas, por
ejemplo Internet. La red puede comprender conexiones de
comunicación por cable y sin cables. A través de la red, una forma
de realización de software (es decir, un programa) de la invención,
o una parte, puede ser distribuida transfiriendo el programa a
través de la red.
Claims (22)
1. Método para analizar un modelo de sistema
basado en estados que comprende un conjunto de máquinas (MI,....,
Mn), cada una de dichas máquinas comprendiendo al menos un estado
posible y cada máquina estando en uno de sus estados previstos en
un momento dado, el comportamiento dinámico de dichas máquinas
(MI,...., Mn) estando definido por transiciones predefinidas entre
los estados de cada máquina (MI;...;Mn) y por condiciones
predefinidas (C) para las transiciones, dicho método comprendiendo
las fases de:
- selección de un conjunto objetivo de estados
(A) dentro de un subconjunto de máquinas (MI);
- repetición de las fases de iteración hasta que
se satisface un criterio de terminación; caracterizado por
el hecho de que las fases de iteración comprenden las fases de:
(a) selección de un conjunto de estados (X) que
tienen transiciones hacia el conjunto objetivo (a), donde las
transiciones tienen condiciones (C), si las hay, que se refieren a
máquinas dentro del conjunto de máquinas (MI) únicamente;
(b) expansión del conjunto objetivo (A)
incluyendo el conjunto de estados (X) en el conjunto objetivo
(A);
(c) expansión del subconjunto de máquinas (MI)
incluyendo otro subconjunto de máquinas, mientras se mantiene el
conjunto objetivo (A) construido en dicha fase de expansión del
conjunto objetivo (A).
2. Método para analizar un modelo de sistema
basado en estados según la reivindicación 1, caracterizado
por el hecho de que se cumple el criterio de terminación si,
después de dicha fase de expansión del conjunto objetivo (A), el
conjunto objetivo (A) contiene al menos uno de un conjunto
predefinido de estados iniciales (F) de dichas máquinas
(MI,..,Mn).
3. Método para analizar un modelo de sistema
basado en estados según la reivindicación 2, caracterizado
por el hecho de que se cumple el criterio de terminación si,
después de dicha fase de expansión del conjunto objetivo (A), el
conjunto objetivo (A) contiene completamente un conjunto objetivo
para el cual la terminación, según se define en la reivindicación
2, ya ha sido obtenida.
4. Método para analizar un modelo de sistema
basado en estados según la reivindicación 1, caracterizado
por el hecho de que dicha selección de un conjunto objetivo de
estados de la máquina (A) comprende las fases de
- selección de un subconjunto de máquinas (MI)
que comprende una máquina (Mi) que debe ser analizada.
- selección de un conjunto objetivo (A), dicho
conjunto objetivo siendo los estados de la máquina actualmente
analizada (Mi) que tienen transiciones sin condiciones (C) que se
refieren a máquinas distintas de la máquina actualmente analizada
(Mi).
5. Método para analizar un modelo de sistema
basado en estados según la reivindicación 4, caracterizado
por el hecho de que dicho conjunto de estados (X) comprende además
estados que, a través de transiciones, pueden ser llevados a
cambiar el estado de la máquina actualmente analizada (Mi), donde
las transiciones tienen condiciones (C), si las hay, que se
refieren a máquinas dentro del conjunto de máquinas (MI)
únicamente.
6. Método para analizar un modelo de sistema
basado en estados según las reivindicaciones 4 o 5,
caracterizado por el hecho de que se cumple el criterio de
terminación si el conjunto objetivo (A) comprende todos los estados
posibles en el conjunto de máquinas (MI).
7. Método para analizar un modelo de sistema
basado en estados según cualquiera de las reivindicaciones 1 a 6,
caracterizado por el hecho de que se cumple el criterio de
terminación si, después de dicha fase de expansión del conjunto
objetivo (A), ninguna de las máquinas en el conjunto de máquinas
(MI) contiene transiciones con condiciones (C) que se refieren a
máquinas fuera del conjunto de máquinas (MI).
8. Método para analizar un modelo de sistema
basado en estados según cualquiera de las reivindicaciones de 1 a
7, caracterizado por el hecho de que dicho subconjunto de
máquinas adicional se limita a incluir máquinas que contienen los
estados a los que se refieren las condiciones (C) para las
transiciones dentro del subconjunto de máquinas (MI).
9. Método para analizar un modelo de sistema
basado en estados según cualquiera de las reivindicaciones de 1 a
8, caracterizado por el hecho de que el análisis es
terminado a petición del usuario.
10. Método para analizar un modelo de sistema
basado en estados según cualquiera de las reivindicaciones de 1 a
9, caracterizado por el hecho de que se proporciona a un
usuario una indicación visual o de audio cuando el análisis está
terminado.
11. Método para analizar un modelo de sistema
basado en estados según cualquiera de las reivindicaciones de 1 a
10, caracterizado por el hecho de que las condiciones (C) se
representan como un gráfico orientado.
12. Método para analizar un modelo de sistema
basado en estados según la reivindicación 11, caracterizado
por el hecho de que dicho conjunto de máquinas adicional está
determinado por la anchura transversal del gráfico orientado que
representa las condiciones.
13. Método para analizar un modelo de sistema
basado en estados según cualquiera de las reivindicaciones 1 a 12,
caracterizado por el hecho de que los conjuntos de estados
están representados como Diagramas de Decisión Binaria Ordenados y
Reducidos (ROBDD) y las operaciones en éstos se efectúan como
operaciones eficaces en los Diagramas de Decisión Binaria Ordenados
y Reducidos (ROBDD).
14. Método para analizar un modelo de sistema
basado en estados según la reivindicación 13, caracterizado
por el hecho de que las transiciones están representadas como una
relación de transición partida de Diagramas de Decisión Binaria
Ordenados y Reducidos (ROBDD).
15. Método para analizar un modelo de sistema
basado en estados según cualquiera de las reivindicaciones 1 a 14,
caracterizado por el hecho de que el conjunto objetivo de
estados (A) se calcula de forma dinámica con una iteración de coma
fija iterativa.
16. Método para analizar un modelo de sistema
basado en estados según cualquiera de las reivindicaciones 4 a 15,
caracterizado por el hecho de que comprende las fases
de:
- para una máquina (Mi), se usa el método según
cualquiera de las reivindicaciones 4 a 15 para determinar el
conjunto de todos los estados vivos de dicha máquina (Mi), es decir
los estados que, a través de transiciones predefinidas, pueden ser
llevados a otro estado de la máquina (Mi);
para la máquina (Mi), se determina un estado
muerto potencial (Adi), es decir un estado que no se encuentra en
dicho conjunto de todos los estados vivos; y
- se determina si el estado muerto potencial
(Adi) es alcanzable por un conjunto de estados iniciales
predefinidos (F) a través de las transiciones predefinidas.
17. Método para analizar un modelo de sistema
basado en estados según cualquiera de las reivindicaciones 1 a 15,
caracterizado por el hecho de que comprende las fases
de:
- para una máquina (Mi), se determina un estado
muerto potencial (Adi), es decir un estado en que la máquina
permanecerá independientemente de cualquier evento externo a la
máquina (Mi);
- se usa el método según cualquiera de las
reivindicaciones 1 a 15 para determinar si dicho estado muerto
potencial (Adi) es alcanzable por un conjunto de estados iniciales
predefinidos (F) a través de las transiciones predefinidas.
18. Método para analizar un modelo de sistema
basado en estados que comprende un conjunto de máquinas (MI,.,Mn),
cada una de dichas máquinas comprendiendo al menos un estado
posible y cada máquina estando en uno de sus estados incluidos en
un momento dado, el comportamiento dinámico de dichas máquinas
(MI,.,Mn) estando definido por transiciones predefinidas entre los
estados de cada máquina (MI;...;Mn) y por condiciones predefinidas
(C) para las transiciones, dicho método está caracterizado
por el hecho de que comprende las fases de:
- para una máquina (Mi), se determina un estado
muerto potencial (Adi), es decir un estado en que la máquina
permanecerá independientemente de cualquier evento externo a la
máquina (Mi);
- para al menos una de las máquinas (Mi) que
tienen estados muertos potenciales (Adi), se determina si los
estados muertos potenciales (Adi) son alcanzables por un conjunto de
estados iniciales predefinidos (F) a través de las transiciones
predefinidas, la fase en la que se determina si los estados muertos
potenciales (Adi) son alcanzables se efectúa empleando el método
reivindicado en cualquiera de las reivindicaciones 1 a 15.
19. Método para analizar un modelo de sistema
basado en estados según la reivindicación 18, caracterizado
por el hecho de que dichos estados muertos potenciales (Adi) de una
máquina (Mi) están determinados como los estados que no se hallan
en el conjunto de todos los estados vivos de dicha máquina (Mi), es
decir, los estados que a través de las transiciones predefinidas
pueden ser llevados a otro estado de la máquina (Mi).
20. Método para analizar un modelo de sistema
basado en estados según la reivindicación 19, caracterizado
por el hecho de que dicho conjunto de estados vivos de la máquina
se determina según el método reivindicado en cualquiera de las
reivindicaciones 4 a 15.
21. Ordenador programado para efectuar el método
según cualquiera de las reivindicaciones 1 a 20.
22. Medio informático legible cuyo contenido
hacen que un ordenador efectúe el método según cualquiera de las
reivindicaciones de 1 a 20.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DK43798 | 1998-03-27 | ||
DK43798 | 1998-03-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2226356T3 true ES2226356T3 (es) | 2005-03-16 |
Family
ID=8093532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES99911631T Expired - Lifetime ES2226356T3 (es) | 1998-03-27 | 1999-03-26 | Metodo y aparato para analizar un modelo de sistema basado en estados. |
Country Status (11)
Country | Link |
---|---|
US (1) | US6408262B1 (es) |
EP (1) | EP1064601B1 (es) |
CN (1) | CN100377096C (es) |
AT (1) | ATE272863T1 (es) |
AU (1) | AU762473B2 (es) |
CA (1) | CA2323469C (es) |
DE (1) | DE69919144T2 (es) |
ES (1) | ES2226356T3 (es) |
IL (2) | IL138489A0 (es) |
WO (1) | WO1999050746A2 (es) |
ZA (1) | ZA200005042B (es) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728665B1 (en) * | 2000-03-20 | 2004-04-27 | Nec Corporation | SAT-based image computation with application in reachability analysis |
US6880147B1 (en) * | 2000-09-07 | 2005-04-12 | Rockwell Collins | System and method for developing software utilizing determinative representations |
US6985845B1 (en) * | 2000-09-26 | 2006-01-10 | Koninklijke Philips Electronics N.V. | Security monitor of system runs software simulator in parallel |
WO2002048728A1 (en) * | 2000-12-15 | 2002-06-20 | Telefonaktiebolaget L.M. Ericsson | Functional testing based on a state machine description of the unit under test |
US7047139B2 (en) * | 2000-12-22 | 2006-05-16 | International Business Machines Corporation | Sharing information between instances of a propositional satisfiability (SAT) problem |
US6668203B1 (en) * | 2001-04-26 | 2003-12-23 | Sandia Corporation | State machine analysis of sensor data from dynamic processes |
US6912700B1 (en) * | 2001-06-06 | 2005-06-28 | The United States Of America As Represented By The National Security Agency | Method and system for non-linear state based satisfiability |
US7689489B2 (en) * | 2001-07-27 | 2010-03-30 | Scott Fergusson | Methods and systems for assisting financial services firms and their representatives |
US7076407B2 (en) | 2001-08-24 | 2006-07-11 | Wayne Biao Liu | Space reduction in compositional state systems |
DE10159185A1 (de) * | 2001-12-03 | 2003-06-12 | Martin Huettlinger | Algorithmus zur Erkennung von Endlos- und Warteschleifen durch die Erkennung eines doppelt angenommenen Zustands |
US20030110474A1 (en) * | 2001-12-06 | 2003-06-12 | International Business Machines Corporation | System for coverability analysis |
US7389209B2 (en) * | 2002-05-03 | 2008-06-17 | Sungard Energy Systems Inc. | Valuing and optimizing scheduling of generation assets for a group of facilities |
US7474995B2 (en) * | 2002-05-03 | 2009-01-06 | Sungard Energy Systems Inc. | Valuing and optimizing scheduling of generation assets |
US6848088B1 (en) * | 2002-06-17 | 2005-01-25 | Mentor Graphics Corporation | Measure of analysis performed in property checking |
US6904578B2 (en) * | 2002-11-13 | 2005-06-07 | Fujitsu Limited | System and method for verifying a plurality of states associated with a target circuit |
GB0226805D0 (en) * | 2002-11-16 | 2002-12-24 | Koninkl Philips Electronics Nv | State machine modelling |
US7680818B1 (en) * | 2002-12-18 | 2010-03-16 | Oracle International Corporation | Analyzing the dependencies between objects in a system |
US7454324B1 (en) | 2003-01-10 | 2008-11-18 | James Andrew Garrard Seawright | Selection of initial states for formal verification |
US20070299648A1 (en) * | 2003-01-10 | 2007-12-27 | Levitt Jeremy R | Reuse of learned information to simplify functional verification of a digital circuit |
US20060052965A1 (en) * | 2004-08-13 | 2006-03-09 | International Business Machines Corporation | Event driven testing method, system and program product |
GB0516400D0 (en) * | 2005-08-10 | 2005-09-14 | Ibm | A method and apparatus for testing software |
US20070101316A1 (en) * | 2005-09-12 | 2007-05-03 | Don Berndt | Software Architecture and Program for the Concurrent Execution of Finite State Machine-Encoded Processes, on Single or Multiple-Processor-Based Embedded Systems |
US7500209B2 (en) * | 2005-09-28 | 2009-03-03 | The Mathworks, Inc. | Stage evaluation of a state machine |
US7565317B1 (en) * | 2005-12-29 | 2009-07-21 | Trading Technologies International, Inc. | System and method for displaying market information and order placement in an electronic trading environment |
US7797672B2 (en) * | 2006-05-30 | 2010-09-14 | Motorola, Inc. | Statechart generation using frames |
US8200715B1 (en) | 2006-06-30 | 2012-06-12 | Sap Ag | Using status models with adaptable process steps in a computer system |
US8365200B1 (en) | 2006-06-30 | 2013-01-29 | Sap Ag | Using cancellation status models in a computer system |
US8522261B2 (en) * | 2006-06-30 | 2013-08-27 | Sap Ag | Using status models with state guards in a computer system |
US8706776B1 (en) | 2006-06-30 | 2014-04-22 | Sap Ag | Extending status models in a computer system |
US8219650B2 (en) * | 2006-12-28 | 2012-07-10 | Sap Ag | Communicating with a status management component in a computer system |
US8135603B1 (en) | 2007-03-20 | 2012-03-13 | Gordon Robert D | Method for formulating a plan to secure access to limited deliverable resources |
US8364456B2 (en) * | 2008-01-10 | 2013-01-29 | The Mathworks, Inc. | Conditionally executed states |
US8219376B2 (en) * | 2008-02-27 | 2012-07-10 | International Business Machines Corporation | Verification using directives having local variables |
US8504980B1 (en) | 2008-04-14 | 2013-08-06 | Sap Ag | Constraining data changes during transaction processing by a computer system |
US8244516B2 (en) * | 2008-06-30 | 2012-08-14 | International Business Machines Corporation | Formal verification of models using concurrent model-reduction and model-checking |
US8996472B2 (en) * | 2012-04-16 | 2015-03-31 | Sap Se | Verification of status schemas based on business goal definitions |
US8996473B2 (en) * | 2012-08-06 | 2015-03-31 | Sap Se | Checking compatibility of extended and core SAM schemas based on complex goals |
TWI509408B (zh) * | 2013-01-23 | 2015-11-21 | Realtek Semiconductor Corp | 死結偵測方法以及機器可讀媒體 |
US10417594B2 (en) | 2013-05-02 | 2019-09-17 | Sap Se | Validation of functional correctness of SAM schemas including action chains |
CN103413023B (zh) * | 2013-07-11 | 2016-06-08 | 电子科技大学 | 一种多状态系统动态可靠度评估方法 |
CN105917316B (zh) * | 2014-01-22 | 2018-11-16 | 株式会社日立制作所 | 系统解析装置、设计不当解析装置、故障模式解析装置、故障树解析装置、自主动作装置及自主动作控制系统 |
CN105335534B (zh) * | 2014-05-30 | 2018-12-14 | 华为技术有限公司 | 模型建立方法和装置 |
US9798652B2 (en) * | 2014-09-26 | 2017-10-24 | Toyota Motor Engineering & Manufacturing North America, Inc. | Coverage guided technique for bug finding in control systems and software |
US9946625B2 (en) * | 2015-03-18 | 2018-04-17 | New Iron Group, Inc. | Diagnostic tool and method for efficient software development |
US9443192B1 (en) | 2015-08-30 | 2016-09-13 | Jasmin Cosic | Universal artificial intelligence engine for autonomous computing devices and software applications |
ES2710338T3 (es) | 2016-05-10 | 2019-04-24 | Von Sobbe Hans Ulrich | Sistema de análisis |
US10148100B2 (en) * | 2016-06-27 | 2018-12-04 | Lg Chem, Ltd. | Diagnostic system for a battery system |
US9864933B1 (en) | 2016-08-23 | 2018-01-09 | Jasmin Cosic | Artificially intelligent systems, devices, and methods for learning and/or using visual surrounding for autonomous object operation |
US10108767B1 (en) * | 2016-09-30 | 2018-10-23 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing deadlock detection with formal verification techniques in an electronic design |
US10452974B1 (en) * | 2016-11-02 | 2019-10-22 | Jasmin Cosic | Artificially intelligent systems, devices, and methods for learning and/or using a device's circumstances for autonomous device operation |
US10607134B1 (en) | 2016-12-19 | 2020-03-31 | Jasmin Cosic | Artificially intelligent systems, devices, and methods for learning and/or using an avatar's circumstances for autonomous avatar operation |
CN107066382B (zh) * | 2017-03-09 | 2021-01-26 | 北京航空航天大学 | 一种基于模型的航天器系统自动化测试方法 |
US10474934B1 (en) | 2017-11-26 | 2019-11-12 | Jasmin Cosic | Machine learning for computing enabled systems and/or devices |
US10938856B2 (en) * | 2018-03-30 | 2021-03-02 | Intel Corporation | Systems and methods for security protocol execution in a hierarchical state machine-driven execution plan |
US11062069B1 (en) | 2020-03-11 | 2021-07-13 | Mellanox Technologies, Ltd. | Bounded deadlock check |
CN112198471A (zh) * | 2020-09-13 | 2021-01-08 | 南京宏泰半导体科技有限公司 | 一种高效测试系统实时状态检测装置 |
CN112783005B (zh) * | 2021-01-07 | 2022-05-17 | 北京航空航天大学 | 一种基于仿真的系统理论过程分析方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5465216A (en) | 1993-06-02 | 1995-11-07 | Intel Corporation | Automatic design verification |
CA2147536A1 (en) * | 1994-06-01 | 1995-12-02 | Gerard Johan Holzmann | On-the-fly model checking with partial-order state space reduction |
US5493508A (en) * | 1994-06-01 | 1996-02-20 | Lsi Logic Corporation | Specification and design of complex digital systems |
WO1996024101A1 (en) * | 1995-02-03 | 1996-08-08 | A T & T Corp. | An automata-theoretic verification of systems |
-
1998
- 1998-07-17 US US09/116,835 patent/US6408262B1/en not_active Expired - Fee Related
-
1999
- 1999-03-26 WO PCT/DK1999/000178 patent/WO1999050746A2/en active IP Right Grant
- 1999-03-26 AT AT99911631T patent/ATE272863T1/de not_active IP Right Cessation
- 1999-03-26 IL IL13848999A patent/IL138489A0/xx not_active IP Right Cessation
- 1999-03-26 DE DE69919144T patent/DE69919144T2/de not_active Expired - Fee Related
- 1999-03-26 EP EP99911631A patent/EP1064601B1/en not_active Expired - Lifetime
- 1999-03-26 AU AU30247/99A patent/AU762473B2/en not_active Ceased
- 1999-03-26 CA CA002323469A patent/CA2323469C/en not_active Expired - Fee Related
- 1999-03-26 ES ES99911631T patent/ES2226356T3/es not_active Expired - Lifetime
- 1999-03-26 CN CNB998045535A patent/CN100377096C/zh not_active Expired - Fee Related
-
2000
- 2000-09-14 IL IL138489A patent/IL138489A/en unknown
- 2000-09-21 ZA ZA200005042A patent/ZA200005042B/en unknown
Also Published As
Publication number | Publication date |
---|---|
CN1295686A (zh) | 2001-05-16 |
AU3024799A (en) | 1999-10-18 |
EP1064601A2 (en) | 2001-01-03 |
CA2323469C (en) | 2008-01-15 |
IL138489A0 (en) | 2001-10-31 |
DE69919144D1 (de) | 2004-09-09 |
AU762473B2 (en) | 2003-06-26 |
IL138489A (en) | 2006-06-11 |
EP1064601B1 (en) | 2004-08-04 |
CA2323469A1 (en) | 1999-10-07 |
ZA200005042B (en) | 2001-03-07 |
US6408262B1 (en) | 2002-06-18 |
WO1999050746A2 (en) | 1999-10-07 |
ATE272863T1 (de) | 2004-08-15 |
CN100377096C (zh) | 2008-03-26 |
WO1999050746A3 (en) | 1999-11-18 |
DE69919144T2 (de) | 2005-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2226356T3 (es) | Metodo y aparato para analizar un modelo de sistema basado en estados. | |
McMillan et al. | A technique of state space search based on unfolding | |
Fearnley et al. | Reachability in two-clock timed automata is PSPACE-complete | |
Spars et al. | Principles asynchronous circuit design | |
US6496961B2 (en) | Dynamic detection and removal of inactive clauses in SAT with application in image computation | |
US6301687B1 (en) | Method for verification of combinational circuits using a filtering oriented approach | |
Mony et al. | Scalable automated verification via expert-system guided transformations | |
Cortadella et al. | A region-based theory for state assignment in speed-independent circuits | |
Mneimneh et al. | Computing vertex eccentricity in exponentially large graphs: QBF formulation and solution | |
Schröter et al. | The model-checking kit | |
Bar-David et al. | Automatic Discovery of Mutual Exclusion Algorithms: (Preliminary Version) | |
US6842884B2 (en) | Combinational equivalence checking methods and systems with internal don't cares | |
Lind-Nielsen et al. | Verification of large state/event systems using compositionality and dependency analysis | |
Kurshan | Verification technology transfer | |
Beerel et al. | Estimation of energy consumption in speed-independent control circuits | |
Bozianu et al. | Safraless synthesis for epistemic temporal specifications | |
Madhusudan et al. | Symbolic computational techniques for solving games | |
Singhal et al. | The verification problem for safe replaceability | |
Bosboom | Exhaustive search and hardness proofs for games | |
Park | Formal modeling and verification of delay-insensitive circuits | |
Grumberg | 2-valued and 3-valued abstraction-refinement in model checking | |
Sadanand | Model Checking in General Game Playing: Automated Translation from GDL-II to MCK | |
Chatterjee et al. | Coverability: Realizability Lower Bounds | |
Mac Millan | A technique of state space search based on unfolding | |
Ahrens | A compositional approach to asynchronous design verification with automated state space reduction |