Dániel Darvas (CERN BE-ICS-PCS) Spécification formelle pour les API CERN-ESTEREL séminaire 21/01/2016, CERN Travail conjoint avec B. Fernández, E. Blanco,

Slides:



Advertisements
Présentations similaires
Mustapha EL FEDDI Tests Mustapha EL FEDDI
Advertisements

Conférence « Compétences Informatiques » 10 avril 2006
Ne laissez aucune perturbation vous échapper
Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Eléments de Génie Logiciel
La Gestion de la Configuration
Echanges de Données Informatisées LABOratoires-commanditaires 7. Le déploiement: quelques conseils Programme de formation 200.
IREMIA : Institut de REcherche en Mathématiques et Informatique Appliquées Université de la Réunion Uniformisation des mécanismes de conception de SMA.
Algèbre de composants : une approche fonctionnelle à la sémantique de documents Bart Lamiroy LORIA/INPL QGar - École des Mines de Nancy.
Projet FIACRE 1 ACI Sécurité InformatiqueToulouse, novembre 2004 FIACRE Fiabilité des Assemblages de Composants Répartis Modèles et outils pour lanalyse.
GEF 243B Programmation informatique appliquée
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Modélisation II.
ASTRID et la traçabilité
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
UML - Présentation.
Les méthodes formelles en ingénierie des connaissances Damien Lhomme-Desages Jérémie Barlet.
Piecewise Affine Registration of Biological Images
Les démarches de développement
UML (Unified Modeling Langage)
Les Ateliers de Génie Logiciel
Diagrammes de communication
Évaluer pour faire apprendre dans une approche par compétences
Introduction aux CMS.
1 Ne laissez aucune perturbation vous échapper Tester la qualité du réseau électrique dans les systèmes d'alimentation de secours.
Gestion pédagogique des étudiants
Introduction au Génie Logiciel
le profil UML en temps réel MARTE
Analysis and design of agent-oriented information systems OFER ARAZY et CARSON C. WOO University of British Columbia, Vancouver The Knowledge Engineering.
Initiation à la conception de systèmes d'information
- Elaborer et conduire un projet -
Quelques Modèles de conception
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
Techniques de test Boulanger Jean-Louis.
OIL & UPML DREVET - HUMBERT Introduction OIL : un langage de description dontologies UPML : un langage de description de systèmes à base.
Présentation du mémoire
CSI3525: Concepts des Languages de Programmation
Le Sémiographe Outil générique pour effectuer des opérations texte sens texte ou texte sens actions
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
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.
Les étapes du cycle de développement du génie logiciel
Projet de Master première année 2007 / 2008
Sensibilisation a la modelisation
Les assertions en Java.
Spécification de Demoney en JML par raffinement Pierre-Alain Masson, Julien Groslambert LIFC Besançon Réunion GECCOO - 10 mars 2006 FRE 2661.
Paradigmes des Langages de Programmation
Stratégie d’entreprise - Alstom Transport – Marco Férrogalini
Contenus riches et logique d'industrialisation Contenus riches et logique d'industrialisation Modélisation, production, génération, gestion Stéphane Crozat.
Approches Formelles en Systèmes d'information
Vérification dans le cycle de vie GEF492A 2014 Référence: [HvV §14.2, 14.9] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et.
2003 (revisé 2008)SEG Chapitre 11 Chapitre 1 “The Systems Engineering Context” Le contexte du génie de systèmes.
Quand l’agilité n’est pas une option
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Introduction au Génie Logiciel
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Pour les nuls débutants
Initiation à la conception des systèmes d'informations
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
Soutenance du mémoire de synthèse
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Flot de conception de.
Réalisé avec le soutien de Pied de page fixe Pied de page 1 Titre Sous titre.
Introduction à MathML Par Katia Larrivée UQO Le 18 mars 2004.
1 BTS Informatique de Gestion : Option développeur d'application Session 2011.
Document de spécification d’exigences Normes IEEE et 29148:2011
Modèles de cycle de vie et processus de génie
Café In: A quoi ca sert la recherche sur la programmation? Comment peut on faire travailler des ordinateurs ensemble? Ludovic Henrio SCALE TeamSCALE Team.
Planning Process « t’as un plan pour ce soir ? » Tony Carnal Altran.
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille UMLS « Unified Medical Language System » U.S. National Library of Medicine.
GEOMETRIE du cycle 1 au cycle 3 quelques pistes
Transcription de la présentation:

Dániel Darvas (CERN BE-ICS-PCS) Spécification formelle pour les API CERN-ESTEREL séminaire 21/01/2016, CERN Travail conjoint avec B. Fernández, E. Blanco, R. Speroni, I. Majzik

Notre motivation −Aider le développement et la réingénierie (re- engineering) Notre code évolue depuis 10+ ans Le code et la spécification textuelle sont inconsistants −La vérification n’a aucun sens sans propriétés à vérifier −Faciliter d’exprimer les exigences complexes −Générer (une partie) du code peut être possible

