Régine Laleau Centre d'Étude et de Recherche en Informatique du CNAM

Slides:



Advertisements
Présentations similaires
Sintaks : Tentative de guide de mise en œuvre Michel Hassenforder.
Advertisements

MOT Éditeur de modèles de connaissances par objets typés
« Systèmes électroniques »
Génie Logiciel 2 Julie Dugdale
Algèbre de composants : une approche fonctionnelle à la sémantique de documents Bart Lamiroy LORIA/INPL QGar - École des Mines de Nancy.
Affichage interactif, bidimensionnel et incrémental de formules mathématiques Hanane Naciri et Laurence Rideau INRIA Sophia Antipolis CARI'2000.
Spécification et qualité du logiciel
Rainbow - Arcad Composition de composants et IHMs composites 23/05/2002 Jeremy Fierstone / Equipe Rainbow / 1.
JXDVDTEK – Une DVDthèque en Java et XML
Cours n° 8 Conception et Programmation à Objets
M.E.D.A.L. Module dEnseignement à Distance pour lArchitecture Logicielle Alain VAILLY Diapositive n° 1 IUP MIAGE - Université de NANTES IUP-MIAGE 3ème.
UML - Présentation.
Le Modèle Logique de Données
Algèbre relationnelle
Master Génie Biologique et Informatique, première année
Génération interactive dimages projectives : Application à la Radiothérapie Pierre BLUNIER Du 01/12/2002 au 28/03/2003 Centre Léon Bérard.
Systèmes Experts implémentation en Prolog
Gestion de la persistance des objets
Quoi ? Un tampon.
1 B Système Enjeux et principes Cours DESS Nantes 04 Décembre 2002 Didier ESSAME.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Introduction à la POO: Les classes vs les objets
Langage SysML.
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
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.
Développement d’applications web
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
PAFI Référentiel de données par Sonia Watts DGIF (Direction de la gestion et de linformation forestière) 27 octobre 2010 et 3 novembre 2010.
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Application des algorithmes génétiques
le profil UML en temps réel MARTE
Vuibert Systèmes dinformation et management des organisations 6 e édition R. Reix – B. Fallery – M. Kalika – F. Rowe Chapitre 1 : La notion de système.
Validation d’applications pour les Legos Mindstorms
Modélisation E/R des Données
Introduction à la conception de Bases de Données Relationnelles
Chaque use-case génère un ou des scénarios, traduits par des diagrammes objets, qui permettent d’introduire et/ou de compléter les diagrammes des catégories.
MIGRATION DE DONNÉES la méthode générale
L’utilisation des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
SYSTEMES D’INFORMATION
Techniques de test Boulanger Jean-Louis.
MOT Éditeur de modèles de connaissances par objets typés
GPA789 Analyse et conception orientées objet 1 Professeur: Tony Wong, Ph.D., ing. Chapitre 6 Correspondance UML et C++
CSI3525: Concepts des Languages de Programmation
1.1 LES VECTEURS GÉOMÉTRIQUES
Article présentée par : Étudiante en 2ème année mastère F.S.T. Tunisie
Cours de Base de Données & Langage SQL
Chapitre 3 Syntaxe et sémantique.
Partie II Sémantique.
Initiation à la conception des systèmes d'informations
Programmation non procédurale Le projet ECOLE 2000
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.
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
Introduction.
ANALYSE METHODE & OUTILS
Supports de formation au SQ Unifié
Hatainville Les Moitiers d’Allonne – Tel : Website : stratic.online.com La démarche projet Mars 2001.
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Approches Formelles en Systèmes d'information
Algorithmique et programmation (1)‏
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
« Validation Formelle de Systèmes Interactifs »
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
CORTIER Alexandre Directeur : Bruno d’AUSBOURG (ONERA)
2 Processus de conception de BD
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
(UML) Unified Modeling Language
Schéma de base de données Présentation. Conception du schéma logique  Transformation du schéma conceptuel en structures de données supportées par les.
Transcription de la présentation:

Utilisation de UML et B pour la production d'implémentations relationnelles Régine Laleau Centre d'Étude et de Recherche en Informatique du CNAM Institut d ’Informatique d ’Entreprise

Situation actuelle en conception de logiciels Méthodes formelles pour les logiciels critiques modèle mathématique sur lequel on peut raisonner produits fiables et sûrs Conception de Systèmes d ’Information (SI) Données : modèle formel (E/A, modèle relationnel binaire) Traitements : modèle semi-formel (notations graphiques, langue naturelle) I - Introduction

