Search engine for discovering works of Art, research articles, and books related to Art and Culture
ShareThis
Javascript must be enabled to continue!

Debugging of Behavioural Models using Counterexample Analysis

View through CrossRef
Débogage de modèles comportementaux par analyse de contre-exemple Le model checking est une technique établie pour vérifier automatiquement qu’un modèle vérifie une propriété temporelle donnée. Lorsque le modèle viole la propriété, le model checker retourne un contre-exemple, i.e., une séquence d’actions menant à un état où la propriété n’est pas satisfaite. Comprendre ce contre-exemple pour le débogage de la spécification est une tâche compliquée pour plusieurs raisons: (i) le contre-exemple peut contenir un grand nombre d’actions; (ii) la tâche de débogage est principalement réalisée manuellement; (iii) le contre-exemple n’indique pas explicitement la source du bogue qui est caché dans le modèle; (iv) les actions les plus pertinentes ne sont pas mises en évidence dans le contre-exemple; (v) le contre-exemple ne donne pas une vue globale du problème.Ce travail présente une nouvelle approche qui rend plus accessible le model checking en simplifiant la compréhension des contre-exemples. Notre solution vise à ne garder que des actions dans des contre-exemples pertinents à des fins de débogage. Pour y parvenir, on détecte dans les modèles des choix spécifiques entre les transitions conduisant à un comportement correct ou à une partie du modèle erroné. Ces choix, que nous appelons neighbourhoods, se révèlent être de grande importance pour la compréhension du bogue à travers le contre-exemple. Pour extraire de tels choix, nous proposons deux méthodes différentes. La première méthode concerne le débogage des contre-exemples pour la violations de propriétés de sûreté. Pour ce faire, elle construit un nouveau modèle de l’original contenant tous les contre-exemples, puis compare les deux modèles pour identifier les neighbourhoods. La deuxième méthode concerne le débogage des contre-exemples pour la violations de propriétés de vivacité. À partir d’une propriété de vivacité, elle étend le modèle avec des informations de préfixe / suffixe correspondants à cette propriété. Ce modèle enrichi est ensuite analysé pour identifier les neighbourhoods.Un modèle annoté avec les neighbourhoods peut être exploité de deux manières. Tout d’abord, la partie erronée du modèle peut être visualisée en se focalisant sur les neighbourhoods, afin d’avoir une vue globale du comportement du bogue. Deuxièmement, un ensemble de techniques d’abstraction que nous avons développées peut être utilisé pour extraire les actions plus pertinentes à partir de contre-exemples, ce qui facilite leur compréhension. Notre approche est entièrement automatisée par un outil que nous avons implémenté et qui a été validé sur des études de cas réels dans différents domaines d’application.
Agence Bibliographique de l'Enseignement Supérieur
Title: Debugging of Behavioural Models using Counterexample Analysis
Description:
Débogage de modèles comportementaux par analyse de contre-exemple Le model checking est une technique établie pour vérifier automatiquement qu’un modèle vérifie une propriété temporelle donnée.
Lorsque le modèle viole la propriété, le model checker retourne un contre-exemple, i.
e.
, une séquence d’actions menant à un état où la propriété n’est pas satisfaite.
Comprendre ce contre-exemple pour le débogage de la spécification est une tâche compliquée pour plusieurs raisons: (i) le contre-exemple peut contenir un grand nombre d’actions; (ii) la tâche de débogage est principalement réalisée manuellement; (iii) le contre-exemple n’indique pas explicitement la source du bogue qui est caché dans le modèle; (iv) les actions les plus pertinentes ne sont pas mises en évidence dans le contre-exemple; (v) le contre-exemple ne donne pas une vue globale du problème.
Ce travail présente une nouvelle approche qui rend plus accessible le model checking en simplifiant la compréhension des contre-exemples.
Notre solution vise à ne garder que des actions dans des contre-exemples pertinents à des fins de débogage.
Pour y parvenir, on détecte dans les modèles des choix spécifiques entre les transitions conduisant à un comportement correct ou à une partie du modèle erroné.
Ces choix, que nous appelons neighbourhoods, se révèlent être de grande importance pour la compréhension du bogue à travers le contre-exemple.
Pour extraire de tels choix, nous proposons deux méthodes différentes.
La première méthode concerne le débogage des contre-exemples pour la violations de propriétés de sûreté.
Pour ce faire, elle construit un nouveau modèle de l’original contenant tous les contre-exemples, puis compare les deux modèles pour identifier les neighbourhoods.
La deuxième méthode concerne le débogage des contre-exemples pour la violations de propriétés de vivacité.
À partir d’une propriété de vivacité, elle étend le modèle avec des informations de préfixe / suffixe correspondants à cette propriété.
Ce modèle enrichi est ensuite analysé pour identifier les neighbourhoods.
Un modèle annoté avec les neighbourhoods peut être exploité de deux manières.
Tout d’abord, la partie erronée du modèle peut être visualisée en se focalisant sur les neighbourhoods, afin d’avoir une vue globale du comportement du bogue.
Deuxièmement, un ensemble de techniques d’abstraction que nous avons développées peut être utilisé pour extraire les actions plus pertinentes à partir de contre-exemples, ce qui facilite leur compréhension.
Notre approche est entièrement automatisée par un outil que nous avons implémenté et qui a été validé sur des études de cas réels dans différents domaines d’application.

Related Results

A Debugging Game for Probabilistic Models
A Debugging Game for Probabilistic Models
One of the major advantages of model checking over other formal methods is its ability to generate a counterexample when a model does not satisfy is its specification. A counterexa...
Debugging Parallel DEVS
Debugging Parallel DEVS
To this day, debugging support for the DEVS formalism has been provided, at best, in an ad-hoc way. The intricacies of dealing with the interplay of different notions of (simulated...
How developers debug
How developers debug
Debugging software is an inevitable chore, often difficult and more time-consuming than expected, giving it the nickname the “ dirty little secret of computer science.” Surprisingl...
Behavioural and Cognitive Behavioural Training Interventions for Assisting Foster Carers in the Management of Difficult Behaviour
Behavioural and Cognitive Behavioural Training Interventions for Assisting Foster Carers in the Management of Difficult Behaviour
There is a lack of evidence about the efficacy of behavioural or cognitive‐behavioural training interventions for foster carers. The programmes are intended to assist foster carers...
What is reverse debugging? Classification of reverse debugging methods
What is reverse debugging? Classification of reverse debugging methods
Abstract The article discusses an approach to speeding up the search complex errors in software – reverse debugging. In this approach, debugging is divided into two ...
The PBC Model: Supporting Positive Behaviours in Smart Environments
The PBC Model: Supporting Positive Behaviours in Smart Environments
Several behavioural problems exist in office environments, including resource use, sedentary behaviour, cognitive/multitasking, and social media. These behavioural problems have be...
Streamlining Debugging with MDugger: Catching the Uncaught
Streamlining Debugging with MDugger: Catching the Uncaught
<p>This article is about our latest development in the field of automated software debugging. As experienced developers in the software industry, we have encountered the chal...

Back to Top