La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

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 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 3 Caractéristiques des SI I - Introduction 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 dintégrité Traitements génériques, de complexité algorithmique relativement faible : Maj des données, respect des CI

4 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 5 Pourquoi la méthode B ? I - Introduction 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

6 6 Synthèse du Projet 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 Create Table Va ( att 1 T 1 Primary Key, att 2 T 2 Not Null, ……); Insert into Va Values v 1,..., v n …… Implémentation SQL I - Introduction 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

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

10 10 Association (*,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 Class_eClass_f SETS CLASS_E, CLASS_F VARIABLES Class_e, Class_f INVARIANT Class_e § CLASS_E Class_f § CLASS_F Assoc_r, Assoc_r Assoc_r £ Class_e ° Class_f **

11 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 dajout dinstances, de liens Opérations de suppression dinstances, 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 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 13 Démarche pour spécifier une transaction Objectif : Préciser leffet 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 : Extension du diagramme de classes par des classes « stéréotypées » Diagrammes états-transitions et de collaborations Point de départ : Diagramme de classes et sa traduction B Opérations de base générées III - Spécification des propriétés fonctionnelles des transactions

14 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 15 Diagramme états-transitions : traduction TS1 III - Spécification des propriétés fonctionnelles des transactions SS1 ev ( param-list) ev(param-list) = PRETypage des paramètres THEN END; SS2TS 2 [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 [C1] / op1 (param1-list) ¾ ( SS1 ¾ C1 ¾ PréCondition_op1 ) op1(param1-list)

16 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 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 18Objectif SETS Sa VARIABLES Va, Vb, Vr INVARIANT Vr Va Vb …… OPERATIONS ………. Spécifications B Create Table Va ( att 1 T 1 Primary Key, att 2 T 2 Not Null, ………); Insert into Va Values v 1,..., v n ……… Implémentation SQL : schéma + transactions Processus sûr Préserver dans l implémentation les propriétés de la spécification initiale IV - Raffinement vers une implémentation relationnelle

19 19 Approche adoptée Create Table Va ( att 1 T 1 Primary Key, att 2 T 2 Not Null, ………); Insert into Va Values v 1,..., v n ……… Implémentation SQL : schéma + transactions 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 {att 1 : T 1,, att n : T n } Operations Insert( v 1,..., v n ) = Va := IV - Raffinement vers une implémentation relationnelle

20 20 Technique : Raffinement de B IV - Raffinement vers une implémentation relationnelle la synthèse de programmes la génération dune implémentation (code "exécutable" ) à partir dune spécification abstraite lintroduction 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 Le raffinement B permet :

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

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

23 23 Algorithme classique de raffinement BD Raffinement B raffinement conjoint des données et des opérations de base 1. Elimination des liens dhé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 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 à lapplication dune règle de raffinement des données Chaque étape de raffinement est prouvée IV - Raffinement vers une implémentation relationnelle

25 25 ** Ass att : T A cle A :T A B cle B :T B Ass A cle A :T A B cle B :T B att : T refcle A :T A refcle B :T B Sets A, B Variables a, b, Ass, cle A, cle B Invariant a § A ¾ b § B ¾ cle A £ a ³ T A ¾ cle B £ b ³ T B ¾ ass £ a ° b Sets A, B Variables a, b, Ass, cle A, cle B refcle A, refcle B Invariant refcle A = Ass » (prj 1 (a, b); refcle A ) ¾ refcle B = Ass » (prj 2 (a, b); refcle B ) ¾ refcle A ­ refcle B £ Ass ³ T A T B Elimination des associations multivaluées (1) IV - Raffinement vers une implémentation relationnelle

26 26 Elimination des associations multivaluées (2) || refcle A := refcle A {aa ¯ bb ¯ cle A (aa) } || refcle B := refcle B {aa ¯ bb ¯ cle B (bb) } BasicAjoutAss(aa, bb, at) BEGIN Ass := Ass { aa ¯ bb } || Att := Att {aa ¯ bb ¯ at } END Raffinement dopérations IV - Raffinement vers une implémentation relationnelle

27 27 Implémentation utilise limplémentation des opérations de base limplémentation dune transaction nest pas toujours automatique : lever l'indéterminisme des substitutions IV - Raffinement vers une implémentation relationnelle

28 28 Codage de lapplication - codage des machines importées - codage de limplé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 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é dune expérience 2 classes+2 associations+3ans dexpérience = 15 jours de preuves IV - Raffinement vers une implémentation relationnelle

30 30 Preuves de raffinement (2) Deux catégories - vérifier les conditions nécessaires au raffinement des opérateurs B - prouver une combinaison des opérations de base Preuve des transactions : Preuve de raffinement des opérations de base : par instanciation des preuves génériques des règles de raffinement 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 31 Réutilisation de preuves : principe a : la valeur de a après application de S a, b : la valeur de b après application de T b On dispose dun ensemble de règles de raffinement : Sa [J(a,b)TbSa [J(a,b)Tb faire la preuve Pr ST revient à construire une preuve pour une formule de la forme : ¡ b ¢ a. J(a, b) Objectif : Sous quelles conditions les preuves Pr ST et Pr UV de S a [ J(a,b) T b, U x [ J(x,y) V y peuvent être réutilisées pour construire la preuve Pr CC du raffinement : C (S a, U x ) [ J(a ª x, b ª y) C(T b, V y ) IV - Raffinement vers une implémentation relationnelle et de leur preuve associée : Pr ST

32 32 Réutilisation de preuves : un seul opérateur 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 Pr ST et Pr UV, 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 Conditions de réutilisation :

33 33 Réutilisation de preuves : application aux BD automatiser une grande partie de la preuve des transactions linvariant 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) linvariant 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 IV - Raffinement vers une implémentation relationnelle

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

36 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


Télécharger ppt "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."

Présentations similaires


Annonces Google