Docstoc

Slide 1 - open-DO Toward a cooperative and open framework for

Document Sample
Slide 1 - open-DO Toward a cooperative and open framework for Powered By Docstoc
					    Rapprocher les méthodes
formelles, l’analyse statique et les
               tests
           04 mai 2010
      Des logiciels de plus en plus complexes



•   Limite d’une approche “tests” seule

•   Limite d’une approche “méthode formelle”

•   Unification des deux approches

•   Prise en main plus facile des méthodes
    formelles

•   Faire collaborer les outils entre eux
      Le projet Hi-Lite


                       Tests
                      unitaires
Combiner tests                            Renforcer mutuellement
  et preuves                              tests et analyse statique

                        Hi-Lite


        Preuves                          Analyse
       formelles                         statique

                   Faciliter la preuve
                   formelle grâce à
                   l’analyse statique
      Un projet qui s’appuie sur des outils existants



•   SPARK : 25 ans

•   GNAT Pro : 15 ans

•   CodePeer : 7 ans

•   Caveat et Frama-C : 10 ans

•   Why et Alt-Ergo : 10 ans
Un projet qui s’appuie sur des outils existants
Un language commun d’annotation
  Tâches, efforts et financement

                      T1 (21 h/m)
               Management et dissémination


     T2 (31 h/m)                             T3 (38 h/m)
    Spécifications                            Langages

     T4 (32 h/m)                              T5 (69 h/m)
     Traducteurs                      Outils d’analyse et de tests

      T6 (45 h/m)                            T7 (80 h/m)
 Bibliothèques et IHM                  Applications industrielles



• Durée : 36 mois
• Effort global : 316 h/m (3,9 M€)
• Financement : 1,4 M€
         Caractéristiques du projet Hi-Lite


•   Faciliter les preuves formelles
    •   Génération automatique d’annotations

    •   Résolution automatique des preuves

•   Un langage commun d’annotations

•   Intégration d’outils complexes
    •   Compilateurs + analyseurs + prouveurs + IDEs
       Caractéristiques du projet Hi-Lite


•   Convergence des tests et des preuves

•   Preuves de programmes multi-langages
    Ada/C

•   Logiciel libre
Présentation des
partenaires
       AdaCore en quelques mots




•   Créée en 1996
•   PME de 25 personnes basée à Paris
•   Compagnie soeur basée à New York
•   Nombreux clients à travers le monde
       Domaines et clients

Domaines d’application                 Clients
– Air traffic control                  –   Alenia
                                       –   Alstom Transport
– Avionic (civil & military)           –   Airbus
– Communications                       –   Ansaldo STS
                                       –   BAe
– Electronics                          –   Boeing
                                       –   EADS
– Energy
                                       –   European Space Agency
– Financial institutions               –   Eurocontrol
                                       –   JEOL
– Medical imagery
                                       –   Lockheed Martin
– Military (airborne, ground, naval)   –   MBDA
                                       –   NXP
– Space
                                       –   Raytheon
– Telecom                              –   Rockwell Collins
                                       –   SAAB
– Television                           –   General Electric
– Transportation                       –   Thales
                                       –   Thales Alenia Space
                                       –   …
         AdaCore en quelques mots

•   Editeur d’outils pour développer des logiciels critiques
    •   Applications complexes, larges, à longue durée de vie

    •   GNAT Pro (IDE Ada, C, C++)

    •   CodePeer (outil d’analyse statique de code Ada)

•   Expertise sur le langage Ada
•   Ancrée dans le monde du Libre
    •   Tous les logiciels fournis sont libres (GPL)

    •   Participation à plusieurs communautés libres

    •   Expertise sur les modèles économiques du logiciel libre
         Contributions d’AdaCore

•   Coordinateur du projet
•   Définition des langages
    •   Annotations (Alfa)

    •   Extensions de SPARK

•   Extensions de GNAT
    •   Annotations SPARK

    •   Alfa

•   Outil de traduction Ada vers SPARK
    •   Sous-ensemble Ada + Annotations -> SPARK
         Contributions d’AdaCore

•   Amélioration de l’outil CodePeer
    •   Prises en compte et génération d’annotations Alfa (pre/post
        conditions, invariants de boucles)

    •   Génération de préconditions plus précises

    •   Ajout de chemin d’exécution dans les messages

•   Intégration de Hi-Lite dans les IDEs
    •   GPS, GNATbench/Eclipse

    •   Interaction avec l’utilisateur pour la gestion des
        annotations, visualisation des obligations de preuves.

•   Utilisation de Hi-Lite sur lui-même
        Altran Praxis – Qui sommes-nous ?

•   Centre d’excellence dans les systèmes
    embarqués et critiques pour Altran
    Group
    - 26 années d’expérience dans l’ingéniérie des logiciels sûrs
        et critiques

    -   Altran Praxis emploie environ 270 personnes

    -   Installé en France, Royaume-Uni et Inde

