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
Application number
ES99911631T
Other languages
English (en)
Inventor
Henrik Leerberg
Henrik Hulgaard
Jorn Bo Lind-Nielsen
Henrik Reif Andersen
Kim Guldstrand Larsen
Kare Jelling Kristoffersen
Gerd Behrmann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IAR Systems AS
Original Assignee
IAR Systems AS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by IAR Systems AS filed Critical IAR Systems AS
Application granted granted Critical
Publication of ES2226356T3 publication Critical patent/ES2226356T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software 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.
Campo de la técnica
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.
Antecedentes de la invención
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.
Resumen de la invención
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.
Breve descripción de los dibujos
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.
Descripción detallada
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.
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.
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.
Tren + barrera
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.
Tren
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.
Tren + barrera
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.
Método
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.
Interbloqueo
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).
Tren, barrera
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.
Método
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?
Método
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)}.
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.
Tren, barrera, señal
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.
Tren, barrera, señal
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".
Sistemas y máquinas de estados
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.
Sistemas y máquinas de estados jerárquicos
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.
Expansión de sistemas de estados jerárquicos
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.
Procedimiento de expansión - estados
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.
Procedimiento de expansión - transiciones
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.
Expansión del tren DUPLO jerárquico
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.
Tren, barrera, "go", señal
Dado: Un sistema de control jerárquico, Hsys.
Resultado: Un sistema de estados planos equivalente/similar, Sys.
Método
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.
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
1
están definidas por
2
Controles de consistencia
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.
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.
Representación ROBDD
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:
3
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):
4
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:
5
La relación de transición local para la máquina i es por lo tanto:
6
El ROBDD \tilde{T} para la relación de transiciones completa es la conjunción de las relaciones de transiciones locales:
7
Accesibilidad composicional hacia atrás
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:
8
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,
9
y s' =_{I} s implica que
10
Determinación de interbloqueos locales
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
11
(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):
12
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).
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.
ES99911631T 1998-03-27 1999-03-26 Metodo y aparato para analizar un modelo de sistema basado en estados. Expired - Lifetime ES2226356T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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&#39;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