Version du 22 juin Un outil danalyse statique (synthèse de propriétés) de preuve de propriétés de logiciels écrits en langage C ANSI, utilisé dans lindustrie : Airbus, EdF Caveat
Version du 22 juin Utilisation chez Airbus Utilisation chez EdF Démonstration de loutil Évolutions en cours Questions Plan de la présentation
Version du 22 juin Objectif : Trouver des erreurs au plus tôt en cours de développement pour réduire les coûts et les délais, sans attendre de pouvoir les tester Utilisation : Preuve des fonctions C dès quelles sont écrites et spécifiées Suppression des tests unitaires Mise en œuvre en plusieurs étapes : oÉtude et expérimentation de la technologie oAdaptation au contexte oExpérimentation sur lA380 (réduction des coûts et délais) oDéploiement sur dautres réalisations (par exemple lA400M) Utilisation chez Airbus
Version du 22 juin Objectif : Constitution de dossiers de sûreté Utilisation : Identification de menaces : odivision par zéro, indices de tableau hors bornes,… ocode mort Contrôle de la propagation des fautes Mise en œuvre en plusieurs étapes : oÉtude et expérimentation de la technologie oAdaptation au contexte oUtilisation opérationnelle sur des systèmes de sûreté du nucléaire oDéploiement au sein dEdF et chez des sous-traitants Utilisation chez EdF
Version du 22 juin Synthèse automatique de propriétés : Opérandes cachés Pré-conditions (menaces ) Preuve de propriétés : Post-conditions Pré-conditions Invariants de boucle Assertions Transformation interactive de prédicats Démonstration
Version du 22 juin Synthèse automatique : Invariants trop forts non établis avant les boucles échec ou report sur le contexte dutilisation Formules trop complexes pour être simplifiées automatiquement Besoin dinterventions de lutilisateur : Donnée dinvariants de boucle Introduction de coupures (assertions intermédiaires, pré- conditions) Transformation interactive des conditions générées Traitement des menaces
Version du 22 juin C ANSI Pas dalias Pas dallocation dynamique de mémoire Pas de fonctions récursives Pas de pointeurs de fonction ~ règles de programmation des systèmes de sûreté Limitations actuelles
Version du 22 juin Introduction de linterprétation abstraite pour : Traitement des alias Synthèse dinvariants Passer une difficulté par un calcul approché (sur certains treillis ; interprétation abstraite) et revenir ensuite sur des calculs exacts (sur prédicats ; Hoare) Objectifs : Traiter les pointeurs Réduire le nombre de fausses menaces Réduire les interactions Évolutions en cours