Contenu connexe
Similaire à QVT & MTL In Eclipse
Similaire à QVT & MTL In Eclipse (20)
QVT & MTL In Eclipse
- 1. OMG model transformation standard in Eclipse
2 similar experiences : QVT-R and MTL ...
Jonathan Musset jonathan.musset@obeo.fr
quentin.glineur@obeo.fr
Obeo
France
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 2. Obeo
8 Eclipse commiters
Eclipse Modeling Project
M2M
Declarative QVT
ATL industrialization
M2T : MTL
EMF : EMF Compare
Eclipse STP – SCA
OW2 Consortium - Acceleo
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 3. OMG
OMG adopts standard
To facilitate portability, interoperability and reusability
Needs for software development
System complexity, Business ability, Projects duration
Solution : MDA approach
High level design models at the heart of the development process
Software development automation
Benefits : Productivity, agility, reliability
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 4. OMG
Two complementary approaches for automation
Model To Model
QVT addresses the needs of model – to – model transformation
PIM – to – PIM, PIM – to – PSM, PSM – to – PSM...
MOF Model To Text
MTL : How to translate a model to various text artifacts?
PSM – to – code, PSM – to – report...
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 5. Working with model transformations in Eclipse ?
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 6. M2M : Transform models to models
ATL - Atlas Transformation Language
QVTOM - Procedural QVT (Operational Mappings)
QVTR - Declarative QVT (Core and Relations)
Java/EMF?
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 7. M2T : Generate text from models
3 languages
JET : JSP-like template files
MTL : OMG Standard
Xpand : OAW Language
1 framework
M2T Core
With a Backend, Like a VM
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 8. M2M : Focus on QVT Relations
Work started in August 2007
History and roadmap
Common proposal Obeo-Lina in July 2007
Initial implementation : QVT-R compiler targeting ATL-VM
First release in February 2008 - Run a QVT-R transformation (check and enforce)
Next steps :
Design and edit within the Eclipse IDE
QVT-Core targeting ATL-VM
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 9. M2M : Focus on QVT Relations
Architecture « An abstract and a concrete syntax »
Driven by the will to reuse some existing Eclipse components
Generation of the ATL Virtual Machine byte code
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 10. M2T : Focus on MTL
Work started in January 2008
History and roadmap
Relaunch proposal in December 2007
First stable version in June 2008
Standalone engine and parser
Abstract syntax compliance – model form
Concrete syntax compliance – concrete syntax form (Text explicit only)
First release in June 2009
Eclipse IDE components : editors, builders...
Core feature compliance : Template, Query, and Module.
First step for the Advanced feature compliance
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 11. M2T : Focus on MTL
Architecture « An abstract and a concrete syntax »
Driven by the will to reuse some existing Eclipse components : EMF, M2T, OCL
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 12. A standard in Eclipse – What does it mean?
Reusing frameworks : EMF, M2T Backend...
Interoperability with strategic languages
QVT - ATL
MTL - JET - Xpand
Ecore vs MOF
QVT Relations abstract syntax is defined as an extension of MOF
MTL abstract syntax is also defined as an extension of MOF
In Eclipse, We have to use Ecore and EMF...
EMF URI to identify a metamodel – An interoperability issue
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 13. A standard in Eclipse – What does it mean?
What can we do when an Eclipse concept is better?
A transformation module is an eclipse plugin... What else?
The MANIFEST.MF file should be used to declare dependencies between modules
EMF URI problems : “plugin” or “workspace”?
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 14. Not easy to ensure interoperability with other standard tools (1)
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 15. An ambiguity in the specification – What can I do?
OMG Help
All specifications are subject to continuous review and improvement
The OMG encourages readers to report any ambiguities
But, not easy to make changes in the specification (a lot of authors)
We need a human understanding to solve ambiguities
MTL experience
We haven't 200 pages
2 authors of the specifications are in the team
Arjan Kok
Wim Bast
A solution? The best way to solve ambiguities
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 16. What kind of ambiguities?
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 17. Ambiguities - QVT Relations
The “delete” semantic
A domain hasn't DIRECTION
OD.DIRECTION => OD.TYPED_MODEL?
Naming issues
quot;ISCHECKEDquot; in the semantic and quot;isCkeckablequot; in the meta-model
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 18. Ambiguities - QVT Relations
The “enforce” semantic
What is the difference between “domain_pattern” and “domain_condition”?
Semantic : Is “domain_pattern” a boolean?
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 19. Ambiguities - QVT Relations
The QVT Base Package
Redundancy – TemplateExpression (referredClass == bindsTo.type)
➔ TemplateExpression's bind to a Variable (typed element)
➔ ObjectTemplateExpression's subtype
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 20. Ambiguities - MTL
Naming conventions
The plural mustn't end with 's'
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 21. Ambiguities - MTL
ProtectedArea (interoperability issue)
The delimiters of the protected area are not defined is the standard
It should define how to specify the target delimiter in the generated code
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 22. Ambiguities - MTL
The given meta-model isn't valid
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 23. Ambiguities – QVT and MTL
String libraries are different
QVT : toFirstUpper
MTL : toUpperFirst
Link resolution : MTL example - TemplateInvocation
Meta-model : The “definition” reference to the invoked template must be set and a
template can be in another plugin.
Real life : The compiler can't choose the template to invoke
Solution : string, template registry, classloader...
QVT and MTL interoperability
Is it possible to call a MTL template in a QVT transformation?
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 24. Not easy to ensure interoperability with other standard tools (2)
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 25. Conclusion
Abstract syntax – priority is Eclipse (execution)
Concrete syntax – priority is the specification (reusability)
OMG - QVT and MTL interoperability?
Eclipse - M2T and M2M interoperability?
OMG Specifications and Eclipse Projects interoperability ;-)
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
- 26. Thanks for your attention, any question ?
Further information :
http://www.omg.org/
http://www.eclipse.org/m2m
http://www.eclipse.org/m2t
http://www.obeo.fr
© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008