Caractéristiques des SI Gros volumes de données … Exprimer les notions d ’ensemble et d ’instance d ’ensemble … fortement liées Modéliser les liens Exprimer les contraintes d’intégrité Traitements génériques, de complexité algorithmique relativement faible : Maj des données, respect des CI I - Introduction

Objectif des travaux Spécifier formellement les propriétés fonctionnelles des SI au même niveau d ’abstraction que les données Pourquoi ? Vérifier la cohérence du SI au niveau conceptuel Dériver les programmes Bases de Données Cadre du travail : Utilisation d ’une méthode formelle existante outillée « Réutilisation » des modèles formels de données Couplage notations graphiques et mathématiques I - Introduction

Pourquoi la méthode B ? Opérations = Transitions d ’états Notion d ’état = Variables + Invariant proche des modèles sémantiques de données Opérations = Transitions d ’états (spécifiées par substitutions généralisées) Mécanismes de structuration Raffinement Outils I - Introduction

Synthèse du Projet * Description des fonctionnalités du noyau d ’un SI Machine A SETS Sa VARIABLES Va, Vb, Vr INVARIANT Vr £ Va °Vb …… OPERATIONS Spécification B Create Table Va ( att1 T1 Primary Key, att2 T2 Not Null, ……); Insert into Va Values v1,..., vn …… Implémentation SQL Spécification IS-UML A B * r S2 S1 Notations graphiques UML + sémantique formelle Sa structure reflète la structure de la spécification IS-UML Schéma de la base de données + transactions I - Introduction

Plan de l ’exposé I - Introduction II - Formalisation des concepts des modèles sémantiques de données III - Spécification des propriétés fonctionnelles des transactions IV - Raffinement vers une implémentation relationnelle V - Conclusion

Approche adoptée Formalisation des concepts de base Objet, Classe, Attribut, Association Généralisation/Spécialisation, Composition/Agrégation Génération des opérations élémentaires Opérations génériques spécifiées sur les classes et les associations II - Formalisation des concepts des modèles sémantiques de données

Classe et concepts liés Att1 : T1 Att2 : T2 {Key} , Att1, Att2  Att1 £ Class ± T1  Att2 £ Class ³ T2 SETS CLASS VARIABLES Class INVARIANT Class § CLASS II - Formalisation des concepts des modèles sémantiques de données

* Association Assoc_r , Class_e Class_f  Assoc_r £ Class_e ° Class_f SETS CLASS_E, CLASS_F VARIABLES Class_e, Class_f INVARIANT Class_e § CLASS_E  Class_f § CLASS_F (*,1) : Assoc_r Û £ Class_e ± Class_f (0..1, 0..1) : Assoc_r £ Class_e ´ Class_f ... II - Formalisation des concepts des modèles sémantiques de données

Opérations de base En BD, opérations génériques de mise à jour, indépendantes des applications Opérations de base sur les classes, les associations Opérations d’ajout d’instances, de liens Opérations de suppression d’instances, de liens Opérations de modification des valeurs des attributs Génération automatique à partir du diagramme de classes II - Formalisation des concepts des modèles sémantiques de données

Plan de l ’exposé I - Introduction II - Formalisation des concepts des modèles sémantiques de données III - Spécification des propriétés fonctionnelles des transactions IV - Raffinement vers une implémentation relationnelle V - Conclusion

Démarche pour spécifier une transaction Point de départ : Diagramme de classes et sa traduction B Opérations de base générées Objectif : Préciser l’effet de la transaction sur le SI Règles de gestion Opérations de base concernées Préconditions liées aux contraintes d ’intégrité Moyens : Diagrammes états-transitions et de collaborations Extension du diagramme de classes par des classes « stéréotypées » III - Spécification des propriétés fonctionnelles des transactions

Diagramme états-transitions : définition Associé à une classe, il permet la description du cycle de vie d ’un objet Etats = situations pérennes de la vie d ’un objet prédicat sur les valeurs des caractéristiques de l ’objet Evénement = changement d ’état de l ’objet appel d ’opération Garde = condition à vérifier avant l ’émission de l ’événement III - Spécification des propriétés fonctionnelles des transactions

