Correction d`un programme par rapport à sa spécification - open-DO

Download Report

Transcript Correction d`un programme par rapport à sa spécification - open-DO

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
et preuves
Renforcer mutuellement
tests et analyse statique
Hi-Lite
Analyse
statique
Preuves
formelles
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)
Spécifications
T3 (38 h/m)
Langages
T4 (32 h/m)
Traducteurs
T5 (69 h/m)
Outils d’analyse et de tests
T6 (45 h/m)
Bibliothèques et IHM
T7 (80 h/m)
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
– Air traffic control
– Avionic (civil & military)
– Communications
– Electronics
– Energy
– Financial institutions
– Medical imagery
– Military (airborne, ground, naval)
– Space
– Telecom
– Television
– Transportation
Clients
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
Alenia
Alstom Transport
Airbus
Ansaldo STS
BAe
Boeing
EADS
European Space Agency
Eurocontrol
JEOL
Lockheed Martin
MBDA
NXP
Raytheon
Rockwell Collins
SAAB
General Electric
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
•
•
•
Extensions de SPARK
Extensions de GNAT
•
•
•
Annotations (Alfa)
Annotations SPARK
Alfa
Outil de traduction Ada vers SPARK
•
Sous-ensemble Ada + Annotations -> SPARK
Contributions d’AdaCore
•
Amélioration de l’outil CodePeer
•
•
•
•
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
•
•
•
Prises en compte et génération d’annotations Alfa (pre/post
conditions, invariants de boucles)
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
Validation Limited (PVL) afin de
commercialiser les outils SPADE
1987: publication de SPARK – the
SPADE Ada Kernel (sur la base
d’Ada83)
1983 : création de Praxis plc pour appliquer
des principes d’ingéniérie au dévelopement
logiciel
1987: création de l’équipe Critical Systems à
l’intérieur de Praxis
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
SYNTAXIQUE SMT
ANALYSEUR SYNTAXIQUE
WHY
TYPAGE &
TRANSFORMATION
DE FORMULES
SOLVEUR SAT
GÉNÉRATION
D'INSTANCES DE
LEMMES
BOUCLE
PRINCIPALE
PROCÉDURES DE
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é
 Un groupe mondial
• Effectif mondial : 68 000 personnes
• Présence dans 50 pays
}
12,9 milliards d’euros
Trois marchés principaux
Défense
50%




Aéronautique & Espace
25%
Air
Terre
Naval
Inter armée
Securité
25%
Domaines THALES
Dual
Systèmes C4I
de Défense &
Sécurité
Opérations
Aériennes
Defence
Avionique
Espace
Systèmes de
Mission de
Défense
Civil
Défense
Terrestre
Systèmes de
Transport
SC2: Approche Globale pour les
Architectures Logicielles
THALES 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 spatial
et avionique)