utilisation de uml et b pour la production d'implémentations relationnelles régine laleau...

36
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

Upload: cecile-didier

Post on 03-Apr-2015

111 views

Category:

Documents


4 download

TRANSCRIPT

Page 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

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

Page 2: 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

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

Page 3: 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

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 d’intégrité

• Traitements génériques, de complexité algorithmique

relativement faible : Maj des données, respect des CI

Page 4: 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

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

Page 5: 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

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

Page 6: 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

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 (att1 T1 Primary Key,att2 T2 Not Null, ……);

Insert into Va Values v1,..., vn

……

Implémentation SQL

I - Introduction

Description des fonctionnalités du noyau d ’un SI

Machine ASETS SaVARIABLES Va, Vb, VrINVARIANT

Vr £ Va °Vb ……OPERATIONS ……

Spécification B

Page 7: 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

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

Page 8: 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

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

Page 9: 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

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

Page 10: 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

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_e Class_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

* *

Page 11: 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

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 associationsOpé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

Page 12: 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

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

Page 13: 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

13

Démarche pour spécifier une transaction

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 :

• 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

Page 14: 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

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 objetprédicat sur les valeurs des caractéristiques de

l ’objet

• Evénement = changement d ’état de l ’objetappel d ’opération

• Garde = condition à vérifier avant l ’émission de l ’événement

III - Spécification des propriétés fonctionnelles des transactions

Page 15: 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

15

Diagramme états-transitions : traduction

TS1

III - Spécification des propriétés fonctionnelles des transactions

SS1ev ( param-list)

ev(param-list) =

PRE Typage des paramètres

THEN

END;

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

[C1] / op1 (param1-list)

¾

(SS1 ¾ C1 ¾ PréCondition_op1)

op1(param1-list)

Page 16: 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

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

Page 17: 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

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

Page 18: 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

18

ObjectifObjectif

SETS SaVARIABLES Va, Vb, VrINVARIANT Vr Va Vb ……OPERATIONS ……….

Spécifications B

Create Table Va (att1 T1 Primary Key,att2 T2 Not Null, ………);Insert into Va

Values v1,..., vn

………

Implémentation SQL :schéma + transactions

Processus sûrProcessus sûr

Préserver dans l ’implémentation les propriétésde la spécification initiale

IV - Raffinement vers une implémentation relationnelle

Page 19: 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

19

Approche adoptée Approche adoptée

Create Table Va (att1 T1 Primary Key,att2 T2 Not Null, ………);Insert into Va

Values v1,..., vn

………

Implémentation SQL :schéma + transactions

traductionimmédiate

SETS SaVARIABLES Va, Vb, VrINVARIANT Vr Va Vb ……OPERATIONS ……….

Spécification B

...

...Preuves

Implémentation B0_SQL

RaffinementVariables VaInvariant Va {att1: T1,, attn: Tn}Operations Insert(v1,..., vn) = Va := ....... ..........

IV - Raffinement vers une implémentation relationnelle

Page 20: 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

20

Technique : Raffinement de BTechnique : Raffinement de B

IV - Raffinement vers une implémentation relationnelle

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

Le raffinement B permet :

Page 21: 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

21

Principe

Raffinement des données

Spécification abstraite

Données et opérations de base raffinées

Raffinement des transactions

Transactions concrètesen B0_SQL

Importe

machines abstraites(Tables

relationnelles)en B0_SQL

IV - Raffinement vers une implémentation relationnelle

...

Page 22: 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

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

Page 23: 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

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

Page 24: 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

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

Page 25: 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

25

* *

Assatt : T

AcleA:TA

BcleB:TB

Ass

AcleA:TA

BcleB:TB

att : TrefcleA:TA

refcleB:TB

Sets A, BVariables a, b, Ass, cleA, cleB

Invarianta § A ¾ b § B ¾ cleA£ a³TA ¾ cleB£b³TB ¾ass£a°b

Sets A, BVariables a, b, Ass, cleA, cleB refcleA, refcleB

InvariantrefcleA = Ass » (prj1 (a, b); refcleA) ¾refcleB = Ass » (prj2 (a, b); refcleB) ¾refcleA refcleB £ Ass ³ TA TB

Elimination des associations multivaluées (1)

IV - Raffinement vers une implémentation relationnelle

Page 26: 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

26

Elimination des associations multivaluées (2)

||refcleA := refcleA {aa ¯ bb ¯ cleA(aa) } ||refcleB := refcleB {aa ¯ bb ¯ cleB(bb) }

BasicAjoutAss(aa, bb, at)

BEGINAss := Ass { aa ¯ bb } ||Att := Att {aa ¯ bb ¯ at }

END

Raffinement d’opérations

IV - Raffinement vers une implémentation relationnelle

Page 27: 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

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

Page 28: 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

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

Page 29: 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

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

Page 30: 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

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

Page 31: 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

31

Réutilisation de preuves : principe

a’ : la valeur de a après application de Sa, b’ : la valeur de b après application de Tb

On dispose d’un ensemble de règles de raffinement : Sa [J(a,b)Tb

faire la preuve PrST revient à construire une preuve pour une formule de la forme :

¡ b’ ¢ a’. J(a’, b’)

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

et de leur preuve associée : PrST

Page 32: 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

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

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

Conditions de réutilisation :

Page 33: 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

33

Réutilisation de preuves : application aux BD

automatiser une grande partie de la preuve des transactions

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

IV - Raffinement vers une implémentation relationnelle

Page 34: 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

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

Page 35: 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

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

Page 36: 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

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