• Aucun résultat trouvé

Dans ce chapitre, un algorithme de g´en´eration de substitutions B, qui cor-respondent `a la dynamique des donn´ees d´ecrite dans les d´efinitions d’attributs eb3, a ´et´e pr´esent´e. L’objectif est de pouvoir cr´eer un lien entre une sp´ecification eb3 d’un SI et un mod`ele B de ce mˆeme syst`eme. Pour d´efinir ces r`egles de traduction, nous nous sommes en partie inspir´e de la formalisation en B des diagrammes semi-formels comme UML ou OMT, notamment pour g´en´erer le mod`ele de donn´ees du diagramme ER de la sp´ecification eb3. Nous avons d´efini en outre des r`egles pour repr´esenter en B les effets des actions sur les attri-buts du syst`eme. `A notre connaissance, ce passage d’une vue fonctionnelle du mod`ele de donn´ees d’un SI `a une vue par mod`ele bas´e sur les ´etats constitue une contribution originale de notre th`ese.

Optimisations

L’une des principales difficult´es de la traduction vers B concerne la g´en´ e-ration de substitutions lorsque les d´efinitions d’attributs incluent des termes conditionnels. Les formules de substitution d´efinies dans la section6.3.2.3 consti-tuent `a la fois une force et une faiblesse de notre algorithme. En effet, la forme compacte et le caract`ere g´en´eral des ensembles A et R permettent de g´en´erer di-rectement et simplement une substitution pour n’importe quel arbre de d´ecision. Toutefois, la substitution est difficile `a analyser avec les outils actuels de la m´ethode B. En effet, les r`egles d’inf´erence utilis´ees dans les preuves ne com-prennent pas beaucoup de r`egles de r´e´ecriture et de simplification sur des en-sembles en extension contenant des disjonctions comme dans nos formules de substitution. Nous avons donc d´efini des r`egles pour simplifier les substitutions g´en´er´ees. Parmi nos perspectives de travail, nous envisageons l’impl´ementation d’un interpr´eteur des r`egles de r´e´ecriture que nous avons d´efinies afin de r´e´ecrire automatiquement les substitutions B.

En attendant, nous avons d´efini dans [GFL04] un algorithme de traduction directe vers des substitutions ne comprenant aucune disjonction, en insistant

6.5. ANALYSE ET DISCUSSION 121 sur l’analyse des arbres de d´ecision. Le principe est simple : chaque arbre est analys´e `a deux reprises ; la premi`ere passe permet de d´etecter les hypoth`eses sur les param`etres d’entr´ee et d’identifier la hi´erarchie des expressions IF THEN ELSE END imbriqu´ees dans les termes conditionnels, alors que la deuxi`eme passe permet d’identifier les valeurs de cl´e concern´ees par les substitutions de chaque feuille de l’arbre.

Correction de la traduction

E a E ψ ψ F aB Z Z

Fig. 6.4 – Correction de la traduction en B

Un aspect important concernant l’algorithme est la preuve de sa correction. Le sch´ema de la preuve est repr´esent´e par la figure 6.4. Comme une preuve similaire sera pr´esent´ee dans le chapitre 11, nous donnons simplement dans cette section une explication intuitive de la preuve. Pour chaque action aF de la sp´ecification eb3, une op´eration aB est g´en´er´ee en B. Informellement, l’id´ee est de montrer que, pour chaque action aF, il existe un morphisme Ψ du mod`ele eb3 vers le mod`ele B, tel que le diagramme de la figure 6.4 soit commutatif. Autrement dit, l’´etat obtenu en ex´ecutant l’action aF, suivie de Ψ, est le mˆeme que si on ex´ecute Ψ, suivi de l’op´eration aB.

Pour l’instant, nous avons prouv´e `a la main que les substitutions g´en´er´ees correspondaient bien aux effets d´ecrits dans les d´efinitions d’attributs eb3. La preuve ne comporte pas de difficult´e majeure. Comme le nombre de substitu-tions dans une op´eration B d´epend du nombre d’occurrences de l’action cor-respondante dans les clauses d’entr´ee de l’ensemble des d´efinitions d’attributs, la preuve d´epend en fait de la forme et du contenu des d´efinitions d’attributs eb3. Il existe principalement deux formes de substitutions B g´en´er´ees : les sub-stitutions associ´ees `a des d´efinitions de cl´e et celles associ´ees `a des d´efinitions d’attributs non cl´e. Dans le cas des attributs non cl´e, la forme compacte des for-mules de substitution facilite la tˆache puisqu’elle prend en compte tous les cas possibles de la forme des expressions des termes conditionnels. En outre, le fait d’utiliser l’op´erateur de surcharge ( “<+” ) dans les substitutions associ´ees `a des termes fonctionnels, autres que le symbole “⊥”, permet de prendre en compte `

a la fois les insertions et les mises `a jour de tuples. Parmi les travaux futurs, nous souhaitons prouver m´ecaniquement la correction en utilisant un outil de preuve.

Chapitre 7

M´ethode eb

4

“Toute connaissance rationnelle ou bien est mat´erielle et se rapporte `

a quelque objet, ou bien est formelle et ne s’occupe que de la forme de l’entendement et de la raison en eux-mˆemes et des r`egles universelles de la pens´ee en g´en´eral sans acception d’objets.”

— Emmanuel Kant

