Rapprocher les méthodes formelles, l’analyse statique et les tests

Slides:



Advertisements
Présentations similaires
Yassine Lakhnech Prof. UJF Verimag
Advertisements

Démarche Outsourcing SI
Réunion du club utilisateur Salesforce.com
Rapprocher les méthodes formelles, l’analyse statique et les tests
Un processus de conception des logiciels distribués pour l’automobile
J. SifakisPSLC, 9 novembre Plate-forme Systèmes et Logiciels Critiques Joseph Sifakis.
AIRNET système d’assistance à la conduite et à la planification de tâches sur les aéroports 4 Juillet 2006 Stéphane Valès Franck Presutto.
2002 Exploratoire ASTRÉE : Analyse Statique de logiciels Temps-RÉel Embarqués 1)Le problème considéré est de démontrer statiquement (à la compilation)
Projet FIACRE 1 ACI Sécurité InformatiqueToulouse, novembre 2004 FIACRE Fiabilité des Assemblages de Composants Répartis Modèles et outils pour lanalyse.
Spécification et qualité du logiciel
THALES - Service Techniques et Architectures Informatiques - 9 Mars 2001 Colloque 2001 Infrastructure de Confiance sur des Architectures de Réseaux -Internet.
Activités de Recherche et Intégration à l’Equipe SIMBAD
UML - Présentation.
2002 Compétitif XMiner : Plate-forme de structuration texte libre multi-approches par balisage XML de Tags Actifs Lobjectif du projet est de développer.
Mise en œuvre d’une démarche et d’un outil de gestion de « connaissances métier » basés sur la collaboration. Cyril BEYLIER
Les méthodes formelles en ingénierie des connaissances Damien Lhomme-Desages Jérémie Barlet.
Présentation générale "Information et gestion" Présentation générale des programmes d « Information et gestion » en première STG.
Jean-Jacques Lévy INRIA Preuves de programmes et méthodes formelles Microsoft TechDays - 9 février 2010.
Les démarches de développement
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.
1 B Système Enjeux et principes Cours DESS Nantes 04 Décembre 2002 Didier ESSAME.
Action 2 - Phase de mise en œuvre du projet
Les Ateliers de Génie Logiciel
Maîtrise des données et des métadonnées de l’ODS
Le Workflow et ses outils
Alain Le Guennec Jean-Marc Jézéquel Action Triskell
Réalisé avec le soutien de 2005 FAROS : composition de contrats pour la Fiabilité d'ARchitectures Orientées Services Définir un environnement de composition.
23/05/2006 Résultat Final Business Consulting Services Pré-étude portant sur l'implémentation et l'organisation d'un système de gestion des connaissances.
INTELLIGENCE COLLECTIVE : RENCONTRES 2006Nîmes mai 2006 CENTRE DE RECHERCHE LGI2P 1- Doctorante Ecole des mines de Paris, 2- Maitre de Conférences.
Démarche Analyse des OGL et des Méthodes Objectifs : Activités :
Le projet DETRACE Démonstrateur de traçabilité ferroviaire Européen
Introduction au Génie Logiciel
le profil UML en temps réel MARTE
Algorithmique et Programmation
Vuibert Systèmes dinformation et management des organisations 6 e édition R. Reix – B. Fallery – M. Kalika – F. Rowe Chapitre 2 : Les applications fonctionnelles.
BPM & BPMS.
Techniques de test Boulanger Jean-Louis.
Tous droits réservés - 15 novembre 2004 Présentation du PEI Étude de marché des éditeurs de logiciels dans le domaine de la géographie.
TESTING BUSINESS PROCESSES
Présentation du mémoire
Méthodes formelles pour la conception de systèmes répartis par Luigi Logrippo et tous ses collaborateurs et étudiants École d`ingénierie et technologie.
Programmation non procédurale Le projet ECOLE 2000
Sensibilisation a la modelisation
Patrons de conceptions de créations
ANALYSE METHODE & OUTILS
Mise en oeuvre et exploitation
Stratégie d’entreprise - Alstom Transport – Marco Férrogalini
Supports de formation au SQ Unifié
Hatainville Les Moitiers d’Allonne – Tel : Website : stratic.online.com La démarche projet Mars 2001.
Approches Formelles en Systèmes d'information
Introduction au Génie Logiciel
Votre Équipe d’Audit Interne …à vos côtés. …à votre service. …défendant vos intérêts.
Initiation à la conception des systèmes d'informations
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
1er FORUM DES POLES DE COMPETITIVITE 04/11/05
LE DATA WAREHOUSE.
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
Management de la qualité
Spécialités Gestion et Finance Ressources humaines et communication
1 Le système GNAT / Ada95 La perspective du projet depuis New York University Edmond Schonberg New York University et Ada Core Technologies Mars 2003.
1 Vers la gestion de la cohérence dans les processus multi-modèles métier Wolfgang THEURER Ecole Nationale Supérieure d’Ingénieurs des Etudes et Techniques.
L’enseignement de spécialité SLAM
Stage opérateur Tuteur: JP Begoc
exp –BS Innovation Management and Technology Marketing Politique de l‘Innovation du DLR pour la coopération Industrielle Centre Aérospatial.
CSC Proprietary 6/20/2015 9:42:54 AM 008_5849_ER_Red 1 BPM - SOA Logo du client Synthèse de notions “fondamentales” par Guillaume Feutren, Stagiaire *
Présentation Audit CTI – Février
1 G Gauthier, Novembre2014 Projet de Création d’une chaire d’excellence Chaire = Programme porté par la fondation de Grenoble INP : Chaire d’excellence.
Vendredi 16 mai 2014 CT MBSE - REX 1 REX CT MBSE Chairs: Marco Ferrogalini, David Lesens 16 Mai 2014 Saint Ouen / Toulouse.
19 avril Spécification d’un cadre d’ingénierie pour les réseaux d’organisations Laboratoire de recherche : OMSI à l’EMSE.
Transcription de la présentation:

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

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

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

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

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

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

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

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

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

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

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

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

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

CEA-LIST : La face “C” de Ada

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

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

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

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

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

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

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

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

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

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

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 : 68 000 personnes Présence dans 50 pays } 12,9 milliards d’euros

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

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

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

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)