1
Eclipse / OMG
Symposium
2010/06/22 - Minneapolis, USA
Etienne JULIOT
etienne.juliot@obeo.fr
Acceleo:
implementation of M...
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
© Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009
Migrating an OSS Project to Eclip
From Acceleo....
Upcoming SlideShare
Loading in …5
×

2010 06 22 omg - obeo

2,516 views

Published on


The Acceleo project is an OpenSource project created in 2006 aimed at providing an easy-to-use tooling for code generation through the MDA approach. Acceleo 2.x is already a community driven project with a public repository, a website, ... It has become a real success with a vibrant community which shared generative modules for JavaEE, .Net, PHP, C and lots of professional success stories.

As time passed, the Acceleo team was surprised and happy to see the OMG tackling the standardization of an M2T syntax with the MOF Model to Text Language specification. Surprised because of its similarity with the existing Acceleo syntax and happy because it resolves several issues and provides a standard way to describe templates.
Thus, commiters decided to rewrite Acceleo from scratch as an official Eclipse Foundation project, changing the syntax to the standard while keeping the exemplary tooling and pragmatism of Acceleo.org.

With Acceleo 3.0 included in Eclipse 3.6, our new goal is to provide the de facto or reference implementation of the standard; yet some parts of the specification are still quite vague and ambiguous and collaboration with OMG isn't smooth ...
Acceleo could put forward a think tank discussion about both the specification and the implementation; then gather overall thoughts on how to provide a long term and successful communication channel between the Acceleo project and the OMG representatives.

In complement of Acceleo, the Obeo commiters works on several Eclipse projects related to OMG standards :
- ATL: Obeo is co-lead with the AtlanMod Research lab on this famous QVT-like transformation engine
- EMF Compare: Obeo create this extensible diff/compare/patch engine for EMF compliant models, with several metamodels which could become inputs for a future standard
- GMF and Obeo Designer: after several years of contributions in GMF, Obeo creates a "viewpoint oriented" tool to simplify creation of custom Domain Specific Modelers on DSL or standard models. Several interoperability issues exist due to lake of OMG specifications: no activity on a Diagram Description specification to standardise the description of a graphical environment, and no real separation in OMG specifications between the description of the graphical diagrams and the mapping to the semantic (for example, the graphical aspect of a Componant Diagram could be standardised and mapped to UML, SOAML, CCM, and others).

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,516
On SlideShare
0
From Embeds
0
Number of Embeds
960
Actions
Shares
0
Downloads
14
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

