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, l’analyse statique et les tests

Présentations similaires


Présentation au sujet: "Rapprocher les méthodes formelles, l’analyse statique et les tests"— Transcription de la présentation:

1 Rapprocher les méthodes formelles, l’analyse statique et les tests
04 mai 2010

2 Limite d’une approche “tests” seule
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

3 Le projet Hi-Lite Tests unitaires Analyse statique Preuves formelles
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

4 SPARK : 25 ans GNAT Pro : 15 ans CodePeer : 7 ans
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

5 Un projet qui s’appuie sur des outils existants

6 Un language commun d’annotation

7 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€ 7

8 Faciliter les preuves formelles
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

9 Convergence des tests et des preuves
Caractéristiques du projet Hi-Lite Convergence des tests et des preuves Preuves de programmes multi-langages Ada/C Logiciel libre

10 Présentation des partenaires

11

12 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

13 Domaines d’application
Domaines et clients Domaines d’application Clients Air traffic control Avionic (civil & military) Communications Electronics Energy Financial institutions Medical imagery Military (airborne, ground, naval) Space Telecom Television Transportation 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

14 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

15 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

16 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

17

18 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 WHO ARE WE? Centre of excellence in embedded and critical systems part of the Altran Group Formed through the merger of Praxis and SC2 by Altran Focus on the engineering of software intensive and embedded systems with demanding safety, security or innovation requirements Complete scope end to end We provide a unique combination of innovation, connectivity and in-depth safety-critical skills 26 years experience in engineering safe and critical software 11 years in advanced HMI, connectivity and innovative consumer device technologies Altran Praxis employs about 270 staff Based in the France, UK, and India. Full lifecycle offshore facility in Bangalore WHAT DO WE DO? Embedded and Critical Software We build safety and security critical software to the most exacting standards large control centre systems to highly constrained embedded applications We build innovative software for new products and applications embedded or connected with demanding time to market requirements Safety and security We demonstrate the safety and security of critical systems Focus on complex and novel applications Systems We solve complex or innovative problems using specialist system engineering skills We focus on high risk programmes; requirements, architecture, modelling Innovation We innovate on behalf of our clients and develop in-house technology to support the development of embedded and critical systems Training Both in-house technology and more generic training related to our services 18

19 1987: création de l’équipe Critical Systems à l’intérieur de Praxis
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 1983 : création de Praxis plc pour appliquer des principes d’ingéniérie au dévelopement logiciel 1987: publication de SPARK – the SPADE Ada Kernel (sur la base d’Ada83) 1987: création de l’équipe Critical Systems à l’intérieur de Praxis A few words on the history of SPARK and Praxis. A bit of a mixture of corporate history and the history of the SPARK language and tools. Stress the expansion in France in later corporate history (since 1997). In particular, the partnership with AdaCore. In the 1980s people were starting to get interested in how to construct programs properly using engineering principles, and how to verify that they had been constructed properly. Praxis and PVL were formed at roughly the same time, both from academic backgrounds. At the time, PVL’s main focus was on tools for program analysis whilst Praxis were concentrating on how to build software correctly. The SPADE tools actually predated PVL – the first SPADE course was run in 1982. Praxis consisted of a number of different business groups. In 1987 the Critical Systems unit formed, focussing on critical / high integrity systems development, often using formal methods. PVL’s analysis initially targeted a subset of Pascal, followed by some translators for a number of assembly languages, but they had been working on a language suitable for large-scale, industrial program construction and analysis. They selected Ada83 as the basis for this language and in March 1987 they published the first version of the SPARK language. At that time, the big management consultancy firms wanted to have their own software houses. Arthur Andersen had Andersen Consulting. Deloitte and Touche bought Praxis. There was a strong synergy between Praxis Critical Systems and PVL, with Praxis using SPARK on a number of projects. In 1994 Praxis Critical Systems acquired PVL, and with it the SPARK tools, language and developers. The synergy between Praxis Critical Systems and Deloittes was not so good and on 1st April 1997 Praxis Critical Systems was sold to Altran, a large engineering consortium, who remain our owners today. 1999: Features of Ada95 such as Child Packages introduced into SPARK. 2003: Multi-tasking RavenSPARK published, based on Ada Ravenscar profile. 2004: Praxis merge with HIS, another Altran group company. 2009: The AdaCore-Praxis partnership gives clients wider access to SPARK worldwide, improved support service, and access to a new high-integrity toolset, SPARK Pro. AdaCore has a long history in supplying solutions for the avionics safety-critical market with its GNAT Pro High-Integrity Edition for DO-178B. Praxis, the developer of the Ada-based SPARK language and its supporting toolset, has expertise and intensive experience in both the safety-critical and high-security arenas. (from press-release) 2010: Altran merges the French SC2 business that it bought from Continental in 2008 with its Praxis embedded and critical systems division to form Altran Praxis. The merger brings together Praxis’ expertise in safety and security critical systems with the innovation capabilities of SC2 in areas such as infotainment, human machine interface, multimedia and connectivity, which it has gained through its long pedigree as a software research centre in the automotive sector. (from merger press release) 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 Page 19

