Vérification formelle, compositionnelle at automatique de systèmes de composants
Institution:
Paris 11Disciplines:
Directors:
Abstract EN:
Nowadays, critical systems based on components are widely used and require a maximal level of trust. Formal methods such as Model-Checking are used to guarantee crucial properties, with a high level of automation. However, Model-Checking suffers from combinatorial explosion when the size of the system becomes too big. This thesis defines a framework for high level description, where verification accompanies the modelisation of the system, and limits the combinatorial explosion problem with a compositional verification of the system. Our approach is based on observer systems. They are executed in parallel of the studied system without interfering on its global behavior, and allow the expression of system properties. The compositional aspect of the verification comes from the possibility to safely replace a part of or a whole system by another one. This is done through the conjoined use of Model-Checking and Abstract Interpretation, which assure the computation of a subset of the behaviors of the system. When Abstract Interpretation introduces approximations, observers can distinguish states that would have been joined otherwise to bring the needed precision. They guide the analysis and are described by the user who explicitly specifies instants of observation. This framework is adapted to the conception flow of a system, where abstractions and refinements are intensively used. For experimental purposes, we developed the SystemD language, resembling SystemC, that integrates the description, the specification and the verification of a system, and stays close to the engineering world.
Abstract FR:
Aujourd’hui, de nombreux systèmes à base de composants sont critiques ; leur fonctionnement requiert un niveau de confiance maximal. Les méthodes formelles comme le Model-Checking sont utilisées pour garantir les propriétés cruciales, avec un haut degré d'automatisation. Cependant, le Model-Checking souffre d'explosion combinatoire lorsque les systèmes deviennent trop grands. Cette thèse propose un cadre de description haut niveau, où la vérification accompagne la modélisation du système, et limite le problème de l'explosion par une vérification modulaire des composants du système. L'approche se base sur les observateurs, qui s'exécutent en parallèle d’un système sans en modifier le comportement global et permettent de décrire des propriétés. La modularité de la vérification vient de la possibilité de remplacer avec sûreté tout ou partie d'un système par un autre. Ceci est rendu possible par l'utilisation conjointe du Model-Checking et de l’Interprétation Abstraite, ce qui assure le calcul d'un sur-ensemble des comportements du système. Alors que l'Interprétation Abstraite introduit des approximations, les observateurs permettent de distinguer des états qui auraient été fusionnés pour gagner la précision nécessaire. Ils pilotent les analyses en introduisant des instants d'observation. Décrits par l'utilisateur, ils permettent une mise au point interactive des états à fusionner. Notre approche s'intègre dans le cycle de développement d'un système où raffinements et abstractions sont légions. Nous définissons le langage SystemD, proche de SystemC, intégrant la description, la spécification et la vérification de systèmes, tout en restant accessible au monde de l'ingénierie.