Diagramme états-transitions : traduction SS1 ev ( param-list) ev(param-list) = PRE Typage des paramètres THEN END; TS1 [C1] / op1 (param1-list) ¾ (SS1 ¾ C1 ¾ PréCondition_op1) SS2 TS2 [C2] / op2 (param2-list) ev ( param-list) ¿ (SS2 ¾ C2 ¾ PréCondition_op2) Select (SS1 ¾ C1) Then op1(param1-list) When (SS2 ¾ C2) Then op2(param2-list) END op1(param1-list) III - Spécification des propriétés fonctionnelles des transactions

Structuration de la spécification Intérêts : - meilleure lisibilité de la spécification formelle - preuves incrémentales But : respecter la structure de la spécification UML Moyens : machines abstraites, liens Uses, Includes Résultats : structure de la spécification à deux niveaux - niveau interne : diagramme de classes - niveau externe : transactions II - Formalisation des concepts des modèles sémantiques de données

Plan de l ’exposé I - Introduction II - Formalisation des concepts des modèles sémantiques de données III - Spécification des propriétés fonctionnelles des transactions IV - Raffinement vers une implémentation relationnelle - Principes généraux - Processus de production de code - Preuves V - Conclusion

Objectif Préserver dans l ’implémentation les propriétés de la spécification initiale Implémentation SQL : schéma + transactions SETS Sa VARIABLES Va, Vb, Vr INVARIANT Vr  Va  Vb …… OPERATIONS ………. Spécifications B Create Table Va ( att1 T1 Primary Key, att2 T2 Not Null, ………); Insert into Va Values v1,..., vn ……… Processus sûr IV - Raffinement vers une implémentation relationnelle

... Approche adoptée Raffinement Preuves traduction immédiate SETS Sa VARIABLES Va, Vb, Vr INVARIANT Vr  Va  Vb …… OPERATIONS ………. Spécification B ... Preuves Implémentation B0_SQL Raffinement Variables Va Invariant Va  {att1: T1,, attn: Tn} Operations Insert(v1,..., vn) = Va := ....... .......... Create Table Va ( att1 T1 Primary Key, att2 T2 Not Null, ………); Insert into Va Values v1,..., vn ……… Implémentation SQL : schéma + transactions traduction immédiate IV - Raffinement vers une implémentation relationnelle

Technique : Raffinement de B Le raffinement B permet :  la synthèse de programmes  la génération d’une implémentation (code "exécutable" ) à partir d’une spécification abstraite l’introduction de nouvelles variables concrètes le remplacement de variables abstraites par des variables concrètes en précisant un invariant de collage. la réécriture des opérations abstraites en fonction des variables concrètes  les obligations de preuve générées assurent que la spécification concrète préserve les propriétés de la spécification abstraite IV - Raffinement vers une implémentation relationnelle

(Tables relationnelles) Transactions concrètes Principe Spécification abstraite machines abstraites (Tables relationnelles) en B0_SQL . Raffinement des données . . Raffinement des transactions Transactions concrètes en B0_SQL Importe Données et opérations de base raffinées IV - Raffinement vers une implémentation relationnelle

Contributions Raffinement des données et des opérations de base automatique Preuve de chaque étape de raffinement Définition d’une stratégie de réutilisation des preuves élémentaires associées à chaque règle de raffinement Réalisation d’un outil d’aide au développement formel d ’applications BD IV - Raffinement vers une implémentation relationnelle

Algorithme classique de raffinement BD  raffinement conjoint des données et des opérations de base 1. Elimination des liens d’héritage 2. Identification des objets 3. Elimination des associations monovaluées (sans attributs) 4. Elimination des associations multivaluées et des classes associations 5. Définition des structures de tables IV - Raffinement vers une implémentation relationnelle

Règles de raffinement  120 règles de raffinement des données et des opérations de base : A chaque règle de raffinement des données correspond une ou plusieurs règles de raffinement des opérations de base  Une étape du processus correspond à l’application d’une règle de raffinement des données  Chaque étape de raffinement est prouvée IV - Raffinement vers une implémentation relationnelle

Elimination des associations multivaluées (1) Sets A, B Variables a, b, Ass, cleA, cleB Invariant a § A ¾ b § B ¾ cleA£ a³TA ¾ cleB£b³TB ¾ ass£a°b Variables a, b, Ass, cleA, cleB refcleA, refcleB refcleA = Ass » (prj1 (a, b); refcleA) ¾ refcleB = Ass » (prj2 (a, b); refcleB) ¾ refcleA ­ refcleB £ Ass ³ TA  TB * Ass att : T A cleA:TA B cleB:TB Ass att : T refcleA:TA refcleB:TB A cleA:TA B cleB:TB IV - Raffinement vers une implémentation relationnelle