Nos exigences −Méthode légère (lightweight) Facile à apprendre Pas besoin de Bac+5 en informatique −Méthode adaptée aux API Facile d’exprimer les exigences communes Sémantique adaptée −Méthode formelle −Outils disponibles  :B, VDM, Z, ST-LTL, …  :UML, Simulink, Spec-TRM, … Plus d’information: D. Darvas, I. Majzik, E. Blanco. Requirements towards a formal specification language for PLCs.

Méthodes de spécification pour les API Trop théoriqueTrop proche du code Exemple: ProcGraph Exemple: ST-LTL Spec2 := ALWAYS( (v >= lowlimit) & (v <= highlimit)); Spec3 := ALWAYS(start -> EVENTUALLY running); Spec5 := ALWAYS( EStop OR NOT Activate -> Not Run ); Spec6 := ALWAYS( Run_risingEdge ONLY_IF Not EStop & Not Error & Reset_risingEdge ); Spec7 := NEVER( Reset & Reset_previous & NOT EStop & Run_risingEdge );

Notre proposition: PLCspecif −Spécification simple, formelle, adaptée aux API −Spécification complète – pour des modules d’API −Basée sur la connaissance des développeurs dans la domaine d’API En réutilisant les méthodes semi-formelles fréquemment utilisées Automates finis Circuits logiques Avec sémantiques précises

Notre proposition: PLCspecif Méthode hiérarchique −Un arbre de modules Modules internes / composés Modules feuilles −La logique est définie dans les modules feuilles Composite0 Statemachine1Statemachine2Composite1Statemachine3IoConnection1IoConnection2

Traitement des entrées Logique principale Traitement des sorties Notre proposition: PLCspecif Logique principale propre (clean core logic) −Beaucoup de traitements d’entrées/sorties dans les programmes API −Tous les modules sont structurés:

Notre proposition: PLCspecif Adapté aux API −Événements utilisés comme dans les API −Plusieurs formalismes pour la logique principale Le développeur peut choisir le meilleur −Représentation tabulaire des expressions Beaucoup d’expressions logiques complexes Plus d’information: D. Darvas, E. Blanco, I. Majzik. A formal specification method for PLC- based applications. ICALEPCS and

PLCspecif: exemple (1 module) Logique principale est séparée Sémantique adaptée aux API Soutiens la vérification

PLCspecif: exemple (1 module) Logique principale est séparée Plusieurs formalismes semi-formels réunis Sémantique adaptée aux API Spécification détaillée du comportement Soutiens la vérification Structuré, hiérarchique

Où sommes-nous maintenant? −Le projet a commencé il y a 1,5 ans −Syntaxe et sémantique (formelle) définies −Méthode de vérification définis −Outil très-très expérimental −Pour le moment, seulement pour des modules d’API (pas pour des applications complètes) Travail futur −Néanmoins, on a déjà essayé dans la vraie vie Plus d’information: D. Darvas, I. Majzik, E. Blanco. Syntax and semantics of PLCspecif. EDMS report ,

Étude de cas: vérification de SM18 But: assurer la sûreté des tests © CERN Critique pour la sûreté

SM18: chronologie de la réalisation Analyse Analyse des exigences (semi-formelles) Analyse de la sûreté Réalisation Réalisation du code (manuelle – API de sécurité) Vérification 1. Vérification formelle (vérification de modèles) 12 problèmes sont identifiés (et fixés) Vérification 2. Développement de la spécification formelle Vérification basée sur la spécification formelle

SM18: chronologie de la réalisation 1. Analyse des exigences (semi-formelles) 2. Analyse de la sûreté 3. Réalisation du code (manuelle – API de sécurité) 4. Vérification formelle (vérification de modèles) 12 problèmes sont identifiés (et fixés) 5. Développement de la spécification formelle En raison de vérification 6. Vérification basée sur la spécification formelle

Vérification basée sur la spécification formelle Spécification formelle + Vérification de l’équivalence de comportement Spécification formelle nécessaire Difficile à calculer le résultat Complet Pas besoin d’extraire les exigences +2 nouveaux problèmes trouvés! comparaison Code API Spécification PLCspecif Modèle formel Par un vérificateur de modèles

Problèmes trouvés Au total 14 problèmes trouvés 4 exigences mal comprises 6 problèmes impossible à trouver en utilisant nos méthodes de tests 2 trouvés seulement en utilisant la spécification formelle

Résumé −PLCspecif Spécification formelle pour des modules d’API Complet, léger, adapté aux API Pour le développement du code et la vérification Déjà utilisé pour un projet critique −Travail futur Des outils, des outils, des outils Extension aux applications d’API complètes

Composite0 Statemachine1Statemachine2Composite1Statemachine3IoConnection1IoConnection2 Exemple: Basée sur IEC 61131