Spécification de Demoney en JML par raffinement Pierre-Alain Masson, Julien Groslambert LIFC Besançon Réunion GECCOO - 10 mars 2006 FRE 2661.

Slides:



Advertisements
Présentations similaires
Applications N-Tiers Rappels: architecture et méthodologie
Advertisements

Pré AO - PAO Pré AO Présentation assistée par ordinateur PAO
Projet LOT Mini-site web « Looking For You 1 »
Spécification et qualité du logiciel
J. Paul Gibson Bureau A 207, Le département LOgiciels-Réseaux
Prototype de plate-forme de Tribus Instantanées :
Régine Laleau Centre d'Étude et de Recherche en Informatique du CNAM
Jean-Jacques Lévy INRIA Preuves de programmes et méthodes formelles Microsoft TechDays - 9 février 2010.
D1 - 01/03/2014 Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.
Quoi ? Un tampon.
Maîtrise des données et des métadonnées de l’ODS
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Amal HADDAD 1ère année de thèse INPG Directeurs :
Audit – Phase de rédaction des spécifications
Validation d’applications pour les Legos Mindstorms
Feature Driven Development (FDD)
Développement d’IHM* et d’applicatifs spécifiques
Projet de Compilation Manuel VACELET, Jean Pierre CAURIER, Gaël COLLE,
Développement d’IHM* et d’applicatifs spécifiques
Auto Exterior Scoop SQP PROCESSUS 24 juillet 2006 Version validée V01.
Modèle, Méthode et Conception
Dan Bismuth Tutrices : Marie-Lise Flottes - Joanne Acland
Complément Le diagramme des classes
Modélisation causale multiphysique
Techniques de test Boulanger Jean-Louis.
Présentation du mémoire
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Modélisation des opérations Spécifier les transformations détat que lon attend des services de la machine Létat dune machine entièrement déterminée par.
Modélisation d’un péage
Forum gestionnaires – SOS XLAB 1 29 novembre 2007 Rappel sur les versions Xlab de 2007 Bascule de fin d’exercice Future version d’Xlab.
Langage de modélisation graphique de systèmes
Les assertions en Java.
Création et notation « questions ouvertes Licence 66 »
-Présentation de l’équipe -Cadre du projet -Enjeux -Choix du sujet.
Soutenance NOUMEA NetwOrk Unified Marketplace Enterprise Application
Marc Bouissou, Guillaume Torrente, EDF
Raffinement de modèles JML Julien Groslambert LIFC Besançon Réunion GECCOO - 25 Octobre 2005 FRE 2661.
Réunion projet ACI GECCOO 10 mars 2006
Outil de volumétrie pour Quadrige² 20 mars 2009 – O. CatryDUT Informatique.
30 Janvier 2002 Club SEE 63 "Systèmes Informatiques de Confiance" 1 Vérification de spécification de logiciel critique Jean-Louis Boulanger RATPEST/ITF/AQL.
Banc d’essai pour un circuit combinatoire
REUNION NATIONALE DES CHEFS DES TRAVAUX
Création d’une communauté web scénarisée : le projet Crealys
Stratégie d’entreprise - Alstom Transport – Marco Férrogalini
Création d’une application complète
Séminaire 10 Juin 2008 Pervasive Learning Network : P-LearNet Institut TELECOM.
Présentation du démonstrateur ATLAS Projet ANR 07 TLOG
Cas d’utilisation – exemple de guichet automatique bancaire (atm)
Supports de formation au SQ Unifié
Méthode pour la gestion
Hatainville Les Moitiers d’Allonne – Tel : Website : stratic.online.com La démarche projet Mars 2001.
P1 – Production de services
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Vérification de circuits.
Approches Formelles en Systèmes d'information
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
« Validation Formelle de Systèmes Interactifs »
Chapitre 5 Test de circuits séquentiels
BEWITCHED 12/10/2006 Soutenance GLAO #5 slide 1 Soutenance GLAO #5 AGL & SYGIME Bewitched Team 12 Octobre 2006.
ESTIMATION / CHIFFRAGE
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
CORTIER Alexandre Directeur : Bruno d’AUSBOURG (ONERA)
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
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.
Conception Formelle en PVS Master 2 ISC Chef de Projet: M. Pierre Castéran Présenté par: Roland Atoui Xavier Dumas Sébastien Jardel Laurent Vendredi.
Introduction à la recherche en science politique
La conception détaillée. Objectifs Décrire la solution opérationnelle - étude détaillée des phases informatiques du MOT (écrans, états, algorithmes, …),
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,
Diagrammes de comportement Présentation. Diagramme de séquence  Permet de modéliser les envois de messages entre objets chronologiquement.  Modélisation.
1 Master Data Management au SANDRE. GPA 17/10/ Une philosophie de diffusion des référentiels 3 grands blocs dans les systèmes d’information environnementaux:
Formation SGA Module Saisie des Demandes d’achat Durée : 0,5 jour.
Transcription de la présentation:

Spécification de Demoney en JML par raffinement Pierre-Alain Masson, Julien Groslambert LIFC Besançon Réunion GECCOO - 10 mars 2006 FRE 2661

Plan de l’exposé Rappels sur le raffinement JML Spécification JML par raffinement de Demoney Perspectives d’utilisation du modèle de Demoney

Plan de l’exposé Rappels sur le raffinement JML Spécification JML par raffinement de Demoney Perspectives d’utilisation du modèle de Demoney

