Vous êtes sur la page 1sur 4

Nom: . . . . . . . . . . . . . . . . . . . . . . . . . .

Prénom: . . . . . . . . . . . . . . . . . . . . . . . . . .
Examen du Module Ingénierie des Modèles

Exercice 01 : (04 Pts) 


1) Quelle est la différence entre MDA et MDE ?
..........................................................................................
..........................................................................................
2) Quelles sont les différents niveaux de méta-modélisation ?
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................

3) Définir la transformation par méta-modèles.


..........................................................................................
..........................................................................................

4) Quelle est la différence entre Lazy rule et Called rule dans le langage ATL ?
..........................................................................................
..........................................................................................

Exercice 02: (05 Pts)


1- Soit le code ATL suivant qui détermine l’adresse d’une personne:
helper context Familles!Membres def: AdressePersonne(): String =
if not self.PereFamille.oclIsUndefined() then self.PereFamille.Adresse
else
if not self.MereFamille.oclIsUndefined() then self.MereFamille.Adresse
else if not self.GFamille.oclIsUndefined() then self.GFamille.Adresse
else self.FFamille.Adresse
endif
endif
endif;

a) Quel est le type ce helper? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


b) Quel est son contexte ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
c) Est-ce que l’adresse des membres d’une famille peut être différente dans ce cas ? . . . . . . . . . . . . . . . . . . . . . .
d) Pourquoi ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2- Soit le code XMI suivant :
<Famille Nom="X" Adresse="X Adresse" >
<Pere Prenom="Xp"/> <Mere Prenom="Xm"/>
<Fils Prenom="Xf"/> <Filles Prenom="Xfl"/>
</Famille>
<Famille Nom="Y" Adresse="Y Adresse">
<Pere Prenom="Yp"/> <Mere Prenom="Ym"/>
<Fils Prenom="Yf1"/> <Fils Prenom="Yf2"/> <Filles Prenom="Yfl"/>
</Famile>

4
a) Que représente ce code un modèle ou un méta-modèle? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
b) En déduire du helper et du code xmi le méta-modèle correspondant ?
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................

Exercice 03: (5 Pts)


Soit les méta-modèles définis ci-dessous décrivant un journal et un livre.

Fig. 1. Méta-modèle du Journal

Fig. 2. Méta-modèle du Livre

Soit le helper qui détermine les auteurs d’un livre :


helper context Journal!Journal def:AuteursBook() :Set(String)=
Self.Articles-> collect(e | e.Auteurs)->flatten()->asSet() ;

Soit le helper NbpagesBook qui détermine le nombre de pages d’un livre :


helper context Journal!Journal def : NbpagesBook() :Integer=
Self.Articles-> collect(e | e.Nbpages)-> sum() ;

Ecrire un programme ATL Journal2Book qui réalise la transformation d’un journal en un livre en
utilisant les helpers précédents AuteursBook et NbpagesBook Sachant que :
a) Le titre du livre = titre du journal + Numéro du journal ;
b) Les auteurs du livre = l’ensemble des auteurs des articles du journal ;
c) Les chapitres du livres = les articles du journal ;
d) Nombre de pages du livre = Somme des pages des articles du journal.
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................

4
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................

Exercice 04: (6 Pts)


Soit les méta-modèles définis ci-dessous :

FamilleA Membres
Masculin
*
Nom : String Prenom : String
Feminin
*
Fig. 1. Méta-modèle Familles

Fig. 2. Méta-modèle Personnes

Personnes
Prenom : String

Masculin
Hommes
*
FamilleB Feminin
* Femmes
Nom : String

Ecrire un programme de transformation ATL qui réalise la transformation entre les deux méta-modèles.

4
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................
..........................................................................................

Vous aimerez peut-être aussi