2010 06 22 omg - obeo

  1. 1. 1 Eclipse / OMG Symposium 2010/06/22 - Minneapolis, USA Etienne JULIOT etienne.juliot@obeo.fr Acceleo: implementation of Mof-to-Text Language When a de facto standard could become a reference implementation
  2. 2. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli  Eclipse Strategic Member  12 commiters on Eclipse Modeling Project (most of them related to OMG spec):  M2T : Acceleo  M2M : ATL  EMF : EMF Build, EMF Compare, EEF  GMF  OCL  Amalgamation …
  3. 3. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Our job:  Domain Specific Modeling  Viewpoint approach Migration Reverse engineering  Training and Expertise  Taylor made
  4. 4. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Summary  From Acceleo.org to Eclipse Acceleo  Acceleo and MTL standard  Others contribs in the OMG scope
  5. 5. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Once upon a time
  6. 6. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli  Built on Eclipse: State of art of tooling  Pragmatism: Create a dedicated tool and keep using the others  Magic inside: Easy to start with Acceleo original spirit
  7. 7. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli  Events, Conferences, Press , University  Lively forum and mailling lists, roadmap, history, team page  Planet Acceleo  Acceleo Modules Repository  JavaEE (Struts, Hibernate ..)  C# (Nhibernate)  Python, Zope, PHP  C  Java  Ecosystem : Capgemini, Makina Corpus, Lyria, Proxiad …  +10 000 downloads / month Building the community
  8. 8. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli What's next?
  9. 9. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli In the meantime  OMG released the MOF Model To Text Language Specification  The Acceleo core team is convinced it's the way to go
  10. 10. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Why Eclipse Foundation?  Visibility  Easier integration with other projects  OMG's reference implementations are in Eclipse  Obeo's involvement in Eclipse Modeling  We loved the « Best Open Source Eclipse-Based Developer Tool » award !
  11. 11. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli The challenge  Keeping the spirit while moving to the OMG standard  Keeping the project's user base  Playing well : « The Eclipse Way »
  12. 12. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Acceleo's new implementation aka : Eclipse Acceleo 3.0  Starting from scratch  State of the Art ++ Tooling  Usable everywhere: JAR, OSGi, Eclipse RCP or IDE
  13. 13. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Main Features  Editors  Advanced completion  validation, quick fixes, show references, open declaration...  Views to manage overrides , patterns  Eclipse Integration  Debugger, Profiler  Module UI: create automatically a Popup Action to Generate  Init wizards from examples (bottom-up approach)  Architecture  Java API, generator pluginization  Standalone core
  14. 14. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Acceleo Syntax – Model to Text Language (MTL)
  15. 15. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Which strategy for a « standard AND pragmatic » implementation?
  16. 16. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli OMG Specification Helios : complete support excepted Macros and code explicit syntax  Compliance Level  Standard evolution at the OMG  Interactions with the OMG are slooooooow  STD versus Non-STD library for blocker features:  Text indent, encoding management  Syntax enhancement to simplify user's life  Services to reuse EMF and Java features
  17. 17. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Collaboration plan STD v1.0 NONSTD STD v1.1 NONSTD
  18. 18. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli We want to be explicit for end users
  19. 19. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Few words on OCL  OCL is a Constraint Language, not a Request Language  A template based syntax MUST BE short and easily readable  « Normal users » don't like to write "collect, select, reject, oclAsType" everywhere  OCL contains a lot of features that are of no use whatsoever for code generation; namely everything that's "constraint specific"  But, with several enhancement, it's fine  Our strategy:  Using an extensible approach for the model request language  Re-use Eclipse OCL Plug-in to insure interoperability, and extend it
  20. 20. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli MTL/OCL enhancements  Filter:  Acceleo 2: <%sequence["Type"]%>  Pur OCL: [sequence->select(oclIsKindOf(Type)).oclAsType(Type)/]  Acceleo 3: [sequence->filter(Type)]
  21. 21. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli MTL/OCL enhancements  Model browsing:  Acceleo 2: <%for (ownedElement["ControlFlow"].nSort("name")%>  Pur OCL: [for (cf:ControlFlow |c.ownedElement->select(a|a.oclIsKindOf(ControlFlow))->sortedBy(e: Element | e.oclAsType(ControlFlow).name))]  Acceleo 3: implicit iterator [for (c.ownedElement->select(oclIsKindOf(ControlFlow))- >sortedBy(oclAsType(ControlFlow).name))]  Acceleo 3: inference [for (c.ownedElement->filter(ControlFlow)->sortedBy(name))] - Package |-- Activity |-- ControlFlow1 |-- ControlFlow2 |-- ControlFlow3
  22. 22. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli MTL/OCL enhancements  Xpath like services:  Acceleo 2: <%x.followingSibling%>  Pur OCL: [x.eContainer().eContents()->subSequence(x.eContainer().eContents()- >indexOf(self), x.eContainer().eContents()->size())->excluding(self)/]  Acceleo 3: [x.followingSiblings()]
  23. 23. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli MTL/OCL enhancements  Operators on Collections:  Acceleo 2: <%list1 – list2%> <%list1 + list2%> <%list1 || list2%> <%list1 && list2%>  Pur OCL: complex combinaisons of « set / orderedset / union / symmetricDifference »  Acceleo 3: [list1->asSet() - list2->asSet()/] [list.addAll(list)] [list.removeAll(list)]
  24. 24. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli MTL/OCL enhancements  String:  Acceleo 2: <%"ab" + "cd" + "ef"%>  Pur OCL: ["ab".concat("bc").concat("ef")]  Acceleo 3: ["ab" + "cd" + "ef"]
  25. 25. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli But code generation without tooling is like word processing with notepad ....
  26. 26. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Completion
  27. 27. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli  Protected Areas (STD)  JMerge (Non-OMG STD but Eclipse STD) User Code
  28. 28. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli  Dynamic contributions / Template Aspects Advanced Eclipse Features
  29. 29. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Quickfix
  30. 30. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Refactoring
  31. 31. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Rapid text replacement
  32. 32. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Generation Pattern
  33. 33. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Debugger
  34. 34. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Profiler
  35. 35. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli  M2M and M2T interoperability (with ATL and QVT-O) Advanced Eclipse Features  Java extensions
  36. 36. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Problems with OMG  5 bugs signaled (http://www.omg.org/issues/mtt-rtf.open.html)  No ACK  No answer  Ask to list Acceleo as an MTL implementation on the OMG website: still waiting after 1 year  No contact point and no status publicly available  We would like to contribute, but it's not easy …  But: spec is good, users are happy, syntax is powerful and still simple, and we have now interoperability through engines
  37. 37. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Acceleo 3 community  Lead : Jonathan Musset, OBEO  Committers  Wim Bast  Cedric Brun, OBEO  Laurent Goubet, OBEO  Arjan Kok  Yvan Lussaud, OBEO  Users (some)  Integrators (Atos Origin, CS, Proxiad, Capgemini, ...)  Industrial (Pole Emploi, Thales, …)  Editors and Individuals  Others projects (EEF, TopCased, ...)
  38. 38. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli But Acceleo isn't alone!
  39. 39. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli ATL module Families2Persons; create OUT : Persons from IN : Families; -- helpers declaration { -- ... -- } helpers declaration rule Member2Male { from s : Families!Member (not s.isFemale()) to t : Persons!Male ( fullName <- s.firstName + ' ' + s.familyName ) } rule Member2Female { from s : Families!Member (s.isFemale()) to t : Persons!Female ( fullName <- s.firstName + ' ' + s.familyName ) }  Model transformation engine  Inside Eclipse M2M project  Declarative and Imperative approach  Based on OCL and close to QVT  Editor, Debugger, Profiler, Refactoring, ...  QVTo or QVTd  ATLvm
  40. 40. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Traceability  With M2T and M2M  No intrusion in input or output  Nothing to configure in rules or templates  Desynchronisation detection (precision: character or element)  Traceability across transformations chains  Engine in OpenSource projects
  41. 41. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli EMF Compare  Differency detection  2 ways and 3 ways mode  Merge  Extensible engine  XMI and XML support  Intermediate metamodel for Match, Diff and Patches
  42. 42. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli GMF  Domain Specific Modeling  3 implementations  API engine (GMF Runtime)  Generative engine (GMT Tool)  Interpretive engine (Obeo Designer)  New approach: Viewpoint  Lack of separation between graphical diagrams and semantic (ex: sequence diagram on non-UML models)  Lack of standardisation of viewpoint (Notation)
  43. 43. © Copyright 2009 Obeo made available under the EPL v1.0 | 27 October, 2009 Migrating an OSS Project to Eclip From Acceleo.org to Eclipse Modeli Thank you  http://www.eclipse.org/acceleo  http://www.obeo.fr

×