20 Un langage de programmation… Un ensemble d’outils de vérification…
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 ! What is SPARK? It’s a programming language SPARK is a distinct programming language unlike any other. It is technically distinct – it is not Ada. It’s a set of verification tools The tools do not stand alone – they are useless without the language they only work with SPARK. The tools depend on language and conversely the language depends on tools. It is impossible to have one without the other. It’s a design approach Experience in using the technology over a period (for us between 5 –10 years) shapes the way software design is approached and the way you think about software construction and verifying software. Verification of software is very important. It is key to producing high quality systems with the right level of integrity. The tools support these changes in design and processes. The way you review code changes for SPARK. 20

21 Le rôle de SPARK dans Hi-Lite

22 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 Altran Praxis is the guardian of the official SPARK language; all changes are sanctioned by us. Exclusive expertise in developing and maintaining the SPARK Toolset and the techniques it uses for analysis and proof over many years Extensive experience of using the SPARK Toolset industrially/commercially for critical projects both on Altran Praxis’ own and those of our clients 22

23 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 Extensions to the SPARK language to provide improved proof techniques, support of ALFA, and a container library, for example: Package proof invariants Generics Development and integration of “Victor” a translator from SPARK Verification Conditions to SMT-Lib format to facilitate the use of alternative theorem provers, for instance Alt- Ergo. 23

24

25 CEA-LIST : La face “C” de Ada

26 Laboratoire de Sûreté Logicielle
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

27 ACSL : spécifications formelles pour C ACSL : langage mathématique
CEA-LIST : preuves en Frama-C frama-c -jessie-analysis *.c Gwhy / alt-ergo ACSL : spécifications formelles pour C ACSL : langage mathématique

28 E-ACSL : spécifications exécutables Vérification dynamique (test)
CEA-LIST : Langage E-ACSL E-ACSL : spécifications exécutables Vérification dynamique (test) Spécifier les codes Ada & C

29

30 Astrium Space Transportation
Business Unit d’Astrium, filiale du groupe EADS Leader européen du transport spatial Ariane 5, ATV, M51, …

31 Véhicules spatiaux Systèmes visés Systèmes complexes Temps réel dur
Logiciel critique (ECSS niveau C à A) Augmentation de la complexité et de la criticité dans le futur

32 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

33 T7.2 : Applications de Hi-Lite
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

34

35 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.

36 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

37 Objectif : types énumérés et algébriques
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

38 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)

39 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 Efforts de sûreté Qualification (DO-178C) en cours Logique propositionnelle, théorie de l'égalité, arithmétique linéaire, symboles AC, théorie des paires 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

40 L'architecture d'Alt-Ergo
ANALYSEUR SYNTAXIQUE SMT ANALYSEUR SYNTAXIQUE WHY TYPAGE & TRANSFORMATION DE FORMULES SOLVEUR SAT BOUCLE PRINCIPALE GÉNÉRATION D'INSTANCES DE LEMMES PROCÉDURES DE DECISION

41 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

42

43 Leader mondial des systèmes d’information critique
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 : personnes Présence dans 50 pays } 12,9 milliards d’euros

44 Trois marchés principaux
Défense 50% Air Terre Naval Inter armée Aéronautique & Espace Securité 25% 25%

45 Domaines THALES THALES Communications
Civil Défense Terrestre Systèmes de Mission de Défense Defence Espace Opérations Aériennes Systèmes C4I de Défense & Sécurité Avionique Dual Systèmes de Transport THALES Communications SC2: Approche Globale pour les Architectures Logicielles 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…) 45

46 Utilisateurs des technologies et solutions Hi-Lite
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

47 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)


Télécharger ppt "Rapprocher les méthodes formelles, l’analyse statique et les tests"

Présentations similaires


Annonces Google