Nous pr´esentons dans ce chapitre l’approche eb4, que nous avons d´evelopp´ee afin d’exploiter `a la fois les avantages des langages eb3 et B dans une m´ethode int´egr´ee de sp´ecification formelle d´edi´ee aux SI. Dans la section 7.1, nous d´ e-crivons les principales ´etapes de la m´ethode eb4 pour concevoir un SI. En-suite, nous discutons dans la section 7.2 des techniques utilis´ees pour d´ecrire et v´erifier des propri´et´es statiques du syst`eme `a mod´eliser. Dans la section7.3, nous montrons comment prendre en compte les propri´et´es dynamiques. Enfin, la section 7.4 conclut ce chapitre avec une discussion sur l’application de la m´ethode.

7.1 Description g´en´erale d’eb

4

Notre objectif est de b´en´eficier `a la fois des avantages d’eb3 et B. L’id´ee est d’utiliser eb3 pour sp´ecifier le comportement du SI et le langage B pour les propri´et´es statiques. Ainsi, il est possible de consid´erer deux vues orthogonales du mˆeme syst`eme. En analysant l’´etat de l’art (voir chapitre 3), nous avons remarqu´e que la principale difficult´e li´ee `a l’int´egration de plusieurs paradigmes de sp´ecification concernait la mani`ere dont chaque repr´esentation du syst`eme ´etait reli´ee aux autres. Dans l’approche eb4, nous avons choisi d’adopter une int´egration “verticale”. Autrement dit, une sp´ecification dans un langage est traduite dans l’autre langage.

Le principal d´efaut de ce type de combinaison de sp´ecifications formelles est la perte possible d’information ou de propri´et´es exprim´ees dans une sp´ecification lorsque cette derni`ere est traduite dans l’autre langage. Pour y rem´edier, nous avons repris le principe de raffinement utilis´e dans l’exp´erience eb3-B (voir sec-tion5.2) et nous couplons la traduction d’eb3 vers B avec une preuve de raf-finement. Autrement dit, une sp´ecification compl`ete en eb3 du SI est raffin´ee en une sp´ecification B. Cependant, un tel raffinement ne peut pas ˆetre obtenu directement, car de nombreux choix de traduction sont possibles `a ce niveau

d’abstraction. Plusieurs ´etapes ont donc ´et´e d´efinies dans l’approche eb4 pour simplifier le processus de raffinement.

7.1.1 Description des principales ´etapes

La figure 7.1est un r´esum´e des six principales ´etapes :

Etape 4 : Prise en compte des propriétés

statiques dans les gardes

Etape 2 : Génération de la partie statique et des substitutions Etape 1 : Spécification en EB3 Etape 5 : Génération de la machine abstraite Etape 6 : Preuve de raffinement Etape 3 : Rajout de contraintes d’intégrité et génération des prédicats IF Spécification B : et transactions Raffinement B : Attributs Traces du processus principal Expressions de processus Spécification EB3 et Définitions d’attributs Diagramme ER

Fig. 7.1 – R´esum´e de l’approche eb4

– ´Etape 1 : Le SI est dans un premier temps sp´ecifi´e en eb3. L’objectif est de caract´eriser le comportement du SI. Les diff´erentes parties d’une sp´ecification eb3 ont ´et´e pr´esent´ees dans la section4.1.

– ´Etape 2 : Le diagramme ER et les d´efinitions d’attributs sont traduits en B. Les r`egles de traduction ont ´et´e d´etaill´ees dans le chapitre6. Cette partie de la sp´ecification eb3 permet de mod´eliser l’espace d’´etats ainsi que les effets des transactions du syst`eme. La traduction B obtenue est incompl`ete, car elle ne prend pas en compte les propri´et´es dynamiques des expressions de processus eb3. Les op´erations B ne permettent pas non plus de respecter les propri´et´es d’invariance g´en´er´ees automatiquement `a partir du diagramme ER, car il manque des pr´econditions. Cependant, cette description B va nous servir de squelette de raffinement pour les ´

etapes ult´erieures. En particulier, elle nous fournit les variables d’´etat et les propri´et´es d’invariance pertinentes pour le raffinement.

– ´Etape 3 : Nous b´en´eficions dans cette ´etape de la compl´ementarit´e entre eb3 et B. L’´etape 3 est compos´ee de deux sous-´etapes. La premi`ere sous-´

etape consiste `a rajouter dans la clause INVARIANT de la description B obtenue `a l’issue de l’´etape 2, des contraintes d’int´egrit´e statiques suppl´ e-mentaires qui ne sont pas explicites dans le diagramme ER. Les contraintes d’int´egrit´e statiques sont des propri´et´es de sˆuret´e que les types d’entit´e et associations du SI doivent toujours satisfaire. Rappelons que toute op´eration B doit pr´eserver les propri´et´es d’invariance de la sp´ecification. La seconde sous-´etape consiste `a g´en´erer des conditions pour les parties IF de chaque op´eration B, de mani`ere `a pr´eserver les pr´edicats de la clause INVARIANT. Ces conditions, not´ees CS dans la section 6.3.2.1, ne sont pas faciles `a d´eterminer. Nous discutons plus en d´etail de la g´en´eration de ces conditions dans la section 7.2.2. Cette sous-´etape permet ´egalement de d´etecter les ´eventuelles incoh´erences dans les propri´et´es statiques du

7.2. PROPRI ´ET ´ES STATIQUES DU SI 125