La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Rapprocher les méthodes formelles, lanalyse statique et les tests 29 mai 2012.

Présentations similaires


Présentation au sujet: "Rapprocher les méthodes formelles, lanalyse statique et les tests 29 mai 2012."— Transcription de la présentation:

1 Rapprocher les méthodes formelles, lanalyse statique et les tests 29 mai 2012

2 Le projet Hi-Lite Hi-Lite Tests unitaires Preuves formelles Analyse statique Combiner tests et preuves Renforcer mutuellement tests et analyse statique Faciliter la preuve formelle grâce à lanalyse statique

3 Un language commun dannotation

4 Travail de la deuxième année des partenaires

5 Résumé densemble

6 T1 : Management et dissémination Gestion de projet Dissémination des produits du projet Forge Hi-Lite : Mailing listes, dépot de sources, … Nombreuses publications et participations à des conférences T2 : Spécifications Exigences collectées lannée dernière, affinées cette année Rapport dactivité par tâche

7 T3 : Langages ALFA, E-ACSL manuels de référence mis à jour Extensions SPARK T4 : Traducteurs Gros progrès sur le traducteur ALFA vers Why (gnat2why) Support complete de ALFA dans GNAT Pro Greffon Frama-C: E-ACSL vers C Rapport dactivité par tâche

8 T5 : Outils danalyse et de test CodePeer : adaptations à ALFA ~ terminée, améliorations Nombreuses améliorations dans GNATtest (génération dun framework de tests unitaires), y compris support des aspects Test_Case Evolutions du prouveur Alt-Ergo et de Why3 Evolutions de la plate-forme Frama-C T6 : Bibliothèques et interfaces utilisateur Intégration de gnatprove et gnattest dans GPS Support de ALFA dans GPS Conception en cours dun outil de consolidation des résultats Améliorations dans AltGr-Ergo Rapport dactivité par tâche

9 T7 : Applications industrielles Outils (gnatprove/gnat2why, gnattest, GPS, why3, alt-ergo, greffon e-acsl) mis à disposition Retour dexpérience, mises à jour disponibles Etudes de cas : Thales, Astrium Application des outils sur eux-mêmes Utilisation de CodePeer sur CodePeer, GNAT, GPS Rapport dactivité par tâche

10

11 Extensions du langage SPARK dans le but daméliorer les techniques de preuve, support dALFA, et de la bibliothèque des conteneurs, par exemple: Invariants de type Génériques Développement et intégration de Victor un traducteur des conditions de vérification SPARK vers le format SMT-Lib afin de facilite lutilisation de démonstrateurs de théorèmes alternatifs, par exemple Alt-Ergo. Praxis Work Package

12 Implémentation des génériques est en cours de développement par Gaétan Allaert dAltran-Praxis France. SPARK Generics LRM et le document SPARK Generics User View ont été publiés. Implémentation par étapes: la dernière version de loutil SPARK a été délivrée en Décembre 2011 avec support des sous-programmes génériques SPARK. La fonction générique Ada.Unchecked_Conversion a été étendue afin de supporter dans le contexte de preuve la possibilité dappliquer une pré et une post conditions à linstanciation. Progrès du Praxis Work Package Les génériques

13 Les activités de validation de la version incluent: à travers le tests, lajout dun ensemble considérable de tests dans le but de valider limplémentation des sous- programmes génériques; lajout dannotation de preuve au nouveau code et au code modifié par lanalyse des sous-programmes génériques. Les conditions de vérification qui en résulte ont été déchargées en utilisant les outils de preuve SPARK, y compris Victor et Alt-Ergo. Limplémentation des paquetages génériques se poursuit et devrait être disponible dans la prochaine version de loutil SPARK. Progrès du Praxis Work Package Les génériques