Elimination des associations multivaluées (2) BasicAjoutAss(aa, bb, at) BEGIN Ass := Ass  { aa ¯ bb } || Att := Att  {aa ¯ bb ¯ at } END Raffinement d’opérations || refcleA := refcleA  {aa ¯ bb ¯ cleA(aa) } || refcleB := refcleB  {aa ¯ bb ¯ cleB(bb) } IV - Raffinement vers une implémentation relationnelle

Implémentation  utilise l’implémentation des opérations de base  l’implémentation d’une transaction n’est pas toujours automatique : lever l'indéterminisme des substitutions IV - Raffinement vers une implémentation relationnelle

Codage de l’application - codage des machines importées - codage de l’implémentation des transactions - en JAVA, on obtient une architecture du logiciel similaire à celle de B  le codage est encore manuel et non prouvé IV - Raffinement vers une implémentation relationnelle

Preuves de raffinement (1)  environ 70 % des preuves sont automatiquement déchargées  environ 30 % des preuves sont interactives : - manque de tactiques appropriées - manque de règles de preuve dans la base du prouveur B - nécessité de plusieurs pas de déduction - nécessité d’une expérience  2 classes+2 associations+3ans d’expérience = 15 jours de preuves IV - Raffinement vers une implémentation relationnelle

Preuves de raffinement (2) Deux catégories Preuve de raffinement des opérations de base : par instanciation des preuves génériques des règles de raffinement Preuve des transactions : - vérifier les conditions nécessaires au raffinement des opérateurs B - prouver une combinaison des opérations de base  Réutiliser les preuves des opérations de base déjà établies pour la preuve des transactions IV - Raffinement vers une implémentation relationnelle

Réutilisation de preuves : principe Sa [J(a,b)Tb On dispose d’un ensemble de règles de raffinement : et de leur preuve associée : PrST faire la preuve PrST revient à construire une preuve pour une formule de la forme : ¡ b’ ¢ a’. J(a’, b’) a’ : la valeur de a après application de Sa, b’ : la valeur de b après application de Tb Objectif : Sous quelles conditions les preuves PrST et PrUV de Sa [J(a,b) Tb , Ux [J(x,y) Vy peuvent être réutilisées pour construire la preuve PrCC’ du raffinement : C (Sa, Ux) [J(a ª x , b ª y) C’(Tb, Vy) IV - Raffinement vers une implémentation relationnelle

Réutilisation de preuves : un seul opérateur Conditions de réutilisation :  J(a ª x , b ª y)  J(a, b) et J(a ª x , b ª y)  J(x,y)  seules les valeurs a’ et x’, exhibées pour la preuve de PrST et PrUV , et qui vérifient J(a’ ª x’ , b’ ª y’) peuvent être réutilisées  les ensembles des variables modifiées et lues de deux substitutions parallèles doivent être disjoints IV - Raffinement vers une implémentation relationnelle

Réutilisation de preuves : application aux BD  l’invariant de collage d ’une étape de raffinement est la conjonction des invariants de collage des règles appliquées : J(a ª x , b ª y) = J(a, b) ¾ J(x,y)  l’invariant de collage de chaque règle de notre base est fonctionnel en a et x :  b’.  ! a’. J(a’, b’ ) ¾  y’.  ! x’. J(x’, y’ )   condition à vérifier sur chaque cas  automatiser une grande partie de la preuve des transactions IV - Raffinement vers une implémentation relationnelle

Plan de l ’exposé V - Conclusion I - Introduction II - Formalisation des concepts des modèles sémantiques de données III - Spécification des propriétés fonctionnelles des transactions IV - Raffinement vers une implémentation relationnelle V - Conclusion

Conclusion Résultat : définition d ’un langage et d ’une méthode formels pour la conception et le développement d ’applications BD Couplage notations formelles (B) et graphiques (UML) Définition de IS-UML : basée sur B et UML Outil V - Conclusion

Perspectives Sur IS-UML : Extensions : Passage à l ’échelle : validation par des cas industriels Intégration dans un processus complet d ’analyse-conception Extensions : Etude de propriétés dynamiques des SI : combinaison de 2 types de langages de specs (algèbre de processus, machines à états) Réutilisation de composants de spécification ... V - Conclusion