OMG model transformation standard in Eclipse

        2 similar experiences : QVT-R and MTL ...

                         ...
Obeo
        8 Eclipse commiters

        Eclipse Modeling Project
              M2M
                 Declarative QVT
...
OMG

            OMG adopts standard
        

                    To facilitate portability, interoperability and reusab...
OMG

            Two complementary approaches for automation
        

                    Model To Model
               ...
Working with model transformations in Eclipse ?




© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, ...
M2M : Transform models to models

             ATL - Atlas Transformation Language
             QVTOM - Procedural QVT (...
M2T : Generate text from models

             3 languages
                  JET : JSP-like template files
               ...
M2M : Focus on QVT Relations


             Work started in August 2007

             History and roadmap
              ...
M2M : Focus on QVT Relations

          Architecture « An abstract and a concrete syntax »
               Driven by the w...
M2T : Focus on MTL

             Work started in January 2008

             History and roadmap
                  Relaun...
M2T : Focus on MTL

             Architecture « An abstract and a concrete syntax »
                  Driven by the will ...
A standard in Eclipse – What does it mean?

             Reusing frameworks : EMF, M2T Backend...

             Interope...
A standard in Eclipse – What does it mean?

              What can we do when an Eclipse concept is better?
             ...
Not easy to ensure interoperability with other standard tools (1)




© Copyright 2008 Obeo.; made available under the EPL...
An ambiguity in the specification – What can I do?

          OMG Help
               All specifications are subject to c...
What kind of ambiguities?




© Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
Ambiguities - QVT Relations
          The “delete” semantic



               A domain hasn't DIRECTION
               OD...
Ambiguities - QVT Relations
          The “enforce” semantic
         What is the difference between “domain_pattern” and...
Ambiguities - QVT Relations
          The QVT Base Package
             Redundancy – TemplateExpression (referredClass ==...
Ambiguities - MTL

          Naming conventions
               The plural mustn't end with 's'




© Copyright 2008 Obeo....
Ambiguities - MTL

          ProtectedArea (interoperability issue)
               The delimiters of the protected area a...
Ambiguities - MTL

          The given meta-model isn't valid




© Copyright 2008 Obeo.; made available under the EPL v1...
Ambiguities – QVT and MTL

          String libraries are different
               QVT : toFirstUpper
               MTL ...
Not easy to ensure interoperability with other standard tools (2)




© Copyright 2008 Obeo.; made available under the EPL...
Conclusion

        Abstract syntax – priority is Eclipse (execution)
        Concrete syntax – priority is the specific...
Thanks for your attention, any question ?




 Further information :
     http://www.omg.org/
     http://www.eclipse.o...
Upcoming SlideShare
Loading in …5
×

QVT & MTL In Eclipse

3,970 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,970
On SlideShare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
89
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

QVT & MTL In Eclipse

  1. 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. 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. 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. 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. 5. Working with model transformations in Eclipse ? © Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
  6. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 16. What kind of ambiguities? © Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
  17. 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. 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. 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. 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. 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. 22. Ambiguities - MTL  The given meta-model isn't valid © Copyright 2008 Obeo.; made available under the EPL v1.0 | March 20, 2008
  23. 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. 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. 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. 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

×