Académique Documents
Professionnel Documents
Culture Documents
Cette règle génère un élément du modèle Book à partir d’un élément de modèle Journal :
1.Le “title” du “Book” correspond au “title” du “journal” concaténé avec “vol” et num;
2.Le “chapters” du “Book” correspond aux éléments de modèle qui seront générés à partir de “articles” de
“Journal”;
3.L’entité “authors” de “Book” correspond à tous les “authors” des différents “articles” de “Journal” sans doublon;
4.L’attribut “pagesNb” est initialisé avec la somme des nombres de page (pagesNb) de tous les articles du modèle
source “Journal”.
11
Le métamodèle Biblio
Approche MDA pour la Transformation de Modèles
12
L’approche MDA est basée sur la manipulation de modèles,
Le passage de l'un à l'autre (et vice versa) est une activité centrale de la
méthode.
Les transformations réflexives de modèles :
13
PIM/PIM (1),
PSM/PSM (3),
Code/Code (6)
Sont effectuées soit lors d'ajout d'éléments pour représenter des niveaux d’abstraction
différents, soit pour optimiser un modèle lorsqu'une transformation non réflexive est
incomplète ou pas assez précise (raffinage).
Il est important de noter que ces transformations réflexives ne sont pas toujours
automatisables.
Les transformations (4) et (7) :
font partie de l'activité de rétro-ingénierie. Cette dernière fait partie de la philosophie de
MDA.
Génération du code (5) :
Le passage d'un modèle type UML à du code écrit en langage évolué (Java, C++,...) que
l'on considère ici comme un modèle.
La transformation (2) :
C’est la transformation centrale de MDA (et aussi la plus délicate) : Le passage du PIM
vers le PSM.
14 Deux types de transformation de base :
La transformation Horizontale : le niveau d’abstraction en terme de
modélisation est préservé (PIM à PIM, ou bien PSM à PSM).
permet de faire des mises à jour au niveau des modèles
transformés. L’exemple du passage de l’analyse à la
conception, illustre la transformation PIM à PIM.
La transformation verticale : le niveau d’abstraction des deux
modèles, source et cible est différent (PIM vers PSM, ou bien PSM au
PIM).
La passage de PIM vers PSM, permet par exemple d’intégrer les
éléments spécifiques à une plateforme technique, tels que J2EE,
CORBA, .NET, etc.
L’abstraction PSM au PIM, s’avère très utile pour la reconstruction
des systèmes en migration.
Propriétés des Transformations
15 Les principales propriétés qui caractérisent les transformations de modèles sont :
Réversibilité : une transformation est dite réversible si elle peut se faire dans les
deux sens. Exemple : « Model to text » et « text to Model ».
Traçabilité : permet de garder des informations sur le devenir des éléments des
modèles au cours des différentes transformations qu’ils subissent.
Dans un contexte d’IDM, l’information relative à la traçabilité est représentée par un
modèle.
Une instance de ce modèle est associée à chaque exécution d’une transformation
tracée.
La définition d’un métamodèle de traces nous permet de structurer les traces qui
seront générées par la plate-forme de traçabilité et ainsi de mieux les manipuler.
Réutilisabilité : permet de réutiliser des règles de transformation dans d’autres
transformations de modèles. L’identification de patterns de transformation est un
moyen pour mettre en œuvre cette réutilisabilité.
Ordonnancement : l’ordonnancement consiste à représenter les niveaux
d’imbrication des règles de transformation. En effet, les règles de
transformations peuvent déclencher d’autres règles.
Modularité : une transformation modulaire permet de modéliser les règles de
transformation en faisant un découpage du problème. Un langage de
transformation de modèles supportant la modularité facilite la réutilisation des
règles de transformation.
Langages et outils dédiés à la transformation de modèles
16
L’Ingénierie Dirigée par les Modèles se focalise sur les spécifications du MOF
pour définir des langages de transformation de modèles.
Les langages de transformation définis à partir des recommandations du MOF :
MOF Query/View/Transformation (QVT), le langage de transformation standard de
modèles respectant le MOF.
ATLAS Transformation Language (ATL), un langage de transformation calqué sur
QVT, implémenté en Java et pouvant manipuler des modèles EMF.
MOF Query/View/Transformation (QVT) (voir exemple)
17
Query/View/Transformation (QVT) est le langage de transformation standard
pour les modèles basés sur une architecture MOF (considéré comme étant
une partie des spécifications du MOF)
QVT est basé sur une architecture de langages déclaratifs et procéduraux
permettant une manipulation facilitée des éléments issus de modèles ou de
métamodèles et la définition de règles de transformation sur ces éléments.
QVT propose un langage déclaratif de relations (Relations) et un langage
noyau (Core) permettant de spécifier des correspondances sur les éléments
des modèles manipulés.
Pour les langages procéduraux, QVT définit un langage d’opérations de
correspondances (Operational Mappings) et un langage d’implémentation
interne d’opérations (Black box).
Les langages procéduraux donneront accès aux relations et éventuellement
aux opérations des modèles manipulés.
18
Architecture de QVT
Le langage de relations de QVT est utilisé pour définir de manière déclarative
19 des relations existantes entre les éléments d’un modèle source et les éléments
d’un modèle cible suivant certaines contraintes.
La vérification d’une relation et de ses contraintes conduira à la transformation de
l’élément source en élément cible.
Il est nécessaire que ce langage soit déclaratif afin que les diverses transformations
nécessaires puissent se faire d’une manière parallèle.
Par exemple, la transformation d’une classe UML fait appel non seulement à la relation qui
concerne cette classe, mais également à la relation qui concerne les éléments englobés par
la classe selon le métamodèle (attributs et opérations).
Il est évident que faire une transformation de modèle serait difficile sans la
capacité de lire (et donc d’effectuer des requêtes sur le modèle source). Ainsi
pour les transformations, ATL utilise intensivement le mode d’écriture et la
sémantique des mots clés de la norme OCL, aujourd’hui dans sa version 2.0.
KERMETA
23
Dans l’approche par programmation classique, on dit qu’un programme est
composé d’un ensemble de structures de données combinées à des
algorithmes.
C’est sur la base de cette assertion que le langage de métamodélisation
KERMETA a été élaboré.
Le langage KERMETA est une sorte de dénominateur commun des langages
qui coexistent actuellement dans le paysage de l’IDM. Ces langages sont
les langages de métadonnées (EMOF, ECORE,…), de transformation de
modèles (QVT, ATL,…), de contraintes et de requêtes (OCL), et d’action
(Action Semantics, Xion).
Cette composition fait de KERMETA un véritable langage de
métamodélisation exécutable.
KERMETA intervient à deux niveaux dans l’architecture de
métamodélisation de l’OMG.
il intervient comme un langage de niveau M3 c’est-à-dire que tous les
métamodèles lui sont conformes,
mais également comme une bibliothèque de base pour construire des
métamodèles de niveau M2.
FUJABA
24 FUJABA, acronyme de «From UML to Java and Back Again», a pour but de fournir un environnement de
génération de code Java et de rétro-conception. Il utilise UML comme langage de modélisation visuel. Durant
la dernière décennie, l’environnement de FUJABA est devenu une base pour plusieurs activités de recherche
notamment dans le domaine des applications distribuées, ses systèmes de bases de données ainsi que dans
le domaine de la modélisation et de la simulation des systèmes mécaniques et électriques. Ainsi,
l’environnement de FUJABA est devenu un projet opensource qui intègre les mécanismes de l’IDM.
OptimalJ
Optimal J est le fruit d’un travail au sein de la société «Compuware» qui utilise le langage TPL (Template Pattern
Language) comme langage de transformation. L’outil OptimalJ représente un exemple typique de l’approche
dite guidée par la structure qui est une approche de transformations de modèles à modèles. L’outil propose
l’ajout de patrons de transformations au processus métier (PIM). l’approche suivie est composée de deux
étapes.
- Dans la seconde étape, les attributs et les références sont mis en place afin de compléter le modèle produit.
Exemples de transformations de modèles dans un cycle logiciel
25