14 Les génériques comme décrit dans le "SPARK Generics LRM" sont inclus dans la nouvel édition de SPARK: The proven approach to High Integrity Software par John Barnes, que sera publié durant Q Les génériques SPARK excluent certaines caractéristiques dAda qui ne sont pas autorisées en SPARK mais gardent un sous-ensemble utilisable. Laccent a été placé afin de supporter les caractéristiques nécessaires à supporter une implémentation utilisable de la bibliothèque des conteneurs SPARK. Supporter le concept of démontrer une seul fois utiliser plusieurs fois. Les generiques SPARK

15 Tous les composants de la bibliothèque inclus dans la dernière version de loutil SPARK sont: SPARK.Ada.Strings.Unbounded SPARK.Ada.Command_Line SPARK.Ada.Text_IO Ada.Interfaces, Ada.Interaces.C Ada.Character.Handling, SPARK.Unsigned Une première spécification de la bibliothèque des conteneurs a été écrite et sera mis à jour suivant le travail réalisé par AdaCore concernant la preuve des programmes utilisants les conteneurs. La bibliothèque des conteneurs SPARK sera implémentée des que les paquetages génériques seront disponible en SPARK. Progrès du Praxis Work Package Bibliothèque SPARK

16 Unification de la sémantique entre ALFA et SPARK pour les pré & post conditions ainsi que pour les expressions dans les autres contextes de preuve ALFA a une sémantique exécutable. SPARK est basé sur une sémantique mathématique. Des réunions entre AdaCore et Altran Praxis ont été tenues avec succès dans le but de définir une approche commune. Riposte – un générateur de contre-exemples a été développé par Altran Praxis (non financé par le projet Hi- Lite) et des investigations ont été menées pour le rendre disponible avec une interface Why dans le cadre de la technologie Hi-Lite. Progrès du Praxis Work Package Support pour ALFA Amélioration des techniques de preuve

17

18 Buts principaux du projet Hi-Lite (rappel) - combiner les techniques de test logiciel et de vérification formelle - appliquer ces techniques aux programmes mixtes Ada + C Contributions visées par le CEA LIST dans ce contexte - définir un langage de spécifications exécutables pour le C, E- ACSL, fondé sur le langage ACSL existant - implanter un traducteur d'E-ACSL vers C - améliorer la plateforme Frama-C dédiée à l'analyse statique de programmes C

19 E-ACSL Executable ANSI/ISO C Specification Language - langage d'annotations exécutables pour le langage C - annotation exécutable = traductible en une expression C évaluable à l'exécution - le plus possible sémantiquement compatible avec ALFA - fondé sur le langage ACSL (ANSI/ISO C Specification Language) - défini au cours de la 1 ère année du projet - amélioration au cours de cette seconde année - nouvelle version du manuel de référence (version 1.5-4) à partir de laquelle une implantation a été effectuée - Une publication soumise M. Delahaye, N. Kosmatov and J. Signoles. Towards a Common Specification Language for Static and Dynamic Analyses of C Programs. Submitted to QSIC 2012.

20 Traducteur d'E-ACSL vers C - nouveau greffon de la plateforme Frama-C - traduire les annotations E-ACSL en C pour permettre la vérification d'assertions à l'exécution : runtime assertion checking - utilisation dentiers GMP (entiers mathématiques) pour être fidèle à la sémantique dE-ACSL. - schéma de traduction non trivial. - prise en compte dune grande partie dE-ACSL, à lexception notable des constructions liés à la mémoire et aux réels. - version 0.1 distribuée en open source en janvier amélioration en cours et prévue pour la fin du projet : -système de types pour générer un code beaucoup plus efficace -support des constructions liées à la mémoire

21 Évolution de la plateforme Frama-C - nouvelle version publique de Frama-C : version Nitrogen version requise par le traducteur dE-ACSL en C - nouveaux mécanismes facilitant les collaborations inter-analyses pour la vérification de propriétés et améliorant le retour utilisateur - une publication acceptée et deux soumises : P. Cuoq, D. Doligez and J. Signoles. Lightweight Typed Customizable Unmarshaling. ML Workshop L. Correnson and J. Signoles. Combining Analyses for C Program Verification. Submitted to FMICS P. Cuoq, F. Kirchner, N. Kosmatov, V. Prevosto, J. Signoles and B. Yakobowski. Frama-C: a Program Analysis Perspective. Submitted to SEFM 2012.

