• Aucun résultat trouvé

Jusqu’à ici, nous avons vu que les modèles sont présentés avec leurs méta-modèles sous forme d’entités abstraites. Dans ce cas, il est presque impossible de parler sur la pérennité des modèles, car les modèles ne peuvent pas être enregis-trés dans un support de stockage. Ils restent toujours volatils.

OMG propose les standards XMI (XML Metadata Interchange) et DI (Diagram In-terchange)permettant d’enregistrer les modèles dans des supports de stockage, et par conséquent les rendre pérennes. Ces standards sont basés sur le fameux for-mat international d’échange de données, à savoir XML, et ce grâce à son succès le plus distingué [Xavier 2005].

4.8.1 Le format XML

Le format XML est utilisé pour représenter les modèles. Cette section a été déjà détaillée dans le chapitre précédent (Web sémantique).

4.8.2 Le standard XMI (XML Metadata Interchange)

OMG a proposé un standard XMI pour donner une représentation concrète des modèles sous forme de documents XML, et cela est le but principal de l’XMI. XMI fournit les balises nécessaires et suffisantes à la représentation des modèles en format XML en se basant sur la définition de la structure des balises : XML DTD et XML Schéma.

La figure 4.9 montre comment XMI définit la structuration des balises. XMI est basé sur l’alignement existant entre les modèles et leur méta-modèle, d’un côté, et les documents XML et leur structuration, de l’autre côté. Les méta-modèles et les structurations des balises sont identiques en termes de rôle qu’ils jouent. Tous les deux définissent une structure : le premier définit une structure des modèles, alors que, la seconde définit la structure d’un document XML [Xavier 2005].

Chapitre 4. Ingénierie Dirigée par les Modèles

Figure 4.9 – Alignement entre méta-modèle/modèle et DTD/document XML (Xavier, 2005)

Un document XML est structuré par son DTD, comme c’est le cas pour un modèle qui doit être conforme à son méta-modèle. Les modèles sont représentés sous forme de documents XML en utilisant la structuration des balises (DTD) qui est basée sur les méta-modèles.

Processus de génération des balises XML

La Figure 4.10 montre comment XMI génère automatiquement les balises XML. Cette génération est effectuée en deux processus, à savoir la génération et la sérialisation. Le premier processus est illustré dans la partie (1) de la Figure 4.10. Il permet de définir un ensemble de règles permettant de générer automati-quement une DTD (une structuration de balises XML) à partir d’un méta-modèle. Ces règles de génération sont assez naturelles, et sont expliquées dans la sous-section suivante.

Le deuxième processus est illustré dans la partie (2) de la Figure 4.10 Il permet de représenter un modèle en format XML en utilisant la DTD définie dans le premier processus [Xavier 2005].

Figure 4.10 – XMI et la structuration de balises XML (Xavier, 2005)

Règles XMI de génération d’une DTD à partir d’un méta-modèle MOF1.4

Ces règles permettent de produire une DTD à partir d’un méta-modèle MOF1.4 [Xavier 2005] :

Règle 1 : Toute méta-classe produit une balise XML qui possède :

• Un nom identique au nom de la méta-classe.

Règle 2 : Tout méta-attribut d’une méta-classe produit une sous-balise qui doit

être placée à l’intérieur de la balise de la méta-classe. Cette sous-balise possède :

• Un nom identique au nom du méta-attribut.

• Un contenu égal à la valeur du méta-attribut.

Règle 3 : Toute méta-référence d’une méta-classe produit une sous-balise qui doit

être contenue dans la balise correspondant à la méta-classe. Cette sous balise possède :

• Un nom identique au nom de la méta-référence.

• Un contenu qui égal à un id afin d’identifier l’instance référenciée.

Règle 4 : Toute méta-association entre deux méta-classes produit une balise

pos-sèdant :

• Un nom identique au nom de la méta-association.

• Un contenu qui représente les instances des méta-classes qui sont en rela-tion (ou bien leurs id)

Si la association est navigable alors la balise qui correspondant à la méta-association doit être placée dans la balise correspondant à la méta-classe source de l’association [Xavier 2005].

Exemple de génération d’une DTD et d’un document XML à partir d’un méta-modèle

