Action Vasy-RA

Précédent : Grands domaines d'application
Remonter : Action Vasy-RA, Validation de Systèmes
Suivant : Résultats nouveaux
Logiciels
La boîte à outils CADP
En collaboration
avec le projet SPECTRE/VERIMAG, nous développons la boîte à outils
CADP (CæSAR/ALD´EBARAN DEVELOPMENT
PACKAGE) pour l'ingénierie des protocoles
et des systèmes distribués. Au sein de cette boîte à outils, nous
avons en charge les logiciels suivants :
- CæSAR est un compilateur qui
produit, à partir d'un programme LOTOS,
du code exécutable ou des modèles sur lesquels différentes
méthodes de vérification peuvent être appliquées. Le programme
source LOTOS est traduit successivement
en une algèbre de processus simplifiée, un réseau de Petri
étendu avec des variables et des transitions atomiques, et
finalement un système de transitions étiquetées obtenu par
simulation exhaustive.
- CæSAR.ADT est
un compilateur qui traduit les définitions de types abstraits
LOTOS vers des bibliothèques de types et
de fonctions en langage C. La traduction met en oeuvre un
algorithme de compilation par filtrage et des techniques pour
la reconnaissance des classes de types usuels (nombres entiers,
énumérations, tuples, listes...) qui sont identifiées
automatiquement et implémentées de manière optimale.
- BCG (Binary Coded Graphs) est
un format qui utilise des techniques efficaces de compression
permettant de stocker des graphes (sous forme explicite) sur
disque de manière très compacte. Ce format est indépendant du
langage source et des outils de vérification. En outre, il
contient suffisamment d'informations pour que les outils qui
l'exploitent puissent fournir à l'utilisateur des diagnostics
précis dans les termes du programme source. Pour exploiter ce
format, un environnement logiciel est disponible, qui se
compose de bibliothèques C et de plusieurs outils,
notamment : BCG_IO (qui effectue des conversions de format),
BCG_OPEN (qui
permet d'appliquer à des graphes BCG les
outils de l'environnement OPEN/CæSAR pour la
vérification à la volée), BCG_DRAW (qui permet
d'afficher en PostScript une représentation 2D d'un graphe), et
BCG_EDIT (qui
permet de modifier interactivement la représentation graphique
produite par BCG_DRAW).
- OPEN/CæSAR
est un environnement extensible permettant de développer des
outils de simulation, de vérification et de génération de test
sur des graphes sous forme implicite. Ces outils peuvent être
réalisés de manière simple, modulaire et indépendante du
langage utilisé pour décrire les systèmes à valider.
L'environnement OPEN/CæSAR comprend un ensemble de bibliothèques avec
leurs interfaces de programmation, ainsi que divers outils pour
la simulation pas à pas, l'exécution aléatoire, la recherche de
blocages, la recherche de séquences satisfaisant un certain
critère, etc.
- XTL (eXecutable Temporal
Language) est un méta-langage adapté à l'expression des
algorithmes d'évaluation et de diagnostic pour les formules de
logiques temporelles telles que CTL
[1],
HML [3], ACTL [7], etc.
D'inspiration fonctionnelle, ce méta-langage offre des
primitives d'accès à toutes les informations contenues dans les
graphes BCG : états, étiquettes des
transitions, fonctions successeurs et
prédécesseurs, ainsi qu'aux types et fonctions du
programme source. Il permet la définition de fonctions
récursives servant à calculer des prédicats de base et des
modalités temporelles portant sur les ensembles d'états et de
transitions.
A ces outils s'ajoutent ceux développés par le projet
SPECTRE/VERIMAG,
qui permettent la comparaison et la réduction de graphes modulo
des relations d'équivalences et de préordres appropriées, la
génération compositionnelle de graphes par application
progressive de réductions et d'abstractions, et la génération de
tests à la volée.
Tous ces outils --ainsi que d'autres développés par les
projets MEIJE (Sophia-Antipolis) et
PAMPA (Rennes) et par les Universités de
Liège et d'Ottawa-- sont intégrés au sein de l'interface
graphique EUCALYPTUS (développée en
TCL/TK) qui offre
un accès facile et uniforme aux différents outils, en cachant à
l'utilisateur les conventions d'appel et les formats spécifiques
à chaque outil.
Diffusion de logiciels
Depuis les années 80 et le début des années 90, les méthodes
formelles ont connu un grand essor : de multiples langages,
outils et méthodologies ont été proposés. Cette phase d'expansion
semble sur le point de s'achever et une phase de sélection
darwinienne s'apprête à lui succéder. Les langages inadaptés et
les prototypes immatures seront délaissés, au profit d'outils qui
auront fait leurs preuves sur des exemples industriels et pour
lesquels l'existence d'une communauté importante d'utilisateurs
permettra d'assurer les développements futurs.
La boîte à outils CADP est bien placée
dans cette compétition. Elle s'appuie sur un langage normalisé,
comporte des outils robustes (bien que perfectibles) et regroupe
un nombre important d'utilisateurs.
En 1997, nous avons accompli un effort significatif en vue
d'améliorer la visibilité de la boîte à outils CADP et d'accroître sa diffusion. Nous pouvons
mentionner les faits marquants suivants (dont certains obtenus en
collaboration avec le projet SPECTRE/VERIMAG, notamment
Marius Bozga et Laurent Mounier) :
- Dans le cadre du travail de stage de P. Wendel, nous
avons simplifié la procédure d'installation de CADP en développant l'outil INSTALLATOR qui automatise l'installation et la mise
à jour de CADP grâce aux protocoles de
l'INTERNET. Avec cet outil, nous avons
cherché à atteindre l'ergonomie et la simplicité d'utilisation
propres aux ``assistants d'installation'' du monde PC/WINDOWS.
- Début 1997, nous avons créé une page Web consacrée à la
boîte à outils CADP (http://www.inrialpes.fr/vasy/cadp.html).
Tout au long de l'année, nous avons enrichi cette page, qui
offre désormais les services suivants :
-
- présentation des outils et de leurs
fonctionnalités ;
- documentations et publications associées ;
- forum aux questions (FAQ, en
anglais Frequently Asked Questions) ;
- liste des études de cas réalisées avec CADP ;
- démonstrations disponibles en ligne.
- En juin 1997, nous avons diffusé une nouvelle version de la
boîte à outils : CADP version 97a
``Twente'', qui remplace la précédente version Z datant de
décembre 1996.
- En décembre 1997, nous avons diffusé une nouvelle
version : CADP version 97b
``Liège'', qui a été portée sous le système d'exploitation
LINUX.
- Nous avons effectué plusieurs démonstrations publiques de
la boîte à outils, notamment à l'occasion des colloques et
conférences DYADE (Grenoble, avril
1997), COST-247 (Zagreb, juin 1997),
ERCIM (Cesena, juillet 1997),
CFIP'97 (Liège, octobre 1997) et
ASE'97 (Incline Village, novembre
1997).
- Nous avons organisé le 24 juillet 1997 une journée de
présentation des outils CADP à
l'intention du monde académique et industriel, qui a réuni une
quinzaine de participants.
- Nous avons également créé une lettre électronique (The
CADP Newsletter) décrivant l'avancement des travaux et les
nouveautés concernant CADP. Trois
numéros ont été publiés en décembre 1996, juin 1997 et
septembre 1997.
Ces efforts semblent avoir porté leurs fruits puisqu'en 1997,
le nombre de licences sites pour CADP est
passé de 127 à 148.
Précédent : Grands domaines d'application
Remonter : Action Vasy-RA, Validation de Systèmes
Suivant : Résultats nouveaux