22 Résumé des travaux du CEA LIST - nouvelle version du langage de spécifications exécutables E-ACSL - distribution open source de la version 0.1 du traducteur dE-ACSL en C - évolution de la plateforme Frama-C : version Nitrogen requise par le traducteur - collaboration inter-analyses - dissémination scientifique : 1 publication et 3 soumises sur les thématiques Hi-Lite - à venir : - poursuite du travail dimplantation - vérification programmes Ada + C

23

24

25

26

27

28

29

30 Stratégie de Thales dans le projet Intégrer les approches Hi-Lite dans loutillage Thales pour la génération dapplications Remontée des spécifications formelles dans les modèles Adaptation du code généré pour le rendre conforme à Hi- Lite Évaluer cette intégration sur un cas détude du domaine spatial

31 Nouvelle spécification du code à générer Mise au point dun prototype de code adapté aux contraintes dHi-Lite Masquage des pointeurs dans les structures Conservation des fonctionnalités (presque) à lidentique Discussions avec les équipes industrielles pour ladoption du nouveau code En cours dévaluation par rapport aux outils Hi-Lite

32 Intégration dans lapproche de modélisation Définition dun méta-modèle pour les spécifications formelles Préparation des expérimentations sur la modélisation C1 instance 1 C2 instance 2 Tâche 1 Processus 1 C2 instance 1 Specifications

33 Cas détude Délimitation du cas détude Contrôle de régulation thermique dans le logiciel de vol Assemblage de composants et code dimplémentation Objectifs Évaluer lintégration des outils Hi-Lite dans lapproche de modélisation Étudier les possibilités de spécifications systématiques sur le code généré

34

35 Astrium activities in Hi-Lite Industrial user Task 2.1: Specifications Definition of the industrial needs for the development of critical real time embedded software in the space domain Finalized in 2012 Task 7.2: Industrial applications Validation of the Hi-Lite approach Definition of toy examples to validate some specific concepts Definition of a realistic application

36 Task 2.1: Specifications (1/2) Analysis of standards ECSS-E-ST-40C (« Space engineering – Software ») ECSS-Q-ST-80C (« Space product assurance – Software product assurance ») Main conclusions Test shall be the main validation techniques Formal proof is accepted and sometimes recommended Validation & verification objectives Exhaustive detection of run-time errors, traceability between test cases and test procedures, etc. Important number covered by Hi-Lite

37 Task 2.1: Specifications (2/2) Astrium general needs Decrease of costs and delays Increase of the quality More specific needs Validation of generic software / customised software Safe reuse of software building blocks Verification of the sensor data Properties on vectors Etc. Used Ada features Mathematical operators, arrays,... Generics, discriminant records, expression functions,...

38 Sensors Actuators Control Guidance EnvironmentEnvironment Navigation GNC Task 7.2: Industrial applications (1/3) ECS EPC EAP ECS EPC EAP ECS EPC EAP MVM TC TM TM/TC

39 Mission & Vehicle Management MVM

40 Telemetry / Telecommand TMTC

41 Orientation of the ATV solar wings Optimisation of energy Experimentations in SPARK Comparison with Hi-Lite Task 7.2: Industrial applications (3/3) Algorithms

42 Generic Discriminant

43 Contract Test cases

44 Formal proof

45 Tests

46 Travail à venir

47 Tâches 4 (traducteurs), 5 (outils analyse/test) et 7 (bibliotheques, IHM) en pleine charge Finalisation des tâches 2 (spécifications) et 3 (langages) Début de la tâche 7 (applications industrielles) Travail pour cette année

48 Questions ?


Télécharger ppt "Rapprocher les méthodes formelles, lanalyse statique et les tests 29 mai 2012."

Présentations similaires


Annonces Google