Action Vasy-RA

previous up next contents
Précédent : Composition de l'équipe Remonter : Action Vasy-RA, Validation de Systèmes Suivant : Grands domaines d'application



Présentation générale et objectifs

Introduction

Créée au 1er janvier 1997, l'action VASY ``Recherche et Applications'' s'inscrit dans la problématique de la conception de systèmes sûrs par l'utilisation de méthodes formelles.

Plus précisément, nous nous intéressons à tout système (matériel, logiciel, télécommunications) faisant intervenir du parallélisme asynchrone, une modélisation du parallélisme basée sur la sémantique d'entrelacement (interleaving semantics) et bien adaptée à la description de systèmes répartis.

Pour la conception de systèmes sûrs, nous préconisons l'utilisation de techniques de description formelles, complétées par des outils informatiques adaptés, offrant des fonctionnalités de simulation, prototypage rapide, validation et vérification formelle.

Parmi les différentes approches existantes pour la vérification, nous concentrons nos efforts sur la vérification ``basée sur les modèles'' (model-checking) qui recouvre un grand nombre de techniques spécialisées (vérification énumérative, à la volée, symbolique...). Ces techniques, bien que moins générales que les approches par preuves (theorem proving), possèdent pourtant l'avantage de permettre une détection rapide et économique des erreurs de conception dans des systèmes complexes.

Nos travaux se situent au confluent de deux grandes approches en méthodes formelles : l'approche basée sur des modèles (très répandue en Amérique du Nord) et l'approche basée sur des langages (plus développée en Europe) :

Pour mener à bien la vérification de systèmes complexes (de taille ``industrielle''), il nous semble nécessaire de maiitriser simultanément la technologie des modèles et celle des langages.

Technologie des modèles - vérification

Par vérification, on entend la comparaison d'un système avec ses propriétés, qui décrivent les services rendus par le système et son fonctionnement attendu, à un certain niveau d'abstraction.

Les techniques de vérification que nous mettons en oeuvre reposent en grande partie sur le modèle des systèmes de transitions étiquetées (ou, plus simplement, automates, ou encore graphes) composés d'un ensemble d'états, d'un état initial, et d'une relation de transition entre ces états. Ces techniques consistent à engendrer automatiquement, à partir de la description du système à vérifier, un graphe fini qui en modélise le comportement, puis à vérifier les propriétés sur le graphe grâce à une procédure de décision.

Selon le formalisme utilisé pour exprimer les propriétés, on distingue deux approches :

propriétés comportementales :
elles décrivent le fonctionnement du système sous forme d'automates (ou bien en utilisant un langage de plus haut niveau que l'on traduit ensuite vers des automates). Compte-tenu que le système à vérifier et ses propriétés comportementales peuvent tous deux être représentés par des automates, la vérification consiste à les comparer au moyen de relations d'équivalence ou de préordre.

Concernant la vérification de propriétés comportementales, nous n'effectuons pas de recherches dans ce domaine, mais nous collaborons avec d'autres projets, notamment SPECTRE/VERIMAG et MEIJE, qui développent des outils basés sur les relations d'équivalence et de préordre.

propriétés logiques :
elles caractérisent des propriétés essentielles du système, telles que l'absence de blocage, l'exclusion mutuelle ou l'équité. Parmi les formalismes utilisés, les logiques temporelles et le $\mu$-calcul modal s'avèrent bien adaptés pour décrire l'évolution du système dans le temps. Dans ce cas, la vérification consiste à s'assurer que l'automate modélisant le système à vérifier satisfait les propriétés logiques.

Concernant la vérification de propriétés logiques, nos travaux dans ce domaine portent sur l'extension du $\mu$-calcul arborescent par des variables typées, afin de prendre en compte les données contenues dans les états et les transitions du graphe. Cette extension (dont nous avons mis en évidence l'utilité sur de nombreux exemples, notamment industriels) permet d'exprimer des propriétés qu'il n'est pas possible d'écrire en $\mu$-calcul standard comme, par exemple, le fait qu'une variable donnée soit toujours croissante sur un chemin d'exécution. Notre objectif est également de proposer et d'implémenter des algorithmes d'évaluation efficaces pour cette extension du $\mu$-calcul.

Bien que ces techniques soient efficaces et complètement automatisables, leur principale limitation est leur complexité, en général exponentielle par rapport à la taille du système. Ceci explique le problème de l'explosion d'états qui survient lorsque le nombre d'états du système à vérifier dépasse les capacités en mémoire de la machine. C'est pourquoi nous fournissons des technologies logicielles (voir [*]) permettant de manipuler ces graphes de deux manières :

Technologie des langages - compilation

En ce qui concerne les langages, il nous semble essentiel de s'appuyer sur des langages possédant simultanément un caractère exécutable et une sémantique formelle, ceci pour plusieurs raisons :

C'est pourquoi nous nous intéressons au langage LOTOS, le seul langage de description de protocoles ayant le statut de norme internationale [5] et possédant les propriétés ci-dessus. Il s'agit d'un langage basé sur les concepts des algèbres de processus (notamment CCS [6] et CSP [4]) pour la description du contrôle et les types abstraits algébriques [2] pour la description des données. LOTOS autorise à la fois la description du parallélisme asynchrone (aspects liés à la répartition, la synchronisation et la communication entre tâches) et celle des structures de données complexes manipulées dans les protocoles et les systèmes distribués.

Toutefois, les besoins en méthodes formelles et vérification allant en augmentant, il est nécessaire de réfléchir à de nouveaux langages, plus simples, plus expressifs et mieux adaptés aux besoins industriels. Cette réflexion est également guidée par l'apparition de protocoles à contraintes temporelles fortes --protocoles utilisés dans les réseaux à haut débit-- pour lesquels il devient nécessaire de prendre en compte les aspects temporels de manière quantitative, et non plus seulement qualitative. Nous travaillons dans cette direction, notamment dans le cadre de la refonte de la norme LOTOS actuellement entreprise à l'ISO.

Implémentation et expérimentation

Dans la mesure du possible, nous essayons de valider nos propositions par le développement d'outils et l'application de ces outils à des études de cas complexes (notamment industrielles, dans le cadre de notre coopération avec le le GIE BULL-INRIA DYADE. Cette confrontation systématique avec les problèmes d'implémentation et d'expérimentation est un aspect essentiel de notre approche.



previous up next contents Précédent : Composition de l'équipe Remonter : Action Vasy-RA, Validation de Systèmes Suivant : Grands domaines d'application