utilisation de uml et b pour la production d'implémentations relationnelles régine laleau...
TRANSCRIPT
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
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
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 ?
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
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
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
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
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
* *
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
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
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
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
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)
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
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
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
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 :
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
...
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
* *
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
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
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
- 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
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
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 :
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
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é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
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