SlideShare una empresa de Scribd logo
1 de 43
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
© 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 …
© 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
© 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
© 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
© 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
© 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
© 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?
© 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
© 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 !
© 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 »
© 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
© 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
© 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)
© 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?
© 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
© 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
© 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
© 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
© 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)]
© 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
© 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()]
© 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)]
© 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"]
© 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 ....
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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, ...)
© 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!
© 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
© 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
© 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
© 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)
© 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

Más contenido relacionado

Similar a 2010 06 22 omg - obeo

javagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformjavagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformTonny Madsen
 
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application PlatformEclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application PlatformTonny Madsen
 
Eclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented ModelingEclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented ModelingMarc Dutoo
 
Put the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight SessionPut the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight SessionObeo
 
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the FutureEclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the FutureTonny Madsen
 
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling SocietyEclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Societymelbats
 
Together in Eclipse
Together in EclipseTogether in Eclipse
Together in EclipseTomasz Zarna
 
BPEL & OSGi at EclipseCon 2010
BPEL & OSGi at EclipseCon 2010BPEL & OSGi at EclipseCon 2010
BPEL & OSGi at EclipseCon 2010SpagoWorld
 
Bpel And OSGi
Bpel And OSGi Bpel And OSGi
Bpel And OSGi zoppello
 
Bpel And Osgi
Bpel And OsgiBpel And Osgi
Bpel And Osgizoppello
 
Bpel And OSGi
Bpel And OSGi Bpel And OSGi
Bpel And OSGi zoppello
 
OSGi Versioning And Testing
OSGi Versioning And TestingOSGi Versioning And Testing
OSGi Versioning And Testingpvanderlei
 
Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.Alexandro Colorado
 
OSGi Versioning & Testing
OSGi Versioning & TestingOSGi Versioning & Testing
OSGi Versioning & TestingChris Aniszczyk
 
Team Work With Models Web
Team Work With Models WebTeam Work With Models Web
Team Work With Models WebCédric Brun
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview Lars Vogel
 

Similar a 2010 06 22 omg - obeo (20)

javagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformjavagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platform
 
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application PlatformEclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
 
Eclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented ModelingEclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented Modeling
 
Put the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight SessionPut the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight Session
 
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the FutureEclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
Eclipse Demo Camp 2010 - Eclipse e4 – The Status and the Future
 
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling SocietyEclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
 
Compare framework
Compare frameworkCompare framework
Compare framework
 
Together in Eclipse
Together in EclipseTogether in Eclipse
Together in Eclipse
 
BPEL & OSGi at EclipseCon 2010
BPEL & OSGi at EclipseCon 2010BPEL & OSGi at EclipseCon 2010
BPEL & OSGi at EclipseCon 2010
 
Bpel And OSGi
Bpel And OSGi Bpel And OSGi
Bpel And OSGi
 
Bpel And Osgi
Bpel And OsgiBpel And Osgi
Bpel And Osgi
 
Bpel And OSGi
Bpel And OSGi Bpel And OSGi
Bpel And OSGi
 
Eclipse Way
Eclipse WayEclipse Way
Eclipse Way
 
Eclipse
EclipseEclipse
Eclipse
 
OSGi Versioning And Testing
OSGi Versioning And TestingOSGi Versioning And Testing
OSGi Versioning And Testing
 
Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.
 
OSGi Versioning & Testing
OSGi Versioning & TestingOSGi Versioning & Testing
OSGi Versioning & Testing
 
Team Work With Models Web
Team Work With Models WebTeam Work With Models Web
Team Work With Models Web
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
 
QVT & MTL In Eclipse
QVT & MTL In EclipseQVT & MTL In Eclipse
QVT & MTL In Eclipse
 

Más de Etienne Juliot

Arcadia and Capella: Model-Based Systems Engineering made easier! euroforum -...
Arcadia and Capella: Model-Based Systems Engineering made easier! euroforum -...Arcadia and Capella: Model-Based Systems Engineering made easier! euroforum -...
Arcadia and Capella: Model-Based Systems Engineering made easier! euroforum -...Etienne Juliot
 
Live collaboration on graphical models sirius integrated with cdo
Live collaboration on graphical models sirius integrated with cdoLive collaboration on graphical models sirius integrated with cdo
Live collaboration on graphical models sirius integrated with cdoEtienne Juliot
 
Acceleo presentation - EclipseCon 2017
Acceleo presentation - EclipseCon 2017Acceleo presentation - EclipseCon 2017
Acceleo presentation - EclipseCon 2017Etienne Juliot
 
