Upload
gascon-flament
View
102
Download
0
Embed Size (px)
Citation preview
Transformation de modèles
Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek
La vision Triskell :
Umlaut NG
2
Contexte
Manipulation du niveau M1 (Q/V/T)
M2 supposé connu du Designer
– si CASE le supporte, accès possible en lecture à M2 (introspection)
3
Contexte
MDA : raffinements successifs
Requirements Analysis ArchitecturalDesign
DetailedDesign
Implementation Validation
Lifecycle
Modelingpoint of views
Proofs,QoS
Analysis,Simulation
Technical Aspects
BusinessAspects
Text(e.g. XML)
PIMPIM
Doc Doc Doc Doc Doc Doc
PIMPIM
PIMPIM
PSMPSM
PIMPIM
PSMPSM
CodeCode
TestsTests
Formal Models Formal Models
Endomorphic TransformationsExomorphic TransformationsOutside UML scope
PIM=Platform Independent ModelPSM= Platform Specific Model
4
Objectifs Généraliser la manipulation de modèle (et
pas seulement UML)– M2 doit simplement être MOF-compliant
Possibilité de connexion aux outils du marché.
Faciliter l'écriture de transformations réutilisables d'un Méta modèle à l'autre, ou d'une version à l'autre (bibliothèques)
– Ex : Les transformations doivent pouvoir manipuler des concepts abstraits qui se retrouvent d'un MM à l'autre
5
Moyens
Ecriture d'un moteur de transformation indépendant du dépositaire de modèle– Construire les bases d'une structure
interopérable Création d'un langage objet avec des
facilités de manipulation de modèles– Model Transformation Language (MTL)
6
Positionnement / QVT Une dizaine de soumissions
– Risque: ce n'est pas la notre (Open QVT) qui est standardisée
Solutions:– Soit le standard est proche
On fait évoluer MTL vers le standard
– Sinon : MTL fournira une infrastructure pour construire les surcouches telles qu'elles seront standardisées à l'OMG (QVT)
7
Positionnement de MTL
Moteur MTL
Dépositaires
TransformationUtilisateur
en OMG-QVTBibliothèque
Framework
TransformationUtilisateuren MTL
Interpreteur/CompilateurOMG-QVT 2 MTL
en MTL
8
Moteur : Caractéristiques principales Délégation du stockage du modèle à des
dépositaires – Objecteering, MDR, Kase, ancien Umlaut,…– wrapper d'accés pour chaque outil. simplifié
par BIM ?– API inspirée de MOF mais simplifiée pour accéder
à un plus grand nombre d'outils.Manipulation de type "simple" uniquement (string, int, uid, collection …)
– Typage implicite des éléments de modèle dans les transformations.
Interprété ou compilé (voire approche mixte)
9
Dépositaires Création d'instance d'éléments de
modèle Interrogation/Modification de valeurs
du modèle. Exécution de méthodes du modèle
(optionel) ex: des "helpers" fournis par le dépositaire.
Introspection (optionnelle)
10
Exemple avec introspection
Dépositaire "MOF"
Ex: MDRDEPOSIRAIRE
MOF
API générique
SOURCE MTLTransformation de modèlebasée sur un métamodèle
COMPILATEURMTL
BINAIREde la transformation
API génériquepartie introspection
METAMODELEarbre N-aire
( MODELE MOF)
Modèled’arbre N-aire
11
MTL: langage objet générique OCL + effets de bords + structuration
objet "MTL"– Typage statique explicite pour les objets MTL– Typage implicite pour les objets issus du M1
Délégation des fonctions système à des dépositaires spécialisés ou librairies natives
Permet la construction de frameworks OO– Gestion de la complexité et de la variabilité
(Lignes de produits,Multiples MM…)
12
MTL ~= Infrastructure UML
Appliquer aux programmes de transformations les techniques objet– A terme : approche MDA pour coder
les transformations elles mêmes. Support des exceptions Syntaxe textuelle ou graphique
– E.g. notion d'associations navigables en OCL
13
Vers du full MDE…
Modèles en lecture seule
Modèles en lecture écriture
Modèle de la transformation
Modeleur MTL Machine MTL
Modeleurs dédiés