1 / 36

Utilisation de UML et B pour la production d'implémentations relationnelles

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

Download Presentation

Utilisation de UML et B pour la production d'implémentations relationnelles

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

  5. Pourquoi la méthode B ? • 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

  6. Synthèse du Projet MachineA SETSSa VARIABLES Va, Vb, Vr INVARIANT Vr £ Va °Vb …… OPERATIONS …… Create TableVa ( att1 T1Primary Key, att2 T2Not Null, ……); Insert intoVa Valuesv1,..., vn …… r * * A B S1 S2 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 Implémentation SQL Spécification B Spécification IS-UML Description des fonctionnalités du noyau d ’un SI I - Introduction

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

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

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

  10. Association Assoc_r * * Class_e Class_f , Assoc_r  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

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

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

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

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

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

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

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

  18. Objectif Spécifications B SETSSa VARIABLES Va, Vb, Vr INVARIANT Vr  Va  Vb …… OPERATIONS ………. Préserver dans l ’implémentation les propriétés de la spécification initiale Implémentation SQL : schéma + transactions 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

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

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

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

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

  23. Algorithme classique de raffinement BD Raffinement B 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

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

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

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

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

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

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

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

  31. Réutilisation de preuves : principe • Objectif : Sous quelles conditions les preuves PrSTet 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) 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 IV - Raffinement vers une implémentation relationnelle

  32. 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)  seulesles valeursa’ et x’,exhibées pour la preuve dePrST etPrUV , 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

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

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

  35. Conclusion • Résultat : définition d ’un langage et d ’une méthodeformels 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

  36. Perspectives • Sur IS-UML : • 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

More Related