Graphical DSL with Sirius: how to simplify the creation of custom modeling tools
Graphical DSL with Sirius: how to simplify the creation of custom modeling toolsGraphical DSL with Sirius: how to simplify the creation of custom modeling tools
Graphical DSL with Sirius: how to simplify the creation of custom modeling toolsEtienne Juliot
 
Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Etienne Juliot
 
Web2Day - DIY: Développer sa startup sans investisseurs
Web2Day - DIY: Développer sa startup sans investisseursWeb2Day - DIY: Développer sa startup sans investisseurs
Web2Day - DIY: Développer sa startup sans investisseursEtienne Juliot
 
Petits Déjeuner Atlanpole : Développer sa startup sans investisseurs.
Petits Déjeuner Atlanpole : Développer sa startup sans investisseurs.Petits Déjeuner Atlanpole : Développer sa startup sans investisseurs.
Petits Déjeuner Atlanpole : Développer sa startup sans investisseurs.Etienne Juliot
 
Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Etienne Juliot
 
SiriusCon 2015 - closing session
SiriusCon 2015 - closing sessionSiriusCon 2015 - closing session
SiriusCon 2015 - closing sessionEtienne Juliot
 
Eclipse Finance Day: Sirius for Finance
Eclipse Finance Day: Sirius for FinanceEclipse Finance Day: Sirius for Finance
Eclipse Finance Day: Sirius for FinanceEtienne Juliot
 
Model-Driven Software Development 2.0
Model-Driven Software Development 2.0Model-Driven Software Development 2.0
Model-Driven Software Development 2.0Etienne Juliot
 
Obeo Designer - Principes Généraux
Obeo Designer - Principes GénérauxObeo Designer - Principes Généraux
Obeo Designer - Principes GénérauxEtienne Juliot
 
Introduction sur l'Open Source
Introduction sur l'Open SourceIntroduction sur l'Open Source
Introduction sur l'Open SourceEtienne Juliot
 

Más de Etienne Juliot (15)

Arcadia and Capella: Model-Based Systems Engineering made easier! euroforum -...
Arcadia and Capella: Model-Based Systems Engineering made easier! euroforum -...Arcadia and Capella: Model-Based Systems Engineering made easier! euroforum -...
Arcadia and Capella: Model-Based Systems Engineering made easier! euroforum -...
 
Live collaboration on graphical models sirius integrated with cdo
Live collaboration on graphical models sirius integrated with cdoLive collaboration on graphical models sirius integrated with cdo
Live collaboration on graphical models sirius integrated with cdo
 
Acceleo presentation - EclipseCon 2017
Acceleo presentation - EclipseCon 2017Acceleo presentation - EclipseCon 2017
Acceleo presentation - EclipseCon 2017
 
Graphical DSL with Sirius: how to simplify the creation of custom modeling tools
Graphical DSL with Sirius: how to simplify the creation of custom modeling toolsGraphical DSL with Sirius: how to simplify the creation of custom modeling tools
Graphical DSL with Sirius: how to simplify the creation of custom modeling tools
 
Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...
 
Web2Day - DIY: Développer sa startup sans investisseurs
Web2Day - DIY: Développer sa startup sans investisseursWeb2Day - DIY: Développer sa startup sans investisseurs
Web2Day - DIY: Développer sa startup sans investisseurs
 
Petits Déjeuner Atlanpole : Développer sa startup sans investisseurs.
Petits Déjeuner Atlanpole : Développer sa startup sans investisseurs.Petits Déjeuner Atlanpole : Développer sa startup sans investisseurs.
Petits Déjeuner Atlanpole : Développer sa startup sans investisseurs.
 
Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...
 
SiriusCon 2015 - closing session
SiriusCon 2015 - closing sessionSiriusCon 2015 - closing session
SiriusCon 2015 - closing session
 
Eclipse Finance Day: Sirius for Finance
Eclipse Finance Day: Sirius for FinanceEclipse Finance Day: Sirius for Finance
Eclipse Finance Day: Sirius for Finance
 
Model-Driven Software Development 2.0
Model-Driven Software Development 2.0Model-Driven Software Development 2.0
Model-Driven Software Development 2.0
 
Obeo Designer - Principes Généraux
Obeo Designer - Principes GénérauxObeo Designer - Principes Généraux
Obeo Designer - Principes Généraux
 
DSL et Points de vue
DSL et Points de vueDSL et Points de vue
DSL et Points de vue
 
Introduction sur l'Open Source
Introduction sur l'Open SourceIntroduction sur l'Open Source
Introduction sur l'Open Source
 
GMF showcase
GMF showcaseGMF showcase
GMF showcase
 

2010 06 22 omg - obeo

  • 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