Home

X - LIFC

image

Contents

1. 124 2 EXemples sissa e fase ue Sree Ba a NRA a Re Les LYD S AD ME ow ae A De A AS TE DES 12 5 1 Les types de base du langage B 12 5 2 Equivalence entre types B et types Java La Traduction des donn es 12 6 1 Remarques s ar coe be hole pes Soke ee e A ER ele 12 6 2 Les ensembl s caco 4 422 is eo we aca ik AR ea Uae a edhe ak amp 12 6 3 Les constantes concr tes 12 6 4 Les variables concr tes 12 6 5 Les intervalles 12 60 Lies tablealix irc hep mnt A ne ea wae en 12 6 7 Les param tres des machines L srop rations s s eate fax A ee ee eee OE ae AA ue eel 12 7 1 La traduction des op rations B et des param tres d entr e 12 7 2 Le probl me des r sultats multiples 1237 3 Um exemple ae nee ach ee te Bele ne e a PE 12 7 4 Retour sur la s mantique du passage de param tres en B Les substitutions 12 8 1 Introduction 12 8 2 La substitution Devient gal 12 8 3 Substitution appel d op ration 12 8 4 Substitution S quencement 12 8 5 Substitution Bloc 12 8 6 Substitution Identit 155
2. 127 Automate final de la machine M1 127 Be robotica a a co oe oe OS Re EE eh ee 128 Machine abstraites c 128 Diagramme d tats transitions du Robot0 extrait de Vinitialisation 129 Diagramme d tats transitions du Robot0 extrait de l op ration Chgt 129 Diagramme extrait de l op ration Chgt apr s simplification 129 Diagramme extrait de l op ration Dchgt apr s simplification 130 Diagramme d tats transitions du RobotO 130 Premier raffinement du robot 131 Diagramme d tats transitions de la variable Type pour Chgt 131 Diagramme d tats transitions de la variable Type pour Chet apr s simplification 132 Diagramme d tats transitions complet de la variable Type 132 Diagramme d tats transitions des variables Dt1 Del De2 et Dal 132 Diagramme d tats transitions Dpr1 Type lt 133 Diagramme d tats transitions Dp41 Type Dal De1 De2 134 La machine Parking oye pen diet A A Nine D eh 135 Syst me de transitions tiquet es relatif la machine Parking 135 Le raffinement de la machine Parking 136 Syst me de transitions tiquet es relatif au raffinement Parking 11 136 Diagramme d tats transitions relatif la machine
3. lt Precondition gt Predicate Substitution lt Precondition gt Fig 15 4 Une partie de la grammaire des fichiers XML abstract class Substitutionextends BObject class Parallel extends Substitution Substitution substitutions public Parallel public void setFields BObject values substitutions new Substitution values length for int i 0 i lt values length i 1 substitutions i Substitution values i Fic 15 5 Exemple de classes Java de la BOL correspondant aux substitutions parall les 15 5 et 15 6 15 3 Les outils Dans les paragraphes pr c dents nous avons pr sent le projet jBTools qui comprend un analyseur syntaxique et s mantique pour la notation B et un v rifieur de types Le v rifieur de types part des arbres produits par l analyse syntaxique d un ensemble de fichiers B pour effectuer un contr le du typage et produire un ensemble de fichiers XML dans lesquels on retrouve les l ments du source B mais aussi les types A ce format XML correspond une biblioth que de classes utilis e par les outils lors de la lecture d un fichier XML pour cr er une arborescence d objets repr sentant le contenu du fichier La plate forme jBTools poss de aussi un plug in pour l diteur jEdit de texte et de code fig 15 7 qui permet la coloration syntaxique 218 CHAPITRE 15 LA PLATE FORME JBTOOLS class Preconditionextends Substitution Predicate
4. le type de compilation application biblioth que le point d entr e du projet le type de base utiliser Le type de compilation permet de cr er des fichiers Java C avec ou sans point d entr e Le point d entr e du projet est la machine principale qui va instancier les autres composants du projet B Le lanceur de l application tentera de l ex cuter S il existe la traduction fera ap para tre une application et dans le cas contraire ce sera une biblioth que Suite aux probl mes de recouvrement de types cf 12 5 1 1 nous avons choisi de laisser le d veloppeur choisir le type de base de l application entre int et short pour optimiser l espace m moire occup sachant qu il faut absolument param trer ce type par les bornes MININT et MAXINT avant Vobtention de la preuve sans quoi elle n a aucune consistance 15 4 Conclusion Dans ce chapitre nous avons pr sent la plate forme jBTools Elle est compos e de fonction nalit s communes d analyse syntaxique s mantique et de v rification de typage Le r sultat est enregistr dans des fichiers XML un par composant B Il est ensuite exploitable par la BOL sur laquelle sont branch s les principaux outils de la plate forme qui sont 222 CHAPITRE 15 LA PLATE FORME JBTOOLS un traducteur vers les langage a objets un extracteur de diagrammes UML Actuellement nous disposons d un extracteur de diagrammes de classes et de contraintes O
5. 119 La substitution Pr condition 119 Extraction de la substitution Pr condition 120 La substitution Choix born 120 Extraction de la substitution Choix born 120 La substitution Condition 120 Extraction de la substitution Condition 121 La substitution Condition par cas 121 Extraction de la substitution Condition par cas o o o 122 La substitution Choix non born 122 Extraction de la substitution Choix non born 122 Extraction de la substitution S lection apr s interpr tation de P 123 Deux variables concurrentes 124 Traduction des variables concurrentes 124 Une op ration avec param tre 124 Traduction des param tres 124 16 8 28 8 29 8 30 8 31 8 32 8 33 8 34 8 35 8 36 8 37 8 38 8 39 8 40 8 41 8 42 8 43 8 44 8 45 8 46 8 47 8 48 8 49 8 50 8 51 8 52 9 1 9 2 9 3 9 4 9 5 9 6 9 7 9 8 9 9 9 10 9 11 9 12 9 13 9 14 9 15 9 16 9 17 9 18 9 19 9 20 9 21 TABLE DES FIGURES Imbrication de substitutions de composition 125 Exemple de maGhine 0000 ii oe od cg AO es Be Gee a cs 126 Automate des variables v1 et 2
6. Une autre simplification est la suppression des transitions r flexives autour des tats car elles ne modifient pas l tat du syst me Elle permet une meilleure lisibilit du diagramme N anmoins il ne faut en aucun cas supprimer les transitions r flexives extraites depuis les branches ELSE implicites des substitutions Condition et Condition par cas Nous allons appliquer un exemple d interpr tation avec la substitution S lection On consid rera le pr dicat P x vx Le diagramme de la figure 8 12 devient alors celui de la figure 8 28 F1G 8 23 Extraction de la substitution S lection apr s interpr tation de P 8 8 9 Variables concurrentes Les variables sont dites concurrentes quand elles appartiennent la m me machine et que l une fait partie de la condition de transition de l autre Dans la sp cification suivante fig 8 24 la valeur de la variable x est modifi e selon une substitution conditionnelle relative y Dans le diagramme d tats transitions de la variable x fig 8 25 correspondant la sp cification fig 8 24 y Y1 est une condition elle est donc entre crochets Le fait que la condition de transition est en fonction de y est symbolis e par IN entre crochet 8 8 10 Param tres En B les param tres d une op ration sont d finis entre parenth ses la suite du nom de l op ration fig 8 26 Les param tres sont concrets car ils sont conserv s lors des raffinements et de l critu
7. 147 Traduction des expressions conditionnelles complexes en UML 147 Expressions bool ennes 147 TABLE DES FIGURES 17 9 22 Une boucle en B0 148 9 23 Traduction d une boucle 148 9 24 Appel d op ration en B 149 9 25 Traduction de l appel d op ration 149 11 1 Exemple du BWallet Sp cification B fig 13 2 traduit l aide du traducteur Gide VAtelerB ata by Gien BR wile Rea ee UE 159 11 2 Objectifs du projet BOM 160 11 3 Traduction d une relation 162 11 4 Un invariant VDM 8 163 11 5 Traduction de l invariant VDM en une fonction C 163 12 1 Cycle de d veloppement d un projet B 165 12 2 Machine abstraite et impl mentation 166 12 3 Importation nominative ou non d une machine 168 12 4 Cr ation de deux instances de M1 l une n tant pas nomm e 169 12 5 Utilisation de machines import es une seule fois 170 12 6 Utilisation de deux machines M1 et M2 non instanci es dans M3 171 12 7 Exemple de machine avec des param tres ensemblistes 172 12 8 Exemple d importation de machines avec des param tres ensemblistes 172 12 9 Exemple de machine avec un ense
8. Les points de choix dans les diagrammes d activit Une classe er UMES 2 aaeanoa aes Mana ER Oe a ees itn D rivation de la classe en B Une classe template cs sat a Roe ee oboe ie Se a ee e D rivation d une classe template Un attri A A Ae a NE A ee D rivation d un attribut Wine methode az iena ieren a LOUE BOE OURS UNE A RUN la RAR D rivation d une m thode 53 54 54 54 55 55 56 56 57 57 57 58 58 59 59 59 60 60 61 66 66 66 66 67 67 68 68 14 5 9 5 10 5 11 5 12 5 13 5 14 5 15 5 16 5 17 5 18 5 19 5 20 5 21 5 22 5 23 5 24 5 25 5 26 5 27 5 28 5 29 5 30 5 31 5 32 5 33 5 34 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 6 11 6 12 6 13 6 14 6 15 6 16 6 17 6 18 6 19 6 20 Un constructeur D rivation du constructeur Une association D rivation d une association Une g n ralisation D rivation de la g n ralisation D s tats ist kde dem data ae D rivation des tats selon Sekerinski D rivation des tats selon Meyer Initialisation d terministe Initialisation non d terministe TABLE DES FIGURES D rivation de l initialisation selon Sekerinski D rivation de l initialisation selon
9. Tous les langages de programmation poss dent une structure de choix quivalente que l on peut voir sur les deux exemples suivants du tableau 12 6 IF a lt b THEN a b END IF a lt b THEN b 0 a 0 ELSE a b 2 END TAB 12 6 Substitution Condition en B gauche et en Java droite On peut remarquer que des accolades d limitent les blocs m me si ce n est pas n cessaire noter aussi les parenth ses obligatoires autour des pr dicats 12 8 LES SUBSTITUTIONS 195 12 8 9 Substitution Condition par cas Cette deuxi me substitution conditionnelle permet de choisir entre divers comportements en fonction de la valeur d une expression fig 12 43 Tout comme la substitution IF la struc ture de choix existe dans la plupart des langages de programmation en Java c est l instruction switch fig 12 44 lt InstructionConditionnelle gt CASE lt ExpressionScalaire gt OF EITHER lt ConstanteScalaire gt THEN lt Instruction gt OR lt ConstanteScalaire gt lt ConstanteScalaire gt THEN lt Instruction gt ELSE lt Instruction gt END END CASE x 5 3 OF EITHER 3 THEN y 0 OR 4 5 6 THEN y x OR 10 THEN y 10 ELSE y x END END FIG 12 43 La substitution Condition par cas en B 12 8 10 Substitution Boucle tant que Cette substitution r alise une it ration sur un bloc Les instructions contenues dans ce bloc sont effectu es tant qu une condition un
10. tat S4 et les valeurs respectives de Dt1 et Dal sont respectivement vid et occ Le syst me respecte cette propri t On pourrait aussi le v rifier pour les autres propri t s 134 CHAPITRE 8 EXTRACTION DE DIAGRAMMES D ETATS TRANSITIONS Robot1 Dt1 Type Da1 De1 De2 Dt1 Type Dal Del De2 si vid S2 vid vid vid T vid vid vid vid S3 vid id vid EZE EZE S4 vid AUCUN occ vid vid 557 000 77 foe uit vi So oee f D o uit vi 57 0d AUCUN oec occ oia Se vid AUCUN vid occ vid oce vid occ oi Co via TT S10 vid 12 _ occ TAB 8 4 Valeurs des variables pour les tats de D pt1 Type Da Del De2 8 12 Comparaison avec d autres m thodes Notre m thode permet de documenter et mieux comprendre les sp cifications B en ex trayant des vues UML En effet l utilisation de m thodes formelles telles que la m thode 8 12 COMPARAISON AVEC D AUTRES METHODES 135 B permet d obtenir un tr s bon niveau de confiance dans le d veloppement mais ne donne aucune garantie de validation de la sp cification par rapport au probl me pos dans le ca hier des charges La m thode utilis e par Bert Potet et Stouls dans 33 16 34 est une d marche diff rente En effet elle permet d extraire un syst me de transitions tiquet es com plet repr sentant la totalit des comportements du syst me quelle que soit la sp cification B v nementielle
11. 11 1 Introduction Plusieurs travaux ont d j abord la traduction de sp cifications formelles vers les langages imp ratifs traditionnels On peut regrouper les traductions en deux groupes par rapport aux aspects de modularit Le premier groupe ne conserve pas les aspects de modularit comme les traductions De B vers C 8 De B vers OCaml 79 L autre groupe maintient la notion de modularit ou la substitue par la notion objet de classes comme les travaux suivants De ObjectZ vers Java 57 C 41 De VDM vers Java C 52 53 54 55 Nous allons commencer par exposer les objectifs et par donner un apercu des travaux du projet RNTL BOM Ensuite nous pr senterons un tat de l art g n ral propos des diff rentes traductions depuis une sp cification formelle vers un langage imp ratif avant que les outils de traduction du projet BOM soient r alis s 11 2 Projet BOM Cette partie de notre travail la g n ration de code a t r alis e dans le cadre du pro jet BOM B Optimis M moire Ce projet vise traduire des sp cifications B en langage compilable et ex cutable de mani re optimis notamment en terme d occupation m moire L objectif final est de produire partir de sp cifications B des programmes pour des plate formes embarqu es par exemple des cartes amp puce En 2000 date du d but du projet BOM la soci t Gemplus initiateur du projet BOM utilisait 1 Atelier
12. 152 10 2 2 Extraction des diagrammes de s quence et d activit s 152 10 2 3 Synth se de l extraction des informations dynamiques 153 TABLE DES MATIERES III G n ration de code source pour des langages objets 11 G n ration de code partir de sp cifications formelles 11 1 11 2 11 3 11 4 11 5 11 6 itroduction 3 e versa a en ne de Re de EU RE Projet BOM est a tea de BON ae ras ORR on cee Oe La ee a o x Objectifs du projet BOM Objectif et contribution de mes travaux de th se Etat de l art 44 ia a Gb de Rb ae RA A OR Ra ee 11 5 1 Projet BOM deB vers C 11 5 2 De B vers OCaml 11 5 3 De ObjectZ vers C Java 11 5 4 De VDM vers C et Java Conclusion lt td E a 12 G n ration de code Java partir de B 12 1 12 2 12 3 12 4 12 7 Introduction ke pie de 4h dar da eae ee m4 Principes g n raux adopt s 12 2 1 Le point de d part de la traduction le BO 12 2 2 Exemple l mentaire de machine abstraite et d impl mentation 12 2 3 Sch ma de conversion des machines La repr sentation d un projet B La repr sentation des machines en Java 12 4 1 Machines B et sch mas de traduction Java
13. 2 Une deuxi me cat gorie est compos e des substitutions non d terministes telles que devient tel que et devient l ment de Le nombre d tats cibles est sup rieur un car elles sont non d terministes Ces substitutions utilisent des expressions x Expression x Expression 8 7 INITIALISATION OPERATIONS ET EVENEMENTS 117 Etat courant FiG 8 5 Extraction de la substitution Identit L interpr tation de ces expressions peut donner plusieurs valeurs On consid rera l en semble des tats Eine VX1 VXN traduits des valeurs r sultantes de Pin terpr tation Ces substitutions sont traduites fig 8 6 par autant de transitions que d tats de Ecible prenant pour origine l tat courant Etat courant Fic 8 6 Extraction des substitutions simples non d terministes 3 Enfin la derni re cat gorie qui correspond aux substitutions simples d terministes est compos e des substitutions Devient gal simple et Devient gal multiple La diff rence entre ces deux substitutions est le nombre de variables modifi es En effet la substitution Devient gal multiple effectue plusieurs substitutions Devient gal simple simultan ment Dans cette cat gorie l tat cible de la transition est clairement d fini car l interpr tation des expressions donne un r sultat ne comprenant qu une seule valeur x Expression x y Expression Expression L extraction de ces s
14. ELSIF Predicat A Predicat THEN Affectations ELSE Affectations END CASE Ident OF EITHER Expression Expression THEN Affectations OR Expression Expression THEN Affectations ELSE Affectations END END Affectation Separateur Affectation Expression et Pr dicat ne sont pas d finis dans cette grammaire mais le sont dans les annexes du manuel de r f rence du langage B 93 section B 1 6 et B 1 7 Separateur est l op rateur dans les machines et un des op rateurs ou dans les raffinements 8 4 PRINCIPES GENERAUX DE TRADUCTION 115 8 4 Principes g n raux de traduction Dans cette section nous explicitons les principes g n raux utilis s pour l extraction de sp cifications B en diagrammes d tats transitions notamment leur structure Ensuite nous d finissons les principes d extraction des substitutions Les substitutions du langage B para graphe 2 3 5 sont partag es en deux groupes distincts les substitutions simples les substitutions de composition En r gle g n rale les substitutions simples d finissent l tat cible de la ou des transition s tandis que les substitutions de composition fixent l tat source de la ou des transition s par les gardes ou conditions selon le type de transition Dans ce chapitre on utilisera les variables x et y et les valeurs qu elles pourront prendre respectivement vz VEn et UY UYn 8 5 La struc
15. tre relue plus sp cifiquement par l outil de mod lisation ArgoUML mais priori les fichiers XMI qui contiennent le mod le UML devraient pouvoir tre utilis s partir d autres outils Actuellement B2UML travaille sur une machine abstraite B et permet d obtenir un diagramme de classes comme celui de la figure 15 9 Sur ce diagramme une partie des r gles adopt es appara t la machine est une classe un ensemble abstrait comme ETUDIANT est repr sent par une classe Elt_E TUDIANTS correspondant au type d l ments de l ensemble et par une association entre cette classe et la classe repr sentant la machine L extr mit de l association du c t de la classe correspondant au type d l ments poss de un nom r le qui est celui de l ensemble ici ETUDIANTS Les variables de type ensemble deviennent des associations avec leur nom comme nom de r le du c t correspondant au type d l ments la fonction partielle Inscrits est traduite par une classe Elt_ Inscrits reli e par une asso ciation dont le r le est Inscrits la classe repr sentant la machine La classe Elt_Inscrits est galement reli e par une agr gation la classe Elt_ ETUDIANTS et par une autre la classe E t_DIPLOMES le processus est le m me pour la fonction partielle Inscrits AuxExamens Pour indiquer que Inscrits AuxExamens est un sous ensemble de Inscrits on utilise soit une d pendance pr d finie comme subset entre les
16. 1 3 Contributions et objectifs de recherche La contribution de nos travaux se situe deux instants clefs du cycle de d veloppement d un logiciel fig 1 1 1 Le premier est la validation du cahier des charges la fin de l tape de sp cification con ception En effet avant de passer l tape suivante l implantation il est n cessaire de v rifier la concordance entre les sp cifications des concepteurs et le cahier des charges http www lsr imag fr B 28 CHAPITRE 1 INTRODUCTION d finis par les utilisateurs du logiciel La d marche consiste extraire des vues semi formelles depuis la sp cification B De cette mani re on obtient une vue d ensemble du projet bien plus synth tique que les sp cifications brutes crites en B Il est ensuite relativement simple pour un sp cialiste d UML de valider les vues UML par rapport au cahier des charges Il faut noter que lors de cette tape le sp cialiste ne cr era pas un mod le directement en UML pour comparer avec le mod le extrait En effet il n existe pas une unique mani re d crire un mod le UML et par cons quent le mod le extrait pourrait tre diff rent de celui r alis par l expert Le sp cialiste v rifiera la conformit entre le mod le et les r gles de gestion du cahier des charges Les gains de productivit demand s dans l industrie nous ont pouss penser cette tude dans l optique d une automatisation 2 Le deuxi me est l
17. 157 157 157 158 158 160 160 160 162 163 163 10 TABLE DES MATIERES 12 8 7 Substitution Variable locale o oo o 192 12 8 8 Substitution Condition 192 12 8 9 Substitution Condition par cas 195 12 8 10 Substitution Boucle tant que 195 12 8 11 Substitution Assertion 196 13 Vers une traduction pour JavaCard 199 1315 A LOL LT D LE Fe ri we ee ae ae We a a el a RS oe RR ee ae Sa 199 13 2 La plate forme JavaCard 199 13 2 1 Les sp cificit s de la plate forme JavaCard 199 13 2 2 Structure d une applet pour JavaCard 201 13 3 L exemple du porte monnaie lectronique 203 133 1 Pr sentationt A or een oe ee a d os HE a 203 13 3 2 Les machines B u a ie does macho DR Pos de A ee dd 203 13 3 3 La traduction en Java 204 13 4 G n ration de code JavaCard 205 13 4 1 L applet JavaCard du porte monnaie lectronique 205 13 4 2 Le processus de d veloppement JavaCard semi automatique 205 14 Conclusion sur la g n ration de code objet partir de sp cifications B 209 14 1 Traduction de sp cifications B en langage objets 209 14 2 Bvaluations hs 168 iia a eek od Land RER PA od Beat ack pete ah es 210 IV Outils et applications 211 15 La plat
18. B Elle traite un cas particulier des sp cifications B r alis es autour de sp cifications nombre d tats fini Son utilisation n cessite une m thode d criture particuli re des sp cifications Elle permet l utilisation du langage B restreint un de ses sous ensembles autour de donn es scalaires typ es l aide des ensembles num r s N anmoins cette m thode permet de v rifier les r gles de gestion du cahier des charges En effet elle d crit la g n ration de diagrammes d tats transitions Ces diagrammes sont extraits respectivement pour une seule variable mais ils peuvent tre fusionn s afin d obtenir un seul diagramme pour la totalit de la sp cification On peut alors plus facilement v rifier des propri t s invariantes r gle de gestion du cahier des charges 10 2 2 Extraction des diagrammes de s quence et d activit s Nous avons pr sent une extraction des diagrammes de s quence et d activit s depuis une sp cification B Les diagrammes de s quence montrent les interactions entre les diff rents ob jets du diagramme de classes Ceci en termes de temps d ex cution de datation et d ordre de lancement des messages de communication N anmoins il existe une restriction tous ces apports qui r side dans le fait que le temps n est pas formalisable int gralement en B ce qui 10 2 EXTRACTION DES INFORMATIONS DYNAMIQUES 153 limite les apports temporels de l extraction des diagrammes d
19. Le retour de l ex cution sur l op ration main est implicite D autre part l appel de l op ration M2 op2 s effectue une fois que le temps d ex cution de l appel de M1 op1 est coul car on ne peut pas ex cuter deux op rations simultan ment en BO 9 2 DIAGRAMME DE SEQUENCE 141 E FIG 9 4 La traduction de l appel d une op ration 9 2 3 Les param tres et valeurs de retour des op rations Dans le langage B les op rations peuvent retourner une ou plusieurs valeurs C est le cas de l exemple suivant o l op ration M1 op1 retourne deux valeurs fig 9 5 IMPLEMENTATION MAIN imp IMPORTS M1 M OPERATIONS main VAR aa bb IN aa bb M1 0p1 END END FIG 9 5 Une op ration qui retourne des valeurs Dans le diagramme de s quence correspondant fig 9 6 on affiche explicitement le retour l ex cution de l op ration principale Ce message est libell par le nom de la variable qui va tre affect e par la valeur retourn e par l op ration Fic 9 6 Traduction d une op ration qui retourne des valeurs 142 CHAPITRE 9 DIAGRAMMES DE SEQUENCE ET D ACTIVITES Instruction IF Instruction CASE IMPLEMENTATION MAIN_IMP IMPLEMENTATION MAIN_IMP IMPORTS M1 Mx IMPORTS M1 Mx OPERATIONS OPERATIONS main BEGIN main BEGIN IF v Valuel THEN M1 op1 CASE v OF ELSIF v Value2 THEN M1 op2 EITHER Valuel THEN M1 op1 ELSE MT op3 OR Value2 THEN M1 0p2 END ELSE M1 op3 END END END FI
20. d fini dans le paragraphe pr c dent 5 6 1 depuis une sp cification d un syst me d v nements B 5 6 3 Enum ration des tats La mani re la plus simple de d finir un syst me de transitions tiquet es depuis une ma chine abstraite B est d num rer les tats et les transitions On utilise un syst me abstrait S avec une liste de variables X z1 Zn un invariant J une initialisation U une liste d v nement e E pour i 1 m o les tats initiaux sont les affectations ao oo tr vj lt U gt 2 Vjel n o lt U gt 2 vj est le conjugu U P de UJP qui d note la plus faible pr condition cf 2 3 5 pour que la substitution d initialisation U se termine et tablisse P P x v Pour chaque tat op qui satisfait invariant J et chaque v nement e tel que cet v nement est activ l tat o les successeurs de o par la transition labellis e sont des tats et les valeurs obtenues apr s la substitution g n ralis e E 5 7 CONCLUSION 85 Op 1 Tj gt vj op lt E gt 3 ui Vj lin Dans le B book 3 page 296 ceci signifie si aj v op alors v 0 rely Ei Dans cette notation rel est une relation binaire qui donne la valeur de x avant et apr s la substitution E A cause de nos suppositions propos de la terminaison tant donn e Vhypoth se sur les v nements qui est que la partie action A de l v nement
21. durant les op rations de recouvrement de type cf 12 5 1 1 Durant la v rification de types le reste des entit s est typ comme les variables locales d finies par la substitution VAR IN END Le contexte B permet dans un premier temps v rifier la coh rence du typage entre les diff rents composants de la cha ne de raffinement puisqu il enregistre les types des entit s des composants abstraits Par exemple on effectue un test sur la coh rence du typage des op rations entre les machines abstraites et les autres composants B de la cha ne de raffinement Ensuite le contexte B aura pour fonction durant la traduction en XML d exprimer le typage des entit s 15 2 4 Le format XML Chaque fichier au format XML repr sente un composant B et comporte bien entendu le code de l ex cution des op rations mais aussi le contexte B n cessaire au typage des entit s locales externes machine vues import es par les clauses SEES IMPORTS et abstraites composant raffin par le composant consid r de la machines fig 15 2 Le d but de la grammaire des fichiers XML g n r s par le TypeChecker est d crite dans la figure 15 2 15 2 5 La traduction du typage en XML Le traitement du typage est une fonctionnalit importante de l outil pour la traduction en langages objets du fait de la correspondance indirecte entre les types B et Objets Java et C Les informations conserv es pour le typage durant la traduction
22. orange A feu2 rouge THEN feul feu2 rouge vert END prd feul vert A feu2 rouge gt feul orange feul rouge A feu2 vert gt feu2 orange feul rouge A feu2 orange gt feul feu2 vert rouge feul orange A feu2 rouge gt feul feu2 rouge vert prd feul vert A feu2 rouge gt feul orange V prd feul rouge A feu2 vert feu2 orange V prd feul rouge A feu2 orange gt feul feu2 vert rouge V prd feul orange A feu2 rouge gt feul feu2 rouge vert feul vert A feu2 rouge A prd feul orange V feul rouge A feu2 vert A prd feu2 orange V feul rouge A feu2 orange A prd feul feu2 vert rouge V feul orange A feu2 rouge A prd feul feu2 rouge vert feul vert A feu2 rouge A prd feul orange V feul rouge A feu2 vert A prd feu2 orange V feul rouge A feu2 orange A prd feul vert feu2 rouge V feul orange A feu2 rouge A prd feul rouge feu2 vert vert A feu2 rouge A feul orange V feul rouge A feu2 vert A feu2 orange V T a E I feul rouge A feu2 orange A feul vert A feu2 rouge V feul orange A feu2 rouge A feul rouge A feu2 vert La contrainte OCL se d duit de cette post condition Context CARREFOUR ChangerFeux post feu1 pre COUL_ Value vert and
23. tats sources et cibles des transitions pour concat ner les sous diagrammes Lorsque plusieurs variables sont mises en relation dans l invariant il est int ressant partir des diagrammes de ces variables d tablir un seul et unique diagramme Ceci aura pour but de valider le cahier des charges en v rifiant la propri t consid r e sur le diagramme r sultat On obtient le diagramme r sultat en effectuant un produit synchronis entre les diagrammes d tats transitions des variables concern es On consid re les automates suivants A lt S so Ej Ri L gt o S est l ensemble des tats so est l ensemble des tats initiaux so S E est l ensemble des tiquettes de transition R est la relation de transition d finie par R C S x E x C x S o C ap C V C C avec ap une proposition atomique relative une valeur de variable de l automate Aj L est le d cor des tats d fini par L S gt 24P avec AP un ensemble de propositions atomiques D finition de la relation de satisfaction d une proposition d tat p par un tat s est s FE p si et seulement si p L s s E p V pa si et seulement si L s F p ou s F pa s E p si et seulement si L s p On utilise produit synchronis pour obtenir l automate r sultat not A A2 Sync Soit Sync un ensemble de synchronisation qui est un sous ensemble de Ey U Ez U Ex x Eg Le produit synchron
24. In 16th International Conference on Software and Systems Engineering and their applications ICSSEA 2003 volume 1 December 2003 J C Voisinet Traducteur B vers Java Les grandes lignes de l impl mentation en vue d une extension d autres langages Rapport Technique LIFC Besan on ao t 2002 J C Voisinet Traducteur B vers Java Manuel utilisateur Rapport Technique LIFC Besan on ao t 2002 J C Voisinet B Tatibouet and A Hammad jBTools An Experimental Platform for the Formal B Method In Principles and Practice of Programming in Java PPPJ 02 pages 137 140 Trinity College Dublin Ireland June 2002 J Warmer and A Kleppe The Object Constraint Language Precise Modeling with UML Addison Wesley 1999 ISBN 0 201 37940 6 R sum Les travaux de recherche dans le domaine du g nie logiciel ont permis de concevoir deux types d approche les m thodes formelles qui permettent d crire et de v rifier une sp cification d un syst me l aide d une notation issue des math matiques et les m thodes semi formelles orient es objet qui permettent de mod liser un syst me en utilisant des vues graphiques Le point de d part de nos travaux repose sur une m thode formelle la m thode B Nous appor tons une contribution dans deux tapes du d veloppement logiciel Le premier est l int gration des deux types de m thode par extraction de vues graphiques UML depuis une sp cification formelle
25. LARCH 46 OBJ 44 CASL 9 2 Les langages de sp cification ensembliste orient s mod les Ils sont bas s sur la th orie des ensembles et des pr dicats du premier ordre Ils utilisent des types de donn es pr d finis pour mod liser l tat du syst me construire Chaque op ration est sp cifi e ind pendamment en d crivant son effet sur l tat du syst me Voici quelques exemples de ce type de langage 31 32 CHAPITRE 2 LA METHODE B Z 90 et ObjectZ 20 BB VDM 58 et VDM 24 Le point fort des m thodes formelles est la cr ation de logiciels siirs et fiables par v rification formelle Elle intervient apr s la cr ation du mod le math matique d un syst me et l utili sation d un langage pour sp cifier les propri t s du syst me Elle est bas e sur une preuve math matique utilisant axiomes et r gles d inf rence Elle consiste d crire le syst me et les propri t s auxquelles il doit ob ir Ensuite on d montre que les propri t s peuvent tre obtenues partir du syst me l aide d un prouveur comme PVS 78 HOL Coq 14 Les prouveurs peuvent tre inclus dans un outil comme l AtelierB 91 ou le B ToolKit 15 pour la m thode B 2 3 La m thode B Nous nous int ressons la m thode B Ses fondements th oriques ont t d finis dans le B Book 3 Pour r sumer elle utilise les pr dicats du premier ordre avec la th orie des ense
26. Robot1 FIG 8 40 Diagramme d tats transitions de la variable Type pour Chet 132 CHAPITRE 8 EXTRACTION DE DIAGRAMMES D ETATS TRANSITIONS Type Chgt IN Da1 occ et Dt1 vid Re AUCUN Chgl IN Dat occ et Dit via Fic 8 41 Diagramme d tats transitions de la variable Type pour Chgt apr s simplification De la m me mani re on d duit les diagrammes d tats transitions pour les autres op rations et l initialisation On concat ne ces diagrammes pour obtenir le diagramme complet de la va riable Type fig 8 42 Robot Type Dchgt IN Del vid et Dt1 occ Chgt IN Da1 occ et Dt1 vid ma Chgt IN Dat occ et Dt1 vid AUCUN C _ _ _ Dehgt IN De2 vid et Dt1 occ FIG 8 42 Diagramme d tats transitions complet de la variable Type Sur le m me principe de d duction on d finit les diagrammes d tats transitions des autres variables de la sp cification fig 8 43 Dt1 Del De2 Dal DchgifiN DeZT vid arr p Chat Dtt vid Dchgt IN Detl vid et Type f2 et Typel AUCUN Dei DA oce Dchgt IN Dt1 occ T1 et Type et Type T2 FIG 8 43 Diagramme d tats transitions des variables Dt1 Del De2 et Dal 8 11 L EXEMPLE DU ROBOT 133 Pour obtenir le diagramme complet de la sp cification Robot1 du robot il suffit de calculer le produit synchronis des sous diagrammes de chaque variable On commence par le produit syn
27. aide de diagrammes Les diagrammes permettent une visualisation graphique du systeme UML dispose de neuf diagrammes sachant que chacun d entre eux poss de un r le pr cis dans la mod lisation du syst me Diagramme de classes Il repr sente les donn es du mod le partie statique 11 fait abstraction des parties dynamiques et temporelles Il peut tre instanci travers un diagramme d objets Il est compos de classes et associations Diagramme d objets Il repr sente un diagramme de classes instanci es Dans ce diagramme les classes deviennent plusieurs objets et les associations plusieurs liens entre objets Il correspond un diagramme de collaboration sans les interactions mat rialis es par des messages Diagramme de cas d utilisation Il permet de mat rialiser et structurer les besoins des utilisateurs du syst me Il identifie les acteurs utilisateurs du syst me et leurs http www omg com 51 52 CHAPITRE 4 LA NOTATION UML interactions avec le syst me L acteur consulte ou modifie l tat du syst me Le syst me r agit aux demandes de l acteur par les diff rents cas d utilisation pour lesquels il est pr vu Diagramme de composants I permet de d crire les composants et leurs d pendances dans l environnement de r alisation Les diagrammes de composants sont des vues sta tiques de l impl mentation des syst mes qui montrent le choix de r alisation Diagra
28. bb devientOrange OPERATIONS MiseEnService VAR aaOrange bbRouge IN aaOrange aa estllOrange bbOrange bb estIlOrange IF aaOrange TRUE A bbOrange TRUE THEN aa devientRouge bb devient Vert END END ChangerFeux VAR aaRouge aaVert aaOrange bbRouge bbVert bbOrange IN aaRouge aa estIlRouge aaVert aa estIlVert aaOrange aa estllOrange bbRouge bb estIlRouge bbVert bb estIlVert bbOrange bb estllOrange IF aaVert TRUE A bbRouge TRUE THEN aa devientOrange ELSIF aaRouge TRUE A bbVert TRUE THEN bb devientOrange ELSIF aaRouge TRUE A bbOrange TRUE THEN aa devientVert bb devient Rouge ELSIF aaOrange TRUE A bbRouge TRUE THEN aa devientRouge bb devient Vert END aaRouge aa estIlRouge IF aaRouge TRUE THEN STRING_WRITE feu 1 Rouge END aaVert aa estIlVert IF aaVert TRUE THEN STRING_WRITE feu 1 Vert END aaOrange aa estllOrange IF aaOrange TRUE THEN STRING_WRITE feu 1 Orange END bbRouge bb estIlRouge IF bbRouge TRUE THEN STRING_WRITE feu 2 Rouge n END bbVert bb estIlVert IF bbVert TRUE THEN STRING_WRITE feu 2 Vert n END bbOrange bb estIlOrange IF bbOrange TRUE THEN STRING_WRITE feu 2 Orange n END END END FIG 16 5 Impl mentation du composant CARREFOUR 16 3 3 Composant principal Le composant principal fig 16 6 g re la boucle qui fait appel au changement de couleurs du composant C
29. c dente notre connaissance peu de travaux concernent cette d marche Deux travaux 18 et 70 traitent ce type de d marche Le premier pr sente un outil de traduction sous forme de graphes d une sp cification crite en VDM 58 Le second d finit une m thode de repr sentation d ex pressions relationnelles par des graphes et propose un algorithme qui calcule la formule relationnelle sans quantificateur interpr tant le graphe Ces travaux sont sp cifiques aux mod les relationnels pour les bases de donn s Plus r cemment une approche a g n ralis ces travaux au g nie logiciel comme 32 Remarque il existe d autres travaux autour de la construction simultan e de vues UML et de mod les B dans l approche propos e par Okalas Ossami Jacquot et Souqui res 30 3 2 Motivations L ajout de fondements formels aux m thodes semi formelles ou de notations graphiques aux m thodes formelles est tr s complexe obtenir En effet les philosophies employ es dans ces deux m thodes sont tr s diff rentes De plus le travail mettre en uvre dans ce genre de d marche est tr s important sans tre s r d un r sultat probant En outre proposer une nouvelle m thode pose des probl mes financiers et humains elle n cessite une reconstruction des applications existantes et implique une formation sp cifique des utilisateurs dont les ha bitudes de travail peuvent radicalement changer sans oublier le co t de fabricatio
30. d veloppement semi automatique car il faudra v rifier manuellement que les fonctions sp cifi es en B seront bien appel es apr s le test de leur pr condition fig 13 9 Il faut noter ici que la personne qui g n re le code Java doit d terminer si le porte monnaie lectronique devra tre instanci plusieurs fois avant de souhaiter une quelconque optimi sation Par d faut et pour plus de s curit le g n rateur de code engendre du code Java permettant l instanciation multiple http java sun com products javacard 206 CHAPITRE 13 VERS UNE TRADUCTION POUR JAVACARD class UsingBWallet java generated on 20 f vr 2003 19 06 28 package wallet class UsingBWallet static void INITIALISATION BWallet INITIALISATION BT_I0 INITIALISATION public static void main String Args INITIALISATION int balanceAmount int creditAmount int balanceFuture balanceAmount BWallet getBalance BT_IO writelnteger balanceAmount creditAmount 100 balanceFuture balanceAmount creditAmount if creditAmount gt 0 amp amp creditAmount lt BWallet MAX_TRANSACTION_AMOUNT amp amp balanceFuture lt BWallet MAX_BALANCE BWallet credit creditAmount balanceAmount BWallet getBalance BT_IO writelnteger balanceAmount Fic 13 7 Code Java g n r pour l exemple du porte monnaie point d entr e du code Java 13 4 GENERATION DE CODE
31. document sur l int gration des m thodes formelles et semi formelles par extraction 50 CHAPITRE 3 CONTEXTE ET MOTIVATIONS Chapitre 4 La notation UML 4 1 Introduction Les m thodes semi formelles ont t con ues pour mod liser les syst mes d information dans le but d en obtenir une description moins ambigue et plus synth tique qu en langage naturel Nous pouvons citer quelques m thodes comme E R 11 NIAM 47 OMT 82 et UML 35 Deux mod les au minimum sont toujours propos s par ces m thodes L un d crit l aspect statique c est dire la structure des donn es et leurs relations L autre d crit les traitements qui ont lieu sur les donn es il s agit de l aspect dyna mique Certaines m thodes comportent d autres mod les comme dans la m thode OMT o le mod le fonctionnel permet de d crire la transformation des valeurs des donn es dans le syst me Dans ce chapitre le langage UML est pr sent Cette notation est n e de la fusion de plusieurs m thodes objets telles que entre autres OMT 82 Booch 10 et OOSE 56 Il a t normalis pour la premi re fois en 1997 88 par POMG Object Management Group Le chapitre commence par une pr sentation g n rale du langage puis continue par la pr sentation des diff rents diagrammes et se termine par le langage OCL 4 2 G n ralit s La notation UML permet la construction de mod les La mod lisation est r alis e l
32. e de deux parties l en t te d finit le nom de la fonction ainsi que les param tres formels d entr e et ou de sortie ventuels le corps de l op ration est une substitution Section 3 6 qui correspond Vimplantation de cette op ration Nous nous int ressons ici uniquement la traduction de l en t te de l op ration Une op ration B se traduit naturellement par une fonction Java Pour les param tres d entr e les diff rents cas sont les suivants le type du param tre est un type de base B alors celui ci est traduit en une variable Java poss dant le m me nom et dont le type est la traduction du type de base B Si le type d un param tre B est un intervalle le type choisi en Java est le type de base englobant Si le param tre est une valeur d un ensemble num r le type choisi en Java est int ou short selon le type de base choisi par l utilisateur 12 7 2 Le probl me des r sultats multiples La traduction d une op ration en Java pose une difficult majeure dans le cas o les r sultats sont au nombre de deux ou plus La difficult r side dans le fait que le langage Java ne g re pas les retours multiples Une fonction Java peut soit retourner void pas de retour soit un type de base ou un objet Encore une fois nous avons le choix entre plusieurs solutions Mettre les param tres de sortie dans les param tres d entr e Pour que cette solution marche il faut
33. les injections les surjections et les bijections totales et partielles par les cardinalit s d une association directement sur le diagramme sans faire intervenir de contraintes OCL Chapitre 7 G n ration de contraintes OCL 7 1 Introduction Un des objectifs de nos travaux est d tudier la mise en oeuvre des techniques qui per mettent d assister le non sp cialiste de la m thode formelle B dans la compr hension de celle ci et de favoriser la communication entre les diff rents acteurs du d veloppement en permettant de visualiser les sp cifications B l aide de diagrammes UML Dans ce chapitre nous allons au del de cet objectif en explorant comment transformer les invariants et les op rations B en contraintes OCL en se basant sur la traduction que nous avons propos e en diagrammes de classes pour les machines abstraites B Cet aspect peut tre int ressant dans les cas suivants Permettre depuis une sp cification B de g n rer une mod lisation UML Il pourrait s agir d une partie critique d un syst me sp cifi en B 1 sur laquelle sont effectu es des preuves La mod lisation UML obtenue partir de B compl te la mod lisation UML des parties non critiques du syst me Permettre une comparaison entre l expressivit et la lisibilit d une sp cification B et celle d une mod lisation UML OCL La question autour d OCL tant de savoir si cette notation formelle bien adapt e une notation de
34. op rateur mais les valeurs des variables la fin de l initialisation seront toujours les m mes car l affectation sera r alis e en fonction de la valeur d une variable qui sera toujours la m me On peut mettre tout type de substitution dans les op rations si l utilisation est autoris e par rapport aux restrictions dues au type de composant B MACHINE ou REFINEMENT Nom de l op ration tat tat ou de l v nement tat cible source cible Ev nement et Initialisation poate Op ration FIG 8 8 Principe g n ral de l extraction Une transition part d un tat source vers un tat cible L tat source est d fini par la valeur de la variable avant l ex cution de l op ration ou de l v nement Avant l initialisation aucune valeur de variable n est d finie L initialisation est repr sent e par un disque noir plein qui repr sente l tat courant suivi d une fl che fig 8 8 qui se dirige vers un tat cible Le ou les tats qui sont concern s par Vissue de l initialisation sont d finis par la ou les valeurs que prend la variable du diagramme d tats transitions selon que la substitution est d terministe ou non Les v nements et les op rations sont repr sent s par une fl che transition fig 8 8 qui part de l tat source valeur de la variable avant son ex cution et qui se dirige vers l tat cible valeur de la variable apr s son ex cution Cette fl ch
35. rations est plus complexe on dira qu une variable est visible et non modifiable ce qui est annot N Elles peuvent tre visibles et modifiables ce qui est annot M Les op rations peuvent tre appel es lorsqu elles sont visibles et non modifiables dans le cas o elles ne modifient pas la valeur des variables de la machine ou lorsqu elles sont visibles et modifiables 2 3 8 1 SEES La clause SEES permet un composant de voir une instance de machine Elle permet d acc der aux constituants de la machine vue sans possibilit de les modifier La clause SEES permet de voir l instance la plus proche dans le graphe de d pendance du projet B Dans 2 3 LA METHODE B 41 Mode de visite constituant non visible V constituant visible constituant visible si le constituant est une variable utilis e dans une substitution la variable est modifiable si le constituant est une op ration appel e dans une substitution l op ration peut modifier les variables de sa machine abstraite constituant visible si le constituant est une variable utilis e dans une substitution la variable n est pas modifiable si le constituant est une op ration appel e dans une substitution c est une op ration qui ne modifie pas les variables de sa machine abstraite TAB 2 7 Type de visibilit exemple suivant fig 2 6 la machine vue par MA sera celle import e par MD et non pas toutes ou celles import es par ME La r gle consiste
36. tat Dans ce cas l tat englobant le sous diagramme est appel super tat La notion de super tat peut aussi tre utilis e lorsqu il contient le diagramme complet d une variable ou d un syst me 4 4 2 Transitions Une transition est repr sent e par une fl che dont l origine est reli e l tat source et dont la destination est connect e l tat cible Elle est d cor e par le nom de l v nement d clencheur suivi ventuellement de param tres de conditions de d clenchement garde et d une liste d actions effectuer Les param tres sont d crits entre parenth ses La condition de d clenchement est exprim e entre crochets apr s le nom de l v nement et la liste d actions est s par e des trois pr c dents l ments par le caract re 4 4 3 Concurrence La concurrence peut tre exprim e sous deux formes dans les diagrammes d tats transitions 1 Des variables du syst me peuvent tre en concurrence dans ce cas une condition de transition d une des deux variables est exprim e en fonction de l tat du diagramme de l autre comme pour les variables X et Y de la figure 4 9 En effet dans le diagramme d tats transitions de Y le passage de l tat y7 l tat y2 est conditionn par IN X x1 en r f rence l tat du diagramme d tats transitions de X Pour que la transition de y1 y2 puisse s ex cuter il faut que l tat courant du diagramme de X soit
37. terministe entre plusieurs valeurs possibles selon le pr dicat P Dans l extraction fig 8 22 tant que l on ne conna t pas la nature du pr dicat P les transitions sont issues de tous les tats et divergent vers tous les tats N anmoins le pr dicat 122 CHAPITRE 8 EXTRACTION DE DIAGRAMMES D ETATS TRANSITIONS OPP 2 OP P2 OP P OP P OP P OP P OP P2 VX1 ind VXI VXI A VXN OP P2 OP P1 P P1 OP P1 Fic 8 20 Extraction de la substitution Condition par cas OP ANY Ident WHERE P THEN x Ident END Fig 8 21 La substitution Choix non born P est une condition pour que la transition soit possible d un tat 4 un autre Par cons quent les transitions sont tiquet es par OP P VXN tee VXI ee VXN OP P FIG 8 22 Extraction de la substitution Choix non born 8 8 8 Simplifications par valuation des expressions Les diagrammes que l on peut g n rer partir de l extraction pr c dente sont complexes Il est possible de les simplifier pour obtenir une meilleure lisibilit de ceux ci Les pr dicats maintenus tels quels dans les tiquettes de transitions peuvent tre interpr t s dans certains cas lorsqu ils sont exprim s en fonction de la valeur initiale de la variable avant transition relative au diagramme d tats transitions consid r pour les substitutions suivantes S lection Pr condition Condition Condition par cas Choix
38. 16 3 Impl mentation du composant Feu 225 16 4 Sp cification abstraite du composant CARREFOUR 225 16 5 Impl mentation du composant CARREFOUR 226 16 6 Le composant principal 227 16 7 Diagramme de classes extrait de la sp cification CARREFOUR 228 16 8 Contrainte relative la bijection totale suiv 228 16 9 Diagramme de classes extrait de la sp cification Feu 228 16 10Contrainte relative aux propri t s complexes de l invariant de la sp cification CARREFOUR 8 aiid ai ons ge pe mer s roue hi 229 16 11Contrainte relative aux propri t s complexes de l invariant de la sp cification CHECS EAU A US DER Te en ne At OR ME Re At EE ni 229 TABLE DES FIGURES 16 12Extraction de la post condition de l op ration MiseEnService 16 13Extraction de la post condition de l op ration ChangerFeux 16 14Diagramme d tats transitions extrait de la sp cification Feu 16 15Diagramme d tats transitions extrait de la sp cification CARREFOUR 16 16Diagramme de s quence extrait de la sp cification CARREFOUR imp 16 17Diagramme d activit s extrait de la sp cification MAIN imp 16 18 Traduction du composant principal en Java 16 19 Traduction du composant CARREFOUR en Java 16 20 Traduction du composant Feu
39. 2 1 Introduction Les m thodes formelles permettent d crire des sp cifications rigoureuses pr cises et com pl tes et de d velopper du logiciel partir de celles ci Leur utilisation permet le d veloppe ment de produits s rs ce qui est recherch dans les domaines critiques 5 tels que les applica tions bancaires a ronautiques etc Dans ce chapitre nous pr sentons bri vement les diff rents types de m thodes formelles et leur environnement Nous nous concentrerons ensuite sur la m thode utilis e dans cette tude qui est la m thode B Les aspects de cette m thode pr sent s sont Syntaxe S mantique Preuves M canismes de composition 2 2 Les m thodes formelles Les m thodes formelles 29 sont une solution pour concevoir des logiciels fiables Leur syntaxe et leur s mantique sont claires pr cises et accompagn es de r gles de d duction conduisant la preuve du fonctionnement du syst me Il existe plusieurs types de m thodes formelles comme par exemple 1 Les langages de sp cification alg brique orient s propri t s ces langages sont bas s sur la notion de type abstrait alg brique La pr sentation d un type abstrait alg brique est constitu e d une partie d claration signature des op rations du type et d une partie axiomatique quations conditionnelles ou pr dicats du premier ordre sur les termes construits partir de ces op rations Citons par exemple
40. 3 2 2 Exemple d obtention d une post condition partir des substitutions On reprend ici le corps de l op ration activer et on applique les r gles d finies dans 3 pour trouver la post condition B Les variables prim es des pr dicats avant apr s extrait des substitutions B d notent la valeur de la variable apr s l ex cution des substitutions En OCL on d signe la valeur avant en suffixant la variable par pre prd waiting waiting qq IF active 0 THEN active qq ELSE ready ready U qq END gt prd waiting waiting qq A prd IF active THEN active qq ELSE ready ready U qq END gt waiting waiting qq A prd active gt active qq active 0 gt ready ready U qq 112 CHAPITRE 7 GENERATION DE CONTRAINTES OCL o P gt signifie P guards S tel que P est un pr dicat de pr condition et S une substitution waiting waiting qq A prd active 0 gt active qq V prd active 0 gt ready ready U qq waiting waiting qq A active A prd active qq V active A prd ready ready U qq waiting waiting qq A active 0 A prd active qq V active A prd ready ready U qq waiting waiting qq A active A active qq V active A ready ready U qq La contrainte OCL se d duit de cette post con
41. 7 2 REECRITURE EN OCL DES INVARIANTS B 105 blistes retournant un entier pour r sultat B 4 Division x y X div y enti re xmod y Minimum min ens ens gt iterate elem res Integer MAXINT if PA res max elem then elem else res 7 Maximum max ens ens gt iterate elem res Integer MININT al iaa res min e em then elem else res 8 Cardinalit carden ens gt sizel TAB 7 2 Equivalence en OCL des expressions arithm tiques B Le tableau 7 3 pr sente les r gles de traduction des op rateurs ensemblistes telles que la d finition union l intersection et la soustraction Ces expressions retournent un r sultat de type ensemble C3 Intersection ensnenst ens gt imtersection ens CE Diff rence ensen lensen Union d ensemble avec ens U elem ens including elem a er a Soustraction d l ment ens elem ens excluding e em TAB 7 3 Equivalence en OCL des expressions ensemblistes Le tableau 7 4 numere les r gles de traduction des op rateurs de restriction sur les do maines et codomaines des relations sachant que dom et ran retournent respectivement le domaine e_R_D et le codomaine e_R_C Les autres op rateurs retournent des relations amoindries de leur restriction La relation utilis e dans ce tableau est typ e l aide d un en semble pour le domaine X et d un autre pour le codomaine Y Ces ensembles sont extrait en classes e_X et _Y Le
42. 8 6 Substitution Condition par cas La substitution Condition par cas poss de les m mes caract ristiques que la substitution Condition elle provoque une ex cution dans tous les cas Elle peut tre traduite elle aussi a l aide de la substitution S lection comme dans le tableau 8 2 Substitution Condition par Substitution S lection cas CASE E OF SELECT E LCI THEN S EITHER LC1 THEN S WHEN E LC2 THEN T OR LC2 THEN T END END ELSE Skip END TAB 8 2 Extraction de la substitution Condition par cas l aide de S lection OP 2 CASE E OF EITHER LC1 THEN x vx OR LC2 THEN x vx END END F1G 8 19 La substitution Condition par cas L extraction fait apparaitre trois groupes de transitions Un premier groupe est tiquet par OP P1 o P1 E LC1 et converge vers l tat VXI et le deuxi me vers VXJ et est tiquet par OP P2 o P2 E LC2 Le troisi me qui r sulte de l extraction de la branche implicite ELSE englobe les transitions tiquet es par OPP o P P1 v P2 r flexives sur chaque tat du diagramme voir figure 8 19 8 8 7 Substitution Choix non born La construction syntaxique et s mantique de la substitution Choix non born est parti culi re fig 8 21 En effet l affectation n est pas r alis e l aide d une expression ni d une valeur mais par un identifiant Ident dont la valeur Ux jgentp est d finie en fonction du pr dicat P UXjdent est un choix non d
43. 8 Conclusion Nous avons pr sent dans ce chapitre une vue g n rale des diagrammes UML que nous allons traiter dans extraction de vues UML depuis une sp cification B Les notations objets comme UML sont des techniques tr s performantes pour la mod lisation de syst mes Elles mettent en valeur les deux aspects de la mod lisation qui sont la partie dynamique et la partie statique Les mod les objets sont faciles comprendre car directement interpr tables dans le monde r el et surtout beaucoup moins abstraits que les mod les math matiques Ils montrent une vue d ensemble bien structur e du syst me N anmoins UML souffre d un manque de formalisme Ses cr ateurs ont essay de le combler par la cr ation du langage OCL qui permet de formaliser les contraintes sans atteindre le niveau de formalisme des notations math matiques Malgr tout UML reste la notation standard la plus r pandue car elle est adapt e tous les types de d veloppement De plus elle est support e par de nombreux outils Chapitre 5 Etat de l art D rivation d UML vers B 5 1 Introduction Les deux chapitres pr c dents exposent les caract ristiques de la m thode B et de la notation UML Le but de ce chapitre est de pr senter un tat de l art des travaux publi s concernant l int gration des m thodes formelles et semi formelles dans le d veloppement lo giciel Les travaux traitant d une extraction de vues semi formelles depuis une sp ci
44. 87 87 87 89 91 95 96 96 97 99 99 99 100 100 100 101 101 103 103 103 103 104 106 108 109 109 109 8 TABLE DES MATIERES 8 8 Les substitutions de composition 118 8 8 1 Substitution Bloc 118 8 8 2 Substitution S lection 119 8 8 3 Substitution Pr condition 119 8 8 4 Substitution Choix born 119 8 8 5 Substitution Condition 120 8 8 6 Substitution Condition par cas 121 8 8 7 Substitution Choix non born 121 8 8 8 Simplifications par valuation des expressions 122 8 8 9 Variables concurrentes 123 Sg Paramesia a adic ge hte il pu osent et Be dr Rete sa te Le 123 8 9 Calcul de diagrammes extraits de substitutions imbriqu es 124 8 10 Calcul du diagramme significatif par s lection de variables 125 8 11 L exemple du Robot 127 SL Pr sentation ois grates ae rat ue Ben En BOG Gus ears S 127 8 11 2 Principes de fonctionnement 127 8 11 3 Diagramme d tats transitions des machines abstraites 128 8 12 Comparaison avec d autres m thodes 134 9 Diagrammes de s quence et d activit s 139 JS A LAS db bre de Ale MMS a me St ne 139
45. 9 2 Diagr mme de sequence a se 4e dons E nt ire og E ondes A Ai ees 139 9 2 10 Lesobj tsrs e lt a met A A ee SU ie 139 9 22 Lies MESSAgES 24 SNe ee Ba rt a cn en die A note aa 140 9 2 8 Les param tres et valeurs de retour des op rations 141 gza esi Conditions 524 aon Le Giant L ra ae Goa he Oe Nan EE 142 9 2 5 Les boucles dans les diagrammes de s quence 142 9 3 Diagrammes d activit s 143 9 3 1 Les acteurs du diagramme d activit s 143 9 3 2 Initialisation op ration et tats d acceptation 144 9 3 3 Sequentialit ias de ech ee NA den eR EN ae rs gs 145 9 3 4 Expressions conditionnelles 146 9 3 5 Les boucl s mt Donne obi ek rie gra Re due M ent ja 147 9 3 6 Appel d op rations param tres et valeurs de retour 148 10 Conclusion sur l extraction de vues graphiques 151 10 1 Extraction des informations statiques 151 10 1 1 Extraction des diagrammes de classes 151 10 1 2 G n ration des contraintes OCL depuis les propri t s complexes de l in VATIANt SL 4 28 le enr a a un Se lat st MR Res D As 152 10 1 3 Synth se de l extraction des donn es statiques 152 10 2 Extraction des informations dynamiques 152 10 2 1 Extraction des diagrammes d tats transitions
46. 9 36 mars 1976 Z Chen Java Card Technology for Smart Cards Architecture and Programmer s Guide Addison Wesley 2000 ISBN 0 201 70329 7 D Coleman P Arnold Bodoff C Dollin H Gilchrist F Hayes and P Jeremes Object oriented Development The Fusion Method Prentice Hall Englewood Cliffs NJ Object oriented series edition 1994 T Coquant and G Huet The calculus of construction Inf Comp 1988 76 2 B Core B Toolkit User s Manual UK Ltd Oxford UK 1996 Release 3 2 Bert D and Cave F Construction of Finite Labelled Transition Systems from B Abstract Systems In JFM2000 volume LNCS 1945 pages 235 254 Dagstuhl 2000 Springer Verlag 245 246 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 BIBLIOGRAPHIE C DaSilva B Dehbonei and F Mejia Formal specification in the development of industrial applications The subway speed control mechanism In FORTE 91 pages 207 221 1991 J Dick and J Loubersac Integrating Structured and Formal s Methods A Visual Approach to VDM In 8nd International Conference ESEC 91 pages 37 59 Springer Verlag October 1991 E W Dijkstra A discipline of programming Prentice Hall Englewood Cliffs 1976 ISBN 013215871X R Duke P Kin G Rose and G Smith The ObjectZ Specification Language Depar tement of computer science University of Queensland Austria Softwar
47. B de ClearSy mais le code C obtenu partir de sp cifications B ne convenait pas pour des applications cartes puce car 1R seau National des Technologies Logicielles le R seau National de recherche et d innovation en Tech nologies Logicielles RNTL a t mis en place d s 1999 par le minist re de la Recherche et le minist re de l Industrie Il a re u comme mission de favoriser la constitution de projets innovant de recherche et de d veloppement coop ratif entre entreprises et quipes de la recherche publique De septembre 2001 mars 2003 http lifc univ feomte fr tatibouet WEBBOM 157 158CHAPITRE 11 GENERATION DE CODE A PARTIR DE SPECIFICATIONS FORMELLES il tait trop gourmand en ressources m moires Nous allons exposer les objectifs du projet BOM et poursuivre par un tat de l art relatif aux travaux entrepris dans ce dernier 11 3 Objectifs du projet BOM Les cartes puce sont un moyen de s curiser un syst me d information Les cartes tra ditionnelles souffraient de leur manque de flexibilit et de leur difficult de programmation Afin de pallier ces limitations un nouveau type de cartes a t con u Ces cartes dites ou vertes ne sont plus r serv es aux sp cialistes car elles acceptent des langages de haut niveau tel que Java De plus elles permettent de charger plusieurs applications et proposent ces applications des m canismes de coop ration Jusqu a pr sent les m thodes de d
48. CHAPITRE 12 GENERATION DE CODE JAVA A PARTIR DE B IMPLEMENTATION M_imp CONCRETE_VARIABLES res1 res2 res3 IMPORTS 1 M2 INVARIANT res INT A res2 0 4 INTA res3 BOOL INITIALISATION res1 10 res2 0 4 1 res3 TRUE OPERATIONS foo BEGIN res1 lt i op1 res2 i op2 1 TRUE res2 res3 1 0p3 END Fic 12 37 La substitution appel d op ration en B 12 8 7 Substitution Variable locale Dans les op rations il est parfois n cessaire d utiliser des variables qui ne sont pas d finies au niveau de la clause CONCRETE_VARIABLES La substitution variable locale permet comme son nom l indique de d finir une liste des variables locales l op ration fig 12 41 Ces variables ne sont pas typ es lors de leur d claration mais lors de leur premi re affectation lt InstructionBloc gt VAR lt Bldentifier gt lt Bldentifier gt IN lt Instruction gt END La traduction en Java se fait par un bloc et les variables locales sont d clar es au d but de ce bloc fig 12 42 12 8 8 Substitution Condition La substitution conditionnelle IF d finit un ou plusieurs comportements en fonction de la validit d une ou plusieurs conditions Sa syntaxe est la suivante lt InstructionConditionnelle gt IF lt Condition gt THEN lt Instruction gt 12 8 LES SUBSTITUTIONS 193 class M int resl int res2 new int 4 0 1 M2 i void foo resi i opl res2 i
49. CHOIX DE LA METHODE FORMELLE 27 Les m thodes formelles ont des caract ristiques souvent l oppos des m thodes semi formelles Elles poss dent des notations rigoureuses issues des math matiques Ceci permet de d crire les propri t s du syst me construire de mani re tr s pr cise De ce fait ces m thodes disposent pour certaines comme la m thode B de techniques de preuves introduites par Hoare 51 permettant de v rifier compl tement le cycle de d veloppement des logiciels depuis les premi res abstractions jusqu l implantation code compilable donc ex cutable Ces avantages sont contrebalanc s par l utilisation d un formalisme rebutant pour beaucoup de sp cialistes 43 85 du domaine et d un manque d aura dans le monde industriel pour des raisons de co t et d investissement non compressible d s le d but du projet de cr ation En effet le temps imparti au d veloppement l aide des m thodes formelles sans aucune preuve du syst me est d j sup rieur celui n cessaire pour le m me d veloppement en utilisant les m thodes semi formelles De plus la preuve du syst me augmentera encore la diff rence Pourtant les m thodes formelles ont un norme avantage sur les m thodes semi formelles elles permettent de r duire les tests unitaires et donc de r duire les retours aux tapes ant rieures dans le cycle de vie d un logiciel Par cons quent elles peuvent introduire un ga n de temps et don
50. DE SEQUENCE ET D ACTIVITES IMPLEMENTATION MAIN imp IMPORTS M1 M M2 M Fic 9 1 Une impl mentation MAIN_imp M1 M M2 M F1G 9 2 La traduction d une impl mentation en UML 9 2 2 Les messages Chaque appel d op ration permet la communication entre les diff rents composants d un projet B Au niveau de PIMPLEMENTATION les ex cutions des diff rentes instructions sont s quentielles On entame l ex cution de l instruction n une fois que l ex cution de l instruction n 1 est termin e Dans la figure 9 3 l ex cution du syst me d bute par l appel de l op ration op1 de M1 Par la suite l op ration op2 de M2 est ex cut e IMPLEMENTATION MAIN imp IMPORTS M1 M M2 M OPERATIONS main BEGIN M1 op1 M2 0p2 END END FIG 9 3 Une op ration en BO Au niveau du diagramme de s quence fig 9 4 Pappel des op rations M1 op1 et M2 op2 est repr sent par un message partant de la ligne du temps de l objet MAIN objet dont Pop ration est appelante main vers l objet dont l op ration est appel e M1 M pour M1 op1 et M2 M pour M2 op2 Le message est libell par le nom de l op ration appel e Le temps d ex cution des m thodes de l objet se mat rialise par les rectangles sur la ligne d coulement du temps Ces rectangles symbolisent le temps d ex cution de l op ration Le temps d ex cution de l op ration appelante main englobe les temps des op rations appel es M1 op1 et M2 0p2
51. E Inst1 E2 En 2 S Fic 9 16 Traduction du s quencement 146 CHAPITRE 9 DIAGRAMMES DE SEQUENCE ET D ACTIVITES 9 3 4 Expressions conditionnelles 9 3 4 1 Instructions IF et CASE Les instructions conditionnelles sont souvent crites avec une instruction IF THEN ELSE comme dans l exemple ci dessous fig 9 17 IF aa lt MAX THEN Inst1 ELSE Inst2 END Fic 9 17 Instructions conditionnelles simples Le diagramme UML correspondant ce type d instruction fig 9 18 poss de un losange symbolisant le point de choix Les deux transitions issues du losange permettent d indiquer la condition et l instruction associ e Il permet de conna tre la condition entre crochet suivi comme il est d fini dans le para graphe pr c dent du caract re et de l instruction correspondant la condition o aa lt MAX Inst1 elsej Inst2 FIG 9 18 Traduction des expressions conditionnelles simples en UML L instruction IF peut apparaitre sous plusieurs formes Une deuxi me forme est proche de Vinstruction CASE fig 9 19 Dans ce cas on a un point de choix avec n possibilit s de transition et n gt 2 La transformation en diagramme d activit s de ces deux instructions est diff rente JF on ins re directement la condition entre crochets CASE on met comme condition entre crochets var valuex o x est d fini par l ensemble 1 2 n Une fois que l on a d fin
52. FIG 4 5 Une agr gation 4 4 Diagramme d tats transitions Les diagrammes d tats transitions d crivent une vue dynamique du syst me Ils sont repr sent s par des automates tats finis compos s de transitions d v nements et d acti vit s La s mantique et la notation sont celles des statecharts de Harel 50 4 4 1 Etats Un tat est repr sent par un rectangle aux coins arrondis l exception des tats initiaux et finaux L tat initial est repr sent par un disque noir et l tat final par un disque plein entour par un cercle Except les tats initiaux et finaux chaque tat peut poss der les activit s suivantes Name of state Entry Action Exit Action Do Activity On event Action FIG 4 6 Notation d un tat en UML 56 CHAPITRE 4 LA NOTATION UML FIG 4 7 Notation d un diagramme d tats transitions v nement parametres conditions actions Fic 4 8 Notation d une transition complexe entry action action ex cut e l entr e de l tat exit action action ex cut e la sortie de l tat on event action action ex cut e chaque fois que l v nement cit survient do activity action r currente ou significative ex cut e dans l tat D autre part un tat peut contenir un diagramme d tats transitions interne dont l tat final doit tre atteint pour ex cuter toute autre transition externe l
53. Finlande a test le g n rateur de code et a permis ainsi de d celer plusieurs erreurs Ceci ne nous apparaissant pas suffisant nous avons repris l exemple cons quent du DAB Distributeur Automatique de Billets Sur cet exemple les seules difficult s rencontr es ont t dues la conversion des machines de base crites initialement en C en Java Les sc narios de tests d crits dans la documentation de cet exemple partir de l interface Tcl Tk ont t pass s avec succ s L exemple du DAB est disponible sur le site WEB de BOM avec l accord pour les sources B et Tcl Tk de ClearSy et de Fernando Mejia Alsthom Transport Signalisation http www go mono org http www atelierb societe com DAB DAB_HTML FR main html Shttp lifc univ fcomte fr tatibouet WEBBOM Quatri me partie Outils et applications 211 Chapitre 15 La plate forme jBTools 15 1 Introduction Le projet jBTools 102 31 95 98 est n du constat de l absence pour la m thode B d outils utilisables aussi bien des fins d enseignement que de d veloppement de prototypes de recherche car les outils industriels ont un co t non n gligeable n cessitent l acc s un serveur de licences et les sources ne sont videmment pas accessibles Le projet jBTools vise les objectifs suivants La mise disposition d une plate forme de base permettant aux quipes de recherche de d velopper des prototypes permettant la mise en videnc
54. Fonction totale gt fun Fonction partielle gt lt lt pfur gt gt Injection totale lt lt ILIS I injection partide lt lt pmp gt L Surjection totale gt lt lt suf gt Surjection partile gt lt lt psuri gt gt Bijection totale gt lt lt b gt gt Bijection partide lt lt ph Ellie st TAB 6 1 St r otypes d aide a la lecture des diagrammes de classes 6 3 Un exemple simple 6 3 1 Etude de cas Inscription d tudiants un dipl me L objectif de cet exemple simplifi est la gestion de l inscription d tudiants un dipl me L inscription ne suffit pas et il faut que les tudiants s inscrivent aussi aux examens La sp cification B de l exemple est donn e figure 6 26 6 3 UN EXEMPLE SIMPLE 97 MACHINE Gestion DesInscriptions SETS ETUDIANTS DIPLOMES VARIABLES Inscrits Inscrits AuxExamens INVARIANT Inscrits ETUDIANTS DIPLOMES A Inscrits AuxExamens C Inscrits INITIALISATION Inscrits Inscrits AuxExamens OPERATIONS inscrire etudiant diplome PRE etudiant ETUDIANTS A diplome DIPLOMES A etudiant dom Inscrits THEN Inscrits Inscrits U etudiant diplome END END FIG 6 26 Exemple de la gestion des inscriptions 6 3 2 Mod lisation UML correspondante Les ensembles clause SETS ETUDIANTS et DIPLOMES permettent de repr senter tous les tudiants et tous les dipl mes pote
55. JAVACARD 207 package wallet import javacard framework public class Wallet extends Applet final static byte WALLET OxAA codes of INS byte in the command APDU header final static byte GET 0x01 final static byte CREDIT 0x02 final static byte DEBIT 0x03 final static short MAX_BALANCE 10000 final static short MAX_TRANSACTION_AMOUNT 100 private short balance public Wallet balance 0 register public static void install APDU apdu new Wallet public void process APDU apdu byte buffer apdu getBuffer if buffer ISO OFFSET_CLA WALLET ISOException throwIt ISO SW_CLA_NOT_SUPPORTED switch buffer ISO OFFSET_INS case GET getBalance buffer break case CREDIT credit buffer break case DEBIT debit buffer break default ISOException throwIt ISO SW_INS_NOT_SUPPORTED void credit Byte buffer byte byteRead byte apdu setIncomingAndReceive if byteRead 1 ISOException throwIt ISO SW_WRONG_LENGTH short creditAmount buffer ISO OFFSET_CDATA lt lt 8 buffer ISO OFFSET_CDATA 1 process data if creditAmount gt MAX_TRANSACTION_AMOUNT creditAmount lt 0 ISOException throwIt INVALID_TRANSACTION_AMOUNT check the new balance if balance creditAmount lt MAX _BALANCE ISOException throwIt EXCEED_MAXIMUM_BALANCE balance balance creditAmount F1G 13 8 Le porte monnaie lect
56. JavaCard semi automatique partir du code de l exemple 13 8 crit manuellement on peut voir que la sp cification compl te de telles applications serait particuli rement complexe crire en B traitements de bas niveau avec des op rations de d calage de bits lancement d exception communication avec l ext rieur D autre part une grande partie du code est li e la technologie actuelle qui peut voluer rapidement C est pourquoi nous proposons de r crire l application pr c dente en la d coupant en deux classes L une qui est la logique m me de l application BWallet et qui pourra tre sp cifi e et prouv e en B fig 13 2 et 13 4 Le traducteur Java permet de g n rer le code Java correspondant utilisable sur JavaCard fig 13 6 depuis la sp cification 13 2 Cependant le d veloppement B devra respecter les r gles dict es par le d veloppement JavaCard entier court tableau une dimension pas de retour multiples de param tres pour viter les cr ations dynamiques d objets utilis s pour traduire les r sultats multiples d op ration L autre crite manuellement qui fait l interface avec l ext rieur la classe Wallet et qui est le reflet de la technologie JavaCard du moment Cette partie permettra l encapsu lation du protocole de communication dont le code est visible sur la figure 13 8 dans les m thodes process et credit d but de la m thode On parle de processus de
57. MAX_TRANSACTION_AMOUNT NAT A DEFAULT_BALANCE NAT A DEFAULT_BALANCE lt MAX_BALANCE CONCRETE_VARIABLES balance INVARIANT balance 0 MAX_BALANCE INITIA LISATION balance DEFAULT_BALANCE OPERATIONS setBalance balancelnit PRE balancelnit NAT A balancelnit 0 MAX_BALANCE THEN balance balancelnit END debit debitAmount PRE debitAmount NAT A debitAmount gt 0 A debitAmount lt MAX_TRANSACTION_AMOUNT A balance debitAmount gt 0 THEN balance balance debitAmount END credit creditAmount PRE creditAmount NAT A creditAmount gt 0 A creditAmount lt MAX_TRANSACTION_AMOUNT A balance creditAmount lt MAX_BALANCE THEN balance balance creditAmount END END F1G 13 2 Sp cification abstraite B du porte monnaie lectronique 13 2 LA PLATE FORME JAVACARD 201 IMPLEMENTATION BWallet_imp VALUES MAX_BALANCE 10000 MAX_TRANSACTION_AMOUNT 100 DEFAULT_BALANCE 0 END Fic 13 3 Impl mentation B du porte monnaie lectronique Les sp cificit s de la plate forme JavaCard 75 12 par rapport a la plate forme Java standard sont les suivantes Il n y a pas de chargement dynamique de classes On peut cr er dynamiquement des objets new en m moire permanente mais il n y a pas de ramasse miette ni de moyen pour d sallouer explicitement les objets La m moire allou e ne peut donc tre r cup r e or la quantit de m m
58. Meyer Des transitions D rivation des transitions selon Sekerinski D rivation d une transition selon Meyer Une transition complexe D rivation d une transition complexe Diagramme de classes de l ascenseur Diagramme d tats transitions du bouton Diagramme d tats transitions de l ascenseur Sp cification de la partie system de l ascenseur Sp cification de la machine Types de ascenseur Sp cification de l ascenseur cas g n ral travaux de Meyer Impl mentation de la machine system Architecture de la sp cification B du syst me de contr le d ascenseurs La machine AM Mod lisation de la machine AM en classe Mod lisation des variables Machine munie d ensembles abstraits Machine munie d ensembles num r s Machine munie de produit cart sien Mod lisation du produit cart sien Machine utilisant des relations Mod lisation des relations Une autre mod lisation des relations Machine munie de variables enti res et bool ennes Mod lisation des variables typ es avec des ensembles abstraits Contraintes d inclusion dans un ensemble Mod lisation des ensembles num r s et variables typ es avec ceux ci Contrainte relative l
59. UML 7 me MCSEAT2002 Maghrebian Conference of Software En gineering and Intelligence Artificial pages 133 143 Annaba Alg rie 6 8 mai 2002 3 J C Voisinet B Tatibouet A Hammad jBTools An experimental platform for the formal B method Principles and Practice of Programming in Java PPPJ 02 p 137 140 Trinity College Dublin Ireland June 13 14 2002 4 A Hammad B Tatibouet J C Voisinet Wu Weiping From a B Specification to UML Statechart Diagrams 4th International Conference on Formal Engineering Methods ICFEM 2002 LNCS 2495 p 511 522 Shanghai China 21 25 October 2002 30 CHAPITRE 1 INTRODUCTION 5 B Tatibouet A Hammad J C Voisinet From an abstract B specification to UML class diagrams 2nd IEEE International Symposium on Signal Processing and Informa tion Technology ISSPIT 2002 p 5 10 ISBN 0 9727186 0 5 Marrakech Maroc 18 21 December 2002 6 B Tatibouet A Requet J C Voisinet A Hammad JavaCard Code Generation from B Specifications 5th International Conference on Formal Engineering Methods IC FEM 2003 LNCS 2885 p 306 318 Singapore November 5 7 2003 7 B Tatibouet J C Voisinet Generating statecharts from B specifications 16th Inter national Conference on Software amp Systems Engineering and their applications ICS SEA 2003 Vol 1 Session 2 Modeling December 2 4 2003 CNAM Paris France Chapitre 2 La m thode B
60. abstraite Parking 137 Diagramme d tats transitions des variables du raffinement Parking_rl 137 Diagramme d tats transitions Dec fe du raffinement Parking_r1 138 Une impl mentation 140 La traduction d une impl mentation en UML 140 Une operation en BO Sor s a day dus nus es Bee Oe a Re See ad 140 La traduction de l appel d une op ration 141 Une op ration qui retourne des valeurs 141 Traduction d une op ration qui retourne des valeurs 141 Instructions IF et CASE 142 Traduction des appels d op ration l int rieur d une instruction conditionnelle 142 Une boucle en Bini omar eee R ee eA ED 143 Traduction d une boucle 143 Liens de visibilit et importation entre machines 144 Traduction des liens de visibilit et importation entre machines 144 Initialisation et op rations dans une machine B 144 Traduction de l initialisation et des op rations 145 Le S quenc ment ta a D eee Aan oe eel ain dus age ls 145 Traduction du s quencement 145 Instructions conditionnelles simples 146 Traduction des expressions conditionnelles simples en UML 146 Expressions conditionnelles complexes
61. application de celui ci Une premi re phase d analyse des besoins r pond cette question Cette tude se base sur le domaine d application et l environnement du futur logiciel Les m thodes associ es cette phase ne rel vent pas directement des techniques informatiques mais des sciences cognitives Il en r sulte une sp cification informelle que l on a coutume d appeler le cahier des charges A partir de celui ci une phase de sp cification conception permet de d finir sch matiquement ce quoi le logiciel doit r pondre Ceci donne une vue d ensemble du produit sans les d tails de la r alisation Cette phase est suivie aussit t d une validation qui permet de v rifier si le logiciel r pond totalement aux besoins des futurs utilisateurs Il est alors possible d entamer l impl mentation selon la sp cification qui est le d veloppement proprement dit Dans cette activit vont appara tre les premiers d tails du logiciel Cette phase met l accent sur le codage de l application Elle consiste mettre en place un ensemble de programmes ex cutables C est lors de cette tape que le projet informatique commence se mat rialiser Une fois le code du logiciel crit une premi re phase de tests unitaires est n cessaire dans le but de s assurer de son bon fonctionnement hors environnement L int gration dans l environnement est une phase 25 26 CHAPITRE 1 INTRODUCTION A Analyse Tu FRS A Sp cification
62. cette machine Dans la machine de l exemple pr sent dans la figure 87 88 CHAPITRE 6 EXTRACTION DE DIAGRAMMES DE CLASSES MACHINE AM OPERATIONS Opi 03 Op22 END FIG 6 1 La machine AM FIG 6 2 Mod lisation de la machine AM en classe 6 3 b est une variable bool enne et x est un entier naturel L initialisation des variables est obligatoire Le typage des param tres et des r sultats d une op ration B se fait dans le corps de celle ci au niveau des substitutions MACHINE AM VARIABLES b x INVARIANT b BOOL A x NAT INITIALISATION b true x 0 OPERATIONS Op1 yEPRE y NAT THEN END z Op2 PRE THEN z x END END FIG 6 3 Machine munie de variables enti res et bool ennes FIG 6 4 Mod lisation des variables 6 2 DE LA SPECIFICATION B AU DIAGRAMME DE CLASSES 89 6 2 3 Les ensembles simples 6 2 3 1 Les ensembles abstraits et les variables associ es Un ensemble abstrait comme A dans l exemple pr sent figure 6 5 est repr sent d une part par une classe not e ici E_A correspondant au type d l ments de l ensemble et d autre part par une association entre cette classe et la classe repr sentant la machine fig 6 6 L extr mit de l association du c t de la classe correspondant au type d l ment poss de un nom r le qui est celui de l ensemble ici A Les variables de type ensemble deviennent des associations avec leur no
63. cification CARREFOUR doit tre compl t par la contraintes OCL fig 16 8 qui permet d exprimer les contraintes associ es la bijection totale suiv 228 CHAPITRE 16 APPLICATION ET MISE EN OEUVRE lt lt bij gt gt suiv CARREFOUR feu1 COUL_ Value E j e_ Q x 1 ey lt lt num ration gt gt COUL_ Value E COUL rouge value COUL_ Value vert jaune Fic 16 7 Diagramme de classes extrait de la sp cification CARREFOUR context CARREFOUR inv suiv gt forAll c1 c2 E_suiv c1 lt gt c2 implies c1 e_X lt gt c2 e_X and suiv gt forAll c1 c2 E_suiv c1 e_X lt gt c2 e_X implies c1 e_Y lt gt c2 e_Y and F gt collect c E_suiv c e_Y gt includesAll E_COUL and suiv gt size E_COUL gt size FIG 16 8 Contrainte relative la bijection totale suiv E ETAT lk H value ETAT Value Fic 16 9 Diagramme de classes extrait de la sp cification Feu 16 4 2 Contraintes OCL Les pr dicats de typage sont utilis s pour g n rer les diagrammes de classes Les pro pri t s complexes de l invariant sont r crites en contraintes OCL associ es aux diagrammes de classes De plus les post conditions des op rations sont aussi traduites en contraintes OCL 16 4 2 1 Les propri t s invariantes Dans la sp cification CARREFOUR les pr dicats d finissant les restrictions des valeurs associ es aux variables feuA et feuB sont traduits en la
64. condition la valeur valu e est celle ob tenue apr s l ex cution de l op ration Pour d signer la valeur de la propri t avant l ex cution de l op ration le terme pre est post fix au nom de la propri t 4 7 6 La navigation vers les extr mit s d association Il est possible de naviguer le long des liens pour passer d une classe un autre l ment de mod lisation L instance de d part est sp cifi e suivie d un point ou d une fl che dans le 4 7 LE LANGAGE OCL 63 cas de collections puis du nom du r le oppos Lorsque le nom du r le n est pas pr sent le nom de la classe l extr mit concern e est utilis lequel commence par une minuscule 4 7 7 Les collections Dans le cas d une association l expression retourne une collection d objets dont le nombre est born par la multiplicit du r le Ces types de collections sont Collection il s agit d un type abstrait d finissant des op rations de manipulation pour les sous types concrets Set obtenu par navigation d une association il s agit d un ensemble tel un ensemble math matique Bag obtenu par des navigations de plusieurs associations il s agit d un panier provisions aussi appel parfois multi ensemble o un m me l ment peut tre pr sent plusieurs fois Sequence obtenu par une navigation vers une extr mit avec la contrainte ordonn e il s agit d un
65. contrainte OCL pr sent e figure 16 10 Cette contrainte correspond la r gle de gestion 3 du cahier des charges Les propri t s complexes de l invariant de la sp cification Feu correspondent la r gle de gestion 2 du cahier des charges Elles d finissent les restrictions des valeurs associ es des variables rr oo et vv L quivalence ne peut tre traduite directement en OCL c est pourquoi on utilise deux implications pour g n rer la contrainte de la figure 16 11 16 4 EXTRACTION DE VUES UML 229 context CARREFOUR inv feuA COUL_ Value orange and feuB COUL_Value orange and feuA COUL_Value rouge and not feuB COUL_Value rouge and not feuA COUL_ Value rouge and feuB COUL_ Value rouge Fic 16 10 Contrainte relative aux propri t s complexes de l invariant de la sp cification CARREFOUR context Feu inv rr ETAT_Value on implies oo ETAT_Value off and vv ETAT_Value off and oo ETAT_Value off and vv ETAT_Value off implies rr ETAT_Value on and oo ETAT_Value on implies rr ETAT_Value off and vv ETAT_Value off and rr ETAT_Value off and vv ETAT_Value off implies oo ETAT_Value on and vv ETAT_Value on implies rr ETAT_Value off and oo ETAT_Value off and rr ETAT_Value off and oo ETAT_Value off implies vv ETAT_Value on Fic 16 11 Contrainte relative aux propri t s complexes de l
66. dans la classe PERS pour indiquer l ensemble des b timents autoris s pour une personne donn e Dans ce cas la fonction totale sit est un attribut de la classe PERS aut PERS taut BATS BATS sit BATS gt a deux attributs b un attribut une association c deux associations Fic 6 31 Les trois solutions possibles en UML L inclusion entre sit et aut est traduite par une contrainte OCL 6 5 3 2 Notre approche Dans notre solution nous avons choisi de traiter les ensembles abstraits num r s rela tions fonctions de fa on uniforme en donnant des r les nom de l ensemble aux associa tions entre la classe repr sentant la machine abstraite et les classes repr sentant les l ments des ensembles Cette solution est moins naturelle premi re vue mais ce handicap est rat trap de notre point de vue par le fait qu elle est syst matique et automatisable De plus nous montrons dans les chapitres suivant que la g n ration partir de l invariant et des op rations B de contraintes OCL est faisable et automatisable Le grand d savantage de notre approche est la n cessit de rajouter des contraintes OCL pour pr ciser les diff rents types de fonction 6 5 4 Comparaisons de ces deux approches L avantage essentiel de notre approche est la possibilit de traduire une machine B quel conque de fa on automatique Dans l approche 32 la mod lisation peut appara t
67. de preuves remplir sont ce niveau fig 2 1 D autre part les diff rents invariants des raffinements et impl mentations apportent aussi ventuellement leurs propres obligations de preuves Enfin le raffinement des modules apportera les obligations de preuves relatives la pr servation de l invariant des abstractions dans le composant courant 2 3 4 Structure g n rale d une machine abstraite L l ment essentiel de la m thode B est la machine abstraite fig 2 2 qui d finit le niveau le plus abstrait du syst me sp cifi MACHINE lt Name gt parametres CONSTRAINTS lt Constraints gt SETS lt Sets gt CONSTANTS lt Constants gt PROPERTIES lt Properties gt DEFINITIONS lt Definitions gt VARIABLES lt Variables gt INVARIANT lt Invariant gt INITIALISATION lt Initialisation gt OPERATIONS lt Operations gt END FIG 2 2 Structure d une machine abstraite 1 La clause MACHINE d finit le nom du composant et les param tres ventuels Ces param tres peuvent tre scalaires ou ensemblistes 2 La clause CONSTRAINTS sp cifie le typage des param tres d crits dans la clause MA CHINE 3 La clause SETS d clare les ensembles utilis s dans le composant Ils peuvent tre de deux sortes Le premier est de type num r par exemple BOOLEAN false true ou abstrait par exemple 4 La clause CONSTANTS d clare les constantes du composant 5 La clause PROPERTIES permet de d finir des contrainte
68. de transitions celles issues de chaque tat et qui convergent vers l tat VXI et celles vers VXJ fig 8 16 Il existe des transitions issues des tats repr sent s par mais elles ne sont pas repr sent es pour rendre la figure 8 16 plus lisible VX1 e VXI VXJ ce VXN Fic 8 16 Extraction de la substitution Choix born 8 8 5 Substitution Condition A la diff rence de la substitution S lection la substitution Condition provoque une ex cution dans tous les cas Lorsque le pr dicat P est faux alors la branche ELSE est ex cut e Si elle n est pas d finie fig 8 17 une branche ELSE implicite est ex cut e comme dans le tableau 8 1 selon 48 Substitution Condition Substitution S lection IF P THEN S END SELECT P THEN S WHEN P THEN Skip END TAB 8 1 Extraction de la substitution Condition l aide de S lection OP IF P THEN x vx END Fic 8 17 La substitution Condition L extraction fig 8 18 met en vidence deux groupes de transitions les transitions conver geant sur l tat VXI tiquet es par OP P et le groupe des transitions r flexives tiquet es par OP P traduites de la branche ELSE implicite 8 8 LES SUBSTITUTIONS DE COMPOSITION 121 OP P OP P OP P FiG 8 18 Extraction de la substitution Condition L extraction de la branche ELSIF THEN fait appara tre une transition de la m me forme que celle traduite depuis la branche IF THEN 8
69. dernier tableau 7 5 traite les r gles de traduction des expressions relatives aux suites telles que la d finition les insertions en t te et en queue les s lections en t te et en queue les suppressions multiples d l ments en t te et en queue ainsi que les op rateurs de concat nation et d inversement Les variables OCL suivit de la chaine de caract res pre d note la valeur des variables avant l ex cution de l op ration 106 CHAPITRE 7 GENERATION DE CONTRAINTES OCL Contrainte OCL 1 Image RIX R gt select X gt includes e_X gt collect e_ Y Image singleton Ri xx R gt select xx e_X gt collect e_ Y domk AS collect e AD F collect e A_C 6 Soustraction sur Te domaine XaR Rselect Xexcludes eX 8 Soustraction sur Te codomame REY Fselect Y gt excludes e Surcharge R1 amp R2 R1 R1 gt select R2 gt includes e_X gt union R2 TAB 7 4 Mod lisation en OCL des expressions B portant sur les relations Contrainte OCL 1 Suite elem Sequence elem elem elemn 3 Insertion en suite elem suite gt append elem HE ee AM 4 Insertion en elem gt suite suite prepend elem eee eee A 5 Premier first suite suite first dr ee ha Dernier last suite suite last 7 292 l ment T te front suite suite subSequence 1 e oem sg Queue tail suite suite subSequence 2 PU eme sted o O OO Restriction suite n suite gt subsequence n 1
70. des expressions ensemblistes 105 Mod lisation en OCL des expressions B portant sur les relations 106 Equivalence en OCL des expressions sur les suites 106 Extraction de la substitution Condition l aide de S lection 120 Extraction de la substitution Condition par cas l aide de S lection 121 Valeurs des variables pour les tats de Dpy1 Type lt lt 133 Valeurs des variables pour les tats de Dpy1 Type Dai De1 De2 134 Valeurs des variables pour les tats de Dec jeu a 138 Traduction des structures de contr le BO en OCaml 161 Type des entit s de la machine A apr s v rification locale des types 170 Type des entit s de la machine apr s v rification locale partielle des types deb ia Aa Boe ee RRS ee ee he na Mw due 171 Type des entit s de la machine A apr s v rification locale compl te des types TOR tigi DS AR DA een Or ere 172 Proposition d quivalence non retenue entre les types de base B et les types Java174 21 22 LISTE DES TABLEAUX 12 5 Traduction des structures de contr le BO en Java 189 12 6 Substitution Condition en B gauche et en Java droite 194 Premi re partie Pr sentation 23 Chapitre 1 Introduction Au cours de ces derni res ann es l utilisation de l informatique s est r pandue dan
71. des param tres ensemblistes IMPLEMENTATION B IMPORTS A 0 255 OPERATIONS cc op2 BEGIN cc4 op1 5 END END FIG 12 8 Exemple d importation de machines avec des param tres ensemblistes 12 3 ENSEMBLE P Z 12 3 Type des entit s de la machine A apr s v rification locale compl te des types de Pour la valuation d ensembles le probl me est similaire on part de la m me fa on d une machine A fig 12 9 Dans un raffinement ou une impl mentation fig 12 10 Ventit ENSEMBLE2 prend le type P Z Le type des variables aa bb et dd doit aussi tre modifi sinon ceci provoque une erreur car les deux types ne sont pas identiques le type de aa bb et dd passe de ENSEMBLE Z L ensemble n est valu qu une seule fois donc le probl me est beaucoup moins contraignant on peut importer une machine plusieurs fois avec des 12 5 LES TYPES 173 MACHINE A SETS ENSEMBLE2 CONCRETE_VARIABLES aa INVARIANT aa ENSEMBLE2 OPERATIONS bb op1 dd PRE dd ENSEMBLE2 THEN bb ENSEMBLE2 END END Fic 12 9 Exemple de machine avec un ensemble abstrait MACHINE A_imp REFINES A VALUES ENSEMBLE 10 100 OPERATIONS END Fic 12 10 Exemples d impl mentation avec typage d un ensemble abstrait valuations d ensemble diff rentes mais dans le cycle de raffinement on ne peut valuer un ensemble qu une seule fois Une premiere solution si ces types sont des class
72. deux associations soit une contrainte OCL En fait ceci ne suffit pas pour d crire une fonction partielle comme Inscrits une fonction est un ensemble de couples qui ne contient pas deux couples distincts ayant le m me premier l ment une fonction est partielle lorsque tous les l ments de l ensemble de d part ETU DIANTS ne sont pas utilis s pour faire des couples 15 4 CONCLUSION 221 SATA GestionDesinscriptions argo File Edt View Create Arange Generation Critique Help je EL Ra lalsl1111 alf 8181 olola Q E Sestiondesinsoriptions Ej Diagramme de clame ES Cas utilization E GestionDezinzotiptions et_etupiants public void Inscrire Et_ETUDIANTS etudiant _DIPLOMES diplome E ett_pircomes EB Elt_Inscrits EB Inserire E etudiant DT void anon Association Gestion Des inscriptions O anon Association O0 anon Association 9 anon Association Q anon Association 9 anon Association E High B Ho ToDoltem selected O A Medium w Ez o E tow Fic 15 9 Diagramme de classes de la gestion des inscriptions 15 3 2 Traducteur vers Java C Le traducteur vers les langages objets est connect sur la BOL comme l outil B2UML Les fichiers XML sont lus et l arbre abstrait est g n r l aide de la BOL Les fichiers Java ou C sont g n r s sachant que l utilisateur d finit les options suivantes
73. dire que la machine vue est l instance import e par le plus proche parent de la machine qui voit On peut aussi renommer les machines vues gt imports gt sees FIG 2 6 Graphe de d pendance d un projet B Les r gles de visibilit de la clause SEES sont d finies dans le tableau 2 8 o la machine MA voit la machine MB Il existe une restriction sur la clause SEES elle n est pas transitive c est dire qu une machine MA voit une machine MB qui voit une machine MC mais MA ne voit pas la machine MC En outre une machine vue doit tre import e instanciation par la clause IMPORTS dans le projet B 2 3 8 2 INCLUDES EXTENDS et PROMOTES Le lien INCLUDES entre un composant MA machine ou raffinement et un composant MB permet d inclure une instance de MB dans MA afin de construire un composant plus volumineux tout en gardant les avantages des aspects de modularit Aussi la clause EXTENDS poss de les m mes propri t s que la clause INCLUDES et ajoute la promotion de toutes les op rations des instances de machines tendues incluses Dans le cas o l on ne veut pas promouvoir toutes les op rations d une machine dans un composant abstrait machine 42 CHAPITRE 2 LA METHODE B Clauses de MA CONSTRAINTS PROPERTIES INVARIANT OPERATIONS Constituants de MB Pa I A PE EE Ensembles VA CO Donantes NV Varias ON Operations YN TAB 2 8 Visibilit des entit s d une machine vue ou r
74. effet au contraire du diagramme d tats transitions qui d finit le comportement d un objet ou composant le diagramme d activit d finit les actions ex cut es l int rieur d une m thode Dans la suite de ce chapitre nous allons pr senter en d tails les diff rents diagrammes n cessaires l extraction des vues UML depuis une sp cification B 4 3 Diagramme de classes Le diagramme de classes montre une vue statique du syst me Il est le constituant le plus utilis de la vue statique Il fait abstraction des aspects dynamiques et temporels Cependant il montre quelques aspects dynamiques du syst me comme les m thodes mais il n en d crit pas le comportement Il contient entre autres les l ments suivants les classes compos es d attributs et de m thodes les g n ralisations les agr gations compositions et associations 4 3 1 Classes attributs et m thodes Les classes repr sentent un groupe d objets qui ont les m mes donn es et les m mes comportements Une classe est une description abstraite de ces objets Chaque classe est repr sent e sous la forme d un rectangle divis en trois compartiments Le compartiment sup rieur comprend le nom de la classe Le compartiment m dian contient les attributs Le dernier item repr sente le comportement d un groupe d objets il est d fini l aide de m thodes 4 3 DIAGRAMME DE CLASSES 53 Personne nombre_enfant int 0 s
75. en XML sont d finies dans la figure 15 3 15 2 6 La B Object Library BOL chacune des balises XML fig 15 2 15 3 et 15 4 correspond une classe de la B Object Library telle que les classes Substitution Parallel fig 15 5 et Precondition fig 15 6 216 CHAPITRE 15 LA PLATE FORME JBTOOLS Start lt xml version 1 0 standalone yes gt Bcomponent BComponent Machine Refinement Implementation BContext lt BContext gt AbstractB Component AbstractParameters AbstractEntities AbstractOperations LocalParameters LocalEntities LocalOperations ReferencedBComponents ExternEntities ExternOperations lt BContext gt Fic 15 2 D but de la grammaire XML Type Typeldentifier TypeString TypeBool TypeEntier TypeParties TypeProduitCartesien Typeldentifier lt Typeldentifier gt IDENTIFIER lt Typeldentifier gt TypeString lt TypeString gt lt TypeString gt TypeBool lt TypeBool gt lt TypeBool gt TypeEntier lt Typelnteger gt lt Typelnteger gt TypeParties lt TypePowerSet gt Type lt TypePowerSet gt TypeProduitCartesien lt TypeCartesianProduct gt Type Type lt TypeCartesianProduct gt FIG 15 3 Traduction du typage en XML La classe substitution est une classe m re dont les classes Parallel Sequencing et Precondition vont h rite
76. ensemble BOOL L initialisation la valuation d un tableau se fait sur tous les indices par ordre croissant de la borne inf rieure la borne sup rieure pour les intervalles par ordre d apparition pour les valeurs num r es FALSE puis TRUE pour les valeurs bool ennes Remarque les tableaux peuvent servir impl menter des ensembles 12 6 6 2 Tableaux constants une dimension avec des intervalles Les tableaux constants une dimension sont d finis en B fig 12 19 comme les constantes l aide des clauses CONCRETE_CONSTANTS PROPERTIES et VALUES La traduction ne fait pas appara tre des tableaux constants dans le cas o il est initialis avec un produit cart sien car l espace qu il utilise doit lui tre allou avant de l affecter par des valeurs fig 12 20 12 6 LA TRADUCTION DES DONNEES 179 CONCRETE_CONSTANTS tableau1 tableau2 tableau3 tableau4 PROPERTIES tableau1 0 2 INT A Un tableau commen ant l indice 0 tableau2 1 1 NAT A Un tableau commen ant l indice 1 tableau3 0 6 INT A Tableau initialis avec une valeur tableau 2 8 INT VALUES tableaul 022 14 2 6 tableau2 1 43 0105 147 tableau3 0 6 6 tableau4 2 8 9 Fic 12 19 Constantes tableaux une dimension en B static final int tableaul 2 4 6 static final int tableau2 3 5 7 static final int tableau3 new int 6 0 1 s
77. et d boguer Gemplus partir de sp cifications B r alisait une g n ration de code pour cartes puce ma nuellement Celle ci introduisait une rupture dans le processus de preuve et ne rentabilisait pas l effort de formalisation par r duction du test unitaire Le projet BOM s est int ress am liorer le code g n r en terme d optimisation m moire car les cartes n ont que peu de ressources m moires Les tudes ont port es sur la m thode B et le processus de traduction 11 4 Objectif et contribution de mes travaux de th se Les travaux dans le cadre du projet BOM fig 11 2 ont fait merger la n cessit de deux traducteurs car les caract ristiques des langages C d un c t et Java de l autre sont tr s diff rentes et les applications vis es travers ces langages aussi un pour le langage C 8 avec la gestion fine des entiers afin de g n rer la partie syst me Syst me d exploitation JCRE Java Card Runtime Environment et Machine virtuelle Java JCVM Java Card Virtual Machine un pour le langage Java destin la partie applicative Applets JavaCard ex cut es par la machine virtuelle Java Notre travail s est concentr sur l tude la conception et la r alisation d une souche de tra ducteurs pour les langages objets qui int gre les tudes faites dans le cadre du projet 11 4 OBJECTIF ET CONTRIBUTION DE MES TRAVAUX DE THESE 159 include lt stdlib h gt includ
78. extraction of UML graphics views from a B formal specification This extraction happen to maturity because it deals with state charts classes diagrams and OCL constraints like most integration works already done as graphic notation derivation to formal methods In addition we also defined the extraction of concrete diagrams like sequence and activity ones The second contribution of our works is the translation of B specifications to compilable and executable languages This translation is targeted on a large domain because it is applied on standard software with Java and C but also on embedded application with Java for JavaCard A plate forme merging the two contributions relatives tools was developed in order to factorize the common developments of syntactic and semantic analysis Key words Software engineering Extraction UML B Method Translation Valida tion Java and C
79. feu2 pre COUL_Value rouge and feu1 COUL_Value orange or feu1 pre COUL_ Value rouge and feu2 pre COUL_Value vert and feu2 COUL_Value orange or feu1 pre COUL_ Value rouge and feu2 pre COUL_Value orange and feu1 COUL_Value vert and feu2 COUL_Value rouge or feu1 pre COUL_ Value orange and feu2 pre COUL_Value rouge and feu1 COUL_ Value rouge and feu2 COUL_Value vert Fic 16 13 Extraction de la post condition de l op ration ChangerFeux 16 4 EXTRACTION DE VUES UML 231 DevientVert DevientRouge DevientJaune DevientJaune DevientRouge DevientVert Fic 16 14 Diagramme d tats transitions extrait de la sp cification Feu Dans ce diagramme d tats transitions fig 16 14 on peut valider le comporterment de la sp cification du Feu relativement au cahier des charges On peut ainsi valider les r gles 1 et surtout 2 nonc es dans la section 16 2 2 Pour les m mes raisons que dans la figure 16 14 nous avons remplac les valeurs rouge vert et orange respectivement par R V et J CARREFOUR FeuA FeuB MiseEnService ChangerFeu ChangerFeu ChangerFeu ChangerFeu Fic 16 15 Diagramme d tats transitions extrait de la sp cification CARREFOUR Sur ce diagramme d tats transitions fig 16 15 on peut valider la r gle 3 de la section 16 2 2 16 4 4 Diagramme de s quence Le diagramme de s quence de la figure 16 16
80. gt lt InstructionAppelOperation gt lt InstructionSequence gt lt InstructionBloc gt lt InstructionIdentite gt lt InstructionVariableLocale gt lt InstructionConditionnelle gt lt InstructionCas gt lt InstructionTantQue gt lt InstructionAssertion gt Le tableau 12 5 repr sente la traduction des structures de contr le de BO en Java Dans ce tableau S S1 S2 S3 et Si sont des substitutions T1 et Ti des valeurs C P P1 P2 et V des pr dicats E une expression XX un identifiant de variable et I une instruction qui permet en BO de typer les variables locales Type et Java d notent respectivement la fonction d extraction du type d une instruction et la fonction de transformation des constructions B vers Java 12 8 LES SUBSTITUTIONS 189 IF P1 THEN S1 if O java P1 Java S1 ELSIF P2 THEN S2 else if O jaya P2 8 Java S2 ELSE 53 END else 9 Java 53 CASE E OF switch 9 Java E EITHER T1 THEN S1 case O aval 11 Java S1 break OR Ti THEN Si case jaya Ti Java Si break ELSE 2 END default jawal S2 break java Type J D Java XX java 1 A O Java S WHILE C DO S INVARIANT P while PJavalC Byava S VARIANT V END D Javal S1 Java 52 Java XX Java E TAB 12 5 Traduction des structures de contr le BO en Java 12 8 2 La substitution Devient gal La substitution Devient gal remplace
81. imp ratifs traditionnels Par cons quent il est compris par un plus grand nombre 17 1 2 Traduction vers les langages objets Java et C La traduction de sp cifications B en langage objets de type Java que nous avons mise en place peut s appliquer dans deux contextes diff rents Le premier est appliqu aux logiciels pour les syst mes informatis s standards Le deuxi me est relatif aux applications embarqu es plus particuli rement pour JavaCard Dans les deux cas nous avons restreint la traduction en bloquant l instanciation par le type STRING de machines prenant comme param tres des ensembles Nous avons maintenu la notion de modularit B en la substituant par la notion de classe Nous avons optimis les classes Java g n r es en terme de m moire en utilisant des variables et m thodes de type statique et en permettant de choisir le type d entier de base pour la plate forme cible En l tat actuel cette possibilit devra tre utilis e avec pr caution car il faut param trer les constantes MININT et MAXINT avant de prouver les sp cifications B La traduction Java standard permet l utilisation du langage BO dans sa totalit hormis la restriction cit e pr c demment tandis que la traduction sp cifique pour JavaCard est plus contraignante cause de ses sp cificit s en termes de m moire et de structure L extension pour du code C est elle aussi termin e Il serait possible de choisir d autres langages obj
82. la suite nous traiterons la partie op rationnelle les prototypes et appels d op rations Pour finir nous d finirons une traduction des substitutions en deux parties qui sont les structures de contr le et les affectations 12 2 Principes g n raux adopt s 12 2 1 Le point de d part de la traduction le BO Ce chapitre a t labor partir des publications 97 102 La traduction d un projet B vers un langage informatique se fait partir de machines B qui ont t rendues suffisam ment concr tes par le processus de raffinement fig 12 1 ces machines sont appel es des impl mentations Elles sont crites avec un sous ensemble du langage B appel BO Le BO se veut suffisamment proche des langages informatiques pour que la traduction vers ceux ci en soit facilit e Machine abstraite prouveur Raffinement prouveur Raffinement n prouveur Machines de Base __ Impl mentation en BO Prouveur Et de librairie o rE BO checker y traducteur Programme ex cutable Fig 12 1 Cycle de d veloppement d un projet B 165 166 CHAPITRE 12 GENERATION DE CODE JAVA A PARTIR DE B 12 2 2 Exemple l mentaire de machine abstraite et d impl mentation Dans une impl mentation ou un raffinement la clause REFINES nomme le composant abstrait qu elle raffine fig 12 2 MAIN OPERATIONS main skip BASIC_TO _ OPERATIONS main Machine abstraite B
83. la traduction en C 11 5 2 De B vers OCaml Selon Petit 79 la structure de la sp cification qui est modulaire en B n est pas conserv e en OCaml car Petit a utilis pour la traduction le syst me de modules Harper Lillibridge Leroy que nous appelerons HLL dans la suite du document pr sent dans 66 Le syst me HLL a pour objectif de fournir une implantation d un syst me de modules de type SML param tr e 11 5 ETAT DE L ART 161 par un langage de base et par son v rificateur de types Le terme langage de base d signe un langage quelconque d pourvu de toutes constructions de modularit Ce n est pas le cas de B mais il est possible d aplatir les sp cifications d un projet entier plusieurs composants B par un algorithme de d pliage pour obtenir une seule et unique sp cification et c est ce quia t r alis dans ce traducteur Le reste de la traduction concerne les trois parties suivantes l tat de la sp cification variables et constantes les types manipul s l utilisation d assertions les structures de contr le 11 5 2 1 Structures de contr le Parmi ces constituants la partie la plus facile est la traduction des structures de contr le des sp cifications B Ces structures correspondent un sous ensemble du langage BO de B BO est un noyau qui habituellement se trouve dans les langages imp ratifs tel que C ADA PASCAL Par cons quent cette traduction ne pose
84. la variable n est pas constitu d un produit cart sien ou de partie d un type quelconque Si une variable var est typ e de la mani re suivante var C E avec E une expression de type P T alors le type de var est P T Types Ensemble des entiers relatifs concrets D Ensemble des bool ens BOOL P BOOL Ensemble des cha nes de caract res STRING P STRING TAB 2 6 Type des ensembles pr d finis Dans le tableau 2 5 le typage des principales expressions constituant le langage B est d crit Les types impl mentables 4 travers une traduction 102 vers un langage compilable sont les suivants les variables scalaires typ es l aide de l ensemble de type Z BOOL STRING les tableaux une dimension mod lis s par une fonction totale de type P Z U BOOL U Ident x Z U BOOL U STRING U Ident Pour les tableaux les indices peuvent prendre les types Z BOOL ou Ident type Tindice tandis que les l ments du tableau peuvent prendre les types Z BOOL STRING ou Ident 38 CHAPITRE 2 LA METHODE B type Tetement sachant que le type Ident repr sente les ensembles num r s Les tableaux plusieurs dimensions seront donc mod lis s par une fonction totale de type PTE de X we X Tindicen X Telement 2 3 7 Obligations de preuve Le d veloppement de syst mes par la m thode B donne lieu l criture de machines abstraites Les contraintes du cahier des charges sont d finies par son
85. le qui est celui de l ensemble 98 CHAPITRE 6 EXTRACTION DE DIAGRAMMES DE CLASSES GestionDesinscriptions Inscrire etudiant E_ETUDIANT diplome E_DIPLOME E_ETUDIANT_DIPLOME lt lt pfun gt gt InscritAuxExamens e_DIPLOME E_DIPLOME e ETUDIANT E_ETUDIANT DIPLOME ETUDIANT Fic 6 27 Diagramme de classes correspondant la machine abstraite Gestion DesInscriptions context GestionDesinscriptions inv Inscrits gt includesAll InscritsAuxExamens FIG 6 28 Contrainte d inclusion ensembliste de InscritsAuxExamens dans Inscrits ici ETUDIANTS Les variables de type ensemble deviennent des associations avec leur nom comme nom de r le du c t correspondant au type d l ments La fonction partielle Inscrits est traduite par une classe E_ETUDIANT_DIPLOME reli e par une association dont le r le est Enrolled du c t de la classe repr sentant la machine Cette classe est galement reli e par une agr gation la classe E_ETUDIANT et par une autre a la classe E_DIPLOME Le processus est le m me pour la fonction partielle InscritsAuxExamens Pour indiquer que InscritsAuxExamens est un sous ensemble de Inscrits on utilise la contrainte OCL de la figure 6 28 En fait ceci ne suffit pas pour d crire une fonction partielle comme Inscrits Une fonction est un ensemble de couples qui ne contient pas deux couples distincts ayant le m me premi
86. le passage des tableaux en param tre des fonctions par r f rence plut t que par copie sous certaines contraintes La preuve de la validit de cette possibilit est d taill e dans 80 Nous avons d fini une m thodologie d criture d applet JavaCard pour permettre l utilisation du traducteur Java Cette traduction sp cifique est plus contraignante du fait des sp cificit de la plate forme cible En effet sur une plate forme JavaCard on ne peut pas utiliser les tableaux plusieurs dimensions les entiers longs les op rations r sultats multiples D autre part elle ne peut pas tre compl tement automatis e car le protocole de communica tion entre le lecteur et la carte est propre la g n ration de JavaCard De plus il est n cessaire de cr er les m thode process et install dans la classe qui sert de point d entr e de l ap plet 209 210CHAPITRE 14 CONCLUSION SUR LA GENERATION DE CODE OBJET PARTIR DE SP CIFICATI 14 2 Evaluation Le traducteur de sp cifications B vers les langages objets Java est Open Source dans le but de permettre une diffusion des outils aupr s de la communaut B Il est optimis en terme d occupation m moire et permet la r alisation en B d applications prouv es pour les JavaCards Un manuel utilisateur 101 et un guide d extension du traducteur 100 ont t r dig s Afin de montrer l extensibilit du traducteur d autres langages objet
87. les param tres tableaux seront pass s par r f rence fig 12 34 en respectant les r gles indiqu es juste avant MACHINE OPERATIONS T6 T5 op T4 PRE T4 1 4 BOOL THEN T4 n est pas accessible en criture T4 2 TRUE T5 T4 T6 T4 END END IMPLEMENTATION OPERATIONS T6 T5 op T4 BEGIN T4 n est pas accessible en criture T4 2 TRUE T5 T4 T6 T4 END END FIG 12 33 Un exemple de passage d un param tre tableau par r f rence 188 CHAPITRE 12 GENERATION DE CODE JAVA PARTIR DE B class boolean op boolean T4 boolean T5 boolean T6 new boolean T4 length T4 n est pas accessible criture T4 2 1 true El System arraycopy 74 0 T5 0 System arraycopy T4 0 T6 0 return T6 Fig 12 34 Traduction en Java d un param tre tableau pass par r f rence 12 8 Les substitutions 12 8 1 Introduction Une substitution est une notation math matique permettant de mod liser la transfor mation d tats par une transformation de pr dicats Dans les op rations le corps est une substitution Au niveau du BO les substitutions sont appel es instructions dans la termino logie de ClearSy pour montrer le lien avec un langage de programmation Les substitutions pr sent es ci dessous correspondent aux substitutions a partir desquelles du code source peut tre g n r lt Instruction gt lt InstructionDevientEgal
88. mod lisation objets peut exprimer de mani re l gante concise et lisible des pr dicats ventuellement complexes comme le fait B Le travail pr sent dans les sections suivantes s est d roul partir de l tude d exemples de machines abstraites B que l on a traduit en OCL A partir de ces traductions un ensemble de r gles intuitives a t labor et les traductions B vers OCL ventuellement retravaill es en fonction des r gles adopt es 7 2 R criture en OCL des invariants B 7 2 1 Introduction Les r gles sont pr sent es dans le paragraphe suivant sous la forme de cinq tableaux d quivalence B OCL les pr dicats les expressions arithm tiques les expressions ensem blistes les relations et les s quences Les quivalents ont t d duits partir des exemples de traduction intuitive en OCL de sp cifications crites en B Certaines expressions B ont t omises comme les arbres et records le domaine de la traduction est d taill dans 7 2 4 2 d autres comme la r gle 5 du tableau 7 3 qui d crit l union d un ensemble et d un l ment ens 103 104 CHAPITRE 7 GENERATION DE CONTRAINTES OCL U elem et la r gle 6 du tableau 7 3 qui d crit la soustraction d un l ment d un ensemble ens elem sont des cas particuliers mais qui se pr sentent suffisamment fr quemment en B pour que l on ait choisi de les traiter par une r gle sp cifique Nous allons pr senter ces transf
89. n r partir du nom de l ensemble car nous n avons aucune information de typage sur cette entit Certaines entit s de la machine sont typ es l aide de cet ensemble Apr s une v rification locale la machine des types la table des types des entit s de la machine A est d finie dans le tableau 12 1 Ensuite durant l analyse du projet B la v rification de types sera effectu e sur la ma chine B fig 12 8 Cette machine importe la machine A Lors de importation l ensemble 170 CHAPITRE 12 GENERATION DE CODE JAVA A PARTIR DE B IMPLEMENTATION M1_imp implementation de la machine abstraite M1 OPERATIONS op1 END IMPLEMENTATION M2_imp implementation de la machine abstraite M2 OPERATIONS op2 END IMPLEMENTATION M3_imp IMPORTS i M1 M2 OPERATIONS op i op 0p2 END END Fic 12 5 Utilisation de machines import es une seule fois ENSEMBLE P ENSEMBLE1 aa ENSEMBLE ENSEMBLE bb ENSEMBLE TAB 12 1 Type des entit s de la machine A apr s v rification locale des types ENSEMBLE est valu par l intervalle 0 255 de type P Z Durant la v rification locale des types sur B le type de ENSEMBLE1 P ENSEMBLE1 doit tre remplac par P Z la table des types des entit s de la machine A devient celle du tableau 12 2 Ceci est local et ne pose pas de probl me or l appel de l op ration op1 de la machine A dans l op ration op2 de la machine B est r al
90. op ration fig 5 30 utilis est celui de la transition du diagramme d tats transitions fig 5 29 correspondant et pr c d du nom de la classe et du caract re _ pour viter les probl mes d homonymie Les classes sont d riv es dans la m me machine 78 CHAPITRE 5 ETAT DE L ART DERIVATION D UML VERS B call fl fl gt curDestFloor setCurDestFloor fl goUp movement call fl fl lt curDestFloor setCurDestFloor fl goDown close call fl fl curDestFloor arrive fl fl curDestFloor 1 self getButton fl release visit entry openDoor exit closeDoor Fig 5 29 Diagramme d tats transitions de l ascenseur MACHINE System SEES Types VARIABLES lift lift_dir lift_curDestFloor lift_doorStatus lift_state button INVARIANT lift C LIFT A lift_dir lift DIRECTION A OPERATIONS lift_close Il PRE Il E lift A THEN SELECT lift_State Il lift_visit THEN lift_doorStatus Il status_closed lift_State Il lift_ready ELSE skip END END END FIG 5 30 Sp cification de la partie system de l ascenseur Au contraire de Meyer les actions d entr e et de sortie d tats sont prises en compte En effet l action de sortie de l tat source et celle d entr e de l tat cible sont d riv es dans 5 4 DERIVATION A PARTIR DE DIAGRAMMES D ETATS TRANSITIONS 79 MACHINE Types SETS OBJECTS DIRECTION direction_up direction_d
91. par R2 MACHINE AM SETS xX Y VARIABLES R1 R2 INVARIANT RIEXSYA RERI14Y END F1G 6 13 Machine utilisant des relations Remarque La notation exprim e sur la figure 6 14 n est pas la plus concise possible Si dans la sp cification B un type de couple n est trouv qu une fois alors la traduction peut tre rendue plus lisible en utilisant comme nom de la classe le nom de la relation au lieu du nom du produit cart sien La figure 6 15 est une autre traduction de la sp cification B de la figure 6 13 qui suit ce principe Le domaine et le codomaine pour les ensembles de couples produit FIG 6 14 Mod lisation des relations 6 2 DE LA SPECIFICATION B AU DIAGRAMME DE CLASSES 93 lt lt rel gt gt R1 Fic 6 16 Diagramme de classes d une machine avec une fonction F de X dans Y cart sien relation fonction injection bijection et surjection sont d finis sur le diagramme de classes par des noms de r les Les objets instanci s des classes E_R1 et E_R2 repr sentent chacun un couple des relations B respectives R1 et R2 6 2 4 3 Les fonctions Les fonctions sont des relations qui ne contiennent pas deux couples distincts ayant le m me premier l ment Une fonction se traduit exactement comme une relation figure 6 14 Afin de caract riser les diff rents types de fonction injection surjection bijection partielle ou totale des st r otypes paragraphe 6 2 5 sont ajout s sur le diagramme
92. precondition Substitution substitution public Precondition public void setFields BObject values precondition Predicate values 0 substitution Substitution values 1 Fic 15 6 Autre exemple de classes Java de la BOL correspondant aux substitutions pr conditions une aide base d ic nes pour les symboles math matiques utilis s dans la notation B l dition de plusieurs fichiers simultan ment l appel du v rifieur de types et l affichage des erreurs la tradution en diagrammes UML diagrammes de classes la traduction complete d un projet B complet en HTML avec les liens hypertextes correspondant aux liens sur les machines vues import es etc clauses SEES IMPORTS etc la traduction en Java 15 3 1 L outil B2UML B2UML est un des outils en cours de r alisation fig 15 8 Son but est de supporter la d marche de r ing nierie de B vers UML que nous proposons en permettant d appliquer les r gles m thodologiques un nombre suffisant d exemples et ainsi valider notre d marche partie 1 Il permet actuellement d extraire les diagrammes de classes et certaines contraintes OCL Il part des fichiers XML un fichier par machine pour produire un r sultat qui est exploitable par l outil libre ArgoUML version 0 15 4 Ce r sultat est compos de fichiers XMI XML METADATA INTERCHANGE FORMAT contenant les informations relatives la mod lisation UML et du projet A
93. preuve en B Par cons quent elles n apparaitront pas dans le diagramme d activit Les instructions qui seront traduites sont Inst_1 Inst_n Inst_n 1 Dans le diagramme d tats transitions correspondant la traduction de l instruction 148 CHAPITRE 9 DIAGRAMMES DE SEQUENCE ET D ACTIVITES INITIALISATION Inst_0 OPERATIONS main VAR ii IN ii 20 WHILE ii 0 DO Inst_1 Inst_n INVARIANT ti NAT VARIANT ti END Inst_n 1 END F1G 9 22 Une boucle en BO WHILE fig 9 23 on observe une boucle g n r e par les transitions et tats issus de la traduc tion des instructions appartenant au corps de la boucle WHILE La condition en fonction de la variable ii permet d ex cuter les instructions internes la boucle ou d en sortir ce qui est visible sur le sch ma La sortie de la boucle passe par l tat En 1 La branche du diagramme qui correspond la boucle est constitu e des tats E2 En Inst_n 1 Inst_n En 1 Inst_2 ii Of nst_1 elsej Inst_n 1 FIG 9 23 Traduction d une boucle 9 3 6 Appel d op rations param tres et valeurs de retour En B op rationnel les sp cifications poss dent des clauses de composition Elles importent d autres machines appartenant au m me projet B dans le but d en utiliser les services op rations fig 9 24 Il existe une synchronisation entre la machine principale point d entr e de Pex cution du projet et les autres machi
94. que v1 et v2 ne sont jamais ouvertes en m me temps ce qui se traduit dans l invariant par v1 ouvert gt v2 ferme A v2 ouvert gt v1 ferme Les diagrammes des variables v1 et v2 respectivement D 1 et D 2 sont les suivants figure 8 30 On calcule le diagramme de M1 Dy1 fig 8 31 par le produit synchronis des diagrammes not s d fini dans 83 La synchronisation est r alis e l aide des couples d v nements de transitions qui apparaissent dans les deux diagrammes fermer fermer qui sont mis en jeu par le produit synchronis ainsi que les v nements qui n apparaissent que dans l un des deux diagrammes ouvrir_v1 ouvrir_v2 Dm Dy Dy2 ouvrir_vl ouvrir_v2 8 11 L EXEMPLE DU ROBOT 127 vi v2 fermer ferme ouvrir_v1 ouvrir_v2 fermer IN v2 ferme fermer IN v1 ferme Fic 8 30 Automate des variables v1 et v2 fermer fermer ouvrir_v2 ouvrir_v1 fermer fermer FIG 8 31 Automate final de la machine M1 On peut alors v rifier le respect de la r gle de gestion R par le syst me Il n existe pas d tats o les deux vannes sont ouvertes en m me temps 8 11 L exemple du Robot L exemple suivant est un cas d tude 2 r alis partir d une sp cification crite selon une approche B v nementielle 8 11 1 Pr sentation Le syst me physique piloter est sch matis dans la Fig 8 32 Il est compos de trois dispositifs un dispositif d a
95. ralisation 5 3 1 Motivations Du fait des diff rences marqu es entre les propri t s du langage B et UML on est oblig de modifier compl tement l organisation d finie dans les vues UML pour la d river en B Meyer ne tient pas compte du fait qu une m thode UML peut appeler une autre m thode de la m me classe Ceci se d rive par une op ration qui appelle une autre op ration de la m me machine On ne peut pas le r aliser en B car les appels mutuels peuvent faire apparaitre des cycles sans fin De plus il ne prend pas en compte les probl mes d homonymie des attributs et des m thodes qui vont appara tre dans la m me sp cification D autre part l utilisation des diagrammes de r alisation diagrammes d interaction ou d activit vont permettre de d river le corps code des op rations et donc les appels d autres op rations Ces appels sont possibles en B la condition qu ils ne soient pas cycliques Un cycle d appel est une op ration op1 qui appelle op2 qui appelle elle m me op1 En B l op rateur parall le utilis dans les machines abstraites n autorise pas l appel de deux op rations de la m me machine incluse clause INCLUDES 5 3 2 D rivation des prototypes et appels d op rations Les prototypes d op rations sont d riv s de la m me mani re que pour les travaux de Meyer d crits dans les paragraphes pr c dents La diff rence r side dans le renommage de l op ration En effe
96. rents l ments concernant les constantes sont extraits des diff rentes clauses la constante est d finie dans la classe et non dans les instances de machine 12 6 LA TRADUCTION DES DONNEES 177 CONCRETE_CONSTANTS constante PROPERTIES constante NAT VALUES constante 10 Fic 12 15 Une constante en B static final int constante 10 Fic 12 16 Traduction d une constante en Java Une constante B peut tre un entier un bool en un l ment d un ensemble num r ou abstrait un intervalle fini et non vide ou un tableau Remarques La clause CONCRETE_CONSTANTS peut tre d finie indiff remment dans les ma chines abstraites dans les raffinements ou dans les implantations Les valeurs donn es aux constantes dans les clauses VALUES peuvent faire intervenir des entit s ensembles constantes d finies dans d autres machines 12 6 4 Les variables concr tes Ces variables correspondent une d finition de donn es modifiables Elles sont d finies en B fig 12 17 dans la clause CONCRETE_VARIABLES typ es dans la clause INVARIANT et valu es dans la clause INITIALISATION Une variable concr te B sera traduite en une variable dans un langage informatique Une variable concrete B peut tre un scalaire ou un tableau La notion de variable existe dans les langages informatiques La traduction fig 12 18 est relativement ais e les diff rents l ments concernant les variables
97. repr sentant le projet B Une impl mentation en Java de la machine de base BT_IO fig 13 5 utilis e est rajout e automatiquement au projet Il n y a dans la sp cification B qu une instance du porte monnaie lectronique aussi Voptimisation est appliqu e le porte monnaie est repr sent par une classe dont les champs 13 4 GENERATION DE CODE JAVACARD 205 et les m thodes sont statiques fig 13 6 et 13 7 Cette strat gie est moins gourmande en m moire que celle qui vise utiliser une classe dont les m thodes et champs ne sont pas statiques 13 4 G n ration de code JavaCard 13 4 1 L applet JavaCard du porte monnaie lectronique Cette applet est une application JavaCard classique d velopp e dans 12 Quel que soit le processus de d veloppement utilis manuel fig 13 8 ou semi automatique fig 13 9 on est oblig de prendre en compte les sp cificit s de la JavaCard d crite en 13 2 1 On peut remarquer que Wallet h rite de la classe Applet Une fois l applet install e l environnement syst me appel le Java Card Runtime Environment appelle la fonction insta11 celle ci est s lectionn e puis doit traiter les commandes par la fonction process Cette fonction re oit des paquets APDU envoy s depuis le terminal dans lequel se trouve la carte et doit les interpr ter pour r cup rer les informations qui s y trouvent Seule l op ration de cr dit est ici donn e 13 4 2 Le processus de d veloppement
98. tats transitions D autre part certains travaux ont mis en vidence la possibilit de traduire une sp cification B en un syst me de transitions tiquet s 16 5 4 1 D rivation de statecharts en machines abstraites Dans cette partie un r sum des m thodes utilis es par Sekerinski 84 et Meyer 73 est expos Les deux m thodes sont identiques dans le principe La diff rence r side dans le fait que la d rivation d crite par Meyer est attach e un diagramme de classes dont la d rivation est d finie dans la partie pr c dente 5 4 DERIVATION A PARTIR DE DIAGRAMMES D ETATS TRANSITIONS 73 Fic 5 15 Des tats 5 4 1 1 Les tats Les tats du systeme sont symbolis s par un carr aux angles arrondis fig 5 15 Ils sont nomm s de S1 a Sn SETS S 1S1 Sny VARIABLES s INVARIANT ses Fic 5 16 D rivation des tats selon Sekerinski Pour Sekerinski ils deviennent les l ments de l ensemble num r S Ensuite il suffit de cr er une variable pour d finir l tat courant du syst me L ensemble num r est utilis pour le typage de variables scalaires SETS CLASS_STATE 51 Sn VARIABLES class_state INVARIANT class_state Class CLASS_STATE INITIALISATION class_state Fic 5 17 D rivation des tats selon Meyer Meyer utilise une fonction totale classe_state dont le domaine correspond l identifiant d objet fig 5 17 Les autres diff rences entre les d
99. termine au sens B signifie que le pr dicat term A est vrai le lien entre l v nement B E et les transitions associ es au syst me de transitions est post e rel E On en d duit pre e rel E et pre e str E Nous sommes int ress s par les tats atteignables ces tats peuvent tre construit inductivement depuis l tat initial 5 7 Conclusion L int gration des deux types de m thodes formelle et semi formelles mettent en jeu essen tiellement deux diagrammes qui sont les diagrammes de classes et d tats transitions Ceci permet une mod lisation abstraite des structures de donn es et du comportement du syst me sp cifi la fois formellement et l aide de vues graphiques La d rivation des diagrammes de classes en B fait appara tre des structures de donn es qui ne sont pas forc ment naturelles tandis que la d marche utilis e lors de la d rivation des diagrammes d tats transitions semble uniforme ou presque quelque soit les travaux consid r s Certains travaux utilisent d autres diagrammes comme les diagrammes de cas d utilisation et d activit s Ces travaux sont tr s int ressants mais il s est av r que la d rivation des mod les UML engendre des machines B compliqu es et difficiles comprendre d une part et d autre part leur d rivation est d licate mettre en oeuvre sur certains point comme le montre les sections 5 4 2 et 5 3 D autre part il est dif
100. thode d un objet par celle d un autre Ils peuvent aussi signifier l envoi de donn es la cr ation ou la destruction d un objet ou d autres op rations Un objet recevant un message peut y r pondre sans que cela soit syst matique OBJET1 OBJET2 Message R ponse Fic 4 12 Les messages d un diagramme de s quence 4 5 3 Temps d ex cution Lorsqu un objet OBJET1 envoie un message un autre objet OBJET2 ce message peut tre un appel d ex cution d une m thode Dans ce cas le temps qui s coule entre l arriv e du message et le renvoi ventuel de la r ponse est un temps d ex cution que l on repr sente par un rectangle sur la ligne de vie de l objet concern D autre part la demande d ex cution de la m thode provient d une m thode du premier objet qui s ex cute selon une dur e qui englobe la dur e d ex cution de la m thode appel e OBJET1 OBJET2 Message R ponse_ e l l FIG 4 13 Diagramme de s quence avec temps d ex cution des m thodes 4 5 4 Conditions Lors de l utilisation d expressions conditionnelles la ligne de vie peut tre d doubl e fig 4 14 pour permettre d ex cuter l une ou l autre m thode la m me date Les messages qui d terminent l ex cution conditionnelle des deux m thodes ont la m me origine La condition est crite entre crochets devant l appel de la m thode 4 5 5 Pseudo code On peut aussi ajout
101. timents sont repr sent s par les ensembles abstraits BATS et PERS les autorisations d acc s des personnes aux b timents sont mat rialis es par la relation aut la situation des personnes dans les b timents est repr sent e par la fonction totale sit MACHINE ControleAccesBatiments SETS BATS PERS VARIABLES aut sit INVARIANT aut PERS Y BATS A sit PERS BATS A sit C aut A END F1G 6 30 Extrait de la sp cification B du contr le d acc s aux b timents 6 5 COMPARAISON AVEC D AUTRES PROPOSITIONS DE TRADUCTION 101 6 5 3 Les traductions en UML 6 5 3 1 L approche interactive et incr mentale Dans l approche choisie par 32 les ensembles abstraits sont repr sent s par une classe car ils poss dent des relations avec d autres entit s relation aut et fonction totale sit autrement ils seraient repr sent s par un type de base partir de l les auteurs envisagent trois solutions repr sent es sur la figure 6 31 La relation aut d crit une relation entre deux ensembles repr sent s par des classes Cette relation peut donc tre mod lis e par une association ayant la multiplicit entre ces classes Une fois ce choix effectu il reste deux possibilit s pour la fonction totale sit Elle est d crite par une association de multiplicit 1 Elle devient un attribut de la classe PERS La relation aut peut aussi tre repr sent e par un attribut multivalu
102. travaux car notre d marche consiste a d finir un diagramme d tats transitions faisant apparaitre une partie des variables pour mettre en relief une partie du comportement du syst me relatif un aspect particulier des propri t s complexes de l invariant c est dire une r gle de gestion du cahier des charges La taille des diagrammes d tats transitions extraits d une sp cification B est une fonction exponentielle du nombre de variables et du nombre de valeur qu elles peuvent prendre Moins 8 12 COMPARAISON AVEC D AUTRES METHODES 137 on repr sente de variables plus le diagramme est lisible et exploitable Dans une optique de concision du diagramme il est donc n cessaire de restreindre au maximum l ensemble des variables repr sent es Parking entrer NbVoit lt NbMax controler_sortie _ _ _ _ A _ _ _ controler_entree sortir NbVoit gt 0 Fic 8 50 Diagramme d tats transitions relatif la machine abstraite Parking Une autre particularit de cette d marche r side dans la scission des conditions de tran sition en deux groupes conditions de d clenchement premi re condition entre crochets des transitions de la figure 8 47 NbVoit lt NbMax et NbVoit gt 0 et conditions d atteignabi lit deuxi me condition entre crochets 8 49 NbVoit NbMax et NbVoit NbMax Cette technique s applique une approche v nementielle de la m thode B o la garde
103. une transition selon Meyer 76 CHAPITRE 5 ETAT DE L ART DERIVATION D UML VERS B 5 4 1 4 Param tres conditions et actions additionnelles Pour Sekerinski les transitions peuvent tre agr ment es de param tres para condi tion cond ou d action act qui sont ext rieurs 4 la compr hension du diagramme d tats transitions fig 5 25 On constate que ces l ments sont observ s sur le diagramme d tats transitions En effet le param tre est parenth s la suite du nom de l v nement suivi de la condition externe entre crochets qui ne concerne pas les variables du diagramme d tats transitions Ensuite le caract re pr c de les actions externes qui ne concernent pas non plus les variables du diagramme d tats transitions a FIG 5 25 Une transition complexe Dans la traduction le param tre appara t la suite du nom de l v nement La condition est concat n e celle de l tat source et l action l affectation relative l tat cible fig 5 26 OPERATIONS E para IF SELECT s S1 A cond THEN s ST act END END FIG 5 26 D rivation d une transition complexe 5 4 2 Extension de la d rivation associ e au diagramme de classes Ce paragraphe traite les travaux de Ledang sur l extension de la d rivation des diagrammes d tats transitions en sp cification B Cette extension a t illustr e par l exemple de l ascen seur cit ci apr s 5 4 2 1 E
104. veloppement en B Structure d une machine abstraite Une machine Bie 425 4 pe ee a ag gate Re we a ed for He ie La machine abstraite MachineA Le raffinement de MachineA Graphe de d pendance d un projet B Une classe pourvue d attributs et de m thodes G n ralisation a e G n ralisation association et multiplicit Qualification d association Une agr gation so soe a EE A a a Notation d un tat en UML Notation d un diagramme d tats transitions Notation d une transition complexe Diagrammes d tats transitions concurrents Diagrammes concurrents au sein d un tat Les acteurs d un diagramme de s quence Les messages d un diagramme de s quence Diagramme de s quence avec temps d ex cution des m thodes Utilisation de conditions dans un diagramme de s quence Utilisation de pseudo codes dans un diagramme de s quence Utilisation de contraintes temporelles dans un diagramme de s quence Les acteurs d un diagramme d activit Ex cutions concurrentes de branches d un diagramme d activit
105. 02 F Badeau et D Bert et S Boulm et M L Potet et N Stouls et L Voisin Traduction de B vers des langages de programmation points de vue du projet BOM In AFADL 2008 pages 87 102 Rennes 2003 IRISA J F Monin et G Huet Comprendre les m thodes formelles Panorama et outils lo giques Masson 1996 ISBN 2 225 85304 5 D D Okalas Ossami et J Souqui res et J P Jacquot Op rations de construction de sp cifications multi vues uml et b In AFADL 04 pages 115 129 juin 2004 B Tatibou t et J C Voisinet Plugin B type checking g n ration de code java et visualisation de projets B en HTML dans la nouvelle plate forme jbtools In Journ es du groupe B du GDR ALP CNAM Paris France 13 14 juin 2002 H Fekih et L Jemni et S Merz Transformation des sp cifications B en des dia grammes UML In AFADL 2004 7th Conf rence Approches formelles pour l aide au d veloppement de logiciels pages 131 146 Besancon France juin 16 18 2004 BIBLIOGRAPHIE 247 33 34 35 36 37 38 La 89 40 41 42 43 44 45 46 47 48 49 50 N Stouls et M L Potet Explicitation du contr le de d veloppements B v nementiel In AFADL 04 pages 13 28 juin 2004 N Stouls et M L Potet et X Morselli G n Syst G n ration d un syst me de tran sitions tiquet es partir d une sp cification B v nementiel In AFADL 04 pages 317 320 juin 200
106. 2 1 ly y 1 x x 2 0 v ly y 1 x x 2 1 Ce qui peut s interpr ter par la substitution de raffinement doit tre coh rente avec l une ou l autre alternative de l abstraction 2 3 8 Les m canismes de composition La mod lisation des syst mes en B utilise la notion de modularit pour isoler les contraintes afin d en r duire la complexit Dans le but de cr er de grosses sp cifications tout en utilisant la modularit la m thode B utilise des m canismes de composition par les clauses suivantes SEES USES INCLUDES EXTENDS PROMOTES IMPORTS Dans les paragraphes suivants les r gles de visibilit 93 entre un composant C1 et un com posant C2 d finissent pour chaque constituant variable ensemble constante et op rations de C2 les modes d acc s applicables dans les clauses de composition de C1 Pour des donn es on distingue l acc s en lecture seule en lecture criture ou en criture seule Pour des op rations on distingue l acc s aux op rations de consultation les op rations dont la sp cification ne mo difie pas les variables de la machine et aux op rations de modification Les r gles de visibilit montrent quatre types de visibilit Tableau 2 7 Les constituants peuvent tre visibles comme un ensemble ou une variable dans un invariant l invariant ne modifie pas les valeurs des variables qui est annot V Le cas des variables ou op
107. 2 7 LES OPERATIONS 185 12 7 3 Un exemple Dans l exemple de la figure 12 30 l op ration B foo retourne trois r sultats mais ne prend pas de param tres La traduction de cette op ration fig 12 31 fait appara tre un seul r sultat ceci est impos par les concepts Java et deux parametres qui r sultent de la traduction des r sultats num ro deux et trois de l op ration B IMPLEMENTATION M_imp CONCRETE_VARIABLES varl var2 INVARIANT varl INT A var2 INT INITIALISATION varl 10 var2 20 OPERATIONS bb test v BEGIN bb BOOL var1 v END augmenter BEGIN var2 var2 1 END v1 02 bb foo BEGIN 71 varl v2 var2 bb BOOL var1 var2 END END Fic 12 30 Un exemple de passage de param tres en B 12 7 4 Retour sur la s mantique du passage de param tres en B Selon 28 en B les op rations sont d clar es au niveau des machines par un texte de la forme r op p PRE P THEN S END ou p est une liste de param tres formels d entr e et r est une liste de param tres formels de sortie Le pr dicat P est la pr condition et S la substitution corps de l op ration Un appel de Pop ration op s crit v op e o v est la liste des param tres effectifs de sortie une liste de variables et e la liste des param tres effectifs d entr e une liste d expressions La s mantique de l appel d op ration dans le B Book 3 est d finie par la r gle de substitution s
108. 4 P A Muller et N Gertner Mod lisation objet avec UML Eyrolles 2000 ISBN 2 212 09122 2 R Marcano et N L vy Transformation d annotations OCL en expressions B In AFADL 2001 pages 39 49 2001 P Behm et P Desforges et F Mejia Application de la m thode B dans l industrie ferro viaire In Application des Techniques Formelles au Logiciel pages 59 88 Observatoire francais des techniques avanc es Lavoisier TEC et DOC 1997 Chap 3 C Attiogb et P Poizat et G Sala n Int gration de donn es formelles dans les dia grammes d tats d UML In J M J z quel editor AFADL 2008 pages 3 17 Rennes 2003 F Ambert et S Chemin et B Legeard Int gration de domaines variables dans un solveur de contraintes ensemblistes In Mireille Ducass editor Programmation en Logique avec Contraintes JFPLC 2003 volume Hors serie RSTI Revue des Sciences et Technologie de l Information pages 217 222 Amiens juin 2003 Hermes Lavoisier P Facon R Laleau and H P Nguyen Mapping Object Diagrams into B Specifica tions In Springer Verlag editor Methods Integration Workshop Electronic Workshops in Computing eWiC Leeds UK March 1996 C Fischer Combination and implementation of processes and Data from CSP OZ to Java PhD thesis Univerit d Oldenburg Allemagne January 2000 R France J M Bruel M Larrondo Petrie and E Grant Rigorous object oriented modeling Integrating formal and informa
109. 4 TYPE B TYPE JAVA BOOL boolean int 4 octets 2147483648 2147483647 short 2 octets 32768 32767 jBbyte byte 1 octet 128 127 STRING String TAB 12 4 Proposition d quivalence non retenue entre les types de base B et les types Java P q Trois principaux probl mes nous ont conduit abandonner cette m thode La mise en application de cette quivalence s est heurt aux probl mes de recouvrement de types cf 12 5 1 1 qui oblige utiliser un type int ou short pour tous les types entiers bool ens et num r s Les machines de base telles que BASIC_IO utilisent le type B INT Ce type correspond selon le cas aux types jBint jBshort ou jBbyte Il aurait fallu cr er une machine pr cod e par type cit pr c demment De plus il fallait g rer le choix de l utilisation d un type ou d un autre L ajout en B des types jBint jBbyte et jBshort nous aurait oblig ajouter les th or mes permettant la preuve car il n existe pas de th or mes connus de l atelier B facilitant la preuve par rapport ces types Les obligations de preuves relatives l utilisation de nouveaux types sont de deux sortes l utilisation simple de ces types les d passements de capacit Nous nous sommes restreints aux types de bases connus en B tels que NAT INT BOOL et STRING Sachant que le but de ce traducteur est de cr er des applications pour JavaCard les types utilis s doivent tre op
110. 6 23 Contrainte relative aux bijections totales Pour une bijection F partielle la contrainte s crit comme dans la figure 6 25 6 2 5 Utilisation de st r otypes L extraction de produits cart siens relations fonctions injections bijections et surjections partielles ou totales s exprime de la m me fa on sur le diagramme de classes D un point de vue 96 CHAPITRE 6 EXTRACTION DE DIAGRAMMES DE CLASSES context AM inv F gt forAll c1 c2 E F c1 lt gt c2 implies c1 e_X lt gt c2 e_X and c1 e_Y lt gt c2 e_ Y and F gt size X gt size and F gt size Y gt size FIG 6 24 Autre criture possible de la contrainte relative aux bijections totales context AM inv F gt forAll c1 c2 E_F c1 lt gt c2 implies c1 e_X lt gt c2 e_X and F gt forAll c1 c2 E_F c1 e_X lt gt c2 e_X implies c1 e_Y lt gt c2 e_Y and F gt collect c E F c e_ Y gt includesAll Y and F gt size lt X gt size FIG 6 25 Contrainte relative aux bijections partielles graphique on ne peut pas voir la diff rence entre toutes ces entit s Afin de mieux caract riser les donn es extraites de la sp cification et de mieux tablir le lien avec ces derni res nous utilisons des st r otypes qui seront visibles sur le diagramme de classes permettant ainsi d identifier visuellement les diff rents types d ensembles de couples La liste est d finie dans le tableau 6 1 Nom Relation o cerb
111. 6 4 Tableaux dont les indices sont des valeurs num r es ou bool ennes La traduction des Tableaux dont les indices sont des valeurs num r es ou bool ennes fig 12 23 sont traduits d une mani re particuli re Il est n cessaire d utiliser des entiers comme indices par cons quent nous traduisons le type num r ou bool en par des ensembles d entiers fig 12 24 SETS Enumere el e2 e3 e4 CONCRETE_CONSTANTS tableau1 tableau2 PROPERTIES tableau1 Enumere INT A tableau2 BOOL gt INT VALUES tableau1 e1 0 e241 e3 2 e443 tableau2 FALSE gt 0 TR E 1 FIG 12 23 Tableaux dont les indices sont des num r s ou des bool ens en B 12 6 6 5 Tableaux pour repr senter des variables ensemblistes Les tableaux peuvent servir impl menter des ensembles comme dans l exemple de la figure 12 25 12 6 LA TRADUCTION DES DONNEES 181 static final int tableaul 0 1 2 3 static final int tableau2 0 1 FIG 12 24 Traduction des tableaux dont les indices sont des num r s ou des bool ens B en Java MACHINE M1 SETS VITESSE ABSTRACT_VARIABLES Vitesse C VITESSE END IMPLEMENTATION VALUES VITESSE 0 100 CONCRETE_VARIABLES Vitesselmp INVARIANT Vitesselmp VITESSE BOOL END F1G 12 25 Tableau qui repr sente une variable ensembliste 12 6 6 6 Tableaux de tableaux Les tableaux de tableaux fig 12 26 sont traduits en Java par des tabl
112. 8 40 43 45 47 47 48 49 TABLE DES MATIERES 4 3 3 Association qualification multiplicit agr gation et composition 583 4 3 4 Qualification des associations 54 4 4 Diagramme d tats transitions 55 E E ce Sse te Les rome E E E E eh oh oe E 55 AAD Trane MONS 4243 aa helm EA ds ee A R eam A 56 4 4 3 Concurrence 56 4 5 Diagramme de s quence 57 Apie Lesiobjets s dde shee abo ae a len Bree T he a amp s 57 45 2 Messages sci aok it at pes Dok qe le Re a a a ai i 58 4 5 3 Temps d ex cution 58 ALA Conditions ain es Ben ini Elan d ale eR as Une di mn EE 58 4 5 5 Pseudo code 58 4 5 6 Contraintes temporelles 59 4 6 Diagramme d activit s 59 AG Des objets h als tinu Ge bh fae add 60 4 6 2 Ex cutions concurrentes 60 4 6 3 Points de choix et conditions 60 AT Le langage OCL 4 262 ws se Raw e SH CEs A eles 61 AVA Le contexte A de nn ht ah a DR ek den Bo h fete i eo Ge 61 4 7 2 Les types de base et les op rateurs 62 4 7 3 Les types et sous types de classificateurs 62 4 7 4 Les propri t s des objets 62 4 7 5 Les va
113. 82 25 2 J R Abrial Constructions d automatismes industriels avec B In ONERA CERT editor Congr s AFADL 97 1997 J R Abrial The B Book Cambridge University Press 1996 ISBN 0 521 49619 5 J R Abrial and L Mussat Introducing dynamic constraints in b In Conference on the B method volume LNCS 1393 pages 83 128 France April 1998 Springer Verlag P Behm D velopement formel des logiciels s curitaires de METEOR In 1rst conf rence on the B method pages 3 10 1996 P Behm P Benoit A Faivre and J M Meynadier METEOR A succesful application of B in a large project In World Congres on Formal Methods pages 369 387 1999 B Bermond Des sp cifications B vers le mod le UML des donn es septembre 2002 Rapport de stage DESS D veloppement de Logiciels Sirs ALSTOM CNAM Paris F D Bert S Boulm M L Potet A Requet and L Voisin Adaptable Translator of B Specifications to Embeded C Programs In FME 2008 volume LNCS 2805 pages 94 113 Pisa Italie 2003 Springer Verlag M Bidoit and P Mosses CASE User Manual Introduction to Using the Common Algebraic Specification Language volume 2900 Springer Verlag 2004 ISBN 3 540 20766 X G Booch Object Oriented Analysis and Design with Applications The Benja min Cummings Publishing Company Inc second edition 1994 ISBN 0 8053 5340 2 P P Chen The entity relationship model Toward a unified view of data In ACM Transaction on Database Systems pages
114. 997 B Meyer Conception et programmation orient es objet Eyrolles 2000 ISBN 2212091117 E Meyer D veloppement formels par objets utilisation conjointe de B et d UML PhD thesis LORIA Universit Nancy 2 Nancy France mars 2001 E Meyer and J Souqui res Systematic Approach to Transform OMT Diagrams to a B Specification In FM 99 pages 875 895 LNCS 1708 vol 1 1999 Sun Microsystems Java card 2 2 specification and development kit url http java sun com products javacard N Nagui Raiss A formal software specification tool using the entity relationship model In Pericles Loucopoulos editor Entity Relationship Approach ER 94 Business Mo delling and Re Engineering 13th International Conference on the Entity Relationship Approach Manchester U K Proceedings LNCS 881 pages 315 332 Springer 1994 H P Nguyen D rivation de sp cifications formelles B partir de sp cifications semi formelles PhD thesis Conservatoire national des arts et m tiers Paris France d cembre 1998 S Owre J M Rushby and N Shankar PVS A prototype verification system In Deepak Kapur editor 11th International Conference on Automated Deduction CADE volume 607 of Lecture Notes in Artificial Intelligence pages 748 752 Saratoga NY June 1992 Springer Verlag D Petit G n ration automatique de composant logiciels s rs partir de sp cifications formelles B PhD thesis Universit de Vale
115. APITRE 15 LA PLATE FORME JBTOOLS 15 2 La plate forme commune Nous avons d velopp des outils permettant d une part l extraction de diagrammes UML partie 1 et d autre part la traduction vers les langages objets tels que Java et C partie2 Le point de d part de ces deux processus est un projet B Il est donc normal de d finir une plate forme commune pour factoriser le d veloppement des premi res phases d analyse du projet B 15 2 1 Architecture et principe de fonctionnement La plate forme fig 15 1 est divis e en deux grandes parties qui sont l analyseur Parser et Typechecker et la B Object Library BOL Les fichiers d un projet B sont tout d abord Projet B JBTOOLS ae XML oa 0 Diagrammes UML Fichiers Java C Fig 15 1 Architecture de la plate forme JBTOOLS analys s puis le typage de leurs entit s est v rifi Ils sont traduit en fichiers XML Les fichiers r sultats XML sont analys s pour obtenir un arbre abstrait l aide de la BOL Chaque outil appartenant la plate forme JBTOOLS comporte un module dans la BOL 15 2 2 Le TypeChecker Le TypeChecker est divis en deux sous parties le parseur B et le typechecker lui m me Le premier permet l analyse syntaxique de la sp cification B tandis que l autre permet une analyse s mantique Le principal but du Typechecker est de v rifier le typage Ce dernier est enregistr dans un
116. ARREFOUR Dans le but de prouver la convergence de la sp cification le 16 4 EXTRACTION DE VUES UML 227 nombre d it rations de la boucle est limit 20 mais il doit tre infini dans des conditions r elles de fonctionnement MACHINE MAIN OPERATIONS main BEGIN skip END END IMPLEMENTATION MAIN imp REFINES MAIN IMPORTS CARREFOUR BASIC_IO OPERATIONS main VAR ii IN STRING_WRITE Deux feux a un carrefour n STRING_WRITE Mise en service des feux n MiseEnService ii 20 WHILE ii gt 0 DO STRING_WRITE Changer les feux n ChangerFeux ii ti 1 INVARIANT ii NAT VARIANT ii END END END Fic 16 6 Le composant principal 16 4 Extraction de vues UML Dans cette section nous avons extrait tous les diagrammes dont nous avons donn le principe dans ce document de th se Il ne s agit pas d extraire syst matiquement tous les diagrammes possibles pour chaque sp cification mais de conserver les diagrammes susceptibles d aider la compr hension et la validation du syst me relativement au cahier des charges 16 4 1 Diagramme de classes Les deux sp cifications significatives du projet B en terme d invariants et d op rations au niveau abstrait sont les sp cifications des composants CARREFOUR et Feu Nous avons donc extrait de celles ci les diagrammes de classes respectifs des figures 16 7 et 16 9 depuis les pr dicats de typage de l invariant Le diagramme de classes extrait de la sp
117. B Cette extraction est arriv e maturit puisqu elle met en jeu les diagrammes de classes d tats transitions et les contraintes OCL comme la plupart des int grations d j r alis es telles que la d rivation de notations graphiques vers les m thodes formelles D autre part nous avons aussi d fini l extraction de diagrammes plus concrets comme ceux de s quence et d activit s La deuxi me contribution de nos travaux est la traduction des sp cifications B en langage compilable et ex cutable Cette traduction est cibl e sur un large domaine car elle est appliqu e aux logiciels standard l aide de Java et C mais aussi l embarqu en utilisant Java pour JavaCard Une plate forme regroupant les outils relatifs ces deux contri butions a t d velopp e afin de factoriser les d veloppements communs d analyse syntaxique et s mantique des sp cifications B Mots clefs G nie logiciel Extraction UML M thode B Traduction Validation Java et C Summary The research works about software engineering allows to think up two approach types the formal methods which allows to write and verify a system specification with a notation from mathematics and the semi formal methods object oriented which allows to model a sys tem using graphic views The departure of our works is the B formal method We provide a contribution in two states of the software development The first is the integration of the two method types by
118. CL partiellement achev et d un traducteur finalis Nous pensons tendre le domaine d ap plication de l outil B2UML d une part en terminant les fonctionnalit s de traduction vers les contraintes OCL et en y ajoutant les modules n cessaires aux extractions d autres dia grammes D autre part notre plate forme permet d utiliser l outil ProB 6 ProB 67 est un outil compl mentaire ceux d velopp s au sein du LIFC de model checking qui utilise les fichiers XML g n r s par notre plate forme http www ecs soton ac uk mal systems prob html Chapitre 16 Application et mise en oeuvre 16 1 Introduction Dans ce chapitre il s agit de mettre en application les diff rentes d marches d finies dans ce travail de th se sur un cas d tude Le cas d tude consid r est un carrefour avec plusieurs feux tricolores de circulation Nous allons appliquer les contributions de nos travaux sur ce projet B Dans une premi re partie nous extrairons les diagrammes UML et contraintes OCL puis dans une deuxi me partie nous allons exposer le r sultat de la traduction du projet en une application ex cutable 16 2 Cahier des charges Dans cette section nous allons d tailler les diff rentes r gles de gestion du cahier des charges d un carrefour poss dant deux feux de circulation tricolores 16 2 1 Pr sentation Le carrefour poss de deux feux tricolores Nous avons choisi de ne pas prendre en compte la gestion des pi ton
119. Carte puce E Sp cifications B T Fic 11 2 Objectifs du projet BOM 11 5 Etat de Part 11 5 1 Projet BOM de B vers C Le traducteur de BO sous ensemble d impl mentation du langage B vers C utilise la strat gie suivante 8 un module est une chaine de d veloppement d butant par une machine abstraite et se terminant par une impl mentation Toutes les machines utilis es clause SEES et IMPORTS par les composants de la chaine en font aussi partie Le nom de la machine abstraite racine de la chaine devient le nom du module Le module aplati est obtenu par concat nation de toutes les donn es concr tes de la chaine de d veloppement c est a dire celles de la machine abstraite des raffinements et de l impl mentation Ces donn es concr tes contiennent les ensembles concrets les constantes concr tes les variables concr tes l initialisation ainsi que les op rations de l impl mentation Les types retenus pour chaque donn e sont ceux d finis en BO Pour viter les collisions de nom entre les diff rentes donn es des diff rentes machines deux donn es ayant le m me nom dans deux composants de cha nes diff rentes ne posent pas de probl me mais ils sont concat n s dans la m me entit chaque donn e est pr fix e par le nom du module o elle appara t 28 Ceci permet de travailler avec un seul espace de nom pour le projet entier Les identifiants renomm s sont conserv s tels quels durant
120. Contraintes OCL 16 4 3 Diagramme d tats transitions 16 4 4 Diagramme de s quence 16 4 5 Diagramme d activit s 16 5 Traduction en Java V Conclusion 17 Conclusion et perspectives LGD Contributions 4 ia 3 5 2 dace we a on eo sk GS ek ees 17 1 1 Extraction de vues UML 17 1 2 Traduction vers les langages objets Java et CH 17 1 3 La plate forme jBTools 17 1 4 Synth se des contributions 17 2 Perspectives ne oe a o ti ta ERO BO AEG fe HS 17 2 1 D marche it rative entre l extraction et la d rivation 17 2 2 Am lioration de l extraction des diagrammes d tats transitions 17 2 3 Ach vement de la plate forme JBTOOLS 17 2 4 Fusion des deux m thodes Extraction Traduction 17 2 5 Validation de sp cifications relativement au cahier des charges Bibliographie 237 239 240 240 241 241 242 242 242 243 244 244 244 245 12 TABLE DES MATIERES Table des figures 1 1 2 1 2 2 2 3 2 4 2 5 2 6 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 4 11 4 12 4 13 4 14 4 15 4 16 4 17 4 18 4 19 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 Cycle de d veloppement d un logiciel Cycle de d
121. EGIN STRING_WRITE Hello world n END FIG 12 2 Machine abstraite et impl mentation 12 2 3 Sch ma de conversion des machines Un sch ma de conversion naturel consiste traduire chaque impl mentation B par une classe Dans ce cas les variables concr tes de cette machine sont traduites en variables d ins tance de la classe et les op rations en m thodes Le constructeur par d faut de la classe ou le m canisme permettant l initialisation au moment de l instanciation permet de traduire la clause initialisation Ce sch ma de traduction l avantage de proposer une gestion simple des instances de machines la complexit de cette gestion tant d l gu e au langage objet correspondant La conversion vers un langage objet peut b n ficier d un sch ma de conversion d di aux machines qui ne sont pas instanci es de multiple fois Il faut que dans ce dernier cas le langage supporte l utilisation de m thodes et de variables de classes Dans ce dernier cas la clause initialisation peut tre traduite par une m thode sp ciale devant tre appel e par la traduction de l impl mentation important cette machine 12 2 3 1 Strat gie suivie Dans l approche que nous suivons on privil gie une strat gie dans laquelle La traduction d une machine par une classe permet la g n ration d un code source compr hensible et r utilisable par le sp cifieur d veloppeur Les optimisations de bas niv
122. ERT lt PREDICAT gt THEN lt Instruction gt END Remarque on est limit par les caract ristiques du langage cible malgr les dispositifs trouv s pour pallier le manque de flexibilit du langage Java par rapport a B 198 CHAPITRE 12 GENERATION DE CODE JAVA A PARTIR DE B Chapitre 13 Vers une traduction pour JavaCard 13 1 Introduction Ce chapitre vise a expliquer les principales diff rences entre une traduction Java stan dard et une traduction pour une plate forme embarqu e du type JavaCard Nous com men ons par d tailler les sp cificit s de la plate forme JavaCard Ensuite nous montrons l ap proche pr conis e sur un exemple simple de porte monnaie lectronique Nous sp cifierons cet exemple en B puis nous donnerons la traduction pour une plate forme Java standard Nous repr senterons cet exemple sous la forme d une applet crite manuellement pour une JavaCard Enfin nous tudierons comment int grer le porte monnaie lectronique sp cifi en B en modifiant l applet pour une plate forme Java standard pour obtenir une plate forme embarqu e JavaCard 13 2 La plate forme JavaCard 13 2 1 Les sp cificit s de la plate forme JavaCard Sp cifications B Fic 13 1 D veloppement d une applet JavaCard 199 200 CHAPITRE 13 VERS UNE TRADUCTION POUR JAVACARD MACHINE BWallet CONSTANTS MAX_BALANCE MAX_TRANSACTION_AMOUNT DEFAULT_BALANCE PROPERTIES MAX_BALANCE NAT A MAX_BALANCE lt 50000 A
123. Extraction de la substitution S lection Les branches WHEN THEN sont traduites par une transition suppl mentaire 8 8 3 Substitution Pr condition La substitution Pr condition utilise un pr dicat P appel pr condition Dans le cas ou cette pr condition est vraie la substitution est ex cut e dans le cas contraire la pr condition not e P n est pas vraie et devient P on ne conna t pas le r sultat de l op ration fig 8 13 Elle est ind finie mais elle est ex cut e OP PRE P THEN x vx END Fic 8 13 La substitution Pr condition L extraction fait apparaitre le principe cit en d but de paragraphe Dans le cas ou P est vraie les transitions sont tiquet es par OP P et Vinverse par OP P fig 8 14 Pour augmenter la lisibilit de la figure 8 14 les seules transitions repr sent es sont celles entre les tats visibles qui sont VX1 VXI et VXN Les tats repr sent s par ont une transition tiquet e OP P dirig e vers VXI et des transitions tiquet es OPM P vers tous les tats du diagramme 8 8 4 Substitution Choix born La substitution Choix born est non d terministe fig 8 15 120 CHAPITRE 8 EXTRACTION DE DIAGRAMMES D ETATS TRANSITIONS OP P OP P OP P OP P FIG 8 14 Extraction de la substitution Pr condition OP CHOICE x vx OR x vx END Fic 8 15 La substitution Choix born L extraction fait apparaitre deux groupes distincts
124. G 9 7 Instructions IF et CASE 9 2 4 Les conditions Le niveau IMPLEMENTATION du langage B poss de des instructions conditionnelles Ces instructions sont IF et CASE tableau 9 7 Dans les sp cifications suivantes la branche ELSE a pour condition la n gation des conditions des branches qui la pr c dent Dans le diagramme de s quence correspondant aux deux sp cifications d finies dans le tableau pr c dent les conditions utilis es par les instructions IF et CASE sont les m mes donc on obtient le m me diagramme de s quence Les messages conditionnels ont la m me origine et se distinguent par les conditions de gardes plac es devant le message On d double la ligne de vie de l objet destinataire du message car les trois possibilit s peuvent apparaitre selon la valeur de la variable v la m me date Dans la sp cification aucune valeur n est retourn e par les op rations donc on ne repr sente pas explicitement le retour l ex cution de l op ration appelante MAIN IMP M1 MX v Value1 v Value2Jop2 and v Value2 op3 v Valuetjopt a FIG 9 8 Traduction des appels d op ration l int rieur d une instruction conditionnelle 9 2 5 Les boucles dans les diagrammes de s quence En B l instruction WHILE permet de cr er des boucles fig 9 9 On ne peut pas traduire cette instruction particuli re comme les autres Dans le diagramme de s quence correspondant on introduit du pseudo code pour
125. L en B 81 5 5 1 Types de base pr d finis OCL 82 5 5 2 Eype collectiony tud adi Mimet tae ae Hath cde a RS 82 TABLE DES MATIERES 5 6 5 7 6 1 6 2 6 3 6 4 6 5 5 5 3 Expression let in 5 5 4 Expression de post condition Extraction de syst mes de transitions tiquet es 5 6 1 Syst me de transitions tiquet es 5 6 2 Principe de construction d un syst me de transitions fini 5 6 3 Enum ration des tats Conclusion ssni aani oe og Re Oe ew pe ee PE EN a A tie Extraction de diagrammes de classes itroductions ia a a E Ae ee de a De la sp cification B au diagramme de classes 6 2 1 Les machines abstraites 6 2 2 Les variables enti res et bool ennes 6 2 3 Les ensembles simples 6 2 4 Les ensembles de couples 6 2 5 Utilisation de st r otypes Un exemple simple 6 3 1 Etude de cas Inscription d tudiants un dipl me 6 3 2 Mod lisation UML correspondante M canismes de composition 6 4 1 Visibilit travers les clauses SEES et IMPORTS 6 4 2 Clause EXTENDS INCLUDE
126. N ordre 1018 THESE Rapporteurs Examinateurs Directeur de th se pr sent e a L UFR des Sciences et Techniques Universit de Franche Comt pour obtenir le GRADE DE DOCTEUR DE L UNIVERSITE DE FRANCHE COMTE Sp cialit Automatique et Informatique Contribution au processus de d veloppement d applications sp cifi es l aide de la m thode B par validation utilisant des vues UML et traduction vers des langages a objets par Jean Christophe VOISINET Soutenue le 14 09 2004 devant la Commission d Examen M Didier BERT Charg de Recherche du CNRS au LSR IMAG Grenoble Mme Jeanine SOUQUI RES Professeur l Universit de Nancy II M Bruno LEGEARD Professeur l Universit de Franche Comt Besan on M Jean Louis LANET Ing nieur de recherche associ INRIA Sophia Antipolis M Jacques JULLIAND Professeur l Universit de Franche Comt Besan on M Bruno TATIBOU T Ma tre de conf rences l Universit de Franche Comt Besan on Remerciements Je tiens remercier tout d abord mon jury de th se Merci M Bruno Legeard pour avoir accept de pr sider mon jury de th se M Jeanine Souqui res et M Didier Bert pour m avoir fait l honneur de rapporter cette th se Leurs remarques m ont permis d am liorer la qualit de ce document M Jean Louis Lanet pour ses commentaires sur les d veloppements pratiques relatifs au domaine industri
127. RIABLES T1 T2 T3 INVARIANT T1 5 5 INT A T2 5 5 gt INT A T3 1 2 1 2 BOOL INITIALISATION T1 5 5 gt INT T2 5 5 INT T3 1 2 1 2 BOOL IMPLEMENTATION Tableaux_imp REFINES Tableaux INITIALISATION T1 5 5 1 T2 T1 T3 1H 14 TRUE 12H FALSE 251 FALSE 2 2R TRUE OPERATIONS var T3 1 2 T1 2 T2 5 END FIG 12 35 Substitution Devient gal pour les tableaux lt OperationName gt lt ExpressionScalaire gt lt Tableau gt lt String gt lt ExpressionScalaire gt lt Tableau gt lt String gt gt En Java cette substitution correspond un appel de m thode Le lorsqu il existe est traduit par Etudions sur quelques exemples les diff rentes possibilit s fig 12 37 et 12 38 L appel de fonction subit les m mes contraintes que la d finition de m thodes clause OPERATIONS en ce qui concerne les retours multiples Par cons quent il est n cessaire de faire une conversion des classes enveloppes vers les types primitifs de Java Au niveau des r sultats encapsul s il y a un num ro postfix pour viter les red clarations si une variable est utilis e plusieurs fois comme r sultat d op ration 12 8 LES SUBSTITUTIONS 191 class Tableaux int T1 new int 5 5 1 int T2 new int 5 5 1 boolean T3 true false false true void INITIALISATION Arrays
128. S et PROMOTES Comparaison avec d autres propositions de traduction 6 5 1 Introduction 6 5 2 Etude de cas syst me de contr le d acc s aux batiments 6 5 3 Les traductions en UML 6 5 4 Comparaisons de ces deux approches 7 G n ration de contraintes OCL 7 1 7 2 7 3 PA ROLE LEE D CO RE es Bee CM ET CT eos R criture en OCL des invariants B TAV Iniroducti ne 2 es due het eds M ade Gos YS eee ne Re we QE 7 2 2 Tableaux d quivalence B vers OCL 7 2 3 L exemple du Scheduler 7 2 4 Les probl mes rencontr s R criture en OCL des op rations B 7 3 1 Pr sentation des op rations B 7 3 2 Transformation en OCL d une op ration B 8 Extraction de diagrammes d tats transitions 8 1 8 2 8 3 8 4 8 5 8 6 8 7 IMTO UCI cir A Be hee A edd Be ew HE Limites de l extraction Grammaire du noyau du langage utilis Principes g n raux de traduction Das UE ss de Os us Fe Bae we Res cop dee ES ok Re as 2 Les substitutions simples Initialisation op rations et v nements 82 83 83 83 84 84 85 87 87
129. Spivey The Z notation A reference Manual 2nd edition Prentice Hall Engle wood Cliffs NJ 1992 Steria AtelierB Preuves et exemples 2001 Atelier B version 3 6 St ria Atelier B Manuel d utilisateur Technologies de l information Aix en Provence F 1998 Version 3 5 St ria Manuel de r f rence du language B Technical report St ria 2000 version 1 8 4 B Tatibouet Evaluation du traducteur Java Rapport Technique LIFC Besancon aout 2002 B Tatibouet La plate forme jBTools In Journ es outils pour et autour de B INRETS Lille France 13 14 juin 2001 B Tatibouet A Hammad and J C Voisinet From an Abstract B Specification to UML Class Diagrams In 2nd IEEE International Symposium on Signal Processing and Information Technology ISSPIT 2002 pages 5 10 December 2002 ISBN 0 9727186 0 5 B Tatibouet A Requet J C Voisinet and A Hammad Java Card Code Generation from B Specifications In 5th International Conference on Formal Engineering Methods ICFEM 2003 pages 306 318 Singapore November 2003 LNCS 2885 B Tatibouet and J C Voisinet JBTOOLS and B2UML a Platform and a Tool to Provide an UML Class Diagram from a B Specification In ICSSEA 2001 14th International Conference on Software and Systems Engineering and Their Applications volume Vol 2 Paris France December 4 6 2001 Formal Methods Session B Tatibouet and J C Voisinet Generating Statecharts from B Specifications
130. THEN cc 0 END END FIG 8 46 La machine Parking init NbVoit lt NbMax Jentrer A e l controler_entree NbVoit gt 0 sortir controler_sortie FIG 8 47 Syst me de transitions tiquet es relatif la machine Parking 136 CHAPITRE 8 EXTRACTION DE DIAGRAMMES D ETATS TRANSITIONS REFINEMENT Parking_r1 SETS Couleur_feu vert rouge VARIABLES feu INVARIANT feu Couleur_feu A cc 0 A feu vert gt NbVoit lt NbMax A cc 0 A feu rouge gt NbVoit NbMax A cc 1 gt feu vert A cc 1 A feu rouge gt NbVoit NbMax 1 A cc 1 A feu vert gt NbVoit lt NbMax 1 INITIALISATION NbVoit 0 cc 0 feu vert OPERATIONS entrer SELECT cc 0 A feu vert THEN NbVoit NbVoit 1 cc 1 END controler_entree SELECT cc 1 THEN IF NbVoit NbMax THEN feu rouge END cc 0 END sortir SELECT NbVoit gt 0 A cc 0 THEN NbVoit NbVoit 1 cc 1 END controler_sortie SELECT cc 1 THEN IF feu rouge THEN feu vert END cc 0 END END FIG 8 48 Le raffinement de la machine Parking cc 1 amp feu vert NbVoit NbMax controler entree lJentrer I NbVoit NbMax controler entree NbVoit gt Ojf softir NbVoit gt 0 sortir FIG 8 49 Syst me de transitions tiquet es relatif au raffinement Parking_r1 init controler_sortie Cet aspect de granularit n a pas t retenu dans nos
131. UML qui au del des vues graphiques dispose d un langage de contraintes appel OCL 103 Object Constraints Language qui permet de sp cifier des invariants de classe et des pr et post conditions de m thodes OCL permet de pr ciser les vues UML graphiques En outre il faut noter que si plusieurs d marches existent dans le domaine de la d rivation d UML vers B aucune n existe dans l autre sens Dans le cadre d une d marche it rative de d veloppement elle serait indispensable et permettrait la tra abilit entre la mod lisation et la sp cification 3 3 Contenu de la deuxi me partie Nous commencerons par une br ve pr sentation de la notation UML et de son langage de description des contraintes OCL Apr s un tat de l art d di principalement la d rivation de vues UML en sp cification B nous pr senterons notre premi re contribution autour de l ex traction de vues UML depuis une sp cification B Cette contribution est d crite dans quatre chapitres Deux chapitres traitent de la partie statique des sp cifications UML Le premier chapitre traitera de l extraction de diagrammes de classes suivi du deuxi me de traduction des propri t s invariantes B en contraintes OCL afin de pr ciser le diagramme de classes Les deux chapitres suivant d finiront l extraction des donn es dynamiques du syst me par les diagrammes d tats transitions de s quence et d activit s Enfin une conclusion ach vera le
132. UR fig 16 4 et 16 5 g re les changements simultan s de couleurs des feux sachant que les deux feux ne peuvent pas permettre aux v hicules de passer en m me temps sauf dans le cas particulier de l orange clignotant lorsque le syst me n est pas en tat de fonctionner MACHINE CARREFOUR SETS COUL rouge orange vert ABSTRACT_CONSTANTS suiv PROPERTIES suiv COUL gt gt COUL A suiv rouge vert A suiv vert orange A suiv orange rouge VARIABLES feu1 feu2 INVARIANT feul COUL A feu2 COUL A feul orange A feu2 orange or feul rouge A feu2 rouge or feul rouge A feu2 rouge INITIALISATION feul feu2 orange orange OPERATIONS MiseEnService SELECT feu1 orange A feu2 orange THEN feul feu2 rouge vert END ChangerFeux SELECT feu1 vert A feu2 rouge THEN feul orange WHEN feul rouge A feu2 vert THEN feu2 orange WHEN feul rouge A feu2 orange THEN feul feu2 vert rouge WHEN feu1 orange A feu2 rouge THEN feul feu2 rouge vert END END FIG 16 4 Sp cification abstraite du composant CARREFOUR 226 CHAPITRE 16 APPLICATION ET MISE EN OEUVRE IMPLEMENTATION CARREFOUR imp REFINES CARREFOUR SEES BASIC_IO IMPORTS aa Feu bb Feu INVARIANT aa vv on amp feul vert A aa oo on amp feul orange aa rr on amp feul rouge A bb vv on gt feu2 vert A bb 00 on feu2 orange A bb rr on feu2 rouge INITIALISATION aa devientOrange
133. a traduction de sp cifications B vers les langages objets Ceci est un des r sultats du projet RNTL BOM Le but tait de fournir des traducteurs optimisant pour le langage formel B ces traducteurs devant permettre une utilisation de la m thode B traduite pour des plates formes fortement contraintes de type carte puce Notre traducteur devait tre Open Source dans le but de permettre une diffusion des outils aupr s de la communaut B De plus il devait tre optimis en termes d occupation m moire et permettre la r alisation en B d applications prouv es pour les JavaCards Pour cela un traducteur optimisant a t d velopp depuis le langage de sp cification B vers les langages objets en tenant compte des restrictions de la plate forme cible 1 4 Structure du document et guide de lecture Apr s une introduction et la pr sentation de la m thode B qui est au c ur de nos travaux ce travail de th se s inscrit pour la partie 1 dans l tude de deux techniques de sp cification la m thode B et la notation UML Il s appuie sur la compl mentarit de ces deux approches et contribue l utilisation conjointe des langages formels B et des notations graphiques objets UML Cette partie est compos e des pr sentations d UML et d un tat de l art des travaux sur l int gration de ces deux m thodes de sp cification Ensuite nous pr sentons notre contribution cette int gration selon deux parties stati
134. affinement mais certaines il faut donc utiliser la clause INCLUDES et promouvoir les op rations consid r es avec la clause PROMOTES Les clauses INCLUDES et EXTENDS sont transitives c est dire que dans le cas o une machine MA qui inclut ou tend une machine MB qui fait la m me chose pour MC alors MA peut utiliser les constituants de MC comme ceux de MB Les r gles de visibilit des clauses INCLUDES et EXTENDS sont d crites dans le tableau suivant Tab 2 9 sachant que MA inclut MB ou MA tend MB Clauses de MA Gases de MA ae oe Pas ooo o Ensembles VV Constantes VV Variables gt OA ON Op rations Y M TAB 2 9 Visibilit des entit s d une machine incluse ou tendue 2 3 8 3 USES Lorsqu un composant inclut plusieurs instances de machine clause INCLUDES les ma chines incluses peuvent partager des donn es de l une d entre elles par un lien USES sur la machine propri taire des donn es L avantage du lien USES est qu il permet d utiliser les param tres formels de la machine utilis e Tab 2 10 La clause USES n est pas transitive eV Ensembles Sid SS o o C Coasts VV Variables C Oas si Cid S TAB 2 10 Visibilit d une machine utilis e 2 4 CONCLUSION 43 2 3 8 4 IMPORTS et PROMOTES Le lien IMPORTS entre une implantation MA et une machine MB permet d une part d ins tancier la machine MB dans le projet et d autre part de disposer enti rem
135. ait de la sp cification B du contr le d acc s aux b timents 100 Les trois solutions possibles en UML 101 Notie proposition dit me Gey Wom M nel bad at dd ta nn Horde 102 Extrait de la sp cification B de l exemple du Scheduler 107 Mod lisation en diagramme de classes de la machine Scheduler 107 Transformation d une propri t invariante du Scheduler 108 Transformation en OCL d une propri t invariante complexe 108 Autre extrait de la sp cification du Scheduler 110 Contrainte OCL extraite de l exemple du Scheduler 111 Des variables ess Se a tm ee aE rue 115 Extraction des variables 115 Une variable typ e l aide d un ensemble num r 116 Extraction d une variable typ e l aide d un ensemble num r 116 Extraction de la substitution Identit 117 Extraction des substitutions simples non d terministes 117 Extraction de la substitution Devient gal simple 117 Principe g n ral de l extraction 118 La substitution Blot eof ar lens A de Mn a op Gea ee eh mont Eo 118 Extraction de la substitution Bloc 119 La substitution S lection 119 Extraction de la substitution S lection
136. ancy France novembre 2002 B Legeard F Peureux and M Utting A comparison of the BTT and TTF Z test generation methods In The 2 d International Z and B Conference ZB 02 volume LNCS 2272 pages 309 329 Grenoble France January 2002 Springer Verlag X Leroy A modular module system April 1996 Research report 2866 INRIA M Leuschel and M Butler ProB A model checker for B In Keijiro Araki Stefania Gnesi and Dino Mandrioli editors FME 2003 Formal Methods LNCS 2805 pages 855 874 Springer Verlag 2003 C Loiseaux S Graf J Sifakis A Bouajjani and S Bensalem Property Preserving Abstractions for the Verification of Concurent Systems In Fomal Methods in System Design volume 6 pages 1 36 1995 A Malioukov An Object based Approach to the B Formal Method In B 98 Recent Advances in the Development and Use of the B Method pages 162 181 Montpellier France 1998 LNCS 1393 http www ifad dk BIBLIOGRAPHIE 249 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 A Mammar Utilisation de graphes pour la sp cification de formules relationnelles septembre 1998 Rapport de stage de DEA IIE INT EVE Conception des syst mes informatiques avanc s G Mariano Evaluation de logiciels critiques d velopp s par la m thode B Une approche quantitative PhD thesis Universit de Valenciennes et du Hainaut Cambr sis d cembre 1
137. ant est compos de pr dicats reli s par le connecteur A On applique donc la r gle 1 du tableau 7 1 sur les conjonctions Le pr dicat active PID est transform par la r gle 12 du tableau 7 1 en PID includesAll active La m me r gle s applique sur les deux pr dicats suivants L expression d intersection de deux ensembles gaux l ensemble vide en B ready N waiting f est repr sent e en OCL par la contrainte ready intersection waiting isEmpty obtenue en appliquant la r gle 3 du tableau 7 3 et la r gle 20 du tableau 7 1 Les autres pr dicats s obtiennent de la m me fa on en recherchant les r gles appliquer On obtient ainsi la contrainte finale de la figure 7 3 108 CHAPITRE 7 GENERATION DE CONTRAINTES OCL context Scheduler inv PID includesAII active and P D includesAll ready and P D includesAll wa iting and ready gt intersection waiting gt isEmpty and active gt isEmpty or not ready gt union waiting gt includesAll active and active gt size lt 1 and active gt isEmpty implies ready gt isEmpty Fic 7 3 Transformation d une propri t invariante du Scheduler 7 2 4 Les problemes rencontr s 7 2 4 1 Le manque de concision d OCL Dans l exemple du scheduler il n y a pas d expressions et de pr dicats tr s complexes mais si nous prenons un exemple comme le suivant ou ContenuEvacuation est une fonction partielle et AutorisationEvacuation une relation V xx yy xx gt y
138. aphiques UML Cette automatisation permet au sp cifieur B o la personne charg e d valuer la sp cification B partir du mod le UML de ne pas perdre de temps dans la recherche de la bonne visualisa tion Cette automatisation peut aussi conduire ce que cette visualisation ne soit pas la plus adapt e du point de vue de la lisibilit ou ne conduise pas aux mod les UML les plus na turels Cette restriction est peu importante puisqu il existe plusieurs mod les possibles pour exprimer un syst me r pondant au m me cahier des charges sans que l on puisse affirmer avec certitude que l une de ces solutions soit la meilleure N anmoins pour obtenir un mod le UML mieux adapt aux crit res personnels des sp cifieurs qui l utiliseront la proposition de 32 consiste envisager une traduction interactive et incr mentale qui permettra l utilisa teur de choisir chaque tape entre plusieurs alternatives de traduction afin d obtenir une visualisation naturelle Nous reprenons le niveau abstrait de l exemple propos dans 32 en montrant les diff rentes solutions envisag es dans cet article puis en comparant avec ce que nous obtiendrions par notre m thode 6 5 2 Etude de cas syst me de contr le d acc s aux batiments L exemple consid r sp cification B pr sent figure 6 30 est celui de V tude de cas du syst me de contr le d acc s aux b timents les acteurs du syst me les personnes et les b
139. arking Parking_r1 En effet l tat cc 1 de la 138 CHAPITRE 8 EXTRACTION DE DIAGRAMMES D ETATS TRANSITIONS sortir NbVoit gt 0 a n arcane controler_sortie controler_sortie controler_entree IN NbVoit NbMax sortir NbVoit gt 0 TAB 8 5 Valeurs des variables pour les tats de Dec feu figure 8 49 correspond deux tats S3 et S4 de la figure 8 52 Ces divergences proviennent de la mani re de construire le graphique Les syst mes de transitions tiquet es selon Bert Potet et Stouls sont labor s partir d une disjonction de l invariant dans la clause ASSERTION alors que les diagrammes d tats transitions selon notre d marche sont construits depuis les diagrammes respectifs des variables de la sp cification Par exemple pour l outil GeneSyst 34 il est n cessaire d ajouter la ligne ASSERTION cc 1 or cc 0 or cc 1 dans la sp cification de la figure 8 46 Chapitre 9 Diagrammes de s quence et d activit s 9 1 Introduction Les pr c dents chapitres s appliquaient extraire des vues UML depuis les sp cifications abstraites d un projet B Les impl mentations d un projet B sont crites en BO Ce sous ensemble du langage B est assez proche des langages de programmation imp ratifs tradi tionnels Par cons quent la compr hension des impl mentations est beaucoup plus ais e que celle des sp cifications abstraites N anmoins il serait int ressant d extra
140. c d argent sur la fin du d veloppement De par leur compl mentarit l int gration d une m thode formelle et d une m thode semi formelle peut apporter une am lioration notable 1 2 Choix de la m thode formelle Dans notre contexte nous avons choisi la m thode formelle B pour diverses raisons d taill es dans les lignes suivantes De nombreux travaux sont effectu s pour et autour de B dans une communaut active Une valuation quantitative a t r alis e par Mariano 71 Cette valuation est labor e par rapport a certaines caract ristiques du d veloppement formel comme la taille la complexit ou la structure Elle constitue une garantie que les sp cifications sont bien form es Cette m thode poss de des fondements th oriques solides d finis dans le B Book 3 Elle est bien outill e Il existe actuellement deux outils autour de B qui sont l AtelierB 92 et le BToolKit 15 Les services offerts par ces outils sont les suivants Analyse lexicale et syntaxique des mod les V rification du typage G n ration des obligations de preuves Prouveur automatique et interactif Traduction vers des langages cibles C ADA C etc Ils permettent l utilisation de la m thode dans le cycle de vie des projets industriels tels que le dispositif de contr le de vitesse du m tro de Calcutta 17 le projet METEOR 37 6 construction de la premi re ligne automatis e du m tro parisien Ligne 14
141. chronis entre les diagrammes respectifs de Dt1 et Type D Dil Type Dopu D Type Chgt Chgt Dchgt Dchgt Le r sultat D ps1 Type est illustr par la figure 8 44 Les valeurs des variables Df1 et Type en fonction des tats du diagramme sont not es dans le tableau 8 3 Robott Dt1 Type Chgt IN Da Chgt IN Da1 occ Dchgt IN Dchgi IN Det vid De2 vid FIG 8 44 Diagramme d tats transitions D pt1 Type TAB 8 3 Valeurs des variables pour les tats de Dpi Type Ensuite on calcule les diagrammes D pil Type Da D p 1 Type Dal Del et D p41 Type Dal De1 De2 par les produits synchronis s Du Type Dai Dpu1 Type D pa1 Dchgt Chgt Chgt arr_p D p41 Type Dai Del D pi Type Dal Dpe1 Dchgt Dchgt Chet AIT _P evac D p41 Type Dai De1 De2 D pti Type Dai De1 D pe2 Dchgt Dchgt Chgt arr_p evac Le r sultat de la concat nation des diagrammes de chaque variable D Dt1 Type Dal Del De2 dont les tapes sont les diagrammes D p41 Type Dai t D p41 Type Dat De1 est illustr par la figure 8 45 et les valeurs des variables pour chaque tat par le tableau 8 4 8 11 3 3 Validation des propri t s On peut maintenant v rifier les propri t s telles que Dt ne peut charger une pi ce que si Dt est libre vid et que Da est occup e occ Sur le diagramme d tats transitions le chargement de pi ce op ration Chgt s effectue depuis l
142. consid r e Bert traite tout le langage B y compris les syst mes nombre infini d tats en les repr sentant par des diagrammes d tats fini dont les tats sont des en sembles d finis de mani re symbolique Dans 33 cette m thode s applique aux raffinements comme dans l exemple contr le d acc s un parking en fonction du nombre de places et des voitures d j en stationnement illustr par les figures 8 46 8 47 8 48 et 8 49 de mani re ajouter des sous tats l int rieur des tats correspondant aux tats du syst me de transition de l abstraction qui par cons quent deviennent les super tats du raffinement consid r En effet les trois tats de la figure 8 47 correspondant aux valeurs de la variable cc sont conserv s dans le diagramme extrait du raffinement fig 8 49 L tat correspondant la valeur 0 de la variable cc devient un super tat incluant deux sous tats correspondant la valeur de la variable feu MACHINE Parking CONSTANTS NbMax PROPERTIES NbMax gt 0 VARIABLES NbVoit cc INVARIANT NbVoit 0 NbMax A cc 1 1 A cc 1 gt NbVoit lt NbMax A cc 1 gt NbVoit gt 0 INITIALISATION NbVoit 0 cc 0 OPERATIONS entrer SELECT NbVoit lt NbMax A cc 0 THEN NbVoit NbVoit 1 cc 1 END controler_entree SELECT cc 1 THEN cc 0 END sortir SELECT NbVoit gt 0 A cc 0 THEN NbVoit NbVoit 1 cc 1 END controler_sortie SELECT cc 1
143. correspond l extraction depuis la sp cification CARREFOUR_imp Il permet de visualiser les appels des op rations symbolis s par des mes sages entre les lignes de vie des objets 16 4 5 Diagramme d activit s Le diagramme d activit s de la figure 16 17 est extrait de la sp cification MAIN _imp L instruction WHILE de la sp cification est repr sent e sous la forme d une boucle d tats de 232 CARREFOUR aaRouge estilVert N CHAPITRE 16 estllRouge estllRouge bbhouge_ _ _ L estllVert I _ _ _ DOVE _ _ A T estiiJaune bbJaune i aaRouge TRUE et bbJayne TRUE JdevientRouge faaJaune TRUE et bhRouge TRUE Jdevierk Vert aV ert TRUE et bbRouge TRUE JdevienWaune aaRqbqe TRUE et bbJaune TRUK devientVext aaJaun TRUE et AA ientRoug TVS eS t aaJaune TRUE STRING_WRITE feu1 Jaune APPLICATION ET MISE EN OEUVRE BASIC_IO gt As ae aaVert TRUEJSTRING_WRITE feu1 Vert estllRouge estll Ver boVe A TobVert TRUEJSTRING_WRITE feu2 Vert bbJaune TRUEJSTRING_WRITE feu2 Jaune D n D Cc 5 O O O Fic 16 16 Diagramme de s quence extrait de la sp cification CARREFOUR_imp E7 a E11 Chaque tat repr sente la fin d ex cution de chaque instruction 16 5 Traduction en Java Dans cette traduction fig 16 18 16 19 et 16 20 le type de base utilis est le type short car les valeurs des variables utilis es rr vv oo et ii des imp
144. couche En effet les op rations de la premi re et de la deuxi me couches appellent les op rations de la troisi me mais ce n est pas possible Par cons quent on importe la machine de la troisi me couche dans celle de la deuxi me puis on importe celle de la deuxi me dans la premi re Dans le but de relayer l appel de la premi re couche vers la troisi me on utilise des op rations fictives dans la deuxi me couche avec le suffixe dum qui lance l appel de la v ritable op ration dans la troisi me couche 5 4 D rivation partir de diagrammes d tats transitions Les machines tats finis travers les diagrammes d tats transitions ou statecharts 50 sont utilis es depuis longtemps par diverses m thodes Les m thodes semi formelles du type d UML ont int gr dans la partie dynamique ce type de diagramme permettant de mod liser le comportement d un objet Il existe deux d rivations formelles diff rentes des diagrammes d tats transitions en B La premi re est la traduction des statecharts vers les machines abs traites dans 84 La deuxi me est parall le la d rivation d un diagramme de classes 73 pr sent dans le paragraphe pr c dent Le seul point commun aux deux versions de d rivation est les tats repr sent s par des l ments d ensembles num r s Ledang 64 a r alis une ex tension des travaux de Meyer en sp cifiant travers la d rivation les op rations d crites dans le diagramme d
145. creer pp PRE pp PID A pp E active A pp E ready U waiting THEN waiting waiting U pp END activer qq PRE qq waiting THEN waiting waiting qq IF active 0 THEN active qq ELSE ready ready U qq END END END FIG 7 5 Autre extrait de la sp cification du Scheduler 7 3 REECRITURE EN OCL DES OPERATIONS B 111 context Scheduler INITIALIZATION post active gt isEmpty and ready gt isEmpty and waiting gt isEmpty context Scheduler creer pp Elt_PID pre active gt excludes pp and ready union waiting excludes pp post waiting waiting pre including pp context Scheduler activer qq Elt_PID pre waiting includes qq post waiting waiting pre excluding qq and if active pre isEmpty then active Set qq else ready ready pre including qq endif Fic 7 6 Contrainte OCL extraite de l exemple du Scheduler Les contraintes obtenues sur l exemple du scheduler pour l initialisation et les op rations creer et activer sont les suivantes En r alit les post conditions ont t obtenues de fa on intuitive Pour l op ration activer une post condition quivalente est calcul e en 7 3 2 2 Remarque En B une op ration peut retourner plusieurs r sultats Dans la traduction UML OCL le premier r sultat est consid r comme le r sultat de l op ration et les autres sont pass s en param tres avec comme type de passage out 7
146. d un diagramme d activit 4 6 3 Points de choix et conditions Un point de choix est une condition vraie ou fausse qui d termine l orientation du flot d ex cution entre plusieurs branches du diagramme Is sont repr sent s par un losange avec une condition entre crochets appliqu e la transition comme i lt 10 dans Vexemple suivant fig 4 19 4 7 LE LANGAGE OCL 61 OBJET1 do afficher i FIG 4 19 Les points de choix dans les diagrammes d activit 4 7 Le langage OCL OCL Object Constraint Language est une contribution d IBM UML 1 1 103 Comme son nom l indique il permet d exprimer les contraintes dans le contexte UML Les contraintes d un syst me sont des informations suppl mentaires importantes qui n ont pas pu tre sp cifi es l aide d l ments de mod lisation d finis dans les diagrammes UML Ce langage formel a t con u pour qu il soit compr hensible par des informaticiens pour qu il s int gre dans la notation orient e objet d UML et pour viter des notations math matiques OCL permet ainsi de limiter les ambiguit s tout en restant accessible Il exprime les invariants au sein d une classe ou d un type contraintes qui doivent toujours tre v rifi es pour s assurer du bon fonctionnement des instances de la classe ou du type concern les contraintes au sein d une op ration contraintes qui doivent toujours tre v rifi es pour s ass
147. d finir la boucle c t de la ligne de vie des objets En introduisant du pseudo code on peut donc d limiter la boucle il ne reste plus qu ins rer les message envoy s l int rieur du corps de 9 5 DIAGRAMMES D ACTIVITES 143 IMPLEMENTATION MAIN imp IMPORTS M1 MX OPERATIONS main VAR fin IN fin 25 WHILE fin gt 0 DO M1 0p1 fin fin 1 INVARIANT fin NAT VARIANT fin END END END END FIG 9 9 Une boucle en BO la boucle dans le diagramme de s quence entre les d limiteurs de d but et de fin de boucle fig 9 10 wee while fin gt 0 do op1 end while F1G 9 10 Traduction d une boucle 9 3 Diagrammes d activit s Les machines abstraites utilisent le langage B des substitutions g n ralis es la diff rence des impl mentations qui utilisent le langage BO compos d instructions Les op rations d finies dans les impl mentations sont les raffinements des op rations des machines abstraites Elles poss dent les m mes r sultats et param tres Elles utilisent des donn es concr tes au lieu des donn es abstraites utilis es dans les machines abstraites Nous allons montrer une traduction d un sous ensemble repr sentatif de ces instructions en diagramme d activit s 9 3 1 Les acteurs du diagramme d activit s En B on peut appeler les op rations services des machines abstraites instanci es avec la clause IMPORTS Dans le cas o l op ration ne modifie pas
148. dans le paragraphe 12 5 1 d finir les bornes inf rieures et sup rieures d un tableau Dans tous les cas l id e est de laisser le compilateur Java r aliser les optimisations Nor malement il devrait pouvoir remplacer les constantes et les expressions constantes par les valeurs num riques correspondantes 12 6 2 2 Les ensembles abstraits Les ensembles abstraits se ram nent des intervalles fig 12 11 qui sont utilis s pour d finir des variables ensemblistes ou des ensembles d indices de tableau Ils seront repr sent s en Java par une classe dans laquelle sera d finie en constante la borne inf rieure et la borne sup rieure Les intervalles seront repr sent s par la classe BRange qui aura deux champs de type int appel s respectivement bornelnferieure et borneSuperieure Le construc teur de la classe BRange permettra d initialiser ces deux champs voir fig 12 12 SETS VITESSE VALUES VITESSE 0 100 Fic 12 11 Un ensemble abstrait en B Les types BOOL NATURAL et INT lorsqu ils seront utilis s en B non pour typer une variable mais comme intervalle seront traduits en Java par une instance de la classe BRange Nous avons choisi le type int utilis dans la traduction de l ensemble VITESSE fig 12 12 mais le type short aurait pu lui aussi tre choisi car il d pend du type de base choisi pour la traduction 12 6 2 3 Les ensembles num r s Le langage Java ne poss de pas de m canismes pr d
149. de r duire l explosion combinatoire en param trant une restriction sur une seule valeur du do maine de la relation N anmoins il est n cessaire de conna tre la s mantique de la sp cification donc seul l utilisateur de l application g n rant l extraction peut effectuer ce genre de manipu lation D autre part il sera n cessaire d utiliser au maximum les caract ristiques de modularit de la m thode B car lorsqu il y a trop de variables le diagramme sera quand m me illisible et inexploitable 17 2 2 2 Am lioration de la vue extraite par s lection de variables Actuellement nous extrayons un diagramme d tats transitions par machine abstraite du projet B La validation de la sp cification par rapport aux r gles de gestion du cahier des charges est r alis e l aide de ce diagramme Les r gles sont traduites dans l invariant par des propri t s que le syst me doit respecter Elles sont exprim es en fonction des variables Durant l extraction il faudrait pouvoir choisir les variables montrer dans le diagramme de mani re les isoler du reste du diagramme complet de la sp cification qui est obtenu dans notre d marche L avantage de les isoler permet de mettre en relief certains aspects du comportement du syst me et de le comparer aux r gles d finies dans l invariant L outil qui permet d extraire le diagramme d tats transitions pourra s lectionner les variables uti lis es en n uplet dans les r
150. de Ledang 64 si l ascenseur est d j appel un autre appel ne sera pas pris en consid ration avant que le premier ait abouti On cr e donc une file d attente d finie par le typage suivant call_queue C lift x FLOOR Ainsi on connait en permanence les appels de l ascenseur en attente On g re cette file d attente l aide d op rations d ajout et de suppression des l ments 5 5 TRADUCTION DES EXPRESSIONS OCL EN B 81 IMPLEMENTATION System_imp SEES Types IMPORTS Lift OPERATIONS lift_close I VAR bb IN bb lift_is Visit Il IF bb TRUE THEN lift_closeDoor Il lift_transVisitReady Il END END END FIG 5 33 Impl mentation de la machine system a 7 gt includes nr Are gt sees gt refines RTS gt uses FIG 5 34 Architecture de la sp cification B du syst me de contr le d ascenseurs 5 5 Traduction des expressions OCL en B La sp cification B d riv e doit tre compl t e par les corps d op ration et ventuellement par quelques propri t s de l invariant dont les diagrammes UML ne peuvent exprimer la totalit Le langage OCL qui fait partie int grante d UML permet de pallier les manques d expressivit des diagrammes UML car il permet d exprimer les invariants de classes et les pr et post conditions des op rations 82 CHAPITRE 5 ETAT DE L ART DERIVATION D UML VERS B 5 5 1 Types de base pr d finis OCL Les expressions relative
151. de classe ainsi que des contraintes OCL Si le F de la figure 6 16 repr sente une fonction totale st r otype lt lt fun gt gt de la sp cification B alors la contrainte OCL pr sent figure 6 17 est ajout e La contrainte OCL relative aux fonctions totales fig 6 17 signifie que pour deux objets diff rents de la classe E_F cette classe repr sente la fonction totale les objets correspondants context AM inv F forAll ci c2 E F c1 lt gt c2 implies c1 e_X lt gt c2 e_X and F size X gt size Fic 6 17 Contrainte relative aux fonctions totales 94 CHAPITRE 6 EXTRACTION DE DIAGRAMMES DE CLASSES au r le e_X sont diff rents et le nombre d objets de la classe E_F est le m me que celui de la classe E_X Les fonctions partielles se traitent de la m me mani re que les fonctions totales l excep tion de la contrainte sur le nombre d l ments de l ensemble F qui doit tre inf rieur ou gal au nombre d l ments de l ensemble de d part X Pour une fonction F partielle la contrainte pr c dente fig 6 17 s crit comme dans la figure 6 18 Cette diff rence appara t aussi entre les injections bijections et surjections totales et partielles context AM inv F forAll c1 c2 E F c1 lt gt c2 implies c1 e_X lt gt c2 e_X and F gt size lt X gt size FIG 6 18 Contrainte relative aux fonctions partielles 6 2 4 4 Injection L expression d une fonction d injection total
152. de la substitution simple et de la composition parall le Cette substitution peut s exprimer sous les deux formes suivantes 36 CHAPITRE 2 LA METHODE B xy i E F x E y F Il existe des substitutions de composition Tab 2 3 qui permettent de composer une substitution complexe avec des substitutions simples S mantique CHR IR PR eP A GR P gt CR e PSOR TAR e GR A HR KORS Ve GR TAB 2 3 Substitutions de composition et leur s mantique Conditiomnell PS OCs Choix born Choix non Borne P Pr condition PRE P THEN G END S lection SELECT P THEN G WHEN Q PSG 1 J Q H THEN H END Variable locale VAR x IN G END Vx G D finition locale LET y BE y E IN G END Vly E gt G TAB 2 4 Notation tendue des substitutions du langage B 2 3 6 Th orie des ensembles et typage La m thode B utilise la th orie des ensembles comme base de ses mod les math matiques La m thode B n est pas un langage de programmation traditionnel comme PASCAL C etc car les variables ne sont pas typ es leur d claration En effet elles sont typ es dans la clause INVARIANT l aide de pr dicats du premier ordre et par cons quent le typage est diff rent de ceux utilis s dans un langage traditionnel La seule similitude concerne les variables scalaires qui correspondent aux variables du type entier caract re etc utilis es dans les langages traditionnels Tableau 2 6 Les t
153. dition waiting waiting pre excluding qq and active pre isEmpty and active Set qq or active pre notEmpty and ready ready pre including qq Chapitre 8 Extraction de diagrammes d tats transitions 8 1 Introduction Dans ce chapitre nous pr sentons les diff rents sch mas de traduction de B vers les diagrammes d tats transitions tendus partir des publications 27 49 99 Ces sch mas concernent autant le B logiciel que le B syst me car la structure des machines est la m me dans les deux formes de B Nous d finissons dans la section suivante les limites de cette tra duction ainsi que la grammaire du noyau du langage B utilis Par la suite nous non ons les r gles de production du diagramme d tats transitions Enfin nous terminerons par une discussion propos des choix de concat nation des diff rents diagrammes produits puis sur leur interpr tation 8 2 Limites de l extraction Nous ne traduisons que les parties significatives de la sp cification B Cette traduction ne s applique qu aux sp cifications abstraites machines abstraites et raffinements poss dant des variables scalaires typ es l aide d ensembles num r s Par cons quent les variables repr sentant des relations fonctions bijections injections et surjections en sont exclues Nous nous pla ons dans un cadre o la sp cification B a un mod le nombre d tats fini En effet les diagrammes d ta
154. e 2 et 3 est que les variables de la liste v n apparaissent pas dans S il s ensuit que les param tres r sultats peuvent tre substitu s ce qui correspond un passage par r f rence C est cette r gle qui est utilis e par les traducteurs de l Atelier B Un dernier r sultat est que les param tres d entr e peuvent aussi tre pass s par r f rence sous la condition la liste des param tres effectifs d entr e ne contient aucune occurrence des param tres effectifs r sultats ni aucune occurrence des variables r f renc es dans l op ration Sous ces hypoth ses il peut tre montr que la r gle 1 est applicable sur les substitutions admises dans les impl mentations La preuve est d taill e dans 80 Cette optimisation permet 12 7 LES OPERATIONS 187 de traduire les appels d op rations B par des passages par r f rence ce qui est int ressant dans le cas de param tres de type tableau par exemple car la copie est vit e Autrement dit les appels d op ration de la figure 12 32 sont interdits Avant la cr ation x op x x x opt op x x Fig 12 32 Appels d op ration interdits des outils r alis s dans le cadre du projet BOM le passage des tableaux fig 12 33 se faisait par copie et il tait impossible de modifier un tableau pass comme param tre d entr e Pour tre plus r aliste vis vis des applications en terme de d veloppement et d conomie des ressources
155. e BWallet h T_BWallet function new_T_BWallet void T_BWallet _this T_BWallet malloc sizeof T_BWallet memset _this 0 sizeof T_BWallet return _this INITIALISATION IMPORTSs imported instances void function T_BWallet_IMPORTS T_BWallet _this _this gt initialisation FALSE end T_BWallet IMPORTS void function T_BWallet_INITIALISATION T_BWallet _this if _this gt initialisation FALSE _this gt initialisation TRUE _this gt balance 0 end T_BWallet INITIALISATION access methods T_int function T_BWallet_get_balance T_BWallet _this return _this gt balance T7 Sh Clause OPERATIONS void function T_BWallet_setBalance T_BWallet _this T_int balancelnit _this gt balance balancelnit void function T_BWallet_debit T_BWallet _this T_int debitAmount _this gt balance _this gt balance debitAmount Fic 11 1 Exemple du BWallet Sp cification B fig 13 2 traduit l aide du traducteur C de l AtelierB 160CHAPITRE 11 GENERATION DE CODE A PARTIR DE SPECIFICATIONS FORMELLES BOM passage de param tres par r f rence instanciation ou pas des machines typage fin des entiers pour conomiser la m moire Les traducteurs r alis s Java et C visent les nou velles plate formes technologiques Java et Dot Net et leurs d clinaisons pour les applications embarqu es
156. e r percutent aussi pour les op rations lors du passage de la post condition exprim e en B la post condition exprim e en OCL Les solutions consistent d une part re structurer la sp cification B pour expliciter toutes les d clarations n cessaires et d autre part g n rer les classes et les associations suppl mentaires Hormis ces probl mes les contraintes OCL g n r es nous paraissent lisibles et compr hensi bles quoique moins concises que les pr dicats exprim s en B Cela est d partiellement aux op rateurs disponibles en B qui ne poss dent pas un quivalent strict et direct en OCL mais qui s expriment par l association de plusieurs constructions 10 1 3 Synth se de l extraction des donn es statiques Les diagrammes de classes apportent une vue sur les structures de donn es utilis es dans la sp cification B Bien qu ils puissent exprimer certaines contraintes de l invariant notamment par les st r otypes le typage des variables etc ils ne peuvent pas en d crire la totalit Il tait donc n cessaire d utiliser un autre proc d comme la g n ration des contraintes OCL pour pallier ces manques Hormis quelques probl mes de concision les contraintes OCL nous paraissent lisibles et compr hensibles 10 2 Extraction des informations dynamiques 10 2 1 Extraction des diagrammes d tats transitions Nous avons pr sent l extraction des diagrammes d tats transitions depuis une sp cification
157. e Verification Research Center avril 1991 R Duke G Rose and G Smith ObjectZ a Specification Language Advocated for the Description of Standards Technical Report 94 45 University of Queensland Software Verification Research Center Queensland Australia December 1994 S Dupuy Y Ledru and M Chabre Peccoud Integrating OMT and ObjectZ In BCS FACS EROS ROOM Workshop London UK 1997 S Dupuy Y Ledru and M Chabre Peccoud Translating the OMT dynamic model into ObjectZ In 11th Conference of Z users pages 347 366 Berlin Germany 1998 E H Durr and J Van Katwijk VDM a Formal Specification Language for Object oriented Design In Computer Systems and software Engineering pages 214 219 IEEE Society Press 1992 F Bouquet et B Legeard et N Vacelet Un format f d rateur pour l valuation de sp cifications formelles en programmation logique avec contraintes In Mireille Ducass editor Programmation en Logique avec Contraintes JFPLC 2003 volume Hors serie RSTI Revue des Sciences et Technologie de Information pages 203 216 Amiens juin 2003 Hermes Lavoisier M C Gaudel et B Marre et F Schlienger et G Bernot Pr cis de g mie logiciel Masson 1996 ISBN 2 225 85189 1 A Hammad et B Tatibou t et J C Voisinet De la sp cification b vers les diagrammes d tats transitions UML In 7i me MCSEAI 2002 Maghrebian Conference of Sofware Engineering and Intelligence Artificial pages 133 143 mai 20
158. e des id es Cette plate forme de base supporte un nombre suffisant de constructions du langage B pour rendre valide les exp rimentations de recherche Cette plate forme vise un ensemble aussi large que possible de syst mes mat riels et logiciels Windows MacOs Unix en conomisant les ressources humaines C est dans cette optique qu a t effectu le choix du langage Java Cette plate forme et notamment le parser ont servi de base de construction pour de nombreux projets exploratoires Gemplus traduction 81 de sp cifications formelles B vers C pour cartes puces LSR IMAG La BoB Bo te Outils B est un ensemble de classes Java permettant de manipuler des constructions B telles que des substitutions ou des pr dicats et de notamment de calculer des pr dicats de WP plus faible pr condition G n Syst est un ensemble de classes utilisant la BoB pour g n rer des syst mes de transitions tiquet es repr sentant le comportement exact d une sp cification ou d un raffinement B v nementiel ProB Notre outil permet d utiliser ProB 67 ProB est un outil de model checking qui s ex cute sur les fichiers XML g n r s par la plate forme http lifc univ fcomte fr tatibouet JBTOOLS http www lsr imag fr Les Personnes Nicolas Stouls 3http www lsr imag fr Les Personnes Nicolas Stouls http www ecs soton ac uk mal systems prob html 213 214 CH
159. e forme jBTools 213 15 1 Introduction ee pa AS Se Re eS ee ee ba 213 15 2 La plate forme commune 214 15 2 1 Architecture et principe de fonctionnement 214 15 2 2 Le TypeChecker lt i aa ans al Wek ok hed Mot Meade Nk e 214 15 23 Le Contexte Be uc o e RE eee a ne 215 15 24 Le format eM Pig ails Gig fk date SUR Din Re ruine 215 15 2 5 La traduction du typage en XML 215 15 2 6 La B Object Libiary BOL lt lt irradia 8 eee 215 15 3 Bes outils e e OS eee Rae A BS 217 15 3 1 L outil B2UMD lt gt raros See Oe wa PaaS eS eee eee eS 218 15 3 2 Traducteur vers Java O chia Fee ag on ie BY Bee Be a ae ee 221 IoA Conclusiony a 60 2 43 Soa sella wien yack e ne oa we 221 16 Application et mise en oeuvre 223 16 L ntroduction ss es Aviat Me Goa eg see ty eG ae Bae SS a a whet 223 16 2 Cahier des charges 223 16 2 1 Pr sentation aneri gen e a a nee A RU he 223 16 2 2 Propri t s du syst me 224 16 3 Sp cifications du projet B 224 16 3 1 Le Composant Feu su anus Re tai de venait Be de di dat dr die ws 224 TABLE DES MATIERES 16 3 2 Le composant CARREFOUR 16 3 3 Composant principal 16 4 Extraction de vues UML 16 4 1 Diagramme de classes 16 4 2
160. e monnaie lectronique 200 13 3 Impl mentation B du porte monnaie lectronique 201 13 4 La sp cification B de l exemple du porte monnaie 202 13 5 Traduction de l applet BWallet 203 13 6 Code Java g n r pour l exemple du porte monnaie contenu du porte monnaie 204 13 7 Code Java g n r pour l exemple du porte monnaie point d entr e du code Java206 13 8 Le porte monnaie lectronique pour JavaCard crit manuellement 207 13 9 Impl mentation JavaCard de la classe Wallet 208 15 1 Architecture de la plate forme JBTOOLS 214 15 2 D but de la grammaire XML 216 15 3 Traduction du typage en XML 216 15 4 Une partie de la grammaire des fichiers XML 217 15 5 Exemple de classes Java de la BOL correspondant aux substitutions parall les 217 15 6 Autre exemple de classes Java de la BOL correspondant aux substitutions WT CCOMARLLONS o be aa e ate Beene A Ne oe ata tds st 218 15 7 Le plugin pour jEdit 219 15 8 Architecture des diff rents outils 219 15 9 Diagramme de classes de la gestion des inscriptions 221 16 1 Graphe de d pendance du projet de carrefour 223 16 2 Sp cification abstraite du composant Feu 224
161. e partie du fichier XML de sortie du typechecker appel Contexte B Les v rifications de type des entiers ont t limit es sur le type Z en ne tenant pas compte des d passements maximum et minimum ceci est r serv au prouveur En effet le typage des expressions enti res Z N Ni etc est P Z cf Tab 2 6 selon 93 Dans ces conditions on ne cherchera pas tester si un entier par exemple 100 est bien compris entre les bornes 15 2 LA PLATE FORME COMMUNE 215 minimales et maximales d une variable var typ e de la mani re suivante var 0 15 Selon le cycle de d veloppement B fig 2 1 la sp cification est prouv e avant la traduction 15 2 3 Le Contexte B Le contexte B correspond une m morisation de l existence et du type des entit s locales a la machine et des entit s des machines abstraites que la machine propri taire du contexte rafine I est g n r lors des deux phases d analyse des composants B lors de l analyse syntaxique et s mantique lors de la v rification du typage En r alit la majeure partie des entit s est cr e lors de la premi re phase Ces entit s sont les suivantes ensembles num r s ou valu s machines r f renc es et type de r f rencement constantes abstraites et concr tes variables abstraites et concr tes op rations arguments et r sultats Certaines sont m me typ es cet instant sachant que leur type peut tre r valu
162. e prend le nom de l v nement ou de l op ration auquel elle se rapporte 8 8 Les substitutions de composition Dans cette section on utilisera la substitution simple Devient gal simple pour simplifier les r gles de production de la traduction Il est n anmoins possible d utiliser n importe quelle substitution simple Les r gles de production seront modifi es de mani re remplacer la seule transition de la substitution Devient gal simple par la ou les transition s correspondante s la traduction de la substitution utilis e 8 8 1 Substitution Bloc La substitution Bloc s ex cute sans aucune condition fig 8 9 OP BEGIN x vx END Fic 8 9 La substitution Bloc L extraction fait apparaitre une transition depuis chaque tat de la variable car cette substitution ne poss de aucune restriction et dirig e vers l tat qui correspond la valeur vx fig 8 10 8 8 LES SUBSTITUTIONS DE COMPOSITION 119 Fic 8 10 Extraction de la substitution Bloc 8 8 2 Substitution S lection La substitution S lection utilise un pr dicat P comme condition d ex cution fig 8 11 Si ce pr dicat est faux aucune action n est ex cut e OP SELECT P THEN x vx END Fic 8 11 La substitution S lection Etant donn que l on ne conna t pas la nature du pr dicat P on le fait appara tre dans les tiquettes de transition de l extraction par OP P fig 8 12 OP P Fic 8 12
163. e revient donner les contraintes d une fonc tion totale plus une contrainte suppl mentaire qui exprimera l injection comme dans la figure 6 19 context AM inv F gt forAll c1 c2 E F c1 lt gt c2 implies c1 e_X lt gt c2 e_X and F gt forAll c1 c2 E_F c1 e_X lt gt c2 e_X implies c1 e_Y lt gt c2 e_Y and F gt size X gt size FIG 6 19 Contrainte relative aux injections totales La contrainte OCL relative aux injections totales fig 6 17 signifie que pour deux objets diff rents de la classe E_F cette classe repr sente l injection totale les objets correspondant au r le e_X sont diff rents Dans ce cas les objets correspondant au r le e_Y le sont aussi Le nombre d objets de la classe E_F est le m me que celui de la classe E_X Pour une injection F partielle la contrainte s crit comme dans la figure 6 20 context AM inv F gt forAll c1 c2 E_F c1 lt gt c2 impliesc1 e_X lt gt c2 e_X and F gt forAll c1 c2 E_F c1 e_X lt gt c2 e_Ximplies c1 e_Y lt gt c2 e_ Y and F gt size lt X gt size FIG 6 20 Contrainte relative aux injections partielles 6 2 DE LA SPECIFICATION B AU DIAGRAMME DE CLASSES 95 6 2 4 5 Surjection Pour une fonction de surjection totale elle s exprime de la m me mani re qu une injection totale l exception de la contrainte relative la surjection fig 6 21 context AM inv F gt forAll c1 c2 E F c1 lt gt c2
164. e s quence Ceci n est pas un probl me car on n appauvrit pas la sp cification B travers l extraction Les diagrammes d ac tivit s montrent surtout l ex cution interne des op rations dans le d tail De ce fait il fallait utiliser les impl mentations des composants B en langage BO car les sp cifications abstraites ne poss dent pas le niveau de d tails ad quat pour ce type d extraction Nous remarquons aussi le recouvrement par l extraction des appels d op ration des aspects de communication entre les objets sch matis s par les diagrammes de s quence 10 2 3 Synth se de l extraction des informations dynamiques Les diagrammes d tats transitions permettent d exprimer le comportement de mani re conceptuelle et plut t abstrait Au contraire les diagrammes de s quence et d activit s montrent une vue d taill e du comportement du syst me Il existe un recouvrement de l extraction des diagrammes de s quence par l extraction des diagrammes d activit s L extraction de l appel d op ration du diagramme d activit s reprend les principes des diagrammes de s quence Les diagrammes d activit s sont une variante des diagrammes d tats transitions dans un registre plus concret 154 CHAPITRE 10 CONCLUSION SUR L EXTRACTION DE VUES GRAPHIQUES Troisi me partie G n ration de code source pour des langages a objets 155 Chapitre 11 G n ration de code partir de sp cifications formelles
165. e sch mas d extraction de vues UML depuis les sp cifications B Les dia grammes trait s dans cette strat gie sont au nombre de quatre diagramme de classes diagramme d tats transitions diagramme de s quence diagramme d activit s De plus nous traduisons les propri t s complexes de l invariant et les pr et post conditions des op rations en langage OCL ce qui permet de les adapter aux diagrammes de classes donc d uniformiser le r sultat complet de l extraction Ces m thodes d extraction sont r alis es partir d un sous ensemble du langage B dont les arbres et records sont exclus D autre part l extraction de diagrammes d tats transitions est labor e partir du m me sous ensemble restreint aux sp cifications dont au moins une variable est typ e l aide d ensembles num r s La deuxi me contribution est une traduction partir d impl mentations B crites l aide du sous ensemble BO langage d impl mentation de B vers les langages compilables objets tels que Java et C Ces deux contributions tant r alis es autour de B nous avons choisi de factoriser les phases pr liminaires d analyse syntaxique et de v rification de types des projets B dans une plate forme commune 17 1 1 Extraction de vues UML Le cycle de d veloppement du langage B fig 2 1 est complet Il permet de g rer enti rement le cycle de d veloppement logiciel fig 1 1 partir de la phase C
166. e transitions par substitution simple contenu dans les substitutions de composition imbriqu es Les conditions des transitions sont calcul es par concat nation des conditions des substitutions principales et secondaires o se situe la substitution simple Le groupe de transitions correspondant la substitution simple SUB_SIMPLE a donc pour 8 10 CALCUL DU DIAGRAMME SIGNIFICATIF PAR SELECTION DE VARIABLES125 OPS SUB_PRINCIPALE_B1 CondP1 THEN SUB_SECONDAIRE_B CondS THEN SUB_SIMPLE SUB_SECONDAIRE_B2 CondS2 THEN SUB_SIMPLE gt 2 END END Fic 8 28 Imbrication de substitutions de composition condition CondP A CondS Le calcul des transitions du diagramme est r alis de la mani re d crite dans les paragraphes pr c dents selon la substitution principale en reproduisant le groupe obtenu autant de fois que de branches de la substitution secondaire sans oublier de calculer la condition de transition du groupe 8 10 Calcul du diagramme significatif par s lection de variables Chaque op ration est traduite par un morceau de diagramme d tats transitions relatif une ou plusieurs variables Pour obtenir le diagramme d tats transitions complet d une variable il suffit de concat ner tous les morceaux relatifs la variable Dans chaque sous diagramme les transitions sont issues d un tat et se dirigent vers un autre Il suffit de repro duire les transitions de chaque sous diagramme sur le diagramme complet par rapport aux
167. eMarier p Personne aaaa booleen FIG 4 1 Une classe pourvue d attributs et de m thodes La visibilit des attributs et m thodes est d finie par les trois caract res suivants et Le caract re private signifie que item est priv c est dire qu il est visible uniquement l int rieur de la classe Le caract re public signifie au contraire qu il est visible l ext rieur autant qu l int rieur Enfin protected signifie que les classes filles h riteront de cet item travers une g n ralisation Les attributs sont des propri t s nomm es d une classe Ils d crivent les donn es des objets On obtient par concat nation de leur valeurs l tat de l objet instanci de la classe Ils sont d crits par une cha ne de caract res qui comprend les notions suivantes visibilit nom type valeur_initiale Un attribut est obligatoirement nomm par contre sa visibilit son typage et sa valeur initiale sont facultatifs Les m thodes d finissent le comportement des objets cependant elles sont seulement cit es et ne participent pas la description du comportement des objets travers le diagramme de classe Les m thodes sont sp cifi es par le prototype suivant visibilit nom parametre type valeur_par_d faut type Tout comme pour les attributs le typage de la valeur de retour le typage et la valeur par d faut des diff rents pa
168. eau remplacement des constantes litt rales par les valeurs sont laiss es la charge du compilateur du langage cible Les optimisations pour savoir s il faut permettre ou non la cr ation d instances partir d une classe sont g r es par le traducteur de B vers le langage cible Les m canismes suppos s fiables des langages objets sont utilis s pour disposer d un support de cr ation d instances et d un espace de nommage L utilisation raisonn e des possibilit s offertes par les langages objets permet de ne pas tre confront des contraintes justifiant la r alisation de traducteurs complexes et donc non fiables 12 3 LA REPRESENTATION D UN PROJET B 167 12 3 La repr sentation d un projet B A chaque machine d impl mentation B sera associ e une classe Cette classe peut repr senter la machine s il n y a qu une seule instance de celle ci dans le projet B Afin de ne pas avoir a g rer les modificateurs d acc s public private protected et package pour les fonctions et les variables des classes un package servant d espace de noms sera d fini et chacune des classes g n r es appartenant au projet B sera d finie dans ce package Les droits d acc s aux entit s seront ceux du package 12 4 La repr sentation des machines en Java 12 4 1 Machines B et sch mas de traduction Java A chaque machine d impl mentation B sera associ e une classe Cette classe peut repr sente
169. eaux plusieurs dimensions fig 12 27 12 6 7 Les param tres des machines 12 6 7 1 Les param tres formels Les param tres formels fig 12 28 des machines B peuvent tre des ensembles abstraits des l ments typ s dans la clause CONSTRAINTS des instances de bool ens d entiers des l ments appartenant un ensemble abstrait 182 CHAPITRE 12 GENERATION DE CODE JAVA A PARTIR DE B CONCRETE_CONSTANTS tableau1 tableau2 PROPERTIES tableaul 0 2 0 1 INT A tableau2 0 1 0 3 INT VALUES tableaul 0 gt 0 gt 12 1 0 1 5109 13 151 2 0H 14 1 2 tableau2 0 1 0 3 5 F1G 12 26 Tableaux de tableaux en B static final int tableaul 12 0 13 1 14 2 static final int tableau2 new int 1 0 1 3 0 1 static for inti 0 i lt 1 i 1 Arrays fill tableau2 i 5 F1G 12 27 Traduction en Java de tableaux de tableaux 12 6 7 2 Les param tres effectifs Les param tres effectifs fig 12 28 qui suivent le nom de la machine dans la clause IM PORTS peuvent tre Des scalaires des entiers des bool ens des valeurs d un ensemble num r Des ensembles num r s intervalles sur les entiers pr d finis BOOL NAT et INT 12 6 7 3 La traduction en JAVA Ces diff rents param tres apparaissent dans l ordre dans la fonction INITIALISATION fig 12 29 Cette fonction est appe
170. ee 4 oA IN Impl mentation Codage Implantation S Test F1G 1 1 Cycle de d veloppement d un logiciel critique En effet les probl mes rencontr s lors de cette tape remettent en cause toutes les activit s du d veloppement Plus g n ralement les erreurs rencontr es chaque tape peuvent remettre en cause une plusieurs voire toutes les tapes qui la pr c dent d o l int r t de l automatisation du maximum d activit s dans le cycle de d veloppement Les m thodes utilis es pour guider le d veloppement d applications peuvent tre class es selon le niveau de formalisation de leurs concepts en trois grandes familles Les m thodes informelles Les m thodes semi formelles Les m thodes formelles L utilisation des m thodes informelles consiste mettre en place des normes de program mation et de certifications du code produit Ce processus de d veloppement a permis de d velopper des applications s res mais souffre n anmoins d un manque de v rification for melle de l application produite L utilisation des m thodes semi formelles augmenta le niveau de structuration du logiciel obtenu car elles donnent une vue graphique et synth tique du syst me L mergence des m thodes formelles permit la cr ation d applications totalement s res ou presque du fait de leur pr cision et de l utilisation de la preuve Les inconv nients de l utilisation des m thodes formelles so
171. el de ces travaux M Bruno Tatibouet et M Jacques Julliand qui ont dirig cette th se pour leur disponi bilit leur soutien leur confiance et leur patience Merci tous les membre du LIFC en particulier les colocataires du Sauna 432 C Tus Fred Niklas Bruno Sylvain et Suphakit avec qui travailler fut toujours un plaisir en raison de leur convivialit et disponibilit Je tiens aussi remercier ma famille qui m a soutenu et encourag dans les moments agr ables mais aussi d sagr ables Je pense plus particuli rement ma m re mes grands parents oncles et tantes Rod Kiki Rourou Zab Flo Nath Nico et GG Un gros merci mes amis de Besan on pour leur bonne humeur de tous les jours Isa RV Poney Wei Seb Yan GroGG Jean Claude Petite Blonde Djeff Tof C Marseillais H l ne Petit J r me etc Egalement merci mes amis d enfance d Evette Salbert city plage Flash Val C line Christophe Mars Lydie Flox Myrette Nath Romain Lepage Enfin j ai une petite pens e pour les piliers de comptoir de 1 Aqua et les adorateurs des dieux Taros et Belotus Table des mati res I 1 II Pr sentation Introduction TI Content oro di ene Gos lente sf ar mr iene ad fe 1 2 Choix de la m thode formelle 1 3 Contributions et objectifs de recherche 1 4 Structure du document et guide de lecture 1 4 1 Gu
172. els L int gration des m thodes formelles et semi formelles peut tre r alis e sous trois formes int gration par extension int gration par d rivation int gration par extraction Nous avons choisi l int gration par extraction pour les raisons suivantes L int gration par extension ne permet pas la conservation des avantages et points forts des deux m thodes comme la preuve ou le raffinement L int gration par d rivation d une part est d licate du fait que le langage notation source est plus riche que la m thode cible formelle D autre part les sp cifications obtenues ne sont pas compl tes il est donc n cessaire d y ajouter certains l ments puis de les prouver L int gration par extraction que nous avons choisi prend en compte ce ph nom ne car dans cette strat gie on commence par crire la sp cification en langage B en laissant libre cours aux concepteurs Le principe est d en extraire par la suite les vues UML permettant de mieux la documenter et la comprendre Le premier but de cette strat gie dans le cycle de d veloppement des logiciels est la vali dation des sp cifications par rapport au cahier des charges Les m thodes formelles paraissent souvent d acc s d licat Le premier obstacle auquel on se heurte est souvent une difficult de lecture L extraction de vues UML permet via les vues UML une meilleure lisibilit ce qui permet une meilleure compr hension po
173. en Java 20 TABLE DES FIGURES Liste des tableaux 1 1 1 2 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 2 11 5 1 6 1 7 1 7 2 7 3 7 4 7 5 8 1 8 2 8 3 8 4 8 5 12 1 12 2 12 4 Convention d criture des concepts et objets des diff rents langages 29 El ments de grammaire des langages utilis s dans ce document 29 Visibilit l int rieur d une machine abstraite de ses propres entit s 35 Substitutions de base de la m thode B et leur s mantique 35 Substitutions de composition et leur s mantique 36 Notation tendue des substitutions du langage B 36 Typage des expressions B 37 Type des ensembles pr d finis 37 ype de visibilit ss ns Re a ee a Ge ee ee ee RE TS 41 Visibilit des entit s d une machine vue 42 Visibilit des entit s d une machine incluse ou tendue 42 Visibilit d une machine utilis e 42 Visibilit des entit s d une machine import e 43 Affinement de la d rivation d une association par ses multiplicit s 70 St r otypes d aide la lecture des diagrammes de classes 96 Equivalence en OCL des pr dicats B 104 Equivalence en OCL des expressions arithm tiques B 105 Equivalence en OCL
174. ent des services de MB qui peuvent tre promus par la clause PROMOTES comme pour l inclusion L utilisation des services de MB est r alis e travers l appel des op rations de MB sachant que l on se place dans le cadre du B logiciel et que les op rations sont ex cut es par leur appel elles ne s ex cutent pas automatiquement comme les v nements lorsque leur garde est vraie Par cons quent la machine qui importe contr le les moyens d criture des donn es modifiables de la machine import e L importation permet de structurer un projet B en couches en ef fet l implantation d un module s impl mente par importation d autres modules offrant des services de plus bas niveau D autre part le composant qui n est pas import joue un r le particulier au sein d un projet B il est le point d entr e de son ex cution Le tableau suivant Tab 2 11 d crit la visibilit des constituants d une machine import e MB l int rieur des clauses d une machine MA Clauses de MA copa de ME PROPERTIES VALUES INVARIANT OPERATIONS Params a CL Enr ot Constante Gone Y VO OY PY A lt Options M TAB 2 11 Visibilit des entit s d une machine import e 2 4 Conclusion La m thode B est bas e sur une s mantique et une syntaxe math matiques tr s pr cises Elle permet le d veloppement d applications prouv es Le cycle de d veloppement B consiste d finir dans l invariant les propr
175. enues par d pliage des liens de la clause REFINES 11 5 2 3 Les types Les types autoris s pour les donn es concr tes sont limit s par la m thode B un sous ensemble des types B existants Ces types sont appel s types concrets Ces limitations sont issues des langages cibles initiaux de la m thode B Il existe deux strat gies par rapport ce probl me se limiter la liste des types concrets d j d finis 93 tendre cette liste par des machines de base Selon Petit la cohabitation de ces deux strat gies ne pose pas de probl me 11 5 2 4 L utilisation d assertions La conservation des propri t s des sp cifications jusque dans le code est une nouveaut pour la m thode B En effet jusqu pr sent le code g n r est cens tre prouv correct et donc son ex cution tre sans erreur Pour Petit cette vision id ale est trop optimiste Le code g n r est ex cut sur des composants physiques dont les caract ristiques n ont pas t sp cifi es l aide d une m thode formelle L ajout d assertions peut r pondre ce probl me en utilisant les propri t s d finies dans les invariants de boucles ainsi que les pr conditions des op rations Petit utilise la notion de contrat d crite dans 72 11 5 3 De ObjectZ vers C Java Ces deux traductions depuis ObjectZ vers C 57 et vers Java 41 utilisent la m me strat gie En effet ObjectZ ne poss de pas la notion de substit
176. er l ment Une fonction est partielle lorsque tous les l ments de l ensemble de d part ETU DIANTS ne sont pas utilis s pour faire des couples Il faut donc rajouter la contrainte OCL 6 29 qui permet de restreindre l association au cas des fonctions partielles context GestionDesincriptions inv Inscrits forAll c1 c2 E_ETUDIANT_DIPLOME c1 lt gt c2 implies c1 e_ETUDIANT lt gt c2 e_ETUDIANT and Inscrits gt size lt ETUDIANT gt size FIG 6 29 Contrainte relative la fonction partielle Inscrits 6 4 MECANISMES DE COMPOSITION 99 6 4 M canismes de composition Les relations de visibilit et d instanciation entre machines peuvent tre montr es a l int rieur du diagramme de classes Les visibilit s entre UML et B sont diff rentes En B il existe une visibilit dite visible non modifiable pour les variables et op rations les variables ne sont pas modifiables donc les op rations ne modifient pas les variables de machine cf 2 3 8 qui n existe pas en UML D autre part la visibilit en B est permise par l utilisation de m canisme de composition au contraire d UML o la visibilit est d finie la d claration de l attribut et ventuellement par l appartenance ou non au package Pour toutes ces raisons il n est pas possible de r aliser une traduction compl te et exacte de la visibilit d finie dans les sp cifications N anmoins la preuve permet de bloquer les acc s non a
177. er des lignes de pseudo code en marge de la ligne de vie de l objet comme dans l exemple suivant fig 4 15 Ici on utilise du pseudo code pour mod liser une boucle 4 6 DIAGRAMME D ACTIVITES 59 OBJETI OBJETZ Condition1 m thode 1 Condition2 m thode 2 i 1 I I I FIG 4 14 Utilisation de conditions dans un diagramme de s quence OBJET1 OBJET2 while fin gt 0 do T fl end while A nie F1G 4 15 Utilisation de pseudo codes dans un diagramme de s quence 4 5 6 Contraintes temporelles Les contraintes temporelles sont d crites l aide de rep res temporels sur les lignes de vie des objets et par une condition entre crochets en utilisant les rep res en marge du diagramme fig 4 16 OBJET1 OBJET2 y Message1 we R ponse y x lt 1heure Messages y FIG 4 16 Utilisation de contraintes temporelles dans un diagramme de s quence 4 6 Diagramme d activit s Un diagramme d activit est une variante des diagrammes d tats transitions Dans un diagramme d tats transitions les tats et les transitions sont mis en avant alors que dans un diagramme d activit s ce sont les activit s qui sont mises en avant Les deux types de diagrammes permettent ainsi d avoir deux vues diff rentes sur les automates du syst me Un diagramme d activit s visualise un graphique d activit s qui mod lise le comportement d une m thode Les diagrammes d activit s utilise
178. es est d utiliser la classe Object de JAVA dont tous les types h ritent mais ces types sont simples int et boolean Par cons quent il faut utiliser une autre solution qui aurait pu tre de cr er autant de classes Java que d instances de machine Les instances de machines B seraient diff renci es par le type utilis pour valuer l ensemble Le probl me inh rent cette strat gie est le renommage de la machine durant la traduction En effet les machines qui utilisent cette instance ne sauront pas quel identifiant plusieurs classes Java pour une seule machine B utiliser pour Pinstanciation si elle est n cessaire et pour ses m thodes Une derni re solution a t labor e Elle permet de cr er une classe avec le type entier par exemple int et de transformer les identifiants bool ens FALSE TRUE respectivement en 0 1 et bloquer l utilisation du type STRING pour l instanciation De cette mani re il n y aura pas de probl me de typage le seul type utilis est le type entier 174 CHAPITRE 12 GENERATION DE CODE JAVA A PARTIR DE B 12 5 2 Equivalence entre types B et types Java Dans un premier temps nous avons essay de cr er des types en B permettant une plus large utilisation des types du langage cible c est a dire Java Nous avons d fini les types jBint jBshort et jBbyte comme des intervalles sur INT pour d finir les types int short et byte Java ce qui permet de d finir les quivalences du tableau 12
179. es messages circu lant entre les objets Dans notre traduction nous avons utilis ces m canismes pour symboliser les appels de m thodes d un objet depuis l ex cution d une m thode d un autre objet Dans les diagrammes d activit s le symbolisme n est pas le m me les objets sont repr sent s par des trav es et la communication correspond aux changement de trav es Remarque Un exemple est disponible dans le chapitre 16 dans les figures 16 5 16 6 16 16 150 CHAPITRE 9 DIAGRAMMES DE SEQUENCE ET D ACTIVITES et 16 17 Chapitre 10 Conclusion sur l extraction de vues graphiques Notre contribution dans l int gration des m thodes formelles et semi formelles est r alis par l extraction de vues UML et de contraintes OCL depuis une sp cification B Cette extrac tion s effectue selon deux directions La premi re correspond l extraction des informations statiques de la sp cification et l expression de Diagrammes de classes Contraintes OCL La deuxi me permet de montrer le comportement du syst me ceci correspond aux informa tions dynamiques de la sp cification exprim es l aide des diagrammes suivant Diagrammes d tats transitions Diagrammes d activit s Diagrammes de s quence 10 1 Extraction des informations statiques 10 1 1 Extraction des diagrammes de classes Notre d marche consiste extraire le diagramme de classes repr sentatif d une sp cifica
180. est une condition n cessaire pour que l v nement se d clenche La garde de la substitution princi pale de l v nement est donc la condition de d clenchabilit de v nement Il est possible d utiliser une autre substitution conditionnelle l int rieur de la substitution principale et la condition de cette deuxi me substitution est la condition d atteignabilit de l tat cible de la transition En d autres termes la condition de d clenchabilit correspond au raffine ment de la garde de l v nement de la machine abstraite et la condition d atteignabilit la diff rence d tat cible de la transition lorsque des sous tats apparaissent dans un super tat de l abstraction Parking cc entrer feu vert controler_sortie lt lt _____ sp controler_entree sortir NbVoit gt 0 controler_entree IN cc 1 et NbVoit NbMax fm controler_entree rouge IN cc 1 et NbVoit NbMax controler sortie IN cc 1 controler_entree IN cc 1 et NbVoit NbMax Fic 8 51 Diagramme d tats transitions des variables du raffinement Parking_r1 Il existe une diff rence entre le syst me de transitions tiquet es obtenu l aide de l ap proche de Bert Potet et Stouls fig 8 49 et le diagramme d tats transitions complet fig 8 52 obtenu avec notre approche illustr e par les figures 8 50 8 51 8 5 et 8 52 pour la sp cification du raffinement de l exemple du p
181. et d enregistrement records car elles sont peu utilis es et ne poss dent pas une traduction directe l aide d une expression quivalente en UML Ce chapitre qui est une extension des papiers 98 96 est divis en quatre parties Dans la premi re nous d crivons notre approche sur une machine abstraite dans la deuxi me nous montrons sur un exemple simple les r sultats obtenus dans la troisi me nous tendons notre approche pour traiter la composition de plusieurs machines B et dans la qua tri me nous comparons notre approche d autres propositions 7 32 faites plus r cemment 6 2 De la sp cification B au diagramme de classes 6 2 1 Les machines abstraites Une sp cification B tant structur e en machines abstraites il est n cessaire de trouver une quivalence en UML pour cette notion de machine Dans les techniques de d rivation d UML vers B la solution choisie consiste repr senter une classe par une machine abstraite C est une solution naturelle dans la mesure o la classe en UML et la machine abstraite en B sont les l ments de granularit l mentaire qui permettent de regrouper des donn es et des op rations C est pourquoi nous choisissons de repr senter une machine abstraite par une classe comme dans l exemple 6 1 et la figure 6 2 6 2 2 Les variables enti res et bool ennes Ces variables d finies dans la machine Fig 6 3 deviennent des attributs de la classe Fig 6 4 qui repr sente
182. ets disposant de la g n ricit sur les types primitifs comme C afin de g n rer les diff rents types d entiers 17 1 3 La plate forme jBTools Nous avons pr sent la plate forme jBTools Cette plate forme est compos e de fonction nalit s communes d analyse syntaxique s mantique et de v rification de typage Le r sultat est enregistr dans des fichiers XML un par composant B Il est ensuite exploitable par la BOL B Object Library sur laquelle viennent se greffer les outils de la plate forme comme un traducteur vers les langages objets un extracteur de diagrammes UML Actuellement nous disposons d un extracteur de diagrammes UML partiellement achev et d un traducteur finalis D autre part notre plate forme peut s interfacer avec l outil ProB ProB 67 est un outil de model checking qui utilise les fichiers XML g n r s par notre plate forme Cet outil compl mentaire ceux d velopp s au sein du LIFC permettrait un ach vement total de la plate forme par rapport au cycle de d veloppement B Fig 2 1 http www ecs soton ac uk mal systems prob html 242 CHAPITRE 17 CONCLUSION ET PERSPECTIVES 17 1 4 Synth se des contributions Les int grations de m thodes formelles et semi formelles ant rieures r alis es le plus sou vent par d rivation mettaient en jeu deux diagrammes les diagrammes de classes et d tats transitions Notre extraction de vues UML depuis une sp cificat
183. eux m thodes de d rivation sont minimes et r sident dans le nommage des diff rentes entit s utilis es Par exemple l ensemble num r S Sekerinski devient CLASSE_STATE Meyer 5 4 1 2 L initialisation L initialisation d un diagramme d tats transitions est repr sent par un disque noir plein et une fl che dirig e vers l tat cible L initialisation peut tre r alis e de deux mani res diff rentes comme dans les deux exemples suivants d terministe il existe un seul tat cible fig 5 18 non d terministe il existe plusieurs tats cible fig 5 19 Pour Sekerinski la traduction de l initialisation fig 5 20 est r alis e par une affectation dans le cas o elle est d terministe ou par l op rateur devient tel que quand elle est non d terministe 74 CHAPITRE 5 ETAT DE L ART DERIVATION D UML VERS B Fic 5 18 Initialisation d terministe FIG 5 19 Initialisation non d terministe INITIALISATION s S1 s S FIG 5 20 D rivation de Vinitialisation selon Sekerinski Pour Meyer la d rivation est la m me modulo les diff rences d crites dans le paragraphe pr c dent fig 5 21 Aussi Meyer utilise un constructeur nomm creerClasse qui d termine Videntifiant d objet utilis dans la fonction totale classe_state OPERATIONS oo creerClasse PRE not CLASSE classe 9 THEN ANY new WHERE new CLASSE classe THEN classe_sta
184. ficatif ou cl qui est utilis conjointement avec un objet de la classe source qualificatif B FIG 4 4 Qualification d association L instanciation d une association qualifi e d finit le nom des objets source et destination et la valeur du qualificatif Ainsi chaque instance de la classe accompagn e de la valeur du 4 4 DIAGRAMME D ETATS TRANSITIONS 55 qualificatif identifie un sous ensemble des instances de B qui participent l association La qualification partitionne l ensemble d arriv e et r duit ainsi la multiplicit de l association 4 3 4 1 Agr gation Une agr gation est un cas particulier d association o une classe est compos e de l autre Elle est repr sent e par un losange du c t de la classe compos e et un trait qui le relie la classe composante Elle repr sente une association asym trique dans laquelle l une des classes est composante de l autre sans que l autre ne soit tributaire de son existence Au contraire la composition est un cas particulier d agr gation qui n cessite l existence de l autre Elle est repr sent e par la m me symbolisation que l agr gation l exception du losange qui est plein En terme de multiplicit extr mit de l agr gation ou de la composition du c t de la classe composante est ouverte dans les deux cas tandis que de l autre du c t compos elle est g n ralement chiffr e Moteur y
185. fication formelle sont peu nombreux 32 7 Les travaux dans le domaine consistent principalement en une d rivation de notations semi formelles vers une sp cification formelle telle que B 61 69 On peut citer aussi d autres travaux similaires vers Z Dupuy Ledru et Chabre Peccoud ont r alis une d rivation de OMT vers Object Z 22 23 France Bruel Larrondo Petrie et Grant ont d fini une d rivation depuis la m thode fusion 13 vers Z 42 Shroff et France ont d riv UML vers Z 86 Ce chapitre rappelle les points essentiels des th ses de Nguyen 77 Meyer 73 et Ledang 64 Les travaux de Nguyen ont pos les premiers concepts synth tiques et th oriques de la d rivation de m thodes semi formelles OMT et UML pour les diagrammes de classes et d tats transitions vers B Par la suite les travaux de Meyer ont approfondi la d rivation des diagrammes de classes et d tats transitions depuis les diagrammes UML Ledang a r alis une extension des travaux de Meyer en y ajoutant la d rivation des diagrammes de collaboration et de cas d utilisation D autre part Sekerinski a aussi r alis des travaux sur le domaine de traduction des statecharts vers les machines abstraites 84 D autres travaux qui ne sont pas en relation avec l utilisation conjointe des deux approches traitent de l extraction de syst mes de transitions tiquet es automates depuis une sp cification B 16 5 2 D rivati
186. ficile de projeter les obligations de preuves non r solues dans la machine B lors de la v rification formelle sur les vues UML correspondantes Pour apporter un autre point de vue sur la d rivation et pour permettre d crire directement du B tout en obtenant des vues UML de la sp cification nous travaillerons sur l extraction de diagrammes UML Comme la totalit des travaux d j r alis s dans le domaine de l int gration des m thodes formelles et semi formelles et en particulier dans celui de la d rivation notre d marche s appuiera sur l extraction des diagrammes de classes et d tats transitions ainsi que des diagrammes plus concrets comme ceux de s quence et d activit s 86 CHAPITRE 5 ETAT DE L ART DERIVATION D UML VERS B Chapitre 6 Extraction de diagrammes de classes 6 1 Introduction Dans ce chapitre nous pr sentons notre approche de transformation des machines B en diagramme de classes Nous traitons a travers cette extraction uniquement les pr dicats de typage de l invariant Plus pr cis ment nous nous focalisons sur l obtention d une traduc tion partir des ensembles abstraits ou num r s d finis dans une machine et des donn es constantes et variables typ es partir de ces ensembles Les autres pr dicats de l invariant ainsi que les pr et post conditions des op rations seront trait s dans le chapitre 7 Cependant ces deux chapitres ne traitent pas les expressions d arbres
187. fill 71 1 System arraycopy T1 0 T2 0 var T3 1 1 2 1 T1 2 5 T2 5 5 Fic 12 36 Traduction en Java de la substitution Devient gal pour les tableaux 12 8 4 Substitution S quencement La substitution S quencement correspond l application en s quence de deux substitu tions Traduire le s quencement est simple il suffit de traduire les deux substitutions qu il contient dans l ordre d apparition fig 12 39 et 12 40 lt InstructionSequence gt lt Instruction gt lt Instruction gt 12 8 5 Substitution Bloc Elle sert grouper plusieurs substitutions qui seront effectu es en s quence Elle sert de parenth se en quelque sorte Elle est n cessaire dans le cas de plusieurs substitutions et facultative dans le cas d une substitution unique lt InstructionBloc gt BEGIN lt Instruction gt lt Instruction gt END En Java le principe est le m me les blocs repr sent s par un couple d accolades ne sont obligatoires que pour un bloc d au moins deux instructions Cependant dans un souci de clart il est pr f rable de mettre syst matiquement les accolades 12 8 6 Substitution dentit Cette substitution ne fait rien Elle est utilis e par exemple pour indiquer que certaines branches d une instruction IF ou CASE ne modifient pas les variables Elle est traduite si n cessaire en java par un bloc vide lt InstructionBloc gt Skip 192
188. finis pour crire une num ration L id e consiste ici d finir comme dans les figures 12 13 et 12 14 une classe par ensemble Cette classe ne contient que des constantes publiques et ne sera pas instanci e 176 CHAPITRE 12 GENERATION DE CODE JAVA PARTIR DE B class BRange final int bornelnferieure final int borneSuperieure BRange int bi int bs borneInferieure bi borneSuperieure bs BRange VITESSE new BRange 0 100 Fic 12 12 Traduction d un ensemble abstrait en Java SETS ETAT haut milieu bas Fic 12 13 Un ensemble num r en B class ETAT static final short haut 0 static final short milieu 1 static final short bas 2 static final short borneInferieure static final short borneSuperieure static Brange getBRange Fonction pour utiliser les ensembles num r s comme arguments de machine Fig 12 14 Traduction d un ensemble num r en Java 12 6 3 Les constantes concr tes Les identifiants des constantes concr tes sont num r s dans une clause CONCRETE_CON STANTS sont typ s dans une clause PROPERTIES et sont valu s dans une clause VALUES fig 12 15 en B Les constantes concr tes correspondent a la d finition de constantes c est a dire une donn e dont la valeur ne varie pas La notion quivalente existe dans les langages infor matiques La traduction est relativement ais e fig 12 16 les diff
189. for VDM 2001 IFAD The VDM C Library 2001 IFAD The VDM SL to C Code Generator 2001 I Jacobson M Christerson P Jonsson and G Overgaard Object Oriented Software Engineering A Use case Driven Appraoch Addison Wesley 1992 ISBN 0201544350 W Johnston and G Rose Guidelines for the manual conversion of ObjectZ to C 1993 Technical Report 9314 University of Queensland Software Verification Research Center Queensland Australia 1993 C B Jones Systematic Software Development using VDM Prentice Hall Upper Saddle River NJ 07458 USA 1990 K Lano Z an Object oriented Extension to Z In Z user workshop Workshop in computing pages 151 172 Oxford UK 1991 J E Nicholls Springer Verlag K Lano The B Langage and Method a Guide to Practical Formal Development Springer Verlag 1996 ISBN 3 540 76033 4 K Lano and H Haughthon Improving the Process of System Specification and Re finment in B In 6th Refinment workshop International AMAST Conference D Till Editor Springer Verlag 1994 K Lano H Houghton and P Wheeler Formal Methods and Object Technology Integrating Formal and Structured Methods in Object Oriented System Development Springer Verlag 1996 ISBN 3 540 19977 2 H Ledang Des cas d utilisation une sp cification B In AFADL 01 pages 131 140 Nancy 2001 H Ledang Traduction syst matique de sp cifications UML en B PhD thesis LORIA Universit Nancy 2 N
190. gles de gestion du cahier des charges On obtient un diagramme relatif aux variables mises en jeu par les r gles de gestion par calcul du produit synchro nis des diagrammes de chaque variable Ainsi les tats seront des n uplet de valeurs des variables contenues dans le pr dicat consid r En effet chaque r gle de gestion du cahier des charges est traduite par un pr dicat ce n est pas un pr dicat de typage de l invariant Il faut prendre chaque pr dicat complexe de l invariant extraire les identifiants de variables compris l int rieur et exprimer un diagramme d tats transitions en fonction uniquement de ces variables Dans le cas contraire c est dire s il n existe pas de propri t s complexes de l invariant mettant en jeu plusieurs variables les diagrammes montrant le comportement individuel de chaque variable seront suffisants Ceci simplifierait la t che de validation des sp cifieurs UML 244 CHAPITRE 17 CONCLUSION ET PERSPECTIVES 17 2 3 Ach vement de la plate forme JBTOOLS Les traducteurs sont termin s au contraire des diff rentes extractions A l heure actuelle la plate forme JBTOOLS permet d extraire les diagrammes de classes et certaines contraintes OCL Dans un avenir proche il serait int ressant de pouvoir extraire non seulement l ensemble des contraintes OCL mais aussi les diff rents diagrammes montrant le comportement du syst me comme diagramme d tats transitions dia
191. gramme de s quence diagramme d activit s Il serait au moins n cessaire de permettre l extraction des diagrammes d tats transitions et d activit s puisque l appel d op rations des diagrammes d activit s recouvre presque totale ment les communications des diagrammes de s quence 17 2 4 Fusion des deux m thodes Extraction Traduction Une ventuelle fusion entre les m thodes d extraction de diagrammes de classes et de traduction vers les langages objets pourrait tre entreprise tant donn que les deux langages cibles sont tr s proches car ils poss dent tous deux la notion d objet En effet il existe peu de diff rence entre les diagrammes de classes et les donn es d crites dans les classes Java La diff rence entre les deux langages r side dans la notation En effet la notation UML ne permet pas de d crire de la m me mani re que la notation Java ou C les extractions de relations Les relations sont traduites en Java et C par des tableaux dont le domaine de d finition de l indice pour les tableaux une dimension est d fini par le domaine de la relation et le domaine de d finition des valeurs par le codomaine de la relation Or travers l extraction les relations deviennent des agr gations Il sera peut tre possible l aide des nouvelles versions d UML dont la version 2 bient t disponible fait partie d uniformiser ces deux aspects N anmoins la nature des informations trait es par la traduct
192. i t s contraintes math matiques que le syst me doit res pecter et crire les op rations qui feront voluer l tat du syst me Les diff rents mod les construits dans cette optique font appara tre graduellement par raffinement un mod le concret traduisible dans un langage de programmation traditionnel tout en maintenant le respect des propri t s des mod les abstraits Cependant elle souffre d un manque de compr hension de la part des non initi s et donc d une difficult d apprentissage et d utilisation Les m canismes de composition des machines ont t choisis pour la pr servation des preuves mais ils sont inhabituels pour la structuration des informations 44 CHAPITRE 2 LA METHODE B Deuxieme partie Extraction de vues UML 45 Chapitre 3 Contexte et motivations Dans les paragraphes pr c dents nous avons choisi la m thode formelle ad quate ce travail de recherche Nous rappelons que les m thodes formelles et semi formelles ont chacune leurs avantages sans qu aucune ne permettent de r pondre compl tement aux besoins du d veloppement logiciel 3 1 Utilisation conjointe des m thodes formelles et semi form elles Les notations semi formelles sont intuitives et synth tiques mais ambigu s au contraire des m thodes formelles qui sont pr cises et rigoureuses mais complexes Ces deux approches sont compl mentaires et aucune des deux n est abandonner car il est int ressant de comb
193. i la condition on ins re l instruction correspondant la condition a la suite du caract re Dans le cas o il y a plusieurs instructions la suite dans la m me branche de l expression conditionnelle on cr e une s quence d tats avec une transition par instruction 9 3 4 2 D expression BOOL L expression BOOL est crite l aide d une expression conditionnelle Elle renvoie TRUE ou FALSE selon que l expression entre parenth ses est vraie ou fausse fig 9 21 Cette expression BOOL Cond peut tre traduite par l utilisation de l instruction IF Cond THEN aa TRUE ELSE aa FALSE END Dans le diagramme d activit correspondant la 9 5 DIAGRAMMES D ACTIVITES 147 IF Cond1 THEN Inst1 ELSEIF Cond2 THEN Inst2 ELSE Instn END CASE var OF EITHER valuel THEN Inst1 OR value2 THEN Inst2 ELSE Instn END FIG 9 19 Expressions conditionnelles complexes Cond1 and Cond2 and ou varl value1 and var value2 and Instn Cond ou var value1 Inst1 Cond2 ou var value2 Inst2 FIG 9 20 Traduction des expressions conditionnelles complexes en UML aa BOOL bb xx FIG 9 21 Expressions bool ennes traduction est donc similaire celle d finie pr c demment fig 9 18 9 3 5 Les boucles L instruction WHILE permet d crire des boucles en langage BO fig 9 22 Les mots INVARIANT et VARIANT ne sont pas des instructions mais sont n cessaires pour la
194. ide de lecture 1 4 2 Publications issues de ce travail de th se La m thode B 2A IMtroduction st hed ath ea mo Bees nes ke ae A AM La ah ee 2 2 Les m thodes formelles 2 0 e 229 La meth de D ie a Be AOS BL ee Hd bee Bone den On EAU 2 3 1 Fondements de la m thode B 2 3 2 Raffinement et impl mentation 2 3 9 Preuve se a a ea a RR ee ES au a A 2 3 4 Structure g n rale d une machine abstraite 2 3 5 Substitutions g n ralis es 2 3 6 Th orie des ensembles et typage 2 3 7 Obligations de preuve 2 3 8 Les m canismes de composition QA Conclusion a 44e ey a ee eR eH Re dB EUR Rd Extraction de vues UML Contexte et motivations 3 1 Utilisation conjointe des m thodes formelles et semi form elles 3 2 Motivations oF wed OR a EO The ne les Ae hs LORS 3 3 Contenu de la deuxi me partie La notation UML 4 1 Antroductions 24 24 as de 2 alee es ask ie ta e aA 4 2 G n ralit s 572 402 sk HN A ORE RUE wt eS 4 3 Diagramme de classes 4 3 1 Classes attributs et m thodes 4 3 2 G n ralisation 23 25 26 27 27 28 29 29 31 31 31 32 32 33 33 34 39 36 3
195. ide du langage BO Le langage BO est un sous ensemble du langage B Il poss de une syntaxe et une s mantique tr s proche des langages de programmation traditionnels ce qui permet une traduction ais e vers ceux ci Le principe de concr tisation utilis dans le d veloppement permet de scinder la complexit des probl mes Durant le raffinement abstraction sera d taill e Ces d tails rendent plus pr cis les donn es et les op rations de la machine abstraite 2 3 3 Preuve Les contraintes auxquelles doit ob ir le syst me sont d finies par les r gles de gestion du cahier des charges Elles sont d crites en B dans l invariant sur l tat du syst me sous une forme unique de propri t statique elles d finissent des contraintes qui devront tre v rifi es dans tous les tats du syst me Elles restreignent l espace de valeurs que peuvent prendre les variables Ces propri t s peuvent s appliquer sur une ou plusieurs variables On les appellera pr dicat de typage lorsqu elles sont en fonction d une seule variable Les op rations modifient les valeurs des variables et donc l tat du syst me En cons quence la preuve va consister v rifier la conformit de l tat du syst me avant et apr s l op ration Le d veloppement d ap 34 CHAPITRE 2 LA METHODE B plication l aide de la m thode B d bute par une machine abstraite comprenant un invariant comme tous les autres composants Les premi res obligations
196. ifient des types susceptibles de figurer dans lexpression de contraintes OCL La conformit des types doit tre v rifi e pour valider les expressions OCL d finies Les relations de g n ralisation entre classes permettent de comparer des types et leurs sous types puisque les sous types se conforment leurs super types 4 7 4 Les propri t s des objets Les expressions OCL peuvent utiliser des instances de classificateurs ou des instances de type de base Dans le cas des instances de classificateurs il est possible d employer des attributs des s lecteurs et des extr mit s de liens dans les contraintes OCL L valuation de la valeur d un attribut ou d une op ration de consultation d une instance est obtenue en mentionnant le nom de l instance suivi d un point ou d une fl che dans le cas de collections puis de l attribut ou de l op ration l expression pre d finit des conditions v rifi es avant l ex cution de l op ration lex pression post d finit des conditions v rifi es apr s l ex cution de l op ration Jl est possible de d signer l objet retourn par une op ration l aide du mot result 4 7 5 Les valeurs ant rieures La pr sence d une contrainte st r otyp e post condition impose parfois l valuation de la valeur ant rieure d une propri t En effet lors de l valuation d une propri t un attribut une op ration ou une extr mit de lien dans une post
197. il est logique d utiliser les clauses de d finition pour mod liser les expressions let in comme l indique la d rivation qui suit l expression let v7 type val1 vn typen valn in exp des post conditions de oper permet de d finir les variables locales v7 vn DEFINITIONS v1 vall vn valn o V1 vn vall et valn d signent la formulation en B de v1 on vall et valn 5 5 3 1 Concepts structurels Un attribut attr de type typeAttr dans une classe Class est mod lis par une variable B attr d finie par l invariant attr classe typeAttr o la variable class mod lise l ensemble d instances effectives de Classe cf 5 2 2 et typeAttr est d fini comme un ensemble B pour mod liser typeAttr Une Association binaire Assos est d finie par l invariant assos class class2 S il y a des qualificatifs ventuels q Q Gn Qn ils sont mod lis s de la m me mani re qu un attribut q class2 Q qn class2 Qn Nous ajoutons aussi un invariant liant assos et q1 qn assos 8 q 8 Q qn class x Q1 Xx X Qn 5 6 EXTRACTION DE SYSTEMES DE TRANSITIONS ETIQUETEES 83 5 5 4 Expression de post condition La formalisation en B des expressions OCL de post condition d un concept comportemen tal se pr sente comme suit soit une sp cification OCL preCond postCond d signant la pr condition et la post condition d une op
198. implies c1 e_X lt gt c2 e_X and F gt collect c E_F c e_Y gt includesAIll Y andF gt size X gt size Fic 6 21 Contrainte relative aux surjections totales La contrainte OCL relative aux injections totales fig 6 21 signifie que pour deux objets diff rents de la classe E_F cette classe repr sente la surjection totale les objets correspon dant au r le e_X sont diff rents Chaque objet de la classe E_Y correspond une occurrence du r le e_Y d un objet de la classe E_F Le nombre d objets de la classe E_F est le m me que celui de la classe E_X Pour une surjection F partielle la contrainte s crit comme dans la figure 6 22 context AM inv F gt forAll c1 c2 E F c1 lt gt c2 implies c1 e_X lt gt c2 e_X and F gt collect c E_F c e_Y gt includesAll Y and F gt size lt X gt size FIG 6 22 Contrainte relative aux surjections partielles 6 2 4 6 Bijection Une fonction de bijection totale d signe en m me temps une fonction d injection et de sur jection totale Son expression en OCL est donn e en combinant les contraintes d une fonction d injection et de surjection totale fig 6 23 ou 6 24 context AM inv F forAll c1 c2 E_F c1 lt gt c2 implies c1 e_X lt gt c2 e_X and F gt forAll c1 c2 E_F c1 e_X lt gt c2 e_X implies c1 e_Y lt gt c2 e_ Y and F gt collect c E_F c e_Y gt includesAll Y and F gt size X gt size FIG
199. import java util Arrays class Feu short rr short oo short vv public Feu INITIALISATION void INITIALISATION rr short ETAT off oo short ETAT on vv short ETAT off public short estIlRouge short estRouge 0 if rr ETAT on estRouge 1 else estRouge 0 return estRouge public short estIlOrange short estOrange 0 if 00 ETAT on estOrange 1 else estOrange 0 return estOrange public short estIlVert short estVert 0 if vv ETAT on estVert 1 else estVert 0 return estVert public void devientRouge rr short ETAT on oo short ETAT off vv short ETAT off public void devientOrange rr short ETAT off oo short ETAT on vv short ETAT off public voiddevientVert rr short ETAT off oo short ETAT off vv short ETAT on public void changerCouleur short cc cc short rr rr short 00 oo short vv vv short cc i F1G 16 20 Traduction du composant Feu en Java Cinqui me partie Conclusion Chapitre 17 Conclusion et perspectives Tout d abord rappelons bri vement que nos objectifs initiaux visaient 4 la mise en place de principes d int gration des m thodes formelles et semi formelles et la traduction de sp cifications formelles vers les langages objets Tout ceci devait tre implant dans le cycle de d veloppement des logici
200. inclusion l appartenance et l galit Diagramme de classes d une machine avec une fonction F de X dans Y Contrainte relative aux fonctions totales Contrainte relative aux fonctions partielles Contrainte relative aux injections totales Contrainte relative aux injections partielles 68 69 69 69 70 71 73 73 73 74 74 74 74 75 75 75 76 76 77 TE 78 78 79 80 81 81 88 88 88 88 89 89 90 90 90 91 91 91 92 92 93 93 93 94 94 94 TABLE DES FIGURES 15 6 21 6 22 6 23 6 24 6 25 6 26 6 27 6 28 6 29 6 30 6 31 6 32 7 1 7 2 7 3 7 4 7 5 7 6 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 8 8 9 8 10 8 11 8 12 8 13 8 14 8 15 8 16 8 17 8 18 8 19 8 20 8 21 8 22 8 23 8 24 8 25 8 26 8 27 Contrainte relative aux surjections totales 95 Contrainte relative aux surjections partielles 95 Contrainte relative aux bijections totales 95 Autre criture possible de la contrainte relative aux bijections totales 96 Contrainte relative aux bijections partielles 96 Exemple de la gestion des inscriptions 97 Diagramme de classes correspondant la machine abstraite GestionDesInscriptions 98 Contrainte d inclusion ensembliste de Inscrits AuxExamens dans Inscrits 98 Contrainte relative la fonction partielle Inscrits 98 Extr
201. inement par MachineR sont les suivantes 1 L initialisation abstraite doit tablir l invariant concret si les contraintes clause CONSTRAINTS et propri t s clause PROPERTIES sont vraies OP3 condA A propA A propR initR gt initA invR 2 L op ration abstraite doit tablir l invariant concret et l galit des r sultats de l op ration concr te resR et de l op ration abstraite resA OP4 condA A propA A propR A invA A invR A preA preR A subsR subsA 2 3 LA METHODE B 39 MACHINE MachineA parMac CONSTRAINTS condA CONSTANTS constA PROPERTIES propA VARIABLES varA INVARIANT invA INITIALISATION initA OPERATIONS resA lt operation paraOp PRE preA THEN subsA END END Fic 2 4 La machine abstraite MachineA MACHINE MachineR parMac REFINES MachineA CONSTANTS constR PROPERTIES propR VARIABLES varR INVARIANT invR INITIALISATION initR OPERATIONS resR operation paraOp PRE preR THEN subsR END END Fic 2 5 Le raffinement de MachineA invR A resA resR Ceci est a v rifier pour toutes les op rations Dans cette derni re obligation de preuve on voit clairement que la pr condition du raf finement doit tre tablie suivant la pr condition de l abstraction Ceci illustre le concept d affaiblissement de la pr condition 2 3 7 3 Apart sur la n cessit de la double n gation Dans le paragraphe pr c dent on remarque l apparition de la double n gat
202. iner les avantages respectifs de lune et de lautre Se pose maintenant la question du choix de la phase de d veloppement qui est la plus appropri e leur int gration Dans toutes les m thodes semi formelles classiques on retrouve les phases suivantes analyse des besoins sp cification conception et d veloppement La phase de d veloppement o l int gration devrait tre la plus b n fique est celle de la sp cification o la pr cision l absence d ambiguit et la preuve du fonctionnement sont particuli rement importantes D autre part la lisibilit des diagrammes des m thodes semi formelles apporte une vue synth tique clairant les sp cifications formelles que les nota tions math matiques obscurcissent Concernant l int gration des m thodes formelles et semi formelles il existe trois types de d marches 1 La premi re d marche vise proposer une nouvelle m thode qui unifie les deux ap proches Il existe deux moyens de Vobtenir La premi re forme permet de d finir une nouvelle m thode coh rente qui tend les concepts des notations semi formelles existantes en y ajoutant des bases formelles solides Deux m thodes r pondent ce sch ma la m thode Fusion 13 dans laquelle les op rations sont d crites notamment en utilisant la structure pr et post condition existante dans de nombreuses m thodes formelles et l approche d Attiogb Poizat et Sala n 38 qui permet d ajou
203. invariant Les obligations de preuves d coulent de la pr servation de l invariant par la machine abstraite travers la modification de son tat par les op rations A travers le raffinement il faut pr server invariant pour viter la disparition des contraintes du cahier des charges dans les impl mentations donc on obtient un nouvel ensemble d obligations de preuve 2 3 7 1 Invariant Il s agit de prouver l int rieur d une m me machine que l invariant est tabli apr s lini tialisation et pr serv par l ex cution des op rations Je rappelle la structure d une machine particuli re sans param tres avec une seule op ration OP fig 2 3 MACHINE M VARIABLES v INVARIANT I INITIALISATION u OPERATIONS OP PRE P THEN S END END Fic 2 3 Une machine B Pour prouver l tablissement de l invariant I par l initialisation U il suffit de prouver que le pr dicat OP1 UJI est satisfait L op ration OP pr serve l invariant si le pr dicat OP2 I AP SII est satisfait 2 3 7 2 Raffinement Lorsqu une machine MachineA fig 2 4 est raffin e par une machine MachineR fig 2 5 les propri t s de l invariant de MachineA doivent tre pr serv es Elles font donc appara tre des obligations de preuve suppl mentaires lors de l utilisation du prouveur sur le raffinement MachineR Selon K Lano 62 les obligations de preuves g n r es pour pr server l invariant de Ma chineA durant le raff
204. invariant de la sp cification Feu 16 4 2 2 Les post conditions des op rations Dans ce projet il est int ressant de r crire en OCL les post conditions des op rations Mi seEnService et ChangerFeux du composant CARREFOUR fig 16 12 et 16 13 car ce composant comporte l invariant le plus d velopp 16 4 3 Diagramme d tats transitions Les diagrammes d tats transitions 4 extraire sont ceux provenant des sp cifications Feu et CARREFOUR Dans la premiere sp cification Feu afin d all ger le diagramme figure 16 14 nous avons remplac les valeurs on et off respectivement par O et F prd SELECT feu1 orange A feu2 orange THEN feul feu2 rouge vert END amp prd feul orange A feu2 orange gt feul feu2 rouge vert lt feul orange A feu2 orange A prd feul rouge feu2 vert gt feul orange A feu2 orange A feul rouge A feu vert La contrainte OCL se d duit de cette post condition Context CARREFOUR MiseEnService post feu1 pre COUL_Value orange and feu2 pre COUL_Value orange and feu1 COUL_ Value rouge and feu2 COUL_ Value vert Fic 16 12 Extraction de la post condition de l op ration MiseEnService 230 CHAPITRE 16 APPLICATION ET MISE EN OEUVRE prd SELECT feu1 vert A feu2 rouge THEN feul orange WHEN feul rouge A feu2 vert THEN feu2 orange WHEN feul rouge A feu2 orange THEN feul feu2 vert rouge WHEN feu1
205. ion B r pond aux exigences du domaine car elle comprend quatre diagrammes dont ceux de classes et d tats transitions en plus de l extraction des propri t s complexes de l invariant en contraintes OCL Notre extraction fait appara tre aussi le traitement des parties concr tes des mod les comme les diagrammes de s quence et d activit s extraits partir des impl mentations La traduction des sp cifications B vers les langages objets est cibl e sur un large domaine puisqu elle est adapt e autant aux logiciels standards qu l embarqu comme les JavaCards Elle optimise autant que possible le code g n r mais doit tre guid e par l utilisateur dans certains cas Nous avons cr un outil regroupant d une part l extraction de vues UML contraintes OCL comprises et d autre part la traduction vers Java et C Ceci a permis de factoriser les d veloppements d analyse syntaxique et s mantique des projets B Cet outil a t tendu par Vinterfacage avec l outil ProB cit pr c demment Cette plate forme r pond des besoins industriels de par les m thodes conceptuelles utilis es pour une meilleure contribution de chacune d entre elles la preuve des m thodes formelles diminue les phases de tests les m thodes semi formelles apportent une meilleure lisibilit du projet et par les cibles des diff rents traducteurs d velopp s Java standard application logiciel standard Java pou
206. ion pour les deux derni res obligations de preuve Nous allons ici donner l intuition de la signification de cette double n gation dans les obligations de preuve li es au raffinement Une premi re interpr tation de la n cessit de cette double n gation est un raffinement ne doit pas premi re n gation tre en d saccord deuxi me n gation avec son abstraction Dans cette interpr tation se trouve la double n gation Pour aller plus loin dans l intuition nous allons prendre un exemple de raffinement 79 et nous consid rerons les chemins parcourus pour arriver au r sultat x x 2 x x 2 L application de cette substitution signifie qu il est possible soit d ajouter ou de retrancher 2 x ceci est une substitution non d terministe du type CHOICE x x 2 OR x x 2 40 CHAPITRE 2 LA METHODE B END Un raffinement de cette sp cification pourrait tre y y 1 avec un invariant de collage 1 y 2 x En consid rant cette sp cification il faut d montrer d apr s OP4 en ne consid rant que la partie sur les corps d op ration et en notant I l invariant du raffinement ly y 1 x x 2 x x 2 a1 En d veloppant la substitution de choix y y 1o x x 2 1 A x x 2 1 Cette expression s interpr te par les deux chemins possibles doivent tre valides En conti nuant le d veloppement on obtient ly y 1 2 A x x 2 1 A x x 2 1 y y 1 A x x 2 1 V x x
207. ion vers les langages objets et l extraction de diagrammes est diff rente car la premi re est purement concr te l oppos de la deuxi me qui est tr s abstraite Nous ne sommes pas au m me niveau entre l extraction de vues UML r alis e partir du sous ensemble du langage B abstrait et la traduction vers Java et C engendr e partir du sous ensemble d impl mentation du langage B le BO 17 2 5 Validation de sp cifications relativement au cahier des charges Dans ce document nous avons pour l instant d fini la validation des sp cifications B par extraction de vues UML et v rification de la conformit des diagrammes par rapport au cahier des charges de mani re informelle par un sp cialiste de la notation UML Nous avons aussi d crit le fait qu actuellement plusieurs mod les UML pouvaient sp cifier le m me syst me et que ni l un ni l autre solution n tait forc ment le meilleur Les diff rences de notations sont fonction des habitudes de travail des auteurs de la sp cification Il serait int ressant de r aliser une tude pratique dans le domaine industriel concernant la validation de mod les UML par rapport au cahier des charges Bibliographie 1 7 8 10 11 12 13 14 15 16 J R Abrial Extending B without changing it for developping distributed systems In Henri Habrias editor 1st Conference on the B method Nantes F pages 169 190 November 1996 ISBN 2 9060
208. ire des sp cifications concr tes des l ments permettant une meilleure compr hension globale de leur fonctionne ment Dans cette optique nous avons choisi d en extraire deux types de diagrammes qui sont les diagrammes de s quence les diagrammes d activit s 9 2 Diagramme de s quence On peut traduire une sp cification B en un diagramme de s quence si les diff rentes machines peuvent communiquer Le niveau o cette communication est la plus pr sente est l impl mentation Elle est r alis e par les appels successifs des op rations 9 2 1 Les objets On d finit les objets par rapport aux clauses IMPORTS et SEES Dans tous les cas les machines import es par la clause IMPORTS deviennent des objets du diagramme de s quence Les machines vues par la clause SEES deviennent des objets uniquement dans le cas o ses op rations sont utilis es Ceci est possible uniquement dans le cas o les op rations de la machine ne modifient pas les variables de la machine D autre part chaque instance d une m me machine doit tre repr sent e dans le diagramme de s quence Si une machine est import e plusieurs fois et renomm e fig 9 1 elle appara tra autant de fois qu elle est import e dans le diagramme de s quences Chaque objet est repr sent par un rectangle et une ligne de vie dans le diagramme de s quence fig 9 2 La ligne verticale correspond l coulement du temps 139 140 CHAPITRE 9 DIAGRAMMES
209. is des automates A1 et Ag not A A2 Sync est un automate lt S1 X Sa So S02 Sync R L gt ot R est la relation de transition inclue dans S x Sg x 126 CHAPITRE 8 EXTRACTION DE DIAGRAMMES D ETATS TRANSITIONS Sync x S1 x S2 d finie aussi f IN s1 s2 ee sy s2 R si s1 Te sy R1 S2 F cg et ey Sync es Nc 81 82 gt s1 sor R si s2 gt so Ro s1 E c1 et e2 Sync 1 i ez Nc es Nc s1 s2 eneg sy Sa ER si s1 pe Sy Ri S2 ps sy Ro 81 F C1 S2 F et e1 e2 Sync Dans notre contexte Sync est d fini implicitement par la synchronisation des actions de m me nom de et Ag Sync ei e1 Ey et e1 Esp U e2 e2 Ey et e2 Eo U e e E ete Es Les actions qui n appartiennent qu E ou E restent libres Dans les figures pour simplifier nous notons le couple e e par e MACHINE M1 SETS ETAT ouvert ferme VARIABLES v1 v2 INVARIANT v1 ETAT A v2 ETAT A v1 ouvert gt v2 ferme A v2 ouvert gt v1 ferme INITIALISATION v1 ferme v2 ferme OPERATIONS ouvrir_v1 SELECT v2 ferme THEN 71 ouvert END ouvrir_v2 SELECT v1 ferme THEN v2 ouvert END fermer BEGIN 71 ferme v2 ferme END END Fic 8 29 Exemple de machine Soit la machine M1 fig 8 29 qui permet de g rer deux vannes d alimentation v1 et v2 Une r gle de gestion R du cahier des charges stipule
210. is e l aide du nombre 5 Cet appel est l gal car 5 est de type P Z le m me que celui de ENSEMBLE1 mais la table des types de la 12 5 LES TYPES 171 class M1 static void INITIALISATION Bloc ex cut pour l initialisation de la classe static void op1 class M2 static void INITIALISATION Bloc ex cut pour l initialisation de la classe static void op2 class M3 On suppose M3 instanci une fois void INITIALISATION initialisation des variables de M3 M1 INITIALISATION M2 INITIALISATION M3 INITIALISATION DOTE HE und MIO OLY A haa ME Ope CG ist Fic 12 6 Utilisation de deux machines M1 et M2 non instanci es dans M3 machine A est pourtant en d saccord avec ce principe car seul le type de ENSEMBLE1 a t chang ENSEMBLE1 P Z Dm ENSEMBLE ENSEMBLE o ENSEMBLE TAB 12 2 Type des entit s de la machine A apres v rification locale partielle des types de B Il est donc n cessaire de modifier le type de toutes les entit s de la machine A typ es Vaide de ENSEMBLE1 pour obtenir une table des types jour comme dans le tableau 172 TAB CHAPITRE 12 GENERATION DE CODE JAVA A PARTIR DE B MACHINE A ENSEMBLE1 VARIABLES aa INVARIANT aa ENSEMBLE1 OPERATIONS bb op1 dd PRE dd ENSEMBLE1 THEN bb ENSEMBLE1 END END FIG 12 7 Exemple de machine avec
211. l accepte Le lien entre les deux machines est aussi r alis avec la clause INCLUDES Au niveau de l impl mentation on importe la machine des op rations appel es avec la clause IMPORTS Une autre contrainte est relative l instruction WHILE DO VARIANT INVARIANT END qui n est permise que dans les impl mentations Il est donc n cessaire de remplacer la substitution WHILE par la substitution identit si aucune modification des donn es n est n cessaire ou par une autre dans le cas contraire dans l abstraction et les raffinements et de maintenir la substitution WHILE dans l impl mentation 5 3 3 Classification et organisation des op rations L organisation des op rations s effectue par couches Ces couches sont au nombre de trois Dans un premier temps on trie les op rations par groupe Un groupe est constitu d une op ration appelante et de ses op rations appel es Ensuite connaissant les op rations appe lantes appel es et appelantes appel es on les trie respectivement de la mani re suivante Premi re couche les op rations appelantes uniquement Deuxi me couche les op rations appel es appelantes Troisi me couche les op rations appel es uniquement A ce stade il reste un probl me La machine correspondant la troisi me couche import e dans la machine de la premi re couche est aussi import e dans la deuxi me couche qui est elle m me import e dans la premi re
212. l ensemble est connu ainsi que les diff rentes valeurs possibles de ses l ments La classe repr sentant les l ments de l ensemble E_C contient un attribut value dont le type est d fini par une num ration UML refl tant les diff rentes valeurs possibles MACHINE AM SETS C c1 c2 c3 VARIABLES D c INVARIANT DECACEC Ac cl END FIG 6 8 Machine munie d ensembles num r s lt lt num ration gt gt gt am C EURE value C_Values am D Fic 6 9 Mod lisation des ensembles num r s et variables typ es avec ceux ci De m me que pour les ensembles abstraits une contrainte permet d exprimer ce qui n ap parait pas sur le diagramme de classes 6 2 DE LA SPECIFICATION B AU DIAGRAMME DE CLASSES 91 context A inv C includesAI D and C gt includes c and c value C_Values c1 F1G 6 10 Contrainte relative l inclusion l appartenance et l galit 6 2 4 Les ensembles de couples 6 2 4 1 Le produit cart sien Le produit cart sien de deux ensembles X et Y not X x Y est l ensemble dont les l ments sont tous les couples les paires ordonn es dont le premier l ment appartient X et le deuxi me l ment Y Le produit cart sien de X x Y est repr sent par une classe E_X_Y et par une association entre cette classe et la classe repr sentant la machine Le r le du c t de la classe nomm e X_Y repr sente le produit cart sien Dans l exe
213. l e soit par le constructeur de la classe qui re oit lui m me les param tres et se contente de les r percuter dans le cas du multi instance soit directement dans le cas d une instance unique 12 7 Les op rations 12 7 1 La traduction des op rations B et des param tres d entr e La clause OPERATIONS fig 12 30 permet de d finir les op rations d un composant Les op rations d finissent la partie dynamique du langage B Elles peuvent faire voluer les 12 7 LES OPERATIONS 183 IMPLEMENTATION M1_imp capacite MONENSEMBLE implementation de la machine abstraite MI END IMPLEMENTATION M2_imp IMPORTS i M1 10 2 8 M1 30 6 9 Fig 12 28 Cr ation de plusieurs instances param tr es en B class M1 void INITIALISATION int capacite BRange MONENSEMBLE M1 int capacite BRange MONENSEMBLE initialisation des variables de M1 INITIALISATION capacite MONENSEMBLE class M2 M1 i anonymousM1 void INITIALISATION initialisation des variables de M2 Cr ation des instances i new M1 10 new BRange 2 8 anonymousM1 new M1 30 new BRange 6 9 M2 INITIALISATION Fic 12 29 Traduction de plusieurs instances param tr es en Java 184 CHAPITRE 12 GENERATION DE CODE JAVA A PARTIR DE B variables du composant Une op ration peut avoir des param tres d entr e et de sortie les r sultats Une op ration est compos
214. l mentations sont comprises dans Pintervalle 32768 32767 Dans le cas ou la variable ii est utilis e diff remment nombre d it rations lev de la boucle il sera n cessaire d tre prudent quant l utilisation du type de base l outil de preuve devra tre param tr par ce type pour les constantes MININT et MAXINT 16 5 TRADUCTION EN JAVA 233 MAIN CARREFOUR BASIC_IO STRING_WRITE Deux feux un carrefour n EN STRING_WRITE Mise en service des faux n AAA MiseHnService m m m ii 20 else ii gt 0 STRING_WRITE Changer leg feux n AEREA ChangerFeux ii ii 1 E11 E10 Fic 16 17 Diagramme d activit s extrait de la sp cification MAIN _imp 234 CHAPITRE 16 APPLICATION ET MISE EN OEUVRE import java util Arrays class MAIN static void INITIALISATION BASIC_IO INITIALISATION CARREFOUR INITIALISATION public static void main String Args INITIALISATION short ii BASIC_IO STRING_WRITE Deux feux a un carrefour n ES BASIC_IO STRING_WRITE Mise en service des feux n CARREFOUR MiseEnService ii short short 20 while ii gt short 0 BASIC_IO STRING_WRITE Changer les feux n lee CARREFOUR ChangerFeux ii short ii short 1 F1G 16 18 Traduction du composant principal en Java 16 5 TRADUCTION EN JAVA 235 import java util Arrays class CARREFOUR static Feu aa static Feu bb static boo
215. l notations In 6th International AMAST Conference pages 216 230 LNCS 1349 ISBN 3 540 63888 1 1997 A J M Van Gasteren On the shape of mathematical arguments Springer Verlag LNCS 445 1990 ISBN 3540528490 J A Goguen J Meseguer and D Plaisted Programming with Parametrized Abstract Objects in OBJ Theory and Practice of Software Technology North Holland 1983 D Gries The Science of Programming Springer Verlag New York USA 1981 J V Guttag J J Horning and J M Wing The Larch familly of specification languages IEEE Software 2 5 1985 H Habrias Introduction la sp cification Masson 1993 ISBN 2 225 82768 0 H Habrias Sp cification formelle avec B Hermes science Publications 2001 ISBN 2 7462 0302 2 A Hammad B Tatibou t J C Voisinet and W Weiping From a B Specification to UML Statechart Diagrams In 4th International Conference on Formal Engineering Methods ICFEM 2002 Shangai China October 21 25 2002 LNCS D Harel Statecharts A visual formalism for complex systems Science of Computer Programming 8 3 231 274 June 1987 248 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 BIBLIOGRAPHIE C A R Hoare An axiomatic basis for computer programming In Communications of the ACM volume 12 pages 576 580 1969 IFAD The VDM to Java Code Generator 2000 IFAD The Dynamic Link Facility
216. latisseur qui renomme les entit s par rapport leur composant d origine Le probl me ne se pose pas dans le cadre d une traduction vers les langages objets car ceux ci poss dent la notion de classe quivalente celle de modularit du langage B D autre part la traduction de ObjectZ vers C fait appara tre tout un syst me de classe template non utilisable en Java o il n existe pas de concept template ou quivalent Cette traduction fait aussi appara tre des structures de donn es Java relatives aux fonctions bijections etc des sp cifications Z En B ces entit s sont raffin es par des fonctions totales utilis es comme des tableaux et traduites sous la m me forme dans les http www ifad dk 164CHAPITRE 11 GENERATION DE CODE A PARTIR DE SPECIFICATIONS FORMELLES langages imp ratifs Le langage VDM est tr s orient objets par cons quent l effort de traduction vers les langages objets est moindre par rapport celui qui pour origine le langage B Chapitre 12 G n ration de code Java a partir de B 12 1 Introduction La g n ration de code Java d finie dans ce chapitre a t r alis e sur la totalit de la syntaxe du BO Il existe n anmoins une restriction ce propos dans un cas particulier des en sembles param tres de machine cf 12 5 1 1 Nous allons commencer par expliquer les d tails de la traduction des composants du typage sp cifique de B et des structures de donn es Par
217. le support du langage C a t r alis en peu de temps car les deux langages poss dent des caract ristiques similaires En d pit des quelques diff rences syntaxiques mineures il existe une diff rence de taille qui concerne les r sultats de m thode En effet le langage C autorise plusieurs r sultats au contraire de Java qui n en accepte qu un seul Afin de pouvoir r aliser des applications ind pendamment des ateliers commerciaux des machines de base sp cifiques au traducteur pour les entr es sorties les ensembles et les s quences ont t d velopp es les abstractions en B les impl mentations en Java et en CH Deux communications internationales 102 97 et plusieurs pr sentations nationales 31 95 au groupe B du GDR ALP ont t faites sur la plate forme ouverte Une d monstration a t accept e au mois de Juin 2003 la conf rence internationale ZB2003 qui regroupe les communaut s Z et B L valuation des traducteurs 94 s est faite sur un ensemble d exemples et de petits pro jets d velopp s sp cifiquement ou librement disponibles Ces exemples sont livr s avec le traducteur La g n ration du code a t effectu e et le code a t compil et ex cut en Java avec le kit de d veloppement de Sun Microsystem en C sous Windows avec le compilateur de Microsoft en CA sous Linux avec le compilateur go mono Il faut aussi noter qu un tudiant de l universit de Turku
218. lean hh static void INITIALISATION bb new Feu aa new Feu aa devientOrange bb devientOrange public static void MiseEnService aa devientRouge bb devientVert public static void ChangerFeux short aaRouge short aaVert short aaOrange short bbRouge short bbVert short bbOrange aaRouge aa estIlRouge aaVert aa estllVert aaOrange aa estiIlOrange bbRouge bb estIlRouge bbVert bb estIlVert bbOrange bb estIlOrange if aaVert 1 amp amp bbRouge 1 aa devientOrange else if aaRouge 1 amp amp bbVert 1 bb devientOrange else if aaRouge 1 amp amp bbOrange 1 aa devientVert bb devientRouge else if aaOrange 1 amp amp bbRouge 1 aa devientRouge bb devientVert aaRouge aa estIlRouge if aaRouge 1 BASIC_IO STRING_WRITE feu 1 Rouge aaVert aa estIlVert if aaVert 1 BASIC_IO STRING_WRITE feu 1 Vert aaOrange aa estIlOrange if aaOrange 1 BASIC_IO STRING_WRITE feu 1 Orange bbRouge bb estIlRouge if bbRouge 1 BASIC_IO STRING_WRITE feu 2 Rouge n bbVert bb estIlVert if bbVert 1 BASIC_IO STRING_WRITE feu 2 Vert n bbOrange bb estIlOrange if bbOrange 1 BASIC_IO STRING_WRITE feu 2 Orange n F1G 16 19 Traduction du composant CARREFOUR en Java 236 CHAPITRE 16 APPLICATION ET MISE EN OEUVRE
219. les labels R P N x N par R a l e LAq gt q eR La fermeture transitive est not e par R la fermeture r flexive et transitive par R et l inverse par R7 Un tat q N est atteignable si q R M autrement dit q appartient l image des tats initiaux par la fermeture r flexive et transitive de R Si R C M x Na alors on note par pre R P N2 P N la fonction des pr d cesseurs sur l ensemble des tats et par post R P N gt P N3 la fonction des successeurs Soit Q un sous ensemble de N alors Q est le compl ment de Q par rapport N Les d finitions suivantes sont ha bituellement utilis es sur des relations binaires 68 87 o R C M x No Qi CN et QCM pre R Q2 q q M A 3q q Q q q R post R Qi q q No 3q q Qi A q q ER pre R Q2 pre R Q2 posi R Q1 post R Q ste Si R est totale alors pre R C pre R et si R est une fonction alors pre R pre R Pour les syst mes de transitions les labels peuvent tre consid r s comme des r f rences sur la relation qu il labellise La d finition suivante est utilis e o R C N x L x N et Q C N pre Q alq ENA Ig QA q gt q R post Q Id ENA A3qalq E QA a gt g ER 5 6 2 Principe de construction d un syst me de transitions fini Dans cette section nous tudierons une mani re de construire un syst me de transitions tiquet es 16
220. les variables de la machine on peut aussi appeler les op rations des machines vues par la clause SEES fig 9 11 144 CHAPITRE 9 DIAGRAMMES DE SEQUENCE ET D ACTIVITES IMPLEMENTATION MAIN imp IMPORTS aa M1 bb M1 SEES M2 END Fic 9 11 Liens de visibilit et importation entre machines Dans un premier temps on cr e une trav e pour la machine MAIN qui repr sente le point d entr e du diagramme d activit Ensuite toutes les instances de machines apparaissent sous la forme de trav es comme les instances de M1 aa et bb dans la figure 9 12 Les machines vues apparaissent uniquement si les op rations de ces machines sont utilis es Il faut aussi donner le type de Vinstance pour aa et bb le type est M1 Pour M2 le nom de l instance est le type A travers cette traduction on connait les op rations des instances Fic 9 12 Traduction des liens de visibilit et importation entre machines 9 3 2 Initialisation op ration et tats d acceptation L initialisation permet de donner une valeur initiale chaque variable de la machine abstraite ensuite les op rations utilisent ces variables fig 9 13 L op ration se termine une fois que toutes ces instructions sont ex cut es IMPLEMENTATION MAIN imp INITIALISATION OPERATIONS OP1 END Fic 9 13 Initialisation et op rations dans une machine B Dans le diagramme d activit s correspondant l initialisation est symbolis e par un disque plein et
221. leurs ant rieures 62 4 7 6 La navigation vers les extr mit s d association 62 Af Les collections na da o ant he Beetle ar Diet unes de 63 4 7 8 Les classes associations 64 AiO Les variables ps rpa epai lan gt al De de ae I Oe eee A ae 64 48 Conclusion 6306 e a bh eee Vie RAR ha ESA RM ES D AE 64 Etat de l art D rivation d UML vers B 65 5 Introductions ss oi LU en ges Ao ie ae entr RS aus en ne ar LE 65 5 2 D rivation partir de diagrammes de classes UML 65 5 2 1 D rivation des classes 66 52 24 ATTI DUD Le aes bee ne te es ee ele A tele 67 52 39 Op rations Me Re A DE Sick ad het cet he ae whe 67 DLA ASSOCIATION LE A og Poe ee Ba Bocas tte Ae ee a vel Ors Ca eM niobate 68 02 07 Generalisation o e e Svea Sede A ea es ce 69 5 3 Extension de la d rivation des diagrammes de classes 70 5 3 1 Motivations 4 49 48 sg ue an a a a da 71 5 3 2 D rivation des prototypes et appels d op rations 71 5 3 3 Classification et organisation des op rations 72 5 4 D rivation partir de diagrammes d tats transitions 72 5 4 1 D rivation de statecharts en machines abstraites 72 5 4 2 Extension de la d rivation associ e au diagramme de classes 76 5 5 Traduction des expressions OC
222. m comme nom de r le du c t correspondant au type d l ment Une variable a appartenant un ensemble abstrait A est repr sent e par une agr gation entre la classe repr sentant la machine et la classe correspondant au type d l ment avec comme nom de r le du c t de cette classe le nom de la variable MACHINE AM SETS A VARIABLES B a INVARIANT BCAAaEA END FIG 6 5 Machine munie d ensembles abstraits FIG 6 6 Mod lisation des variables typ es avec des ensembles abstraits Une contrainte OCL permet d exprimer l inclusion entre les ensembles A et B qui n ap para t pas sur le diagramme de classes ainsi que l appartenance de 4 l ensemble A Dans la contrainte de la figure 6 7 le contexte par rapport auquel s exprime la contrainte est la classe AM et inv signifie invariant En utilisant le r le depuis cette classe on obtient un ensemble La fonction pr d finie includesAll permet de s assurer que tous les l ments de l ensemble pass en param tre obtenu par le r le B sont inclus dans l ensemble obtenu par le r le A 90 CHAPITRE 6 EXTRACTION DE DIAGRAMMES DE CLASSES context A inv A gt includesAll B and A gt includes a FIG 6 7 Contraintes d inclusion dans un ensemble A 6 2 3 2 Les ensembles num r s Un ensemble num r comme C dans l exemple de la figure 6 8 est repr sent de fa on similaire un ensemble abstrait mais ici le cardinal de
223. machines B Le projet B fig 13 2 et 13 4 enti rement prouv comprend une machine abstraite et son impl mentation repr sentant le porte monnaie lectronique et une machine abstraite et son 204 CHAPITRE 13 VERS UNE TRADUCTION POUR JAVACARD k class BWallet java generated on 20 f vr 2003 19 06 28 x package wallet class BWallet static final int MAX_BALANCE 10000 static final int MAX_TRANSACTION_AMOUNT 100 static final int DEFAULT_BALANCE 0 static int balance static void INITIALISATION balance 0 public static void setBalance int balanceInit balance balancelnit public static void debit int debitAmount balance balance debitAmount public static void credit int creditAmount balance balance creditAmount public static int getBalance int amount 0 amount balance return amount Fic 13 6 Code Java g n r pour l exemple du porte monnaie contenu du porte monnaie impl mentation permettant d utiliser le porte monnaie lectronique Nous ne pr sentons ici que la machine abstraite BWallet qui permet de voir les pr conditions l impl mentation ne faisant appara tre que la clause VALUES pour valuer les constantes et l impl mentation qui utilise BWallet UsingBWallet_imp 13 3 3 La traduction en Java La g n ration du code Java engendre autant de classes que d impl mentations B Ces classes appartiennent toutes au package wallet
224. mble abstrait 173 12 10 Exemples d impl mentation avec typage d un ensemble abstrait 173 12 11 Un ensemble abstrait en B 175 12 12 Traduction d un ensemble abstrait en Java 176 12 13 Un ensemble num r en B 176 12 14Traduction d un ensemble num r en Java 176 12 15U e constante en Bic naci Soe ey hae a pr AS ner ae rente 177 12 16 Traduction d une constante en Java aoaaa a 177 12 17 Des variables en Be ol bs doe ohn Soave Do eee SR ugk Go Ge ew Be 178 12 18 Traduction des variables en Java 178 12 19Constantes tableaux une dimensionenB 179 12 20 Traduction de constantes de type tableaux en Java 179 12 21 Variables de type tableaux en B 179 12 22 Traduction des variables de type tableaux en Java 180 12 23 Tableaux dont les indices sont des num r s ou des bool ens en B 180 12 24Traduction des tableaux dont les indices sont des num r s ou des bool ens B CM AN 181 12 25 Tableau qui repr sente une variable ensembliste 181 12 26 Tableaux de tableaux en B 182 12 27 Traduction en Java de tableaux de tableaux oono 182 12 28Cr ation de plusieurs instances param tr es en B 183 12 29Traduction de plusieurs i
225. mbles ainsi que le langage des substitutions g n ralis es Le cycle de d veloppement des applications fig 2 1 passe par la r daction du cahier des charges et sa sp cification abstraite 60 Par la suite les caract ristiques du cycle de d veloppement avec B sont utilis es La sp cification abstraite est prouv e puis raffin e tout en pr servant les propri t s prouv es dans l entit abstraite Pour finir les impl mentations du projet B sont traduites vers un langage compilable et ex cutable Il existe deux approches autour de la m thode B L approche v nementielle dite aussi syst me 1 4 utilise les v nements pour modifier l tat du syst me Ils peuvent s ex cuter si leur garde condition est vraie L approche logicielle dite aussi classique utilise des op rations quivalent des v nements de la forme v nementielle qui ont des pr conditions en lieu et place des gardes des v nements de la forme v nementielle Celles ci doivent tre v rifi es avant l appel par nom des op rations Dans ce document nous nous concentrerons sur la pr sentation de l approche logicielle dite classique 2 3 1 Fondements de la m thode B La m thode B ne d finit pas une application mais un mod le math matique Ce mod le est d compos en modules machines abstraites pour cloisonner les contraintes d finies dans le cahier des charges De cette mani re on r duit la complexit en vitant les interactio
226. mme de d ploiement Il montre la disposition physique et mat rielle qui compose le syst me et la r partition des composants sur le mat riel Les ressources mat rielles sont repr sent es sous forme de noeuds lesquels sont connect s entre eux par un support de communication et leurs caract ristiques peuvent tre pr cis es Ces diagrammes repr sentent le d ploiement des composants sur le dispositif mat riel Diagramme de collaboration Il repr sente les interactions entre les acteurs et les objets instances de classes Il permet de sp cifier de mani re tr s pr cise l ordre et les conditions d envoi des messages de communication entre les objets Diagramme de s quence Il repr sente les communications entre les objets selon un point de vue temporel Dans ce diagramme on met l accent sur la chronologie des envois de messages L ordre d envoi des messages est d fini par son emplacement sur la ligne de vie des objets qui correspond au temps qui s coule Diagramme d tats transitions I repr sente les modifications de l tat d un objet selon son propre comportement et ou le comportement des autres objets du syst me Comme son nom l indique le diagramme d tats transitions est compos d tats et d arcs orient s appel s transitions qui d terminent les changements d tats Diagramme d activit s Le diagramme d activit est une variante du diagramme d tats transitions En
227. mple de la figure 6 11 l ensemble A est inclus dans le produit cart sien X par Y A est donc un ensemble de couples MACHINE AM SETS xX Y VARIABLES A INVARIANT ACXxY END FIG 6 11 Machine munie de produit cart sien Remarque Le produit cart sien n est pas forc ment la notation la plus usit e en B pour d finir des ensembles de couples mais elle nous permet d obtenir dans la traduction le typage 1am am Fic 6 12 Mod lisation du produit cart sien 92 CHAPITRE 6 EXTRACTION DE DIAGRAMMES DE CLASSES d un couple par la d finition de la classe repr sentant les l ments du produit cart sien Dans l exemple de la figure 6 11 tous les ensembles de couples ayant comme premier l ment un l ment de X et comme deuxi me l ment un l ment de Y seront d finis comme des r les reliant la machine la classe E_X_Y 6 2 4 2 Les relations En B les relations sont des ensembles de couples xi yi avec xi appartenant l ensemble X et yi appartenant l ensemble Y Une relation R peut tre d finie dans l invariant par la notation R X Y qui signifie que R appartient l ensemble des relations de l ensemble X dans l ensemble Y Deux cas peuvent se pr senter le premier si X et Y sont des ensembles simples le deuxi me si X et ou Y est une relation Les deux cas sont illustr s sur l exemple de la figure 6 13 et de la figure 6 14 le premier par R1 et le deuxi me
228. n des outils associ s La deuxi me d marche sur laquelle de nombreux travaux 40 60 84 74 63 36 73 ont t men s ces derni res ann es promeut la d rivation de sp cifications B partir de diff rents diagrammes OMT et UML Les avantages d une telle approche sont vidents la mod lisation est r alis e en dehors du cadre de la m thode formelle et permet aux concepteurs de l ignorer Les inconv nients sont de deux types La notation B n est pas orient e objet mais modulaire par cons quent la sp cification abstraite engendr e partir d une mod lisation objets est loign e de celle qui aurait t crite directement en utilisant une m thode formelle La sp cification d coulant de la d rivation est incompl te car les m thodes semi formelles ne poss dent pas les notions de substitutions Il faudra donc modifier une sp cification 3 3 CONTENU DE LA DEUXI ME PARTIE 49 g n r e automatiquement puis poursuivre par l criture des raffinements et prouver chacune des machines Ceci conduit penser qu une partie des concepteurs choisira d crire directement ses sp cifications en B Il devient alors int ressant de pouvoir extraire de celles ci les l ments permettant de mieux les comprendre les pr senter et les documenter Ces l ments seront exprim s dans une notation de mod lisation graphique de plus en plus utilis e dans le do maine de la conception de logiciels c est dire
229. nciennes et du Hainaut Cambr sis d cembre 2003 M L Potet Etude du passage de param tres dans la m thode B optimisa tion m moire 2001 Rapport technique du projet BOM URL http lifc univ fcomte fr tatibouet WEBBOM A Requet and G Bossu Embedding Formally Proved Code in a Smart Card Conver ting B to C In Formal Engineering Methods 2000 pages 15 22 2000 J Rumbaugh M Blaha W Premerlani F EDDY and W Lorensen Object oriented modelling and design Prentice Hall New Jersey 1991 P Schnoebelen V rification de logiciels Vuibert 1999 ISBN 2 7117 8646 3 E Sekerinski Graphical design of reactive systems In B 98 Recent advances in the development and use of the B Method pages 182 197 LNCS 1393 Montpellier France April 1998 R Sethi Programming languages Concepts and constructs Addison Wesley 1989 M Shroff and R B France Towards a Formalization of UML Class Structures in Z In COMPSAC 97 1997 250 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 BIBLIOGRAPHIE J Sifakis A unified approach for studying the properties of transition systems In Theoritical Computer Science volume 18 pages 227 258 1982 Rational Software Corporation Unified Modeling Language http www rational com uml Santa Clara USA 1997 I Sommerville Le g nie logiciel Addison Wesley 1992 ISBN 2 87908 033 9 J M
230. ne abstraite fig 8 33 d crit le dispositif Dt Dans la clause OPERATIONS nous trouvons les v nements Chgt et Dchgt qui correspondent respectivement au chargement et d chargement de pi ces par le dispositif Dt Nous remarquons que l v nement Chet fait passer Dt de l tat vide vid l tat occup occ par contre l v nement Dchgt r alise l inverse MACHINE Robot0 SETS ETAT vid occ VARIABLES dt0 INVARIANT dt0 vid occ INITIALISATION dt0 vid OPERATIONS Chgt SELECT dt0 vid THEN dt0 occ END Dchgt SELECT dt0 occ THEN dt0 vid END arr_p skip evac skip END FIG 8 33 Machine abstraite Le diagramme de la variable dt0 fig 8 38 est extrait partir de trois l ments de la sp cification B du robot fig 8 33 qui sont 8 11 L EXEMPLE DU ROBOT 129 Vinitialisation Vop ration Chgt l op ration Dchgt Le diagramme extrait de l initialisation est celui de la figure 8 34 RobotO FIG 8 34 Diagramme d tats transitions du Robot0 extrait de l initialisation Le diagramme extrait de l op ration Chgt sans simplification est celui de la figure 8 35 RobotO Fic 8 35 Diagramme d tats transitions du Robot0 extrait de l op ration Chgt On obtient le diagramme 8 36 apr s la simplification par suppression de la transition r flexive sachant que P dt0 vid est vrai dans l tat vid la condition Dt0 vid dispara t des transitions Robo
231. ne est la m me que dans la d rivation pr c dente et poss de en plus un param tre typ dans la clause CONSTRAINTS fig 5 4 MACHINE Classe param CONSTRAINTS param typeParam FIG 5 4 D rivation d une classe template 5 2 DERIVATION A PARTIR DE DIAGRAMMES DE CLASSES UML 67 5 2 2 Attribut Les attributs ont un type en UML et plusieurs visibilit s possibles La d rivation formelle en B de l attribut ne peut tre r alis e qu avec une visibilit priv e car elle est la seule a poss der un quivalent en B Le typage de l attribut et l appartenance l objet instanci de la classe Classe fig 5 5 sont d finis par la relation attrib fig 5 6 typ e de la mani re suivante dans l invariant attrib classe typeAttrib attrib tant le nom de l attribut Classe attrib typeAttrib FIG 5 5 Un attribut VARIABLES attrib classe INVARIANT attrib classe typeAttrib INITIALISATION attrib 0 FIG 5 6 D rivation d un attribut 5 2 3 Op ration 5 2 3 1 Op ration standard Dans une classe Classe une m thode UML est d riv e formellement en B dans la machine Classe par la construction partielle d une op ration fig 5 8 car le diagramme de classes fig 5 7 ne donne pas le contenu code de l op ration En effet le r sultat de la d rivation donne pour les op rations les informations suivantes le nom de l op ration le nom et le type des param tres d e
232. nes dont les op rations sont appel es Dans la sp cification ci dessous la machine M est import e sous le nom MX Elle est ensuite appel e par ce nom pour en utiliser les op rations Les op rations peuvent prendre des arguments et retourner des valeurs a la fin de leur ex cution fig 9 24 La valeur des arguments est fix e avant l ex cution de la premi re instruction de l op ration appel e 9 3 DIAGRAMMES D ACTIVITES 149 IMPLEMENTATION MAIN_IMP IMPORTS MX M OPERATIONS main VAR zz IN 7z MX OP1 25 END END IMPLEMENTATION M_IMP OPERATIONS res OP1 arg1 defsBEGIN END END FIG 9 24 Appel d op ration en B Le diagramme d activit s extrait de ces sp cifications fig 9 24 fait apparaitre l appel de l op ration au niveau de la transition fig 9 25 qui part de la trav e MAIN vers la trav e MX L appel d op ration est not par le caract re Le retour de la s quence d ex cution dans la machine MAIN est r alis par une transition partant de l tat correspondant l ex cution de l op ration dans la trav e MX et arrivant dans la trav e MAIN F1G 9 25 Traduction de l appel d op ration Plus g n ralement les diagrammes d activit s sont capables de montrer peu de choses pr s les m mes aspects de communication sch matis s par les diagrammes de s quence pr sent s en d but de chapitre En effet les diagrammes de s quence mettent en avant l
233. non born Nous cherchons interpr ter P relativement l tat source de la transition Les expressions interpr tables de P font partie de la liste non exhaustive suivante X VX x VX 8 8 LES SUBSTITUTIONS DE COMPOSITION 123 2G Leo e 5p UXj x 0Xi ON P peut tre vrai dans un tat VXI les transitions tiquet es par OP P issues de l tat VXI disparaissent et inversement lorsqu il est faux les transitions tiquet es OP P issues de VXN disparaissent Cependant le pr dicat P n est pas obligatoirement interpr table dans sa totalit Il existe quatre cas de figure o une partie de P est interpr table sachant que g n ralement une transition dont la condition est P P1 V P2 donne deux transitions distinctes l une avec la condition P1 et l autre avec P2 P P1 A P2 o P2 vrai gt P P1 A vrai gt P P1 P 2 P1 V P2 o P2 vrai P P1 V vrai gt P vrai P P1 A P2 o P2 faux gt P P1 A faux P faux P 2 P1 V P2 o P2 faux gt P P1 V faux P P1 L valuation pourrait tre r alis e l aide d un outil comme l animateur faisant partie de loutil BZ Testing Tools 65 d velopp au sein du LIFC Cet animateur 25 39 permet d valuer d une part les gardes et conditions des substitutions et d autre part les expressions utilis es dans les substitutions simples d affectation d terministes et non d terministes et
234. ns entre les diff rentes contraintes et leur r solution L l ment essentiel de la m thode B est la machine abstraite fig 2 2 qui d finit le niveau le plus abstrait du syst me sp cifi Chaque machine abstraite pour d finir un module du syst me est divis en deux Une partie statique qui comprend les donn es ensembles relations fonctions variables etc et l invariant qui d finit les contraintes que le syst me doit absolument respecter Une partie dynamique permet de modifier les variables gr ce l initialisation et aux op rations En effet l tat du syst me est d fini par les valeurs de ces variables et ce sont les op rations qui le font vivre et voluer dans son environnement 2 3 LA METHODE B 33 Cahier des charges A Sp cification Conception i yN Machine abstraite 3 preuves Raffine preuves de raffinement Raffinement preuves 4 Raffine preuves de raffinement E So Impl mentation i preuves o Traduction Compilation Application A Fig 2 1 Cycle de d veloppement en B 2 3 2 Raffinement et impl mentation Le cycle de d veloppement de logiciels avec la m thode B commence par une abstrac tion Cette abstraction d finit les grandes lignes et principes essentiels du fonctionnement du syst me Les raffinements successifs permettent de d tailler ce fonctionnement pour le rendre de plus en plus concret jusqu en d crire une impl mentation l a
235. nsitions du bouton Lorsqu on appuie sur le bouton il passe l tat On allum et il s teint l tat off press self getLift call self getFloor gt AA lt A lt AA release Fic 5 28 Diagramme d tats transitions du bouton La figure 5 29 repr sente le diagramme d tats transitions de l ascenseur Quand l ascen seur est en mouvement pour un premier appel call et qu un deuxi me appel survient il est diff r car l ascenseur r pondra au premier appel avant le deuxi me On parle de communi cation asynchrone L argument ff de l appel call est le num ro d tage d o il provient Au contraire de l appel call extinction du bouton release est synchrone car il est instantan par rapport l arriv e de l ascenseur l tage demand 5 4 2 2 Raffinement et impl mentation des transitions et actions Les travaux de Ledang d rivent les tats et transitions de la m me mani re que Meyer le cas g n ral est pr sent dans la figure 5 32 et compl tent si n cessaire le projet B par une machine correspondant la console de contr le du syst me et par une autre op ration d riv e dans cette nouvelle machine fig 5 30 un argument d op ration pour identifier l objet concern Il une condition qui d finit l tat source lift_State ll lift_visit une affectation qui d finit l tat cible lift_State Il lift_ready Le nom de l
236. nstances param tr es en Java 183 12 30Un exemple de passage de param tres en B 185 12 31Traduction du passage de param tres en Java 186 12 32 Appels d op ration interdits 187 12 33Un exemple de passage d un param tre tableau par r f rence 187 12 34Traduction en Java d un param tre tableau pass par r f rence 188 18 TABLE DES FIGURES 12 35Substitution Devient gal pour les tableaux 190 12 36 Traduction en Java de la substitution Devient gal pour les tableaux 191 12 37La substitution appel d op rationenB 192 12 38 Traduction de la substitution appel d op ration en Java 193 12 39Le s quencement B 193 12 40 Traduction en Java du S quencementB 193 12 41Les substitutions Variables locales en B 193 12 42 Traduction des substitutions Variables locales Ben Java 194 12 43La substitution Condition par casenB 195 12 44Traduction en Java de la substitution Condition par cas de B 196 12 45La substitution Boucle tant queenB 196 12 46 Traduction de la substitution Boucle tant que en Java 196 13 1 D veloppement d une applet JavaCard 199 13 2 Sp cification abstraite B du port
237. nt beaucoup d l ments des diagrammes d tats transitions en tant que variante de ce dernier Un diagramme d activit s repr sente l tat de l ex cution d un m canisme sous la forme d un d roulement d tapes regroup es s quentiellement dans des branches parall les de flots de contr le Le d but et la fin d un m canisme sont d finis respectivement par un tat initial et un tat final facultatif Les acti 60 CHAPITRE 4 LA NOTATION UML vit s d tats se notent de la m me mani re que dans les diagrammes d tats transitions selon qu elles sont ex cut es en entr e entry durant l ex cution de l tat do ou en sortie exit fig 4 19 4 6 1 Les objets Les acteurs du diagramme sont les objets du syst me Ils sont repr sent s par des trav es nomm es par le nom de l objet Chaque passage d une trav e l autre par une transition est consid r comme un appel de m thode d un objet par une autre de l objet relatif la trav e fig 4 17 OBJET1 OBJET2 Fic 4 17 Les acteurs d un diagramme d activit 4 6 2 Ex cutions concurrentes Les ex cutions concurrentes dans un diagramme d activit ne se notent pas de la m me mani re que dans les diagrammes d tats transitions On utilise une barre horizontale pour d finir le fait que l on fractionne le flot d ex cution en plusieurs fig 4 18 OBJET1 FIG 4 18 Ex cutions concurrentes de branches
238. nt la m thode INITIA LISATION doit tre appel e sera initialis e m me si la classe qui instancie est elle aussi dite statique il n y aura pas de constructeur 12 4 2 Exemples Les exemples qui suivent ont pour but d illustrer les diff rents cas de figure qui peuvent se pr senter fig 12 3 12 4 12 5 et 12 6 IMPLEMENTATION M1_imp implementation de la machine abstraite M1 END IMPLEMENTATION M2_imp IMPORTS 1 M1 M1 FIG 12 3 Importation nominative ou non d une machine 12 5 Les types 12 5 1 Les types de base du langage B Les types de base sont Vensemble des entiers relatifs Z l ensemble des bool ens BOOL true false l ensemble des cha nes de caract res STRING les ensembles num r s et abstraits d finis dans la clause SETS voir section suivante Pour pouvoir impl menter les donn es dans un langage informatique certaines contraintes sont n cessaires Les entiers concrets doivent appartenir l intervalle INT INT est un sous ensemble de l ensemble Z born par les constantes MININT et MAXINT La valeur de ces constantes est param trable selon la machine cible de telle sorte que les donn es soient repr sentables sur la machine et qu il n y ait pas de d bordements lors des calculs Ceci doit se faire au niveau du langage B pour que la preuve en tienne compte Les sous ensembles d entiers et les ensembles abstraits doivent tre des inter
239. nt le temps d apprentissage n cessaire pour les ma triser et le temps de d veloppement associ On con oit volontiers que la disponibilit d une m thode de mod lisation unique adapt e toutes les situations n existe pas 1 1 Contexte Les besoins du monde industriel sont les suivants une augmentation de la s ret de leurs produits et un gain de productivit au niveau de la conception Les m thodes les plus utilis es en mod lisation Merise OMT UML dites semi formelles sont bas es principalement sur l utilisation de divers diagrammes Elles repr sentent le syst me d une mani re la fois in tuitive et synth tique De ce fait elles sont bien adapt es la plupart des utilisateurs et concepteurs des syst mes d informations Ces avantages ont contribu r pandre tr s large ment leur utilisation dans l industrie Leur principal d faut est le manque de pr cision de leur s mantique qui rend leur notation parfois ambigu De plus ces m thodes ne permettent pas de s assurer du bon fonctionnement du syst me En effet l exp rience des analystes concep teurs est le seul parachute contre les probl mes d ex cution du syst me car il est impossible de prouver son fonctionnement par des moyens calculatoires Il est donc n cessaire de mettre en place une grosse batterie de tests pour s assurer du bon fonctionnement de la majorit des cas d utilisation sans atteindre une s ret complete 1 2
240. ntiels Les variables clause VARIABLES Inscrits et Inscrits AuxExamens sont typ es dans l invariant clause INVARIANT Inscrire est une fonc tion partielle entre l ensemble des tudiants et celui des dipl mes c est donc un ensemble de couples o le premier l ment d un couple est un tudiant et le deuxi me un dipl me Inscrits AuxExamens est un sous ensemble de Inscrits Initialement aucun tudiant n est inscrit L invariant est devenu vrai apr s l initialisa tion clause INITIALISATION Dans la clause OPERATIONS on trouve l ensemble des op rations La seule op ration d crite ici est Inscrire qui correspond Vinscription d un tudiant en vue d obtenir un dipl me Cette op ration est soumise une pr condition qui doit tre v rifi e Cette pr condition permet d attribuer un type aux param tres puis de v rifier que l tudiant demandant inscrire n est pas d j inscrit Le corps de l op ration permet d ajouter le couple etudiantr gt diplome l ensemble Inscrits Sur le diagramme de la figure 6 27 une partie des r gles adopt es appara t La machine est une classe Un ensemble abstrait comme ETUDIANTS est repr sent par une classe E_ETUDIANTS correspondant au type d l ments de l ensemble et par une association entre cette classe et la classe repr sentant la machine L extr mit de l association du c t de la classe correspondant au type d l ments poss de un nom r
241. ntr e le type des param tres de sortie Durant la d rivation il faut nommer les param tres de sortie arbitrairement D autre part la machine repr sente la classe dont il faut d finir l instance de classe concern e par l ex cution de la m thode On est donc oblig de modifier le prototype de la m thode pour y faire appara tre un param tre suppl mentaire oo qui correspond l identifiant de l objet Cet identifiant est contenu dans la variable ensemble classe d o son typage dans les pr conditions 00 classe 5 2 3 2 Le constructeur Le constructeur que l on nomme creerClasse fig 5 9 devient une op ration commune de la machine Classe fig 5 10 Une nouvelle instance de classe 00 est cr e lorsque la valeur oo est retourn e par l op ration creerClasse et sa valeur new est d finie par new CLASSE 68 CHAPITRE 5 ETAT DE L ART DERIVATION D UML VERS B Classe RE RE CP EP oper paramOper typeOP typeRetour FIG 5 7 Une m thode OPERATIONS out oper oo paramOper PRE 00 classe paramOper typeOP THEN out typeRetour END FIG 5 8 D rivation d une m thode classe L op ration v rifie au pr alable dans sa pr condition que l ensemble CLASSE classe ne soit pas vide Les attributs sont initialis s Il existe deux possibilit s La valeur initiale de l attribut est explicitement d finie on utilise cette valeur vall pour augmenter la relation at
242. oire est faible Il y a toutefois la possibilit de cr er des objets transitoires en RAM en passant par API du syst me Les types de base autoris s sont les byte 8 bits les short 16 bits et les boolean Le type int 32 bits peut tre support de fa on optionnelle On ne dispose que des tableaux une dimension Il n y a pas de threads La politique de s curit est incorpor e dans la machine virtuelle Les applications destin es cette plate forme sont des applets JavaCard une des classes doit h riter de la classe Applet et impl menter au minimum les fonctions install pour Vinstallation d une applet et process pour traiter les commandes destin es Papplet Pour garantir un fonctionnement coh rent il y a un m canisme de gestion des transactions un seul niveau Un m canisme de gestion de partage d objets entre applets existe galement La communication entre la carte et le lecteur est r alis e par un protocole utilisant des paquets ADPU Il faut aussi remarquer que la plate forme JavaCard est en volution rapide et que des restrictions par rapport la plate forme Java sont lev es au fur et mesure des avanc es technologiques et de la publication des nouvelles sp cifications 13 2 2 Structure d une applet pour JavaCard La structure des applets pour JavaCard est compos e de trois parties fig 13 1 un module de communication les pr conditions des op
243. on entre les deux classes fig 4 3 Si l association relie trois classes ou plus on parle d association n aire elle est repr sent e par un losange reli chaque classe par un trait L intersection entre l extr mit d une association et une classe peut porter un nom que l on appelle r le De plus une association peut comporter des attributs que l on appelle attributs de lien Dans ce cas on cr e une classe qui ne poss de pas de nom que l on relie l association par une ligne en pointill s 4 3 3 2 Multiplicit La multiplicit concerne le nombre d objets mis en jeu pour un lien fig 4 5 d une asso ciation Elle r pond la question combien d objets de la classe consid r e peuvent tre mis en relation avec un objet de l autre extr mit de l association Elle est d finie par un entier ou un intervalle sous les formes suivantes Not N 1 00 N M ot N 1 00 M 1 00 et M gt N N ot N 1 00 sachant que les notation 0 et sont quivalentes Agglom ration F1G 4 3 G n ralisation association et multiplicit 4 3 4 Qualification des associations La qualification d une association aussi d nomm e restriction d une association consiste s lectionner un sous ensemble d objets parmi l ensemble des objets qui participent une association La restriction est r alis e au moyen d un tuple d attributs particuliers appel quali
244. on partir de diagrammes de classes UML Les diagrammes de classes sont les plus utilis s pour mod liser la partie statique d un syst me Ils comprennent des l ments comme les classes les attributs les associations et la g n ralisation La d rivation de ces diagrammes est ins r e dans les donn es des machines abstraites 65 66 CHAPITRE 5 ETAT DE L ART DERIVATION D UML VERS B 5 2 1 D rivation des classes Selon Meyer une classe Classe fig 5 1 est d riv e formellement en B par la construction d une machine abstraite Classe fig 5 2 Celle ci d clare l ensemble CLASSE des objets possibles de Classe CLASSE est une constante d finie comme un sous ensemble de l ensemble de tous les objets possibles OBJETS l ensemble classe des objets instanci s classe est d fini comme un sous ensemble de CLASSE et initialis par l ensemble vide FIG 5 1 Une classe en UML MACHINE Classe CONSTANTS CLASSE PROPERTIES CLASSE C OBJETS VARIABLES classe INVARIANT classe C CLASSE INITIALISATION classe END FIG 5 2 D rivation de la classe en B Une classe peut tre param tr e elle sera appel e classe template Ceci permet de donner un param tre et son typage une classe fig 5 3 pia HypeParam 1 Classe FIG 5 3 Une classe template Une classe template est d riv e formellement en B par la construction d une machine abstraite param tr e Classe Cette machi
245. on information concernant le nombre d instances devra tre d termin e par le traducteur Deux probl mes se posent La machine import e est nomm e mais il n y a qu une instance dans la g n ration de code ce nom dispara t pour ne laisser que le nom de la classe Java correspondante La machine est import e plusieurs fois mais une des instances n est pas nomm e dans la g n ration de code il faudra choisir un nom pour cette machine Le nom choisi fera appara tre le nom de la classe et le fait qu il s agit d une instance anonyme anonymous lt NomDeClasse gt fig 12 3 et 12 4 Chaque classe Java comportera une fonction INITIALISATION Cette fonction sera pr c d e du modificateur static dans le cas d une classe qui ne sera jamais instanci e Cette fonction permettra la cr ation des instances de machine en Java via l op rateur new cet op rateur appelle le constructeur de la classe qui appelle la fonction INITIALISATION de l instance initialisation des variables de l instance ou de la classe 168 CHAPITRE 12 GENERATION DE CODE JAVA A PARTIR DE B Dans le cas o la machine est dite statique les m thodes et variables sont pr c d es du modificateur static la m thode INITIALISATION est appel e non pas par son propre constructeur qui n existe pas mais par la m thode INITIALISATION de la classe qui l utilise fig 12 5 12 6 Dans ce cas on est s r que la classe dite statique do
246. onception Sp cification Notre contribution l utilisation conjointe des m thodes formelles et semi formelles par extraction de vues UML et de contraintes OCL doit donc intervenir sur les trois tapes suivantes du cycle de d veloppement d applications fig 1 1 sp cification conception impl mentation codage implantation test Les diff rentes extractions nonc es pr c demment remplissent parfaitement leur r le vis vis des tapes de sp cification conception et d impl mentation codage En effet la phase de sp cification conception r alis e l aide des machines abstraites qui d finissent les concepts g n raux du syst me est valid e relativement au cahier des charges par les extractions rela tives aux abstractions comme les diagrammes de classes les contraintes OCL les diagrammes d tats transitions 17 1 CONTRIBUTIONS 241 La phase d impl mentation codage quant elle est valid e toujours relativement au cahier des charges par les extractions d autres diagrammes comme les diagrammes de s quence les diagrammes d activit s Ceci permet de valider le comportement d taill du syst me car ces diagrammes sont extraits depuis les impl mentations des sp cifications B N anmoins l apport de validation n a pas autant d importance que pour la partie abstraite et conceptuelle des sp cifications car le langage BO est tr s proche des langages
247. op2 1 true BBoolean res3__Object new BBoolean res2 1 0p3 res3__Object res3 res3__Object getValue Fic 12 38 Traduction de la substitution appel d op ration en Java tmp x X Yy y tmp Fic 12 39 Le s quencement B tmp xX x y y tmp FIG 12 40 Traduction en Java du S quencement B VAR bb ii IN bb unBooleen 11 2 unEntier END Fic 12 41 Les substitutions Variables locales en B ELSIF lt Condition gt THEN lt Instruction gt ELSE lt Instruction gt 194 CHAPITRE 12 GENERATION DE CODE JAVA A PARTIR DE B boolean bb int ii bb ii 2 unEntier unBooleen Fic 12 42 Traduction des substitutions Variables locales B en Java END Elle peut prendre plusieurs formes IF p THEN s END la forme minimale La substitution s est appliqu e si p est v rifi IF p THEN s1 ELSE s2 END la substitution s1 est appliqu e si p est v rifi Dans le cas contraire c est la substitution s2 qui est appliqu e IF p1 THEN s1 ELSIF p2 THEN s2 ELSIF pn THEN sn END cette forme est quivalente imbriquer plusieurs substitutions IF La substitution s1 est appliqu e si p1 est v rifi s2 si p2 est v rifi etc IF p1 THEN s1 ELSIF p2 THEN s2 ELSIF pn THEN sn ELSE sd END m me d finition que pr c demment l exception qu il existe une substitution par d faut qui est appliqu e au cas o aucun pr dicat n est v rifi
248. ormations sur un exemple complet 7 2 2 Tableaux d quivalence B vers OCL Le tableau 7 1 pr sente les r gles de traduction des expressions de structuration des pr dicats les op rateurs ensemblistes d appartenance d inclusion et d galit ainsi que les op rateurs arithm tiques d galit et d in galit Ces expressions retournent un bool en vrai faux lors de leur interpr tation Equivalence expl amp exp2 exp implies exp2 and exp2 PL sage 8 OPE Quantificateur V elem elem ens ens forAll elem Type pred init pm e Quantificateur A elem elem ens A ens gt exists elem Type pred wate p el expl exp expt exp In galit exp A exp2 not exp1 exp2 ens gt includes elem 5 8 EN 11 Non apparte elem ens ens gt excludes e em nance ens2 gt includes Ars Inclusion stricte ens1 C ens2 ens2 gt includesAll ens1 and not ens 7 ens2 Non inclusion ens1 ens2 not ens2 includesAll ens7 stricte or ens1 ens2 Strictement exp1 gt exp2 exp1 gt exp2 peer SE 19 Strictement expl lt exp2 exp lt exp2 Mae PA gal Ensemble vide ens isEmpty 21 Diff rent en ens AQ ens notEmpty semble vide TAB 7 1 Equivalence en OCL des pr dicats B not ens2rincludesAll ensM 9 exp ap exp gt exp Inf rieur ou gal exp1 lt exp2 exp lt exp2 Le tableau 7 2 pr sente les r gles de traduction des expressions arithm tiques et ensem
249. own STATUS status_opened status_closed BUTTON_STATE button_on button_off LIFT_STATE lift_ready lift_movement lift_visit CONSTANTS floor_ground floor_top LIFT BUTTON PROPERTIES floor_ground NAT A floor_top NAT A floor_ground lt floor_top A LIFT C OBJECTS A BUTTON C OBJECTS A END Fic 5 31 Sp cification de la machine Types de l ascenseur l op ration qui correspond la transition Dans l exemple de l ascenseur la d rivation de la transition close contient l action de sortie de l tat visit exit closeDoor Elle est d riv e formellement en B par ift_doorStatus Il status_closed Les types sont utilis s par toutes les machines du projet B donc ils sont d finis dans la machine TYPES fig 5 31 et 5 34 qui est vues clause SEES par toutes celles qui utilisent ses types La machine System fig 5 34 a t cr e dans le but de pouvoir appeler des op rations de la machine Lift car une op ration de la machine lift ne peut pas appeler une op ration de cette m me machine Aussi on ne peut pas utiliser les op rations de la machine Lift fig 5 32 dans la machine abstraite System car la substitution n accepte pas l appel de deux op rations de la m me machine en simultan On est donc oblig de cr er le raffinement de la machine System fig 5 33 pour utiliser les op rations de la machine Lift fig 5 32 On remarque l apparition de l op ration lift_isVisit qui est n ces
250. panier provisions mais ordonn OCL d finit des op rations pour valider it rer sur ou consulter des l ments de collec tions Voici une liste des op rations les plus couramment utilis es isEmpty retourne une valeur bool enne cette valeur vaut vrai si l ensemble est vide faux sinon notEmpty retourne la valeur vraie si l ensemble contient au moins une instance faux sinon Size retourne la cardinalit d un ensemble valeur de type entier count unObjet retourne un entier qui correspond au nombre de fois o unObjet figure dans la collection pour un ensemble le r sultat de cette op ration est forc ment inf rieur ou gal 1 sum retourne la valeur de l addition de tous les l ments de la collection select restriction en fonction du crit re pr cis entre parenth ses Cette op ration est valu e un sous ensemble de la collection de d part collect uneExpression la collection obtenue est un bag ou un multi ensemble qui est construite partir de la collection de d part mais qui contient des l ments d un autre type pas forc ment un sous ensemble includes unObjet retourne la valeur vraie si unObjet est un l ment de la collection faux sinon forAll uneExpression retourne la valeur vraie si uneExpression est vraie pour tous les l ments de la collection faux sinon exists uneExpression retourne la valeur
251. pas de probl mes Elle est illustr e par le tableau 11 1 Dans ce tableau Y ocam d note la fonction de transformation des constructions B vers OCaml IF P THEN 51 1 Doca ELSE 52 END then o ami S1 else OCami S2 CASE E OF match ocam E with EITHER T1 THEN S1 Do vani T1 gt Gocen St OR Ti THEN Si ocami Ti gt ocami Si ELSE 2 END L botim let ocam XX ocam 1 in ocami S WHILE C DO S INVARIANT P while ocami C do ocami S VARIANT V END S1 S2 ocami S1 ocami S2 F ocanit XX o XX 0p Y Y proj o OCaml XX D OCaml op YY TAB 11 1 Traduction des structures de contr le BO en OCaml Une op ration B se traduira en OCaml par une fonction Afin de conserver un maximum d expressivit du code au niveau du profil de la fonction g n r e les param tres de sortie d une op ration B seront traduits en un n uplet 162CHAPITRE 11 GENERATION DE CODE A PARTIR DE SPECIFICATIONS FORMELLES 11 5 2 2 L tat d une sp cification Pour les structures de contr le les informations sont pr sentes dans l implantation Par contre pour d terminer les variables et les constantes il est n cessaire de prendre les infor mations dans toute la cha ne de d veloppement du module B traduire Les variables et les constantes concr tes peuvent tre d clar es et typ es dans les abstractions Les informations n cessaires la traduction faisant partie des abstractions sont obt
252. pr dicat est v rifi e Lorsque la condition n est plus vraie l ex cution se poursuit avec l instruction suivant la boucle fig 12 45 lt InstructionTantQue gt WHILE lt Condition gt DO INVARIANT lt Predicat gt VARIANT lt Expression gt END Les langages informatiques poss dent tous une structure quivalente Dans l exemple ci dessus fig 12 46 nous voyons que les parties VARIANT et INVA RIANT de la substitution n influent pas sur la traduction En fait ces deux clauses servent a la preuve pour v rifier notamment que la boucle se termine forc ment 196 CHAPITRE 12 GENERATION DE CODE JAVA A PARTIR DE B switch x 5 3 case 3 Mio break case 4 case 5 case 6 Y X break case 10 y 10 break default Y X FIG 12 44 Traduction en Java de la substitution Condition par cas de B 1 0 WHILE i lt 5 DO var var 2 i 1 1 INVARIANT ie NAT A var NAT VARIANT 5 i END FIG 12 45 La substitution Boucle tant que en B i 0 while i lt 5 var var 2 i i 1 FIG 12 46 Traduction de la substitution Boucle tant que en Java 12 8 11 Substitution Assertion Dans cette instruction dont la syntaxe est donn e ci dessous seule la partie lt Instruction gt est traduite par un bloc Java car on fait l hypoth se que les composants B auront t 12 8 LES SUBSTITUTIONS 197 pr alablement prouv s lt InstructionAssertion gt ASS
253. que et dynamique en cinq chapitres qui sont 1 Premi rement l extraction des donn es statiques de la sp cification Diagrammes de classes G n ration de contraintes OCL 2 Deuxi mement l extraction des donn es dynamiques de la sp cification Diagrammes d tats transitions Diagrammes d activit Diagramme de s quence D autre part nous exposons en partie 2 la g n ration automatique de code crit dans un langage objets partir de sp cifications B Cette partie 2 commence par un bref tat de l art des diff rentes techniques d j mises en uvre suivies de notre contribution dans le R seau National des Technologies Logicielles Le R seau National de recherche et d innovation en Tech nologies Logicielles RNTL a t mis en place d s 1999 par le minist re de la Recherche et le minist re de l Industrie Il a re u comme mission de favoriser la constitution de projets innovants de recherche et de d veloppement coop ratif entre entreprises et quipes de la recherche publique http lifc univ fcomte fr tatibouet WEBBOM 1 4 STRUCTURE DU DOCUMENT ET GUIDE DE LECTURE 29 domaine dont le principe novateur est la plate forme cible la JavaCard Une valuation de cet outil conclura cette partie Ensuite une troisi me partie conclura ces travaux de recherche par la pr sentation des outils d j d velopp s et la mise en uvre dans un cas d tude Enfin nous conclurons s
254. que les param tres soient des objets car Java transmet les arguments par valeur et les valeurs de sortie ne seraient donc jamais mises a jour Retourner un tableau qui contiendrait les diff rentes valeurs de retour Un autre probl me se pose pour contenir indiff remment n importe quel type un tel tableau ne peut conte nir que des objets de type Object Ceci implique une conversion des types vers leur classe enveloppe A l inverse une conversion de la classe enveloppe vers le type de base correspondant est n cessaire apr s le retour Restreindre en B le nombre de r sultats possibles 1 au maximum Travailler avec des variables globales La solution choisie est la suivante fig 12 31 Le premier r sultat B est renvoy comme le r sultat normal de la fonction Java Les autres r sultats B deviennent des param tres d entr e de la fonction Java les types scalaires tant encapsul s dans leur type enveloppe INT dans BInteger NAT dans BInteger et BOOL dans BBoolean L avantage de cette solution est de permettre d tre efficace dans le cas d environnements contraints comme une carte puce le sp cifieur B doit s abstenir dans ce cadre d utiliser plus d un r sultat par op ration et de rester proche d une programmation classique en Java Dans le cas o l environnement cible poss de des ressources suffisantes les possibilit s offertes permettent d utiliser l ensemble du langage B 1
255. r fig 15 6 Ceci est d crit dans la grammaire par la ligne de d finition des substitutions Substitution Parallel Sequencing Precondition La BOL permet la cr ation d un arbre de syntaxe concr te XML qui correspond a chaque fichier XML La traduction B vers XML a t valid e par la d compilation XML vers B Ainsi en effectuant le cycle it ratif complet B vers XML vers B on s assure partiellement que le sch ma de traduction est correct et complet La BOL est la base des diff rents outils d extraction de diagrammes UML et de traduction vers les langages 4 objets du type Java et C En effet il suffit d ajouter une m thode d extraction ou de traduction dans chaque classe de la BOL selon l outil consid r dans l optique d une ex cution r cursive de la racine classe Start correspondant la grammaire de la figure 15 2 aux feuilles de Varbre fig 15 3 LES OUTILS 217 Machine lt Machine gt BContext Header Constraints Includes Uses Sees Sets ConcreteConstants AbstractConstants Properties ConcreteVariables Abstract Variables Invariant Assertions Initialization Operations lt Machine gt Substitution Parallel Sequencing Precondition Parallel lt Parallel gt Substitution Substitution lt Parallel gt Sequencing lt Sequencing gt Substitution Substitution lt Sequencing gt Precondition
256. r la machine s il n y a qu une seule instance de celle ci dans le projet B L utilisation d une autre machine se fait par la clause IMPORTS De fa on g n rale le lien d importation permet de cr er des instances de machines import es Le concept d instance en B est similaire celui des langages objets L instance d une machine poss de les donn es et les op rations d finies dans cette machine et ses raffinements Les particularit s de B sont les suivantes Il est possible en B de ne pas donner de nom une instance s il n y a qu une seule instance de ce type Par exemple si une implantation M1 instancie une et une seule fois la machine M2 et si la machine M2 poss de une op ration f alors l utilisation dans l implantation M1 de f n est pas ambigue Il est n cessaire en B de donner un nom aux instances s il y a en plus d une En effet si M1 instancie deux fois la machine M2 l utilisation de f est ambigu quelle instance de M2 appartient la fonction f La solution est de nommer les instances par exemple 11 et 12 et de pr fixer l appel de la fonction par le nom de l instance qui contient f par exemple i1 f Le sch ma g n ral est donc d associer chaque instance B une instance d une classe Java Toutefois dans un but d optimisation une machine B qui ne serait instanci e qu une fois sera repr sent e par une classe et des variables de classes Pour r aliser cette optimisati
257. r JavaCard applications embarqu es 17 2 Perspectives Les perspectives de ces travaux de th se sont de quatre ordres La premi re est d obtenir une convergence entre l int gration par d rivation et l int gration par extraction La deuxi me vise am liorer les principes d extraction des diagrammes d tats transitions La troisi me est de terminer la plate forme JBTOOLS La quatri me vise fusionner les principes de traductions et d extractions 17 2 1 D marche it rative entre l extraction et la d rivation Actuellement les deux d marches d int gration des m thodes formelles et semi formelles divergent l utilisation successive de l une et de l autre quelque soit l ordre d utilisation d rivation et extraction ou vice versa ne permet pas de revenir au mod le de d part Les causes de cette divergence sont mettre en relation avec le but de ces deux d marches En effet le mod le formel r sultat de la d rivation doit tre prouv apr s son obtention tandis que le mod le semi formel extrait explicite et documente la sp cification formelle D autre part les deux m thodes semi formelle et formelle ont des fondements tr s diff rents N anmoins il serait int ressant d tudier la convergence de ces deux techniques d int gration dans l optique d une d marche it rative c est dire d obtenir le m me mod le apr s l application des deux transformations successivement sur le mod le de d par
258. ram tres ne sont pas obligatoires En outre une m thode peut ne prendre aucun param tre ni retourner de valeur 4 3 2 G n ralisation La g n ralisation est un processus qui permet de d finir des donn es et un comportement commun entre plusieurs classes Elle permet de d finir une classe de base appel e classe m re Par la suite seules les diff rences entre les classes filles appara tront dans les classes filles Les variables et m thodes dont la visibilit est d clar e protected seront visibles uniquement dans la classe fille Par cons quent le typage des attributs param tres et valeurs retourn es par les m thodes les prototypes de m thodes les contraintes valeurs par d faut et valeurs initiales et les associations relatives la classe m re sont maintenues dans la classe fille Une classe fille peut intervenir dans plusieurs g n ralisations on parle alors de g n ralisation multiple La g n ralisation est repr sent e par un triangle sur son extr mit du c t de la classe m re et un arc qui est reli la classe fille fig 4 2 4 3 3 Association qualification multiplicit agr gation et composition 4 3 3 1 Association Une association repr sente une relation entre deux ou plusieurs classes d objets Si las sociation relie deux classes on parle d association binaire elle est repr sent e par un trait 54 CHAPITRE 4 LA NOTATION UML A FILLEB FILLEA FIG 4 2 G n ralisati
259. ration UML oper L op ration B operB PRE P THEN SEND d riv e de oper UML est g n r e de la mani re suivante la signature et une partie de la pr condition P pour typer les arguments ventuels de l op ration sont g n r es selon le paragraphe 5 4 1 3 partie d rivation selon Meyer si preCond n est pas vraie true preCondest vide elle n est pas sp cifi e explicitement alors la pr condition P est compos e des pr dicats de typage et des pr dicats d riv s a partir de preCond dans le cas contraire la pr condition P est seulement compos e des pr dicats de typage pour les arguments ventuels la substitution S est g n r e a partir de la partie postCond elle est de la forme x P devient tel que dans le corps de l op ration B de telle sorte que x est une liste de variables B qui sont principalement d riv es des attributs et des associations mentionn es dans postCond le pr dicat P est d riv principalement de postCond en utilisant les sch mas de d rivation pour les concepts UML structurels 5 5 3 1 En plus d utiliser la substitution devient tel que Ledang propose d utiliser la substitution IF THEN END dans la mod lisation en B de postCond en cas de pr sence de la construction OCL if cond then exp1 else exp2 endif dans postCond La formalisation en B de cette expression donne lieu une clause IF condB THEN subst exp1 ELSE subst exp2 END si exp2 n e
260. rations traduites en Java le code des impl mentations en BO Le module de communication g re le flux de paquets APDU entre le lecteur et la carte puce Le protocole utilis permet d identifier l applet qui communique par un identifiant 202 CHAPITRE 13 VERS UNE TRADUCTION POUR JAVACARD IMPLEMENTATION UsingBWallet_imp REFINES UsingBWallet IMPORTS BWallet BT_IO OPERATIONS main VAR balanceAmount creditAmount balanceFuture IN balanceAmount getBalance INT_WRITE balanceAmount creditAmount 100 balanceFuture balanceAmount creditAmount IF creditAmount lt 0 A creditAmount lt MAX_TRANSACTION_AMOUNT A balanceFuture lt MAX_BALANCE THEN credit creditAmount END balance Amount getBalance INT_WRITE balanceAmount END END Fig 13 4 La sp cification B de exemple du porte monnaie 13 3 L EXEMPLE DU PORTE MONNAIE ELECTRONIQUE 203 p imp BWallet java BWallet mch BWallet im UsingBWallet mch UsingBWallet_imp imp _UsingBWallet java Imports REFINES PORTS ker INES java BT_IO BT_IO F1G 13 5 Traduction de l applet BWallet 13 3 L exemple du porte monnaie lectronique 13 3 1 Pr sentation L exemple du porte monnaie lectronique supporte les trois fonctionnalit s suivantes le d bit le cr dit et la v rification du solde du porte monnaie 13 3 2 Les
261. re de l impl mentation qui utilise uniquement des donn es concr tes http lifc univ foomte fr bztt 124 CHAPITRE 8 EXTRACTION DE DIAGRAMMES D ETATS TRANSITIONS MACHINE M1 SETS X VX1 VXN Y VY1 VYN VARIABLES x y INVARIANT xe XAyE Y INITIALISATION x VX1 y VY1 OPERATIONS OPS IF x VX1 A y VY1 THEN x VX2 y VY2 END END FIG 8 24 Deux variables concurrentes x X OPIIN y VY1 yy PIN X VX FIG 8 25 Traduction des variables concurrentes OP Param FIG 8 26 Une op ration avec param tre On retrouve ce param tre d fini de la m me mani re entre parenth ses la suite du nom de la transition sur le diagramme d tats transitions fig 8 27 OP Param OP Fic 8 27 Traduction des param tres 8 9 Calcul de diagrammes extraits de substitutions imbriqu es Nous consid rons les branches conditionnelles CondP d une substitution principale SUB_ PRINCIPALE_B l int rieur desquelles sont ins r es des substitutions de composition secon daires SUB_SECONDAIRE_B avec conditions CondS fig 8 28 o x repr sente le num ro de branche Ce sont les substitutions simples SUB_SIMPLE qui d terminent l tat cible de la transi tion Or chaque tat cible d termin par une substitution simple correspond un groupe de transitions dont l tat cible est d fini par les substitutions de composition Par cons quent il existe un groupe d
262. re le passage des lampes de l tat teint off allum on sachant que deux lampes du feu tricolore ne peuvent pas tre allum es en m me temps MACHINE Feu SETS ETAT on off CONCRETE_VARIABLES rr 00 vv INVARIANT rr ETAT A 00 ETAT A w ETAT A rr on amp 00 off vv off A oo on lt gt rr off A vv off A vv on lt rr off A 00 off INITIALISATION rr 00 vv off on off OPERATIONS estRouge estIlRouge BEGIN estRouge bool rr on END estOrange estllOrange BEGIN estOrange bool oo on END estVert estilVert BEGIN estVert bool vv on END devientRouge BEGIN rr 00 vv on off off END devientOrange BEGIN rr oo vv off on off END devientVert BEGIN rr 00 vv off off on END END Fic 16 2 Sp cification abstraite du composant Feu 16 3 SPECIFICATIONS DU PROJET B 225 IMPLEMENTATION Feu_imp REFINES Feu INITIALISATION rr off 00 on vv off OPERATIONS estRouge estIlRouge BEGIN estRouge bool rr on END estOrange estllOrange BEGIN estOrange bool oo on END estVert estIl Vert BEGIN estVert bool vv on END devientRouge BEGIN rr on oo off vv off END devientOrange BEGIN rr off 00 on vv off END devientVert BEGIN rr off 00 off vv on END END FIG 16 3 Impl mentation du composant Feu 16 3 2 Le composant CARREFOUR Le composant CARREFO
263. re plus simple mais nous pensons qu il y a plusieurs inconv nients Pour l instant rien n est pr cis au niveau de la traduction de la machine abstraite ce qui ne permet pas de d finir des variables telles que pers PERS 102 CHAPITRE 6 EXTRACTION DE DIAGRAMMES DE CLASSES ControlAccesBatiments ControlAccesBatiments ControlAccesBatiments ControlAccesBatiments ontrolAccesBatiments lt lt rel gt gt aut lt lt fun gt gt sit 1 E_PERS PERS FIG 6 32 Notre proposition les ensembles ne sont pas trait s de mani re uniforme tant t ils sont trait s comme des classes tant t comme des attributs tant t comme des associations Ce peut tre judicieux d avoir une telle flexibilit condition de prendre quelques pr cautions En effet les exemples suivants ne nous paraissent pas faciles traduire ens E x B C o A B et C sont des ensembles RIEXGHYAR2ERI SY o Xet Y sont des ensembles la relation aut ne peut tre r utilis e pour typer une autre variable comme dans 41 aut pour finir l interaction avec l utilisateur pour d finir la meilleure traduction possible peut s av rer extr mement fastidieuse et co teuse en temps sur des mod les B complexes car il s agit d une v ritable r expression de la sp cification Un avantage que l on peut noter dans l approche de Fekhi Jemni et Merz est la possibilit de visualiser les fonctions
264. respond un tat du diagramme d tats transitions on cr e un tat par valeur UX UXn fig 8 4 FIG 8 4 Extraction d une variable typ e l aide d un ensemble num r 8 6 Les substitutions simples Dans cette section on consid rera une seule variable Les substitutions simples ne d terminent que l tat cible Les substitutions simples sont Identit skip Devient tel que Devient l ment de Devient gal simple et multiple Les substitutions Devient tel que Devient l ment de Devient gal simple et Devient gal multiple s expriment suivant la grammaire d finie pr c demment Dans les r gles d finissant ces substitutions apparait une expression qu il faut interpr ter pour connaitre le ou les tat s cible s correspondant s l extraction de la substitution L interpr tation des expressions utilis es par Devient l ment de et Devient tel que peut faire apparaitre plusieurs valeurs tandis que celle des expressions utilis es par Devient gal simple et multiple fait apparaitre une seule valeur Selon leur s mantique tableau 2 2 il existe trois cat gories par rapport a leurs effets sur l tat du syst me 1 Une premi re cat gorie compos e de la substitution identit n a aucun effet sur l tat du syst me N anmoins elle correspond une transition Elle sera donc traduite par une transition r flexive sur l tat courant du syst me fig 8 5
265. rgement Les dispositifs d vacuation seront g r s par l op ration evac Le diagramme d tats transitions de la variable Type pour l op ration Chgt avant sim plification est celui de la figure 8 40 o le pr dicat P est faux dans les tats T1 et T2 Les transitions issues de ces tats disparaissent Dans l tat AUCUN le pr dicat P Dal occ A Dt1 vid A Type AUCUN devient P Dal occ A Dt1 vid Il sera donc not IN Da1 occ A Dil vid entre crochets la suite du nom de l op ration La transition r flexive 8 11 L EXEMPLE DU ROBOT 131 REFINEMENT Robot1 REFINES RobotO SETS TYPE AUCUN T1 T2 VARIABLES Dt1 Dal Del De2 Type INVARIANT Dt1 Dt0 A Dal vid occ A Del vid occ A De2 vid occ A Type TYPE A Type AUCUN Dt1 vid A Type AUCUN Dt1 occ INITIALISATION Dt1 Dal Del De2 Type vid vid vid vid AUCUN OPERATIONS Chet ANY pp WHERE pp T1 T2 A Dal occ A Type AUCUN THEN Type pp Da1 Dt1 vid occ END Dchgt SELECT Del vid A Type T1 THEN D 1 Del Type vid occ AUCUN WHEN De2 vid A Type T2 THEN Dt1 De2 Type vid occ AUCUN END arr_p SELECT Dal vid THEN Dal occ END evac E SELECT Del occ THEN Del vid WHEN De2 occ THEN De vid END END Fic 8 39 Premier raffinement du robot autour de l tat AUCUN dispara t car elle ne modifie l tat d aucune variable On obtient le diagramme de la figure 8 41
266. rgoUML propre ce logiciel Nous ne produisons pas les fichiers destin s au rendu visuel des diagrammes L automatisation n est pas compl te ArgoUML dans sa version actuelle ne disposant pas d un module permettant de redessiner automatiquement le diagramme de classes il est n cessaire d intervenir manuellement en s lectionnant les classes puis en les introduisant sur la zone de visualisation Les associations sont redessin es partir du moment ou les classes sont pr sentes Le choix d ArgoUML se justifie par la possibilit d intervenir si n cessaire sur le source par la volont des d veloppeurs de suivre les normes les plus r centes UML 2 0 et surtout pour sa gestion des contraintes OCL En contrepartie il reste malheureusement quelques inconv nients ArgoUML est tr s orient Java y compris dans sa visualisation des attributs et op rations qui different de celle d UML C est un outil qui ne dispose pas de tous les types de diagrammes http www argouml org 15 3 LES OUTILS v Edit z Main imp imp 5 File Edit Search Markers Folding Yiew Utilities Macros Plugins Help 219 x Bana Achhi AS aoan OF El Search for x C Ignore case Regular expressions HyperSearch E helo A MIE IMPLEMENTATION A Main_imp REFINES Main IMPORTS Dab B_Operateur Date Horloge OPERATIONS FPS fonctionnement du dab 17 s arrete lorsque la caisse est vide ou
267. ronique pour JavaCard crit manuellement 208 CHAPITRE 13 VERS UNE TRADUCTION POUR JAVACARD package wallet import javacard framework public class Wallet extends Applet BWallet bw public Wallet bw new BWallet register public static void install APDU apdu new Wallet public void process APDU apdu void credit Byte buffer bw credit creditAmount F1G 13 9 Impl mentation JavaCard de la classe Wallet Chapitre 14 Conclusion sur la g n ration de code objet a partir de sp cifications B 14 1 Traduction de sp cifications B en langage objets L essentiel du d veloppement du g n rateur de code Java est termin Il est diffus sous une forme Open Source Pour garantir une chaine de traduction ouverte et relativement complete il est bas sur les JBTOOLS cf chapitre 15 qui est une plate forme sous licence GPL pour B d velopp e au Laboratoire d Informatique de l Universit de Franche Comt LIFC Les principales caract ristiques de la chaine de traduction sont les suivantes Elle est actuellement bas e sur la syntaxe du B et du BO support par les ateliers commerciaux Il existe n anmoins une restriction qui est l interdiction d instancier les machines prenant comme param tres des ensembles par le type STRING Elle supporte le multi instance de machines B et est capable d optimiser le code s il wy a qu une seule instance Elle permet
268. rriv e des pi ces appel Da un dispositif d vacuation des pi ces appel De un dispositif de transport des pi ces appel Dt qui est un bras muni d une pince le bras dispose de trois mouvements vertical horizontal et en profondeur la pince a galement un mouvement d ouverture et de fermeture Aucun des trois dispositifs ne peut contenir plus d une pi ce la fois 8 11 2 Principes de fonctionnement Les pi ces arrivent sur le dispositif Da et Dt effectue le chargement de ces pi ces partir de Da et les d charge sur De Les pi ces sont ensuite vacu es automatiquement Dt ne peut 128 CHAPITRE 8 EXTRACTION DE DIAGRAMMES D ETATS TRANSITIONS FIG 8 32 Le robot charger une pi ce que si Dt est libre vid et que Da est occup occ une pi ce est arriv e Il ne peut d charger une pi ce sur le dispositif d vacuation De que si celui ci est libre vid Une pi ce ne peut arriver sur un dispositif d arriv e que si celui ci est libre vid Les mouvements du dispositif de transport sont Dt d charge en position haute Dt charge en position basse Dt doit tenir une pi ce pour monter Dt doit tre vide pour descendre Dans un souci de simplification nous ne pr sentons pas la mod lisation des mouvements de la pince ni ceux du dispositif de transport en profondeur 8 11 3 Diagramme d tats transitions des machines abstraites 8 11 3 1 Machine abstraite La machi
269. s un type de base d fini en OCL sont d riv s en B par un type et ses op rateurs correspondants en langage B suivant le travail de th se de Ledang 64 il existe d autres travaux 36 l exception du type r el Pour Ledang la solution est d approximer une valeur r elle par une fraction d finie par un couple de valeurs enti res par exemple la valeur 0 3333 devient le couple 1 3 D autre part l utilisation de l op rateur de comparaison donne lieu quelques changements de la mod lisation lorsqu il est utilis avec des fractions comme 4 qui devient a x d b x c 5 5 2 Type collection Le type collection les op rations OCL pr d finies et les op rations OCL de requ te sur ces types sont formalis s en B diff remment suivant qu on utilise le type Set Bag ou Sequence Soit t un type OCL et T sa formalisation en B le type collection Set t qui d signe tous les sous ensembles de t est mod lis en B par P T le type collection Bag t qui d signe tous les multi ensembles avec les l ments de t est mod lis en B par T N le type collection Sequence t qui d signe toutes les suites d l ments de f est mod lis directement en B par seq T 5 5 3 Expression let in L expression let in en OCL permet de d clarer des macros qui permettent de rendre plus lisibles ces expressions Comme B pr voit une clause sp ciale DEFINITION pour d finir des macros
270. s AuxExamens sont typ es dans l invariant clause INVARIANT Inscrits est une fonc tion partielle entre l ensemble des tudiants et celui des dipl mes c est donc un ensemble de couples ou le premier l ment d un couple est un tudiant et le deuxi me un dipl me Inscrits AuxExamens est un sous ensemble de Inscrits Initialement aucun tudiant n est inscrit L invariant est devenu vrai apr s l initialisa tion clause INITIALISATION Dans la clause OPERATIONS on trouve l ensemble des op rations La seule op ration d crite ici est Inscrire qui correspond l inscription d un tudiant en vue d obtenir un dipl me Cette op ration est soumise une pr condition qui doit tre v rifi e Cette pr condition permet d attribuer un type aux param tres puis de v rifier que l tudiant inscrire n est pas d j inscrit Les op rations dans le langage B sont exprim es avec des substitutions g n ralis es comme ou PRE Cette notion op rationnelle permet d exprimer ce que font les op rations De plus les substitutions peuvent tre manipul es par le prouveur pour v rifier que l invariant reste vrai apr s l ex cution de l op ration Le corps de l op ration permet de rajouter le couple etudiant diplome l ensemble Inscrits 15 3 1 2 Les r sultats obtenus avec B2UML partir de la sp cification 6 26 l outil B2UML produit une repr sentation qui est destin e
271. s i detecte une anomalie dans ce cas les operations en cours sont interrompues et la carte est eventuellement rendue avant la fermeture L uperateur peut aussi arreter manuellement le dab dans ce cas tout est arrete carte non rendue claviers non desactives J 17 vaut mieux utiliser cette commande lorsque le dab se trouve en mode veille Py main VAR etat oper avnc IN avnc lt montant_avance initialiser_dab avnc tester_dispositifs PREPARA End set or 0 08 Pty EOS API ell ell alelelmlfele 1101 1 PEMD Fell 00809 Mala ja Seca ooa ea gasses 2CRE X B Symbols And Compilation Help 1 1 12 pe EE Fic 15 7 Le plugin pour jEdit Argo Project D Fichiers XML gt Fichiers XMI Fig 15 8 Architecture des diff rents outils sa gestion des contraintes OCL n est pas complete 15 3 1 1 Un exemple Diagrammes UML L objectif de cet exemple tr s simplifi est la gestion de l inscription d tudiants un dipl me L inscription ne suffit pas et il faut aussi que les tudiants s inscrivent aussi aux 220 CHAPITRE 15 LA PLATE FORME JBTOOLS examens La sp cification B de exemple est donn e figure 6 26 Les ensembles clause SETS ETUDIANTS et DIPLOMES permettent de repr senter tous les tudiants et tous les dipl mes potentiels Les variables clause VARIABLES Inscrits et Inscrit
272. s les applications industrielles les plus diverses En cons quence le d veloppement d applications s res est devenu un besoin crucial au moins pour trois raisons La premi re est le risque humain et concerne les domaines critiques tels que l a ronautique le ferroviaire la d fense le nucl aire etc La seconde est la demande croissante d applications s res dans les domaines non cri tiques Par exemple le retour de produits vendus pour une correction du logiciel em barqu ou non est tr s on reux sans parler de la remise en cause de l image de marque de la soci t productrice La troisi me est l augmentation croissante de la complexit des logiciels avec le temps Cette complexit et le besoin de s curit ont amen les industriels utiliser des technologies de plus en plus formalis es pour concevoir leurs logiciels Ces techniques sont souvent associ s des normes concernant le d veloppement qui ont pour but d obtenir certains niveaux de qualit On caract rise le d veloppement logiciel par l ensemble des techniques qui sont utilis es dans le processus complet de cr ation c est dire de identification du besoin l utilisation effective de l application Les diff rentes activit s de ce processus sont divis es en quatre phases majeures fig 1 1 qui sont d taill es dans 26 89 Apr s l identification du besoin d un nouveau logiciel il est n cessaire de conna tre le cadre d
273. s pour se concentrer uniquement sur la circulation des automobiles D autre part nous ne traitons ni les temporisations temps d allumage des feux ni la synchronisation du passage au rouge En effet les feux d un carrefour sont un instant tous au rouge puis ensuite l un passe au vert Dans notre mod le un feu passe au rouge simultan ment au passage au vert de l autre A CARREFOUR BASIC_IO a imports gt sees Fic 16 1 Graphe de d pendance du projet de carrefour 223 224 CHAPITRE 16 APPLICATION ET MISE EN OEUVRE 16 2 2 Propri t s du syst me Les r gles de gestion que doit respecter le syst me sont les suivantes 1 un feu est muni de trois lampes rouge orange et vert 2 un feu tricolore ne peut avoir qu une et une seule lampe l tat allum 3 lorsque le syst me n est pas en tat de fonctionner tous les feux du carrefour passent l orange clignotant 4 un feu peut tre au vert ou l orange si et seulement si l autre est au rouge 16 3 Sp cifications du projet B Dans ce projet il existe trois composant distincts le feu le carrefour le composant principal d ex cution Le programme principal qui contr le le syst me complet importe le composant CARREFOUR qui lui m me importe deux instances du composant Feu fig 16 1 Le feu est muni des trois lampes rouge orange et vert 16 3 1 Le composant Feu Le composant Feu fig 16 2 16 3 g
274. s sur des ensembles abstraits ou des constantes d finies dans la clause CONSTANTS 6 La clause DEFINITIONS d clare des alias textuels ventuellement param tr s qui se ront remplac s au d but de l analyse lexicale par leurs corps Par exemple Affect x v x 2 v 1 permettra de remplacer Affect v1 v2 par v1 2 v2 1 7 La clause VARIABLES d clare la liste des variables du composant 8 La clause INVARIANT d finit par des pr dicats les contraintes relatives aux variables y compris le typage 9 La clause INITIALISATION fixe la valeur initiale de chaque variable du composant par des substitutions 2 3 LA METHODE B 35 10 La clause OPERATIONS utilise aussi les substitutions afin de faire voluer l tat du syst me Les op rations peuvent prendre des param tres d entr e ainsi que de retour Les r gles de visibilit 93 des diff rents constituants l int rieur des diff rentes clauses de la machine sont d crites dans le tableau suivant Tab 2 1 Clauses Constituants CONSTRAINTS PROPERTIES INVARIANT INITIALISATION et OPERATIONS Param tres E E ERE este ee TO CP Definitions RRA Variables XX Op rations YY TAB 2 1 Visibilit l int rieur d une machine abstraite de ses propres entit s 2 3 5 Substitutions g n ralis es Le langage B utilise la th orie des ensembles la logique des pr dicats du premier ordre et les substitutions g n ralis es Les substitutions
275. saire dans l impl men tation System_imp pour v rifier l tat source avant la transition de visit vers ready 5 4 2 3 Communication entre diagrammes d tats transitions La communication entre diagrammes d tats transitions est r alis e de deux mani res diff rentes synchrone asynchrone La premi re est r alis e par un simple appel de l op ration dans l op ration d riv e de la transition qui demande la synchronisation La deuxi me est diff r e en attendant que la transition qui doit tre ex cut e puisse l tre Par cons quent on utilise une file d attente qui m morise les appels d ex cution Dans l exemple de l ascenseur l appel release est synchrone tandis que l appel call lui est asynchrone En effet selon le cahier des charges tabli dans 80 CHAPITRE 5 ETAT DE L ART DERIVATION D UML VERS B MACHINE Lift SEES Types VARIABLES lift lift_dir lift_curDestFloor lift_doorStatus lift_state INVARIANT lift C LIFT DEFINITIONS FLOOR floor_ground floor_top OPERATIONS lift trans VisitReady I PRE ll lift lift_State Il lift visit THEN lift_State Il lift ready END lift_closeDoor ll PRE ll lift THEN lift_doorStatus Il status closed END bb lift_isVisit Il PRE ll lift THEN bb BOOL lift State ll lift visit END END FIG 5 32 Sp cification de l ascenseur cas g n ral travaux de Meyer les travaux
276. se des op rateurs ou des fonctions B qui cr ent des relations qui n exis taient pas dans le diagramme de classes On peut citer l identit l inverse les projec tions le produit direct le produit parall le la composition de relations La solution consiste modifier le diagramme de classes en ajoutant les classes et les associations n cessaires et en choisissant des noms interactivement ou automatiquement pour ces nouveaux l ments On pourrait limiter ce probl me mais pas l viter en imposant des r gles d criture sur les sp cifications B 7 3 R criture en OCL des op rations B 7 3 1 Pr sentation des op rations B Nous nous int ressons ici la traduction en OCL de la clause INITIALISATION et des op rations d clar es dans la clause OPERATIONS Une op ration est constitu e d une en t te et d un corps comme ci dessous ListeDeR sultats nomOp ration ListeDeParam tres corps Le corps des op rations et l initialisation sont exprim s l aide de substitutions qui sont des notations math matiques permettant de mod liser la transformation de pr dicats L en t te comprend une liste optionnelle de r sultats typ s implicitement dans le corps de l op ration et une liste optionnelle de param tres typ s explicitement s ils existent grace la substitution pr condition PRE Pr dicat THEN Substitutions END Celle ci permet aussi de fixer les pr conditions sous lesquelles une op ra
277. se2 classel A Vx x classel gt card assos x lt n Vx x classe2 card assos x lt n M la machine SousClasse utilise la machine SuperClasse en ins rant la machine SuperClasse dans la clause USES de la machine SousClasse On ne d finit pas la constante SOUS CLASS dans la machine SousClasse car on peut utiliser la constante SUPERCLASS de la machine SuperClasse pour la remplacer afin de mod liser l ensemble des objets possibles de la classe SousClasse l ensemble des objets instanci s de SousClasse est un sous ensemble sousclasse de celui de sa super classe superclasse les attributs de SousClasse sont d riv s de la m me facon que pour une classe ordinaire sachant que la clause USES permet l acc s aux attributs de la machine SuperClasse SuperClasse FIG 5 13 Une g n ralisation 5 3 Extension de la d rivation des diagrammes de classes Ce paragraphe relate les travaux de Ledang 64 qui compl tent les travaux de Meyer a propos de la d rivation des diagrammes de classes Les travaux de Meyer ne prenaient pas en compte les probl mes dus aux appels d op rations l int rieur de la m me machine ce que Ledang r alise dans ses travaux 5 3 EXTENSION DE LA DERIVATION DES DIAGRAMMES DE CLASSES 71 MACHINE SousClasse SEES SuperClasse VARIABLES sousclasse INVARIANT sousclasse superclasse INITIALISATION sousclasse 0 END FIG 5 14 D rivation de la g n
278. sont extraits des diff rentes clauses s il n existe qu une instance de la machine les variables sont impl ment es de fa on similaire aux constantes dans la classe 4 l exception du mot cl final les variables sont impl ment es comme des variables de classes s il existe plusieurs instances de la machine les variables sont impl ment es comme des variables d instance et le mot cl static disparait Remarque comme les constantes concr tes les variables concr tes peuvent tre d finies dans les trois types de composants 12 6 5 Les intervalles La traduction des intervalles est identique celle des ensembles abstraits il s agira d une instance de la classe BRange 178 CHAPITRE 12 GENERATION DE CODE JAVA A PARTIR DE B CONCRETE_VARIABLES monEntier monBooleen INVARIANT monEntier INT A monBooleen BOOL INITIALISATION monEntier 10 monBooleen TRUE Fic 12 17 Des variables en B int monEntier int monBooleen void INITIALISATION monEntier 10 monBooleen true Fic 12 18 Traduction des variables en Java 12 6 6 Les tableaux 12 6 6 1 Introduction Les tableaux sont des constantes concr tes ou des variables concr tes mais qui pr sentent suffisamment de particularit s pour tre trait s de fa on s par e L ensemble des indices d un tableau peut tre un intervalle d fini ventuellement par un ensemble abstrait un ensemble num r ou l
279. sont utilis es par initialisation et les op rations pour modifier les valeurs des variables dans le but de faire voluer l tat du syst me La notion de substitution est apparent e aux affectations des langages de programmation tra ditionnels Elles ont t introduites en B dans le but de d finir des transformateurs de pr dicats 45 par rapport un tat pr avant la substitution et post apr s Soit P la post condition et S une substitution alors S P est la plus faible pr condition 19 n cessaire pour que S se termine et tablisse P Dans le tableau Tab 2 2 qui correspond aux substitutions simples de modification des valeurs des variables x et y sont des variables un ensemble P Q et R des pr dicats Substitution pr R x3 P x P R amp x x x P gt x x R fe SR e xx CS oxime Devient gal simple x E R amp R E x Devient gal multiple x y E F P P E F x y TAB 2 2 Substitutions de base de la m thode B et leur s mantique Dans le tableau 2 2 les substitutions de base du langage B sont pr sent es avec leur s mantique Par exemple la s mantique de la substitution Devient l ment de est x SIR Ex E S gt x x R o Sx x S gt x x R d note le remplacement d une occurrence libre de x dans R par x qui appartient l ensemble S La substitution multiple x y E F est un cas particulier car elle est compos e partir
280. st pas une expression if then else endif IF condB THEN subst exp1 ELSIF condB2 THEN subst exp21 END si expr2 est de la forme if cond2 then expr21 o condB et condB2 sont les formalisations en B de cond et cond2 UML et o subst expX d signe les substitutions B d riv es partir de l expression OCL expX o X est un nombre entier 5 6 Extraction de syst mes de transitions tiquet es Contrairement aux travaux expos s pr c demment sur la d rivation les travaux sui vants s apparentent une extraction c est a dire la transformation inverse de la d rivation Ils n utilisent pas une notation UML mais celle des syst mes de transitions tiquet es tr s proche de celle des diagrammes d tats transitions UML L extraction est r alis e partir de sp cifications B vers des vues graphiques Syst mes de transitions tiquet es 5 6 1 Systeme de transitions tiquet es Un syst me de transitions est d fini par le quadruplet N M L R sachant que N est l ensemble des tats M est l ensemble des tats initiaux et M C N Lest l ensemble des tiquettes labels de transitions 84 CHAPITRE 5 ETAT DE L ART DERIVATION D UML VERS B RE P N x L x N est la relation de transition entre les tats Une transition q l q est aussi not e qj Ea qx Toutes les transitions tiquet es peuvent tre r duites en une relation binaire sur les tats en oubliant
281. suite gt size D A MARA Restriction suite tn suite gt subSequence 17 n ala ee 10 11 suitel suite suite 1 gt union suite2 2 12 Inverse rev suite Sequence 7 suite gt size iterate index s T Sequence s prepend suite at index TAB 7 5 Equivalence en OCL des expressions sur les suites 7 2 3 L exemple du Scheduler L exemple choisi est celui d un gestionnaire de processus la sp cification B est pr sent e figure 7 1 et la mod lisation UML figure 7 2 Celui ci a pour but d associer une ressource un processeur par exemple 4 un ensemble de processus Un processus peut tre dans les tats 7 2 REECRITURE EN OCL DES INVARIANTS B 107 MACHINE Scheduler SETS PID CONCRETE_VARIABLES active ready waiting INVARIANT active C PID A ready PID A waiting C PID A ready N waiting 0 A active or active ready U waiting A card active lt 1 A active ready INITIALISATION END Fic 7 1 Extrait de la sp cification B de l exemple du Scheduler suivants waiting le processus est pr sent mais non candidat l attribution de la ressource ready le processus est pr t prendre la ressource active le processus est possesseur de la ressource Scheduler waiting 1 1 1 Seheduier Scheduler active cheduler ready FIG 7 2 Mod lisation en diagramme de classes de la machine Scheduler L invari
282. t Ainsi les sp cialistes de la m thode B et ceux de la notation UML pourront tour tour enrichir le mod le apr s chaque it ration comme dans les travaux de Okalas Ossami Souqui res et Jacquot 30 sachant que chaque mod le B ou UML sera ensuite transcrit dans l autre notation par extraction ou d rivation 17 2 PERSPECTIVES 243 17 2 2 Am lioration de l extraction des diagrammes d tats transitions L extraction des diagrammes d tats transitions souffre de quelques probl mes dus aux restrictions sur le sous ensemble du langage B consid r En effet nous avons limit l extraction aux variables typ es avec des ensembles num r s Dans l optique de cr er un outil il sera certainement possible d am liorer la qualit du r sultat de l extraction 17 2 2 1 Production de diagrammes d tats transitions pour des ensembles quel conques Il est peut tre possible d largir le sous ensemble du langage B utilis dans cette extrac tion Les relations utilis es fonctions bijections surjections et injections totales ou partielles sont souvent d finies en B par un ensemble d entiers vers un autre ensemble d entiers Le probleme rencontr lors de l extraction de diagrammes d tats transitions depuis ce genre de sp cifications est l explosion combinatoire qui en d coule car en r alit ces ensembles re viennent des gros ensembles num r s trait s dans notre m thode Il serait possible
283. t des op rations non promues qui sont visibles visibilit public En effet il n existe pas en UML de m canisme quivalent la clause PROMOTES Cette clause permet la machine qui inclut une autre machine de promouvoir des op rations de la machine incluse En UML soit aucune op ration n est visible soit elles le sont toutes Le probl me se circonscrit la visibilit car la preuve bloque les acc s ill gaux La repr sentation de la clause INCLUDES sera r alis e par un lien de type association sachant que les attributs et op rations de la machine incluse auront une visibilit public pour maintenir la visibilit d finie en B Pour la clause EXTENDS le cas est diff rent car elle permet l utilisation des m thodes de la machine tendue traduite en UML dans la machine qui l tend Il est donc n cessaire d utiliser une g n ralisation pour maintenir le mod le UML juste possibilit d utilisation des m thodes de la classe g n rale dans les classes filles D autre part l utilisation de la clause PROMOTES oblige l utilisation d une g n ralisation dans la traduction d une clause INCLUDES pour les m mes raisons 100 CHAPITRE 6 EXTRACTION DE DIAGRAMMES DE CLASSES 6 5 Comparaison avec d autres propositions de traduction 6 5 1 Introduction Les objectifs que nous nous tions fix s taient de permettre la visualisation partir d une machine abstraite B de fa on automatis e et syst matique des vues gr
284. t le nom de l op ration devient le nom de classe suivi du caract re _ suivi du nom d op ration Cette op ration est similaire pour les noms d attributs Ceci a pour but d viter les conflits de nom sachant qu il faut interdire le caract re _ dans les noms de machines et op rations exemples de probl mes machine A_B avec une op ration C ou machine A avec une op ration B_C Les appels des op rations peuvent tre d riv s sous les conditions suivantes les appels ne sont pas cycliques le couple d op ration appelante appel e ne fait pas partie de la m me machine Il faut donc s parer l op ration appel e de l op ration appelante sans oublier par la m me occasion de scinder les donn es Dans le cas o ces donn es correspondent deux op rations de deux machines diff rentes elle doivent tre dupliqu es dans les deux machines Ensuite on cr e un lien entre les deux machines qui poss dent l op ration appelante Machinel et appel e Machine pour que l appel soit possible Au niveau des machines abstraites on utilise la clause INCLUDES dans la machine Machinel pour permettre la visibilit et l utilisation de l op ration appel e L op rateur parall le n accepte pas deux appels d op rations de la m me machine par cons quent on les d place dans le raffinement dont le code est bas sur l op rateur 72 CHAPITRE 5 ETAT DE L ART DERIVATION D UML VERS B de s quencement qui
285. tO Fic 8 36 Diagramme extrait de l op ration Chgt apr s simplification De la m me mani re on obtient le diagramme correspondant Pop ration Dchgt fig 8 37 130 CHAPITRE 8 EXTRACTION DE DIAGRAMMES D ETATS TRANSITIONS Robot0O Fic 8 37 Diagramme extrait de l op ration Dchgt apr s simplification Il reste concat ner les trois diagrammes des figures 8 34 8 36 et 8 37 pour obtenir le diagramme complet 8 38 de la sp cification du robot 8 33 RobotO Fic 8 38 Diagramme d tats transitions du RobotO 8 11 3 2 Premier raffinement Dans le premier raffinement Fig 8 39 nous introduisons le dispositif d arriv e repr sent par la variable Dal Cette variable poss de deux tats vide vid quand il n y a aucune pi ce sur le dispositif d arriv e et occup occ d s qu une pi ce est arriv e sur ce dernier Cet v nement est d crit dans la clause OPERATIONS par arr_p L op ration Chgt exprime la propri t suivante la pince ne peut charger que s il y a une pi ce sur Da et que si Dt est vide Il d crit le changement d tat simultan des variables Dal occ vid et Dt1 vid occ Nous introduisons aussi deux types de pi ces T1 et T2 qui devront tre vacu es chacune sur leur propre syst me d vacuation respectifs Del et De2 sachant que AUCUN correspond au fait qu il n y a pas de pi ce dans la pince Un capteur permettra de conna tre le type de pi ce au cha
286. tatic final int tableau4 new int 8 2 1 void INITIALISATION Arrays fill tableau3 6 Arrays fill tableau4 9 FIG 12 20 Traduction de constantes de type tableaux en Java CONCRETE_VARIABLES tableau1 tableau2 tableau3 tableau4 INVARIANT tableau1 0 2 INT A Un tableau commen ant en 0 tableau2 1 1 NAT A Un tableau commen ant en 1 tableau3 0 6 INT A Tableau initialis avec une valeur tableau 2 8 NAT INITIALISATION tableau 0 42 1 4 2 6 tableau2 153 095 1 47 tableau3 0 6 6 tableau 2 8 9 F1G 12 21 Variables de type tableaux en B 180 CHAPITRE 12 GENERATION DE CODE JAVA A PARTIR DE B int tableaul 2 4 6 int tableau2 3 5 7 int tableau3 new int 6 0 1 int tableau4 new int 8 2 1 void INITIALISATION Arrays fill tableau3 6 Arrays fill tableau4 9 F1G 12 22 Traduction des variables de type tableaux en Java 12 6 6 3 Tableaux variables une dimension avec des intervalles Le mot cl static serait utilis s il n y avait qu une instance de la machine Un l ment de tableau est accessible dans les op rations B par une syntaxe de la forme identifiant index fig 12 21 Un tel l ment de tableau sera traduit en java par identifiant index borneInferieure Par exemple tableau4 3 vaut 9 dans la figure 12 22 et sera traduit en Java par tableau4 3 2 12 6
287. te new S1 00 new END END FIG 5 21 D rivation de l initialisation selon Meyer 5 4 1 3 Les transitions Les transitions fig 5 22 sont repr sent es par une fl che partant d un tat source et dirig vers un tat cible Pour Sekerinski dans la d rivation fig 5 23 l tat source est d fini par une condition labor e l aide des substitutions IF CASE ou SELECT L op ration prend le nom de la 5 4 DERIVATION A PARTIR DE DIAGRAMMES D ETATS TRANSITIONS 75 FIG 5 22 Des transitions transition et la valeur affect e la variable s dans l exemple suivant est d finie par l tat cible de la transition OPERATIONS E IF s SA THEN s SB END ELSIF s SC THEN s SD SELECT s SA THEN s SB END WHEN s SC THEN 5 SD CASE s OF EITHER SA THEN s SB END OR SC THEN s SD END FIG 5 23 D rivation des transitions selon Sekerinski Pour Meyer les principes sont les m mes except l affectation qui est op r e sur la fonction totale classe_state fig 5 24 De plus il g n re une op ration par transition nomm par la cha ne de caract res Transition suivie des noms des tats source et cible de la transition Dans l exemple de la figure 5 22 la transition traduite part de l tat SA et se dirige vers l tat SB OPERATIONS TransitionAB oo PRE oo class A class_state 00 SA THEN class_ state 00 SB END FIG 5 24 D rivation d
288. ter des concepts formels provenant de sp cifications B Z ou alg briques dans des diagrammes d tats UML 47 48 CHAPITRE 3 CONTEXTE ET MOTIVATIONS La deuxi me forme consiste en un sch ma compl tement oppos en incorporant les no tions orient es objets dans les m thodes formelles telles que VDM ou Z qui deviennent VDM 24 Z 59 et ObjectZ 21 De cette mani re on conserve les avantages au niveau pr cision des m thodes formelles tout en structurant la sp cification vers un langage plus proche des langages imp ratifs traditionnels objets 2 La deuxi me d marche est l obtention d une sp cification formelle partir d une nota tion semi formelle cette d marche est appel e d rivation Beaucoup de travaux s ins crivent dans ce sch ma parmi lesquels nous pouvons citer 22 23 42 qui utilisent la m thode formelle Z D autre part d autres travaux utilisent la m thode B comme 76 61 77 64 73 Ces deux groupes de travaux utilisent sauf exception les m mes types de diagrammes semi formels Premi rement ils d rivent les donn es statiques du diagramme de classes Ensuite ils utilisent la sp cification du comportement du syst me d fini dans les diagrammes d tats transitions pour d river les op rations qui modifie ront l tat du syst me 3 La troisi me d marche consiste extraire les vues graphiques semi formelles depuis la sp cification formelle Au contraire de la d marche pr
289. timis s Il est donc n cessaire de pouvoir choisir le type utilis pour la traduction des types BO Nous laissons donc le choix l utilisateur de traduire les types entiers et bool ens par un type int ou short selon l utilisation d finie en 12 5 1 1 en Java selon ses besoins Ceci est possible par rapport la preuve en valuant diff remment les constantes MININT et MAXINT sur le prouveur comme dans 8 12 6 La Traduction des donn es 12 6 1 Remarques Il faut faire attention l ordre des valuations car il est important En pratique il faut traduire les ensembles et les constantes dans l ordre des valuations i e d abord les valuations implicites par collage puis celles de la clause VALUES et dans l ordre de cette clause 12 6 LA TRADUCTION DES DONNEES 175 12 6 2 Les ensembles 12 6 2 1 Introduction La clause SETS sert a d finir les ensembles num r s ou abstraits d un composant Ces deux types d ensembles sont compos s d l ments de m me type 1 Un ensemble num r comme son nom l indique sert d crire une num ration de valeurs symboliques 2 Un ensemble abstrait est utilis pour d signer des objets dont on ne veut pas d finir la structure au niveau de l abstraction Tous les ensembles abstraits sont ramen s un intervalle entier fini non vide au niveau de l implantation clause VALUES Il y a deux utilisations de ces intervalles d finir de nouveaux types comme
290. tion B Ceci est r alis par rapport quatre grands principes les ensembles de typage les contraintes OCL associ es aux ensembles de typage les liens entre machines les variables scalaires ou ensemblistes Le principal inconv nient de notre m thode par rapport celle de Fekih 32 est l utilisation de contraintes OCL pour diff rencier les fonctions bijections injections et surjections totales ou partielles N anmoins l utilisation de st r otypes pallie ce manque de pr cision au niveau purement graphique En outre les avantages de notre d marche sont tr s importants Elle est uniforme contrairement la m thode de Fekih en ce qui concerne les ensembles Il est donc possible d automatiser le processus d extraction puisqu il n est pas n cessaire d interpr ter la sp cification B 151 152 CHAPITRE 10 CONCLUSION SUR L EXTRACTION DE VUES GRAPHIQUES 10 1 2 G n ration des contraintes OCL depuis les propri t s complexes de Pinvariant Sur l chantillon d exemples que nous avons trait le passage d une sp cification B une mod lisation UML OCL s est av r g n ralement possible Les problemes pour les propri t s B sont localis s des d clarations implicites ou des expressions complexes cr ant de nou veaux ensembles de couples relations fonctions que nous n avions pas pr vu initialement de traiter dans notre approche de g n ration du diagramme de classes Ces probl mes s
291. tion est appel e Cette substitution constitue le corps de l op ration B et les autres substitutions sont imbriqu es dans la partie Substitu tions Le typage des param tres et les pr conditions sont effectu s dans la partie Pr dicat L exemple du Scheduler de la figure 7 5 permet de voir l initialisation et deux op rations creer et activer 7 3 2 Transformation en OCL d une op ration B 7 3 2 1 Principe g n ral de transformation A chaque op ration d une machine abstraite B est associ e une op ration de la classe repr sentant la machine L initialisation est repr sent e par une m thode sp cifique appel e INITIALIZATION A une op ration d une classe OCL permet d associer une pr condition et une post condition dont la syntaxe est la suivante context nomClasse nomOp ration ListeDeparametres Types typeResultat pre pr condition post post condition La pr condition OCL pour une op ration est obtenue partir du pr dicat de la substi tution pr condition La post condition est obtenue en deux tapes 1 On calcule partir des substitutions B la post condition B par le m canisme de trans formation en pr dicat avant apr s 3 paragraphe 6 3 3 et 7 1 1 2 La post condition B est r crite en OCL l aide du m canisme d crit en section 7 3 2 2 110 CHAPITRE 7 GENERATION DE CONTRAINTES OCL MACHINE Scheduler INITIALISATION active ready waiting 0 0 0 OPERATIONS
292. trib1 du couple new vall La valeur est d finie par un param tre valAttrib2 typ dans les pr conditions de l op ration d riv e du constructeur avec le type associ de la variable valAttrib2 typeAttrib2 pour augmenter la relation attrib2 par le couple new gt valAttrib2 Classe attrib1 typeAttrib1 val1 attrib2 typeAttrib2 creerClasse valAttrib2 typeAttrib2 FIG 5 9 Un constructeur 5 2 4 Association Les associations sont des liens entre deux classes Class et Class2 fig 5 11 Elles sont d riv es formellement en B par une relation binaire fig 5 12 entre les variables B classel et classe2 On remarque que m me si le sens est facultatif en UML il faut en sp cifier un pour effectuer la d rivation car il existe obligatoirement en B de m me que le nom est n cessaire pour nommer la relation issue de la d rivation Cette relation peut tre raffin e selon la multiplicit ou d autres contraintes telles que Vagr gation Les multiplicit s d une association peuvent tre d riv es formellement en B selon le tableau 5 1 Dans ce tableau les entiers n et m sont d finis par n gt 2et m gt n 5 2 DERIVATION A PARTIR DE DIAGRAMMES DE CLASSES UML 69 OPERATIONS oo creerClasse valAttrib2 PRE not CLASSE classe JA valAttrib2 typeAttrib2 THEN ANY new WHERE new CLASSE classe THEN classe classe U new attrib1 attrib1 U new gt vall attrib2 attrib2 U new gt valAt
293. trib2 00 new END END FIG 5 10 D rivation du constructeur RoleClasse1 MultClasse1 assos RoleClasse2 MultClasse2 F1G 5 11 Une association VARIABLES assos classel classe2 INVARIANT assos classel classe2 INITIALISATION assos F1G 5 12 D rivation d une association 5 2 5 G n ralisation La g n ralisation d une sous classe SousClasse par une classe SuperClasse est d riv e formellement en B en appliquant pour la formalisation de SuperClasse le sch ma de d rivation d une classe ordinaire et en red finissant celui de la sous classe SousClasse de la mani re suivante 70 CHAPITRE 5 ETAT DE L ART DERIVATION D UML VERS B 0 assos classel classe2 A assos classe classel A n assos classel amp classe2 A assos classe2 classel A Ld Vx x classel card assos x n Vx x classe2 card assos x n dom assos classel ran assos classe2 n assos classel amp classe2 A assos classe classel A E e Yate cased eases n n assos classel classe2 A assos classe classel A CA Re ne TAB 5 1 Affinement de la d rivation d une association par ses multiplicit s 1 n assos classel amp classe2 A assos classe classel A Vx x classel card assos x lt n A Vx x classe2 card assos x lt n A 1 Uk 0 n assos classel classe2 A assos clas
294. ts transitions de la notation UML ne permettent pas la repr sentation des syst mes infinis contrairement certaines notations alg briques 8 3 Grammaire du noyau du langage utilis Cette traduction s applique aux machines abstraites et aux raffinements de la sp cification B du syst me La grammaire suivante d termine le noyau du langage B accept pour notre traduction Spec Machine Raffinement Machine MACHINE Ident Corps 113 114 CHAPITRE 8 EXTRACTION DE DIAGRAMMES D ETATS TRANSITIONS Raffinement Corps Operation Defs_Sets Affectation Action Affectations REFINMENT Ident REFINES Ident Corps SETS Defs_Sets Defs_Sets VARIABLES Ident Ident INVARIANT Ident Ident A Ident Ident INITIALISATION Affectations OPERATIONS Operation Operation END Ident Ident Ident Ident Ident Action Ident Ident Ident Ident Expression Ident Ident Expression Expression Ident Expression Ident Expression Skip BEGIN Affectations END PRE Predicat A Predicat THEN Affectations END SELECT Predicat A Predicat THEN Affectations WHEN Predicat A Predicat THEN Affectations ELSE Affectations END ANY Ident Ident WHERE Predicat A Predicat THEN Affectations END CHOICE Affectations OR Affectations END IF Predicat A Predicat THEN Affectations
295. ture MACHINE M1 VARIABLES x y END F1G 8 1 Des variables Comme il est crit pr c demment le principal l ment de la m thode B est la machine abstraite Celle ci est traduite par un super tat qui prend le nom de cette machine Dans exemple suivant la machine fig 8 1 se nomme M1 et le super tat r sultant de son ex traction fig 8 2 prend le m me nom Ensuite on ajoute des variables la machine fig 8 1 Chaque variable correspond elle aussi un super tat Comme pour les machines ce super tat prend le nom de la variable Il est ins r dans le super tat de la machine o la variable est d finie fig 8 2 M1 Fic 8 2 Extraction des variables Enfin il faut typer les variables de la sp cification Comme nous l avons d fini dans la section 8 3 on ne consid re que les variables typ es l aide d ensembles num r s Ils sont d finis par la clause SETS fig 8 3 On type ensuite les variables par la clause INVARIANT La variable x est typ e partir de l ensemble num r X Au niveau du diagramme d tats transitions on traduit le typage de la variable x par le fait que x peut prendre toutes les valeurs comprises dans l ensemble X Sachant qu une valeur 116 CHAPITRE 8 EXTRACTION DE DIAGRAMMES D ETATS TRANSITIONS MACHINE M1 SETS X v 1 0Xn VARIABLES x INVARIANT x X END FIG 8 3 Une variable typ e l aide d un ensemble num r de variable cor
296. ubstitutions est r alis e de la mani re suivante La substitution Devient gal simple fig 8 7 est traduite par une transition partant de l tat courant et qui se dirige vers un et un seul tat cible ici VX7 car elle est d terministe La substitution devient gal multiple effectue plusieurs substitutions Devient gal simple simultan es donc son extraction fera appara tre autant de fois que n cessaire le sch ma de l extraction de la substitution Devient gal simple mais pour diff rentes variables car elle n autorise pas l affectation de la m me variable plusieurs fois Etat courant VX1 FIG 8 7 Extraction de la substitution Devient gal simple 8 7 Initialisation op rations et v nements L initialisation est une op ration particuli re qui est la premi re ex cut e En B l initia lisation et les op rations sont mod lis es en utilisant les substitutions g n ralis es Toutefois il existe une diff rence en ce qui concerne les substitutions conditionnelles concernant une valeur de variable En effet une condition se d termine par rapport la valeur d une variable or avant l initialisation la valeur des variables n est pas d finie donc on ne peut pas avoir ce 118 CHAPITRE 8 EXTRACTION DE DIAGRAMMES D ETATS TRANSITIONS genre de substitution l initialisation en utilisant l op rateur Cependant leur utilisation est possible en utilisant le S quencement exprim l aide de l
297. uivante 1 v op e r p v e PRE P THEN S END 186 CHAPITRE 12 GENERATION DE CODE JAVA A PARTIR DE B class M boolean test int v return varl v l void augmenter int foo BInteger v2 BBoolean bb vl varl v2 setValue var2 bb setValue varl var2 return v1 var2 var2 1 Fic 12 31 Traduction du passage de param tres en Java Les restrictions sur l appel sont que v est une liste de variables simples et non des r f rences des l ments de tableau par exemple et que ces variables n apparaissent pas dans P et S non aliasing La d finition 1 est adapt e a la preuve mais n est pas op rationnelle pour la traduction En effet un appel d op ration en B doit pouvoir se traduire par un appel au code de cette op ration La r gle ci dessus n est directement applicable que sur les sub stitutions du niveau machine qui sp cifie un changement d tat de mani re atomique Dans le cas des impl mentations qui peuvent contenir des s quencements ou des it rations il faut utiliser la r gle suivante 2 v op e PRE p e P THEN VAR pr IN p e S v r END END qui correspond explicitement au passage par copie Les restrictions sur la structuration des espaces de variables en B font que la r gle 2 est quivalente la forme 3 v op e PRE p e P THEN VAR p IN p e r v S END END La raison essentielle de l quivalence entr
298. une fl che qui est dirig e vers le premier tat de la clause INITIALISATION Le dernier tat extrait de l op ration traduite poss de une transition dirig e vers l tat final symbolis par un disque plein entour d un cercle fig 9 14 9 5 DIAGRAMMES D ACTIVITES 145 MAIN_imp Fic 9 14 Traduction de l initialisation et des op rations 9 3 3 S quentialit Le s parateur d instruction utilis dans BO est le caract re Il exprime la s quentialit des instructions fig 9 15 La s quentialit intervient autant dans l initialisation que dans les op rations IMPLEMENTATION MAIN_IMP REFINES MAIN INITIALISATION Inst_ini_1 Inst_ini_n OPERATIONS main BEGIN Inst1 Instn END END Fic 9 15 Le s quencement Dans le diagramme d activit s correspondant fig 9 16 on retrouve Vinitialisation et l tat d acceptation d crits dans le paragraphe pr c dent Chaque instruction est transform e en une transition o l instruction appara t pr c d d un caract re Ceci signifie dans le for malisme des diagrammes d activit s que l instruction est ex cut e durant la transition Le diagramme poss de deux s quences de transitions La premi re s quence repr sente les instruc tions Inst_ini_1 Inst_ini_n de la clause INITIALISATION La deuxi me s quence repr sente les instructions Inst1 Instn de l op ration OP1 VInst_ini_1 1 Inst_ini_n E
299. une variable par une expression Elle corres pond donc une affectation Les diff rentes possibilit s sont les suivantes affectation d une donn e enti re affectation d une donn e bool enne l aide d une condition affectation d un l ment de tableau affectation d une donn e tableau lt InstructionDevientEgal gt lt Variable gt lt ExpressionScalaire gt lt Tableau gt lt ExpressionTableau gt Dans le cas simple la traduction en Java revient remplacer le par Dans le cas des tableaux une dimension on utilisera la fonction de copie arraycopy de la classe System fig 12 35 et 12 36 Dans le cas des tableaux deux dimensions une it ration sera effectu e sur la premi re dimension et la fonction de copie sera utilis e pour la deuxi me dimension 12 8 3 Substitution appel d op ration Elle permet d appliquer la substitution d une op ration en rempla ant les param tres formels par des param tres effectifs fig 12 37 Les param tres d entr e s il y en a sont des expressions scalaires des tableaux pass s par r f rence et des cha nes litt rales Les param tres de sortie ventuels sont des variables scalaires ou un tableau lt InstructionAppelOperation gt lt Variable gt lt Tableau gt lt Variable gt lt Tableau gt 190 CHAPITRE 12 GENERATION DE CODE JAVA A PARTIR DE B MACHINE Tableaux CONCRETE_VA
300. ur les non initi s et donc une utilisation par un public plus large Le deuxi me objectif de notre contribution est le gain de temps et donc de productivit li l utilisation des m thodes formelles En effet le temps de d veloppement imparti l utilisa tion des m thodes formelles est largement sup rieur celui de l utilisation des m thodes semi formelles Il est donc n cessaire pour une meilleure utilisation de r duire les temps qui lui sont impartis dans le d veloppement complet jusqu l implantation Les temps de d veloppement des phases d analyse et d criture des sp cifications tant incompressibles il faudrait en ga gner sur le reste du cycle de d veloppement Nous remplissons cet objectif pour les raisons suivantes 239 240 CHAPITRE 17 CONCLUSION ET PERSPECTIVES l aide la validation des sp cifications par rapport au cahier des charges par extraction de vues UML la r duction des phases de tests cause de la preuve des sp cifications formelles la traduction automatique des sp cifications formelles vers les langages objets tels que Java et C 17 1 Contributions Notre contribution est divis e en deux parties La premi re est bas e sur l utilisation des notations objets pour valider et documenter la sp cification formelle Le mod le propos pr conise l utilisation conjointe de la m thode B et des notations objets Elle est constitu e d un ensemble d
301. ur les points forts les points faibles les am liorations et perspectives de cette tude 1 4 1 Guide de lecture Ce document de th se concerne plusieurs langages nous avons utilis une convention d criture pour reconna tre les concepts et objets de ces diff rents langages Cette convention est d crite dans le tableau 1 1 o la cha ne expression correspond aux fonts distinctives B VDM EXPRESSION UML OCE Java OCam1 C OFF TAB 1 1 Convention d criture des concepts et objets des diff rents langages Les sp cifications utilis es comme exemple dans les diff rentes traductions vers UML ou les langages objets sont crits l aide de r gles de grammaire d crites dans le tableau 1 2 Le signe signifie que l l ment A appara t n fois A B Le caract re signifie que soit l expression A soit l expression B apparaissent mais pas les deux en m me temps TAB 1 2 El ments de grammaire des langages utilis s dans ce document 1 4 2 Publications issues de ce travail de th se 1 B Tatibouet J C Voisinet BTools and B2UML a platform and a tool to provide a UML Class Diagram since a B specification ICSSEA 2001 14th International Confe rence on Software amp Systems Engineering and Their Applications Vol 2 Session 8 3 Formal Methods France Paris 4 6 December 2001 2 A Hammad B Tatibouet J C Voisinet De la sp cification B vers les diagrammes d tats transitions
302. urer de la bonne ex cution de l op ration concern e les pr et post conditions d op ration contraintes qui doivent tre respectivement v rifi es avant et apr s l ex cution d une op ration les gardes contraintes sur la modification de l tat d un objet les expressions de navigation contraintes pour repr senter les chemins au sein de la structure de classes 4 7 1 Le contexte Chaque contrainte OCL est li e un contexte d finissant le type auquel la contrainte se rapporte Chaque instance d un type doit ensuite respecter les contraintes d finies pour ce type Le contexte d une expression OCL est d fini explicitement avec le mot cl context suivi du nom de l l ment de mod lisation concern et du st r otype de la contrainte Il est suivi d un puis de l expression de la contrainte le mot cl inv correspond au st r otype invariant alors que les mots cl s pre et post sont utilis s pour indiquer respectivement les st r otypes pr condition et post condition le mot cl self sert identifier l instance contextuelle laquelle la contrainte se rapporte la place du mot cl self il est possible d inscrire un nom d instance il est possible de nommer explicitement une contrainte afin de pouvoir la d signer par la suite Le nom de la contrainte est plac apr s le type de contrainte inv pre ou post et avant le les st r ot
303. ution Il est donc n cessaire d ajouter du code l int rieur des structures traduites depuis ObjectZ La premi re 57 de ObjectZ vers C utilise une traduction directe La traduction fig 11 3 des entit s de type produit cart sien P Typel x Type2 est r alis e l aide de classes templates et d un syst me d h ritage Les classes templates permettent d utiliser tous les typages sp cifiques de la m thode formelle ObjectZ Typel et Type2 peuvent eux aussi tre des produits cart siens Le syst me d h ritage permet de diff rencier les fonctions relations bijections surjections injections et produits cart siens sans contraintes Les pr et post conditions sont utilis es pour remplacer la notion de substitution N anmoins il est n cessaire d ajouter des morceaux de code une fois la traduction effectu e template lt class X class Y gt class Relation public Set lt Pair lt X Y gt gt Fic 11 3 Traduction d une relation 11 6 CONCLUSION 163 La deuxi me 41 de ObjectZ vers Java ne r alise pas une traduction directe Il utilise un langage interm diaire Jass Java avec assertion o il permet au programmeur d ajouter le code du corps des op rations sachant que les invariants sont traduits dans ce langage et correspondent aux assertions du langage Le traducteur de Jass vers Java cherche v rifier le code ajout en fonction de l invariant Dans ce sch ma de traduction ObjectZ vers Ja
304. utoris s aux variables 6 4 1 Visibilit travers les clauses SEES et IMPORTS Les clauses SEES et IMPORTS permettent de voir variables et op rations La clause SEES permet une visibilit visible non modifiable alors que la clause IMPORTS permet la modifica tion par les op rations op rations qui modifient la valeur des variables et par les variables Par cons quent sachant que la preuve bloque les acc s non autoris s on peut imaginer une visibilit identique pour les attributs des machines cit es dans les deux clauses une fois la machine traduite en classe UML Cette visibilit sera d finie comme public pour ne pas tre plus restrictive que celle de B sachant que la preuve a bloqu les acc s interdits Il existe une diff rence entre les deux clauses la clause SEES permet juste de voir les entit s de la machine cit e alors que la clause IMPORTS permet d instancier la machine import e Il est donc n cessaire de transcrire l instanciation par une association On pourrait aussi d clarer une variable du type de la classe utilis e mais symboliquement on ne voit pas le lien Dans le but de mieux documenter le syst me il est pr f rable d utiliser une agr gation pour signifier clairement l existence du lien et de l instance 6 4 2 Clause EXTENDS INCLUDES et PROMOTES Les attributs et m thodes des classes sont en visibilit public visibilit moins restrictive que dans les sp cifications B Toutefois le probl me provien
305. va via Jass la m thode formelle ObjectZ est coupl e avec CSP 11 5 4 De VDM vers C et Java Les traducteurs de VDM vers C et Java 52 54 53 55 font partie des VDMTools La m thode VDM permet de d finir un invariant et des pr et post conditions Le traducteur VDM vers C permet de traduire les invariants Lorsqu un invariant fig 11 4 est utilis pour restreindre la d finition d un type le type est traduit et un prototype de fonction est issu de la traduction de l invariant La port e de la fonction fig 11 5 est la m me que celle du type Le traducteur ne supportant pas la v rification dynamique de l invariant il faut faire manuellement un appel explicite la fonction de v rification de l invariant S set of int inv s s lt gt FIG 11 4 Un invariant VDM boolean vdm_A_inv_S Set Fic 11 5 Traduction de invariant VDM en une fonction C Le traducteur VDM vers Java permet de traduire les pr et post conditions des fonc tions La pr condition est traduite par une m thode du m me nom que la fonction et pr fix e par la cha ne de caract res pre tandis que la post condition est pr fix e par la cha ne post Le type de retour de ces deux m thodes est boolean Le test de la pr conditon est ex cut avant l appel de la fonction et celui de la post condition est lanc apr s l appel de la fonction 11 6 Conclusion La traduction de B vers C fait appara tre un ap
306. valles d en tiers concrets 12 5 LES TYPES 169 class M1 void INITIALISATION initialisation des variables de M1 M1 INITIALISATION class M2 On suppose M2 instanci plusieurs fois M1 i anonymousMl void INITIALISATION Cr ation des instances i new M1 anonymousM1 new M1 initialisation des variables de M2 M2 INITIALISATION FIG 12 4 Cr ation de deux instances de M1 l une n tant pas nomm e 12 5 1 1 Le typage sp cifique de B Les r gles de typage de B sont assez loign es de celles d un langage de programmation classique Les diff rences notoires au niveau des ensembles sont les suivantes l importation de machines avec des param tres formels de type ensemble la valuation d ensembles de machine l int rieur de l impl mentation Dans les langages de programmation imp ratifs classiques une variable est typ e et son type ne change plus Ce n est pas le cas du langage B En effet le type d un constituant peut tre r valu au cours du cycle de raffinement ou de composition des machines clause IMPORTS La majorit des difficult s de typage des entit s des machines r side dans ces changements de type que l on appellera recouvrement dans la suite du document 1 Une machine abstraite peut tre param tr e l aide d un ensemble fig 12 7 Dans ce cas le type de cette entit est g
307. veloppement classiques ont permis de d velopper des applications carte ayant un haut niveau de qualit cependant l mergence du code mobile et la possibilit de charger du code apr s la mise en service introduit de nouveaux besoins en terme de m thodes de d veloppement et de qua lification des cartes puce par rapport aux probl matiques de s curit et de mobilit du code Dans ce domaine les m thodes formelles semblent tr s prometteuses malheureusement les m thodes et outils actuellement disponibles B Coq Isabelle ne permettaient pas de g n rer du code de mani re efficace r pondant aux contraintes tr s s v res de la carte puce Certes il existait des traducteurs de B vers C C ou ADA mais par exemple la tra duction vers C langage tr s utilis pour les cartes puces produisait un code permettant Vinstanciation de machines mais restant complexe et gourmand en m moire utilisation de param tres pointeur sur les structures correspondant aux machines instanci es dans les fonc tions traduites des op rations par le type pointeur T_BWallet fig 11 1 donc peu adapt pour des plate formes embarqu es fortes contraintes m moire comme les cartes puce la capacit m moire d une carte puce exc de rarement les quatre kilos octets de RAM trente deux kilos octets de ROM et d EEPROM De plus les traducteurs taient jug s par les ing nieurs de ClearSy complexes et par cons quent difficiles maintenir
308. vrai si uneExpression est vraie pour au moins un l ment de la collection faux sinon excluding unObjet retourne toutes les occurrences de l ensemble except celle de l objet unObjet including unObjei retourne toutes les occurrences de l ensemble plus celle de l objet unObjet excludes unObjet retourne la valeur vraie si unObjet n est pas un l ment de la collection d o l expression est appel e sinon faux 64 CHAPITRE 4 LA NOTATION UML union sei retourne l union de l ensemble depuis lequel l expression est appel e plus les occurrences de l ensemble donn en param tre 4 7 8 Les classes associations La navigation vers des classes associations est d finie par le nom de l instance d un des classificateurs reli s par l association concern e suivi d un point puis du nom de la classe association commen ant par une minuscule La navigation d une classe association vers les instances qui participent l association est galement possible Dans ce cas le nom de l instance de la classe association est suivi d un point puis du nom du r le concern 4 7 9 Les variables Lorsqu une expression appara t plusieurs fois dans une condition il n est pas n cessaire de la r crire plusieurs fois et une variable peut tre d finie Les mots cl s let et in introduisent la d finition d une variable sous la forme let variable type expression in expr 4
309. x7 2 Deux sous diagrammes peuvent tre en concurrence et dans ce cas les deux sous diagrammes seront situ s l int rieur d un tat du diagramme d tats transition du syst me fig 4 10 4 5 DIAGRAMME DE SEQUENCE 57 FIG 4 10 Diagrammes concurrents au sein d un tat 4 5 Diagramme de s quence Les diagrammes de s quences permettent de mod liser les aspects dynamiques des syst mes Ils montrent les interactions entre les objets La repr sentation se concentre sur la s quence d interaction d un point de vue temporel Elle se traduit par l envoi de messages entre les diff rents objets du syst me 4 5 1 Les objets Les acteurs d un diagramme de s quence sont les objets du syst me d finis dans le dia gramme d objet instanci partir des classes du diagramme de classes Dans ce diagramme les v nements ext rieurs ne sont pas pris en compte Les seuls ph nom nes d crits sont les interactions entre les diff rents objets du syst me Un objet est mat rialis par un rectangle nomm par son nom On y ajoute une barre verticale qui correspond sa ligne de vie et qui repr sente un axe temporel permettant de dater les communications OBJET1 OBJET2 Fic 4 11 Les acteurs d un diagramme de s quence 58 CHAPITRE 4 LA NOTATION UML 4 5 2 Messages Les messages permettent la communication entre les diff rents objets du syst me Ils cor respondent souvent l appel d une m
310. xemple de l ascenseur Les ascenseurs desservent les tages d un b timent Chaque tage poss de un bouton d appel de l ascenseur A l int rieur de l ascenseur il y a un bouton par tage pour choisir sa destination Quand on appuie sur ce bouton il reste allum jusqu l arriv e de l ascenseur l tage concern Un voyant par tage d termine l tage courant Lorsque l ascenseur est en mouvement et re oit un autre appel il change d tage de destination une fois le premier appel r alis par son arriv e louverture et la fermeture des portes L ascenseur est mis en attente au dernier tage demand lorsque toutes les demandes ont t satisfaites Une demande de l tage courant de l ascenseur provoque louverture des portes puis peu apr s sa fermeture Dans le diagramme de classes suivant fig 5 27 la classe Lift correspond 5 4 DERIVATION A PARTIR DE DIAGRAMMES D ETATS TRANSITIONS 77 l ascenseur et Button aux boutons Les types DIRECTION STATUS et FLOOR sont d finis par les ensembles respectifs suivants up down opened closed et ground top dir DIRECTION curDestFloor FLOOR doorStatus STATUS goDown goUp setCurDestFloor tl FLOOR getCurDestFloor FLOOR closeDoor openDoor liftButton 2 ech Button floor FLOOR getFloor FLOOR Fig 5 27 Diagramme de classes de l ascenseur La figure 5 28 montre le diagramme d tats tra
311. y ContenuEvacuation gt yy AutorisationEvacuation xx La transformation en OCL fig 7 4 est obtenue en utilisant les r gles 6 et 10 du tableau 7 1 et la r gle 2 du tableau 7 4 Sur cet exemple on peut voir que si de nombreuses propri t s sont exprimables avec OCL B reste beaucoup plus concis gr ce des op rateurs puissants Outre cet aspect la lisibilit qui est certes un facteur beaucoup plus subjectif nous para t tre l avantage de B par rapport OCL Evacuation forAll ce E_Evacuation AutorisationEvacuation select ce E_Evacuation_D E_AutorisationEvacuation_D collect E_AutorisationEvacuation_C includes ce E_Evacuation_C FIG 7 4 Transformation en OCL d une propri t invariante complexe 7 2 4 2 Les expressions B non traduisibles en OCL Premi rement nous avons omis de mani re volontaire les expressions d arbres et records qui sont peu utilis es en B et n ont pas d quivalent direct dans les structures OCL Deuxi mement certaines expressions B sur les relations ne sont pas directement traduisibles en OCL avec le diagramme de classes par notre approche Lorsqu on utilise une relation ou une fonction sans avoir nomm e dans l invariant Par exemple dans le pr dicat x A B4C la relation B C pose un probl me il faudrait un nom pour au moins cr er la classe repr sentant les couples 7 3 REECRITURE EN OCL DES OPERATIONS B 109 lorsqu on utili
312. ypes basiques utilis s par la m thode B sont les suivants BOOL est le type bool en d fini par TRUE et FALSE Z est l ensemble des entiers relatifs d fini par co oo Les constantes MAXINT et MININT qui correspondent l ensemble des entiers repr sentables directement sans d bordement sur la machine cible repr sentent l ensemble INT des entiers utilisable en BO STRING est le type des cha nes de caract res Ident correspond aux types des ensembles num r s d finis dans la clause SETS Pour d crire les types on utilise les notations suivantes P T d signe l ensemble des parties de T c est dire l ensemble dont les l ments sont des ensembles d l ments de T sachant que T repr sente un type quelconque 2 3 LA METHODE B 37 T x U d signe le produit cart sien des ensembles T et V c est dire l ensemble des paires ordonn es dont le premier l ment est de type T et le second de type V L op rateur est associatif gauche le type T x U x V x W d signe en r alit le type T x U x V x W Type de Expl TD FEU x TI Composition PAZ x TI TAB 2 5 Typage des expressions B D autre part il existe deux op rateurs de typage dans la m thode B qui sont C et Si une variable var est typ e de la mani re suivante var E avec E une expression de type P T alors le type de var est T On parle de variable scalaire lorsque le type de
313. ypes permettent d tendre la s mantique des l ments de mod lisation il s agit d un m canisme d extensibilit du m ta mod le d UML 62 CHAPITRE 4 LA NOTATION UML 4 7 2 Les types de base et les op rateurs Les types de base OCL sont les entiers les bool ens les cha nes de caract res et les r els Le type OclAny est galement d fini dans OCL Il s agit d un super type pour tous les types de base et du mod le Les op rateurs d finis pour ce super type sont h rit s par tous les types Les op rateurs suivants s appliquent ces types de base op rateurs logiques gt lt gt lt and or xor implies if then else endif not op rateurs math matiques op rateurs pour les cha nes de caract res Concat toUpper Les types num r s sont galement autoris s dans les expressions OCL La valeur d un type num r est identifi par expression nom_enum ration nom_ num r OCL est un lan gage typ une expression est dite valide lorsque les types de cette expression sont compa tibles OCL d finit par contre une conformit de type entre un entier et un r el L op rateur if then else endif d finit une condition alternative La clause else est obligatoire et in troduit une expression de m me type que l expression de la clause then 4 7 3 Les types et sous types de classificateurs Les classificateurs classes associations sp c

Download Pdf Manuals

image

Related Search

Related Contents

Il futuro. Noi non l`aspettiamo. Lo costruiamo.  - Rockwell Automation  事 業 報 告 書 - 日本科学技術振興財団  Da-Lite 95592 projection screen  310/320 Control Module      

Copyright © All rights reserved.
Failed to retrieve file