La Figure 4.11 représente un méta-modèle qui permet de modéliser des pro-cessus simples. Chaque propro-cessus est défini par un ensemble d’étapes et de tran-sitions, d’où nous avons trois méta-classes dans ce méta-modèle. Supposons que ces méta-classes se trouvent dans un méta-package nommé MMProcessus.

Figure 4.11 – Méta-modèle de processus (Xavier, 2005)

Par l’application des règles citées précédemment, on obtient la DTD du Lis-ting 4.1.

1 <!ELEMENT Processus (ProcessusToTransition , ProcessusToEtape) >

2 <!ATTLIST Processus id ID> /* règle 1 et règle 4*/

3 <!ELEMENT Etape (nom) >

4 <!ATTLIST Etape id ID> /* règle 1 */

5 <!ELEMENT Transition (in, out) >

6 <!ATTLIST Transition id ID> /* règle 1 et règle 4*/

7 <!ELEMENT ProcessusToTransition #PCDATA> /* règle 4*/

8 <!ELEMENT ProcessusToEtape #PCDATA> /* règle 4*/

Chapitre 4. Ingénierie Dirigée par les Modèles

10 <!ELEMENT in #PCDATA> /* règle 4 */

11 <!ELEMENT out #PCDATA> /* règle 4 */

Listing 4.1 – La DTD générée à partir du méta-modèle de processus

La règle 1 permet de générer les balises "Processus", "Etape" et "Transition". La règle 2 donne la définition de la sous-balise "nom" qui doit être placée dans la balise "Etape". La règle 4 permet de définir les balises "in", "out", "Processus-ToTransition"et "ProcessusToEtape".

En se basant sur cette DTD, nous pouvons représenter des modèles de processus qui sont conforme à leur méta-modèle sous forme d’un document XML. Listing 4.2 représente un exemple de processus sérialisé en document XML. Ce processus est composé de deux étapes nommées "début" et "fin" reliées par une transition [Xavier 2005].

1 <Processus id="p1">

2 <ProcessusToEtape>

3 <Etape id="e1">

4 <nom>début</nom>

5 </Etape>

6 <Etape id="e2">

7 <nom>fin</nom>

8 </Etape>

9 </ProcessusToEtape>

10 <ProcessusToTransition>

11 <Transition>

12 <in idref="e1"/>

13 <out idref="e2"/>

14 </Transition>

15 </ProcessusToTransition>

16 </Processus>

Listing 4.2 – Exemple d’un modèle de processus sérialisé en document XML

4.8.3 DI (Diagram Interchange)

Nous avons vu qu’avec le standard XMI on peut représenter les modèles dans des documents XML. Réellement, il ne représente que les informations dont la structure est définie dans un méta-modèle, et ce conformément aux règles d’XMI [Xavier 2005].

Dans UML, la représentation graphique des modèles est ignorée lors de l’éla-boration d’un document XML, car cette partie est absente dans le méta-modèle UML. Par exemple, il est impossible de redessiner un diagramme d’états ou de séquence. De plus, on ne peut pas connaitre le nombre de diagrammes à dessiner [Xavier 2005].

OMG a proposé un standard intitulé DI (Diagram Interchange) dont le but est de pallier le problème de représentation graphique des modèles UML.

Principe de fonctionnement de DI

L’idée générale de DI est de représenter en format XML les parties graphiques des modèles UML, et ce par, une définition d’un nouveau méta-modèle contenant des méta-classes représentant les éléments graphiques nécessaires à la recons-truction de toutes les parties graphiques d’UML. La Figure 4.12 montre ce

nou-veau méta-modèle (méta-modèle graphique), et qui doit être lié au méta-modèle UML. Par l’application de XMI a ce méta-modèle on obtient une structuration des balises XML (DTD graphique) qui nous permet de représenter les différentes parties graphiques en document XML [Xavier 2005].

De plus, DI définit une transformation de documents XML vers des documents SVG. Cette transformation est importante pour visualiser les modèles UML et leurs parties graphiques dans des outils supportant le format SVG.

Figure 4.12 – Principe de fonctionnement de DI (Xavier, 2005)

4.9 Les Langages de transformation des modèles dans