LIST/DTSI 1 15/11/2002 Journées SECC R&D en Validation/Vérification outils pilotée par des besoins industriels Principales réalisations : Claire : environnement de test de systèmes temps-réel distribués utilisant des simulateurs de microprocesseurs (IRSN, Airbus, Duons,…) Caveat : analyse statique de programmes C (synthèse de propriétés et preuve) (Airbus, EDF, TNI,…) GATeL : génération de tests à partir de descriptions Lustre (IRSN, Airbus) Fluctuat : étude de la précision numérique de calculs en nombres flottants (IRSN, Airbus) TAO : génération de tests à partir du source C (Rational) Laboratoire Sûreté du Logiciel
LIST/DTSI 2 15/11/2002 Journées SECC Analyse dynamique Systèmes : distribués : problèmes de synchronisation temps-réel : pas dinstrumentation du code formalismes multiples : problèmes déchanges composants logiciels et matériels à divers stades de maturité : simulation du matériel, remplacement de composants On développe : générateurs denvironnement de test : pilote, bouchons, oracle simulateurs du matériel connexion à GDB
LIST/DTSI 3 15/11/2002 Journées SECC Analyse dynamique Simulateurs du matériel en SystemC (ex : 68040, PowerPC 755, Sharc) Aspect fonctionnel (émulateur) Aspect temporel (prise en compte des caches, pipeline) : précision ~10% Objectifs : Performance : 1 MIPS simulé Bibliothèque de composants de base réutilisables : cache, prédiction de branchement,… Difficultés : performance, précision (~documentation) Coopération : LRI
LIST/DTSI 4 15/11/2002 Journées SECC Analyse statique Identification de menaces (division par zéro, blocage,…) Preuve formelle Précision de calculs utilisant des nombres flottants Génération de cas de test (pilotes et oracles) Au niveau du : du source (C ou SystemC) du binaire exécutable (PowerPC755) de spécifications (Lustre) de modèles (Promela/SPIN, géométriques) extraits du source code
LIST/DTSI 5 15/11/2002 Journées SECC Analyse statique Techniques utilisées : Preuve à la Hoare Interprétation abstraite Programmation logique contrainte Interprétation géométrique et topologie algébrique
LIST/DTSI 6 15/11/2002 Journées SECC Analyse statique Interprétation géométrique et topologie algébrique PaPb Pa Vb Va VbVa T1 T2 T1 et T2 partagent deux ressources a et b interdit dead lock inatteignable
LIST/DTSI 7 15/11/2002 Journées SECC Analyse statique Travaux actuels autour de Caveat : Synthèse dinvariants (prise en compte du contexte) Améliorations diverses de nos outils de manipulation algébrique (avec le LIFO) : filtrage, base de règle de réécriture, démonstrateur de théorèmes Coopération des techniques : Hoare (exact mais interactif ; locale) interprétation abstraite (approchée mais automatique ; globale) exemple : calcul et utilisation dalias
LIST/DTSI 8 15/11/2002 Journées SECC Analyse statique Travaux actuels sur SystemC V2.0 : Définition dun premier sous-ensemble analysable de modules mis à plat (signaux, ports, notify, tous les wait, une seule horloge) Analyseur statique : Représentation interne conservant les communications (pas du C++ à plat, macros non expansées) Synthèse de propriétés dinvariance, et preuve de propriétés temporelles Connexion à AIF format déchange : VHDL, VERILOG, LPV (JL. Lambert TNI-Valiosys),…
LIST/DTSI 9 15/11/2002 Journées SECC Analyse statique Travaux sur lapproche géométrique du parallélisme : Référence : application EDF ( lignes de C, multi-thread avec partage de ressources) Développement dun analyseur statique Calcul dinvariants topologiques pour éviter lexplosion combinatoire Travaux actuels : Calcul compositionnel dinvariants Extension dapplication : POSIX, temps-réel
LIST/DTSI 10 15/11/2002 Journées SECC Analyse statique Analyse par interprétation abstraite des causes dimprécisions dans les calculs flottants (IEEE 754) par rapport aux calculs réels Acquis : Fluctuat analyseur pour programmes C Travaux actuels : analyse du binaire PowerPC 755 contrôle des élargissements dans les boucles recherche dautres domaines pour améliorer la précision de lanalyse
LIST/DTSI 11 15/11/2002 Journées SECC Test structurel/fonctionnel Application des outils danalyse statique : Programme + assertions sur lenvironnement + objectif de test Caveat sur source C : calcul de condition de vérification (à la Hoare), puis résolution TAO sur source C : objectif de test = automate de comportement calcul de la condition dentrée (interprétation abstraite), puis résolution GATeL sur spécification Lustre : modèle + environnement + objectif (interprétation en CLP) puis dépliage + résolution + propagation
LIST/DTSI 12 15/11/2002 Journées SECC Test fonctionnel Test fonctionnel en présence de nombres flottants Objectif : produire un test et un oracle pour décider de la validité du résultat dun calcul en nombres flottants y=f(x) {x 1 = 3.14, y 1 [5.10,5.21] [5.33,5.38]}, … Problèmes : Bon conditionnement du modèle? Sensibilité du graphe de contrôle du modèle. Génération de solution dun système de contraintes avec flottants. Travaux en cours : Bibliothèque pour la résolution de contraintes en nombres flottants
LIST/DTSI 13 15/11/2002 Journées SECC Test fonctionnel Génération de test à partir de spécifications par pré/post-conditions en logique des prédicats du premier ordre Restrictions : Variables du prédicat = variables du code (donc structurées) (pas dabstraction) Quantification sur ensembles finis (bornes éventuellement inconnues) Pas de récursivité Objectif : recherche de solutions nominales et aux limites ( problèmes de caractérisation) Technique : Programmation logique contrainte (Eclipse) Exploitation des formes normales disjonctives Quantification à bornes inconnues génération dynamique de contraintes
LIST/DTSI 14 15/11/2002 Journées SECC Génération de tests Environnement Application (binaire exécutable) Oracle es v Assertions sur lenvironnement Modèle ou source Objectif de test e s v True Analyse statique (Caveat, Fluctuat, TAO, GATeL) Analyse dynamique (Claire) traducteur
LIST/DTSI 15 15/11/2002 Journées SECC Source code Properties Residue Commands
LIST/DTSI 16 15/11/2002 Journées SECC 1 - Insertion of a precondition 2 – Proof of the postcondition 3 – Proof that all the calling functions satisfy the precondition
LIST/DTSI 17 15/11/2002 Journées SECC Caveat : graphe dappels avec menaces
LIST/DTSI 18 15/11/2002 Journées SECC Fluctuat : étude de la précision numérique
LIST/DTSI 19 15/11/2002 Journées SECC Collaborations Industrielles : Airbus : Caveat, Fluctuat, Claire, GATeL EDF : Caveat, MIEL, ALCOOL IPSN : Claire, GATeL, Fluctuat (RATP : évaluation de Caveat) (Dassault Aviation : évaluation de Caveat) Rational : TAO TNI-Valiosys : Caveat, Claire, SystemC Duons Systèmes : Claire Académiques ENS : interprétation abstraite - analyse probabiliste LIX : interprétation abstraite - VHDL LIFO : filtrage pour réécriture LRI : simulateurs de microprocesseurs CNRS Strasbourg,… : analyse de programmes parallèles (LRI : génération de test) (LSV : échanges culturels, vivier pour embauches) Projets nationaux ou européens