•   Centré sur l’ingénierie des systèmes
    embarqués à logiciel prépondérant
    avec des contraintes importantes de
    sûreté, de sécurité ou d’innovation
               SPARK et Altran Praxis – les origines
Début des années 1980 : les outils SPADE sont développés dans un laboratoire
de recherche de Southampton University
      1983 : création de Program           1983 : création de Praxis plc pour
      Validation Limited (PVL) afin de     appliquer des principes d’ingéniérie au
      commercialiser les outils SPADE      dévelopement logiciel

  1987: publication de SPARK –                 1987: création de l’équipe Critical
  the SPADE Ada Kernel (sur la                  Systems à l’intérieur de Praxis
  base d’Ada83)

                1994 : Praxis Critical Systems acquiert
                PVL

                1997: Altran acquiert Praxis Critical
                Systems

      2009 : lancement de SPARK Pro en partenariat avec AdaCore


                2010 : fusion de Praxis HIS et SC2 qui crée Altran Praxis
    SPARK est…

• Un langage de programmation…
• Un ensemble d’outils de
  vérification…

• Une méthodologie pour la création
  de logiciels hautement critiques…



• Tout cela à la fois !
Le rôle de SPARK dans Hi-Lite
       L’expertise de Praxis pour Hi-Lite



•   Gardien officiel du langage SPARK

•   Expertise unique dans le développement et
    l’évolution de la technologie SPARK

•   Très grande expérience dans l’utilisation
    industrielle et commerciale des outils
    SPARK dans des projets critiques
        Les tâches de Praxis dans Hi-Lite


•   Evolutions du langage SPARK :

    -   Amélioration des techniques de preuve

    -   Support des annotations ALFA

    -   Bibliothèque de conteneurs


    • Intégration de prouveurs automatiques
    alternatifs, comme Alt-Ergo, dans SPARK
CEA-LIST : La face “C” de Ada
      CEA-LIST : laboratoire LSL


• Laboratoire de Sûreté Logicielle
  -   3 équipes, ~25 permanents
  -   Partenaires académiques et industriels
  -   Qualification du code embarqé critique


• Frama-C :
  une platte-forme d’analyse de codes C
     CEA-LIST : preuves en Frama-C




         frama-c -jessie-analysis *.c
                                        Gwhy / alt-ergo




• ACSL : spécifications formelles pour C
• ACSL : langage mathématique
    CEA-LIST : Langage E-ACSL




• E-ACSL : spécifications exécutables
• Vérification dynamique (test)
• Spécifier les codes Ada & C
           Astrium Space Transportation

•   Business Unit d’Astrium,
    filiale du groupe EADS
•   Leader européen du transport spatial
    •   Ariane 5, ATV, M51, …
           Systèmes visés

•   Véhicules spatiaux
    •   Systèmes complexes

    •   Temps réel dur

    •   Logiciel critique (ECSS niveau C à A)

        Augmentation de la complexité et de la criticité dans le futur
            Technologies utilisées/étudiées à Astrium ST

•   Modélisation
    •   Opérationnel : Hood, SART, SCADE, SysML
    •   Recherche : Générateur de code SPARK Ada depuis SCADE

•   Langages de programmation
    •   Opérationnel : Ada 83, C
    •   Recherche : Ada 95/2005, SPARK

•   Interprétation abstraite
    •   Opérationnel : Polyspace Verifier
    •   Recherche : Astrée

•   Preuve formelle
    •   Opérationnel : Prover
    •   Recherche : Omega, SPARK
            Rôle d’Astrium dans Hi-Lite

•   Utilisateur industriel final
•   T2.1 : Écriture des exigences
    •   Processus envisagé pour Hi-Lite
    •   Cohérence avec les processus industriels (internes et ECSS)
    •   Définition de cas d’utilisation
    •   Recommandations techniques

•   T7.2 : Applications de Hi-Lite
    •   Leader de la tâche
    •   Développement d’une étude de cas
         Evaluation de la technologie Hi-Lite
                         L'INRIA et l'équipe ProVal

L'Institut National de Recherche en Informatique et en Automatique
(INRIA)
est à la pointe de la recherche (fondamentale et appliquée) dans le
domaine des STIC
L'INRIA accueille 2800 chercheurs (INRIA, CNRS, Universités,
grandes écoles) parmi ses 168 équipes

L'INRIA développe de nombreux partenariats avec le monde
industriel et favorise le transfert technologique

L'équipe de recherche ProVal est consituée de 27 personnes (10 permanents)

ProVal développe la plate-forme de vérification de programmes Why/Alt-Ergo

           Why/Alt-Ergo (preuve déductive de programmes)
     Correction d'un programme par rapport à sa spécification =>
                    Validité d'une formule logique.
           WHY — vérification de programmes




•   Langage de programmation et de spécification

•   Interface à des outils de preuve externes

•   Le fondement de FRAMA-C et KRAKATOA

