13
Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG

Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG

Embed Size (px)

Citation preview

Page 1: Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG

Transformation de modèles

Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek

La vision Triskell :

Umlaut NG

Page 2: 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)

Page 3: Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG

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

Page 4: Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG

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

Page 5: Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG

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)

Page 6: Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG

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)

Page 7: Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG

7

Positionnement de MTL

Moteur MTL

Dépositaires

TransformationUtilisateur

en OMG-QVTBibliothèque

Framework

TransformationUtilisateuren MTL

Interpreteur/CompilateurOMG-QVT 2 MTL

en MTL

Page 8: Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG

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)

Page 9: Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG

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)

Page 10: Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG

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

Page 11: Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG

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…)

Page 12: Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG

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

Page 13: Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG

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