Spécification par raffinement en JML Politique de Sécurité Cahier des charges Code Java de l’application Propriétés de sécurité Annotations JML du code Modèle abstrait JML Modèle raffiné 1 Modèle raffiné n Préservation Le raffinement de modèle JML ajoute des détails au modèle abstrait pour le rendre plus concret préserve les propriétés vérifiées sur le modèle abstrait

Raffinement de données Notations C r raffine C a C a  C r C a vérifie une propriété   Ca |=  Raffinement des données Prédicat JML I c Lien entre variables abstraites et raffinées Changement d’espace d’état Ajout de nouvelles variables durant le raffinement

Raffinement de méthodes: schéma requires P a diverges D a assignable A a ensures Q a signals (E a e) R M a (); requires P r diverges D r assignable A r ensures Q r signals (E r e) R M r ();

Raffinement de méthodes : clauses JML Renforcement des pre-conditions Renforcement des conditions de divergence Pas d’ajout d’effet de bord Renforcement des post-conditions Inclusion des types d’exceptions Renforcement des post-conditions signals

Raffinement de méthodes : exemple requires ensures signals (Exception e) vote(); requires estInsrit && ! assignable ensures requires estInscrit && signals (Exception e) vote(); estInscrit && !aVote || estInscrit && aVote ==> estInscrit; \forall aVote. aVote ==> true;

Plan de l’exposé Rappels sur le raffinement JML Spécification JML par raffinement de Demoney Perspectives d’utilisation du modèle de Demoney

Spécification par raffinement de Demoney : démarche adoptée Expérience de spécification par raffinement JML Démarche de spécification « pure » Spec. indépendante de l’idée d’implantation Fonctionnalités basiques de JML utilisées Variables model Invariant Variables modifiables Pre et post conditions Exceptions et post-conditions exceptionnelles

Spécification par raffinement de Demoney : méthodologie Point de départ : liste des commandes Demoney Ajout des détails dans un ordre intuitif Nécessite une bonne connaissance globale du cahier des charges Création d’un nouveau modèle par détail introduit Hiérarchie des modèles Des aspects haut-niveau vers bas-niveau de la spécification Peu de retours en arrière nécessaires

Spécification par raffinement de Demoney : Modélisation (1) Un package pour les constantes Un package pour les exceptions Un package pour les différents niveaux du modèle Model 0 : liste des commandes de Demoney Model 1 : personnalisation Model 2 : niveaux d’accès Model 3 : définition du PIN Model 4 : modification du solde de la carte Model 5 : vérification du code PIN

Spécification par raffinement de Demoney : Modélisation (2) Les différents niveaux du modèle (suite) Model 6 : séquencement des fonctions d’authentification Model 7 : séquencement des fonctions de transaction Model 8 : messages d’erreur (exceptions) Model 9 : cycle de vie de l’application Model 10 : limitation du nombre de transactions Model 11 : limitation du nombre d’essais pour le code PIN Model 12 : journalisation des transactions Model 13 : communication par APDU

Exemple (model 8) : méthode de personnalisation requires personnalized == false && accessLevel == && authenticateSequence == && transactionSequence == assignable ensures personnalized == requires personnalized == signals(ConditionOfUseNotSatisfiedException) requires accessLevel < signals(SecurityStatusNotSatisfiedException) void store_data() throws ConditionOfUseNotSatisfiedException, SecurityStatusNotSatisfiedException {}

Résultats de la modélisation 13 niveaux de raffinement Toutes les commandes de Demoney spécifiées Jusqu’au niveau communication par APDU Taille des modèles Avant APDU : ~ 350 lignes Avec APDU : ~ 900 lignes Code Java Trusted Logic : ~ 1300 lignes (sans les commentaires)

Bilan de la modélisation Modèle en accord avec les exigences de sécurité Exigences de raffinement respectées Modèle validé et animé JML-TT animator Aspects bas niveau (APDU) difficiles à modéliser

Exemple de modélisation APDU (Model 13)

Plan de l’exposé Rappels sur le raffinement JML Spécification JML par raffinement de Demoney Perspectives d’utilisation du modèle de Demoney

Perspectives : confrontation au code Java Confrontation spec. JML et code Java Trusted Logic Vérification à la volée avec JMLc Vérification par preuve avec Jack et/ou Krakatoa Besoin : Adaptation de la spec. à l’API de l’applet (concrétisation) Phase de concrétisation automatique (couche d’adaptation)

Perspectives : génération de tests JML-TT animator Animation et validation Adaptations mineures du modèle Découverte de quelques erreurs dans le modèle Génération automatique de tests orientés par notre modèle  Modèle JML ImplantationVerdict Jeu de Tests JML-TT JMLc

Perspectives : Vérification du modèle Cohérence interne du modèle Méthode proposée dans ZB'05 (limitée) Génération d'OP pour Jack, Krakatoa Preuve de raffinement des modèles Besoin d'un outil de génération d'OP

Perspectives : propriétés temporelles Propriétés de sûreté et de vivacité pour Demoney Spécification de ces propriétés dynamiques Logique temporelle pour JML Vérification des propriétés sur le modèle Utilisation de JAG pour ajouter des annotations sur le modèle Vérification de la cohérence du modèle enrichi Préservation de la propriété lors du raffinement

Conclusion Démarche concluante de spécification en JML par raffinement Aspects bas niveaux difficiles à modéliser Phase de concrétisation à développer