•   WHY 3 — bibliothèque généraliste et libre
            Objectif : types énumérés et algébriques

  Types énumérés :
    type dwarf = Doc | Grumpy | Happy | Sleepy
                    | Bashful | Sneezy | Dopey


  Types algébriques :
    type α formula = Value (α)
                 | Sum (α formula,α formula)
                 | Product (α formula,α formula)


Constructeurs deux à deux disjoints, injectifs et
couvrant tous les cas possibles, mais pas de
principe de récurrence a priori
         Objectif : types énumérés et algébriques


•   Augmenter les langages de spécification et de
    programmation :

    –   déclarations de types énumérés et algébriques

    –   expressions d'analyses par cas (pattern matching)


•   Générer des obligations de preuve pour
    des programmes utilisant ces constructions

•   Traduire pour les démonstrateurs sous-jacents
    (famille SMT-LIB, famille TPTP, Simplify)
          Le démonstrateur automatique Alt-Ergo

•   Démonstrateur SMT open source mis au point
    pour la vérification de programmes

•   Traitements prédéfinis de plusieurs théories
           Logique propositionnelle, théorie de l'égalité,
           arithmétique
           linéaire, symboles AC, théorie des paires

•   Efforts de sûreté
       Chaque partie est formalisée à l'aide d'un système de
       règles
       d'inférence et les principaux algorithmes sont
       formellement
       prouvés en Coq
•   Qualification (DO-178C) en cours
     L'architecture d'Alt-Ergo

  ANALYSEUR                       ANALYSEUR
SYNTAXIQUE SMT                  SYNTAXIQUE WHY



                 TYPAGE &
              TRANSFORMATION
                DE FORMULES



                                        BOUCLE
                                       PRINCIPALE
                  SOLVEUR SAT




   GÉNÉRATION
 D'INSTANCES DE                 PROCÉDURES DE
     LEMMES                        DECISION
           Objectifs concernant Alt-Ergo



•   Analyse des cas d'échecs et génération de
    contre-exemples

•   Traitement des types énumérés et algébriques
    de manière prédéfinie

•   Extension de la théorie de l'arithmétique au cas
    non-linéaire sur les entiers

•   Implémentation de la théorie des tableaux
           Profil THALES


          Leader mondial des systèmes d’information critique




 Trois marchés principaux
   •    Aéronautique et Espace

   •
   •
        Défense

        Sécurité
                                          }   12,9 milliards d’euros


 Un groupe mondial
  • Effectif mondial : 68 000 personnes
  • Présence dans 50 pays
           Trois marchés principaux

                   Défense
                         50%
                                  Air
                                  Terre
                                  Naval
                                  Inter armée




Aéronautique & Espace                              Securité

             25%                                 25%
                  Domaines THALES
                            Dual                                 Defence                   Civil

Systèmes C4I   Opérations          Avionique   Espace   Systèmes de       Défense         Systèmes de
de Défense &   Aériennes                                 Mission de      Terrestre         Transport
  Sécurité                                                Défense




                                                         SC2: Approche Globale pour les
                                                              THALES
                                                            Architectures Logicielles

                                                           Communications


 TCF focalise son activité dans le domaine des telecommunications:
     Radio-communications mobile; Développement de réseaux ATM;
      communications satellite, aeronautique et navale, administration de
      réseaux, identification and radio navigation, systèmes d’information
     SC2
          Défini et propose des solutions middleware pour les systèmes futurs de THALES
          Framework lwCCM pour les systèmes TRE (spatiale, ferroviaire, optronic…)
                 Contribution
Utilisateurs des technologies et solutions Hi-Lite
•   T2 (Spécifications) : 8 h.m
    •   Prise en compte des possibilités technologiques d’Hi-Lite
        •   Interaction avec AdaCore, Altran, le CEA et ProVal
    •   Définition d’un cas d’étude permettant de mettre en œuvre ces possibilités
        technologiques

•   T7 (Applications industrielles) : 26 h.m
    •   Mise en œuvre du cas d’étude en Ada
        •   Expérimentation des langages Hi-Lite dans le générateur MyCCM
    •   Rapport d’évaluation
        •   Facilité d’intégration
        •   Amélioration de la fiabilité du code
             Attentes


 THALES conçoit et industrialise des produits de sécurité et
   sûreté
  Besoin de certification (DO-178B, IEC61608, SIL1-SIL4)
  Besoin de rationaliser et d’améliorer l’ingénierie, le développement
  et le processus pour atteindre la certification
 Des solutions de vérification et certification dans un processus
   intégré
  Les solutions Hi-Lite, intégrées à un framework orienté composant
  utilisant la génération de code intensive (MyCCM)
  Automatisation des moyens de Certification/Vérification pour le
  code généré
 Applicable aux domaines Spatial, Avionique, Ferroviaire et
   Crypto domains
  Forme d’onde Aero, Chiffrement, systèmes sécuritaires
  Validation pour un framework MyCCM framework en Ada (domaine

				
DOCUMENT INFO
Shared By:
Categories:
Stats:
views:7
posted:4/15/2011
language:French
pages:47