Your SlideShare is downloading. ×
2010 06 22   omg - obeo
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

2010 06 22 omg - obeo

2,051

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,051
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
13
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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

×