SlideShare a Scribd company logo
presents SOA made Open
Modeling with Eclipse Mickael Istria @  {{   soft shake  }} 2011 - CC BY 2.0
Some theory
What is a model ? A  model  is a description of  any thing  ( entities, issues, domains...)
You  describe and manipulate  your model with a  meta model or a metalanguage.
What does a metalanguage look like ? Here are some representation of the JBI « Component » class. If we have the model of a Component : A « Component » class is its metamodel
These representation are its meta-meta-model UML Java Ecore XSD
What can you do with your models ? ...To be continued... CRUD ! Store ! Version ! Transform/Convert ! Visualize. Use them to generate stuff.
M odel- D riven... A rchitecture E ngineering D evelopment S oftware  D evelopm t
« As a software developer/architect, I understand the issues. But what about concrete solutions ? Methodologies ? Technologies ? »
72  projects at Eclipse.org « The Eclipse Modeling Project focuses on the evolution and promotion of model-based development technologies within the Eclipse community by providing a unified set of modeling frameworks, tooling, and standards implementations. »
Can generate Java API  for models.
Provides powerful  introspection and code genericity  thanks to its meta-comprehension and its « EObject ».
Provides (de)serialization of your models to files, transactional edition, notification support...
At runtime, your EMF models  do not require Eclipse .
Generates and provides Eclipse-based editors for your models.
Generates and provides GWT-based editors for your models.
EMF Facts EMF can run on : EMF is lightweight EObjectImpl is just  12 bytes bigger than java.lang.Object
Demo 1 : EMF Ecore
Demo 1 : EMF Generated Java API +   EObject  API
EMF can be a piece of solution for various use-cases
Editors EMF provides extensions to create efficiently Eclipse editors for your models with (among others) : Validation
Transactions/Commands
Databinding myObject.eGet(field) / myObject.eSet(field, value) ;
Demo 2 : Editors Generated by EMF Available for
Demo 2 : Editors Home-made  editor
Graphical Editing – Runtime APIs « Classical » MVC « Runtime » MyDomainObject (extends EObject) Draw2d Figure GMF IGraphicalEditPart
Demo 3 : GMF Editor
Graphical Editing - Generators « Tooling » Semantic Model (ecore) GMF Diagram Model GMF codegen Diagram code Mapping
Demo 4 : GMF Tooling
Textual editing - DSL Semantic Model (ecore) Xtext grammar Xtext codegen (MWE) DSL parser DSL text editor (Implicit) Mapping
Demo 5 : XText
All this uses EMF ! Whatever representation you use, you are still using EMF to manipulate your models... Then...
Screencast : synchro GMF-Xtext http://koehnlein.blogspot.com/2009/06/synchronized-editors-with-tmfxtext-and.html

More Related Content

What's hot (10)

PPT
EclipseCon 2006: Introduction to the Eclipse Modeling Framework
Dave Steinberg
 
PPT
Adapter pattern
Shakil Ahmed
 
PPTX
Eclipse Modeling Framework
Ajay K
 
PDF
Object-oriented Modeling with OptimJ
Patrick Viry
 
ODP
What every Eclipse developer should know about EMF - Tutorial at EclipseCon
JonasHelming
 
PPTX
DotNet Conf Madrid 2019 - Whats New in ML.NET
Alberto Diaz Martin
 
PPT
Bridge Design Pattern
sahilrk911
 
PPT
Adapter Design Pattern
melbournepatterns
 
PPT
Representing Design Patterns In Uml Andy Bulka Oct2006
tcab22
 
PPTX
Intro to programing with java-lecture 1
Mohamed Essam
 
EclipseCon 2006: Introduction to the Eclipse Modeling Framework
Dave Steinberg
 
Adapter pattern
Shakil Ahmed
 
Eclipse Modeling Framework
Ajay K
 
Object-oriented Modeling with OptimJ
Patrick Viry
 
What every Eclipse developer should know about EMF - Tutorial at EclipseCon
JonasHelming
 
DotNet Conf Madrid 2019 - Whats New in ML.NET
Alberto Diaz Martin
 
Bridge Design Pattern
sahilrk911
 
Adapter Design Pattern
melbournepatterns
 
Representing Design Patterns In Uml Andy Bulka Oct2006
tcab22
 
Intro to programing with java-lecture 1
Mohamed Essam
 

Similar to Modeling With Eclipse @SoftShake 2011 (20)

PPT
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
Dave Steinberg
 
PPT
Pragmatic Model Driven Development using openArchitectureWare
Michael Vorburger
 
PPT
ALT
frolikat
 
PPTX
Modeling with eclipse
Bonitasoft
 
PDF
Model Driven Development With Emf And Eclipse Link
Suresh Krishna Madhuvarsu
 
PDF
Markus Voelter Textual DSLs
deimos
 
PDF
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
melbats
 
DOCX
MDD and modeling tools research
Roger Xia
 
PPS
EMF - The off beat path
17thcamel
 
ODP
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Mickael Istria
 
PPT
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Dave Steinberg
 
PDF
Acceleo Code Generation
Stéphane Bégaudeau
 
PPT
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
Jordi Cabot
 
PDF
MoDisco Eclipse-OMG Symp 2010
fmadiot
 
PDF
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Hugo Bruneliere
 
PPT
MoDisco Poster EclipseCon 2009
fmadiot
 
PPT
Discover models out of existing applications with Eclipse/MoDisco
fmadiot
 
PDF
What the heck is Eclipse Modeling and why should you care !
Cédric Brun
 
PPTX
Spy On Your Models, Standard talk at EclipseCon 2011
Hugo Bruneliere
 
PDF
EMF Eclipse Modeling Framework 2nd Edition Dave Steinberg
ymriszamek
 
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
Dave Steinberg
 
Pragmatic Model Driven Development using openArchitectureWare
Michael Vorburger
 
Modeling with eclipse
Bonitasoft
 
Model Driven Development With Emf And Eclipse Link
Suresh Krishna Madhuvarsu
 
Markus Voelter Textual DSLs
deimos
 
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
melbats
 
MDD and modeling tools research
Roger Xia
 
EMF - The off beat path
17thcamel
 
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Mickael Istria
 
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Dave Steinberg
 
Acceleo Code Generation
Stéphane Bégaudeau
 
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
Jordi Cabot
 
MoDisco Eclipse-OMG Symp 2010
fmadiot
 
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Hugo Bruneliere
 
MoDisco Poster EclipseCon 2009
fmadiot
 
Discover models out of existing applications with Eclipse/MoDisco
fmadiot
 
What the heck is Eclipse Modeling and why should you care !
Cédric Brun
 
Spy On Your Models, Standard talk at EclipseCon 2011
Hugo Bruneliere
 
EMF Eclipse Modeling Framework 2nd Edition Dave Steinberg
ymriszamek
 
Ad

More from Mickael Istria (16)

ODP
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
Mickael Istria
 
ODP
Parallel builds in Eclipse IDE workspace - EclispeCon Europe 2018
Mickael Istria
 
ODP
IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...
Mickael Istria
 
ODP
Parallel builds in Eclipse IDE workspace
Mickael Istria
 
ODP
[EclipseCon France 2017] Language Server Protocol in action
Mickael Istria
 
ODP
[EclipseCon France 2017] Eclipse Platform Generic Editor
Mickael Istria
 
PDF
EclipseCon Europe 2016, S. Cela, M.Istria: Eclipse Generic and Extensible Edi...
Mickael Istria
 
ODP
Making Eclipse IDE better at handling real-life projects @EclipseCon NA 2015
Mickael Istria
 
ODP
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
Mickael Istria
 
ODP
Contribute to Eclipse projects
Mickael Istria
 
PDF
A journey with Target Platforms
Mickael Istria
 
ODP
Cool stuff in E4 for developers
Mickael Istria
 
PDF
Fight your technical debt with Jenkins, Jacoco and Sonar
Mickael Istria
 
ODP
What's up GMF Tooling?
Mickael Istria
 
ODP
Iterative and-agile-codegen
Mickael Istria
 
ODP
Sur la route de l'agilité @Mix-it Lyon 2011
Mickael Istria
 
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
Mickael Istria
 
Parallel builds in Eclipse IDE workspace - EclispeCon Europe 2018
Mickael Istria
 
IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...
Mickael Istria
 
Parallel builds in Eclipse IDE workspace
Mickael Istria
 
[EclipseCon France 2017] Language Server Protocol in action
Mickael Istria
 
[EclipseCon France 2017] Eclipse Platform Generic Editor
Mickael Istria
 
EclipseCon Europe 2016, S. Cela, M.Istria: Eclipse Generic and Extensible Edi...
Mickael Istria
 
Making Eclipse IDE better at handling real-life projects @EclipseCon NA 2015
Mickael Istria
 
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
Mickael Istria
 
Contribute to Eclipse projects
Mickael Istria
 
A journey with Target Platforms
Mickael Istria
 
Cool stuff in E4 for developers
Mickael Istria
 
Fight your technical debt with Jenkins, Jacoco and Sonar
Mickael Istria
 
What's up GMF Tooling?
Mickael Istria
 
Iterative and-agile-codegen
Mickael Istria
 
Sur la route de l'agilité @Mix-it Lyon 2011
Mickael Istria
 
Ad

Recently uploaded (20)

PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
Digital Circuits, important subject in CS
contactparinay1
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PPTX
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Digital Circuits, important subject in CS
contactparinay1
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 

Modeling With Eclipse @SoftShake 2011

  • 2. Modeling with Eclipse Mickael Istria @ {{ soft shake }} 2011 - CC BY 2.0
  • 4. What is a model ? A model is a description of any thing ( entities, issues, domains...)
  • 5. You describe and manipulate your model with a meta model or a metalanguage.
  • 6. What does a metalanguage look like ? Here are some representation of the JBI « Component » class. If we have the model of a Component : A « Component » class is its metamodel
  • 7. These representation are its meta-meta-model UML Java Ecore XSD
  • 8. What can you do with your models ? ...To be continued... CRUD ! Store ! Version ! Transform/Convert ! Visualize. Use them to generate stuff.
  • 9. M odel- D riven... A rchitecture E ngineering D evelopment S oftware D evelopm t
  • 10. « As a software developer/architect, I understand the issues. But what about concrete solutions ? Methodologies ? Technologies ? »
  • 11. 72 projects at Eclipse.org « The Eclipse Modeling Project focuses on the evolution and promotion of model-based development technologies within the Eclipse community by providing a unified set of modeling frameworks, tooling, and standards implementations. »
  • 12. Can generate Java API for models.
  • 13. Provides powerful introspection and code genericity thanks to its meta-comprehension and its « EObject ».
  • 14. Provides (de)serialization of your models to files, transactional edition, notification support...
  • 15. At runtime, your EMF models do not require Eclipse .
  • 16. Generates and provides Eclipse-based editors for your models.
  • 17. Generates and provides GWT-based editors for your models.
  • 18. EMF Facts EMF can run on : EMF is lightweight EObjectImpl is just 12 bytes bigger than java.lang.Object
  • 19. Demo 1 : EMF Ecore
  • 20. Demo 1 : EMF Generated Java API +  EObject API
  • 21. EMF can be a piece of solution for various use-cases
  • 22. Editors EMF provides extensions to create efficiently Eclipse editors for your models with (among others) : Validation
  • 24. Databinding myObject.eGet(field) / myObject.eSet(field, value) ;
  • 25. Demo 2 : Editors Generated by EMF Available for
  • 26. Demo 2 : Editors Home-made editor
  • 27. Graphical Editing – Runtime APIs « Classical » MVC « Runtime » MyDomainObject (extends EObject) Draw2d Figure GMF IGraphicalEditPart
  • 28. Demo 3 : GMF Editor
  • 29. Graphical Editing - Generators « Tooling » Semantic Model (ecore) GMF Diagram Model GMF codegen Diagram code Mapping
  • 30. Demo 4 : GMF Tooling
  • 31. Textual editing - DSL Semantic Model (ecore) Xtext grammar Xtext codegen (MWE) DSL parser DSL text editor (Implicit) Mapping
  • 33. All this uses EMF ! Whatever representation you use, you are still using EMF to manipulate your models... Then...
  • 34. Screencast : synchro GMF-Xtext http://koehnlein.blogspot.com/2009/06/synchronized-editors-with-tmfxtext-and.html
  • 35. M2T : Model To Text Genereate Doc Generate Code
  • 36. Generate any kind of text Xpand JET A2 A1 Meta A M2T Just apply Blah-blah <%model.name%> Blah-blah A1 Blah-blah A2
  • 38. M2M : Model to Model A2 B2 A1 B1 Meta A Meta B Tools to convert and transform models between different metamodels. QVT, M2M Just apply
  • 39. Demo 6 : ATL Convert
  • 41. Teneo EMF Search EMF Compare XSD ...
  • 42. What to remember ? You already use Model-Driven approaches
  • 43. EMF is a very powerful library to create your (meta)models
  • 44. For all Modeling issues, « There is an Eclipse project for that ».
  • 45.  
  • 46. Credits Produced by : Directed by : Mickael Istria Presented by : Mickael Istria Reviewed and improved by : Ed Merks (content), Mathieu Lebreton (design) Licensed under : CC BY 2.0 Inspired from a presentation of Aurelien Pupier & Mickael Istria @Eclipse DemoCamp Grenoble 2011 (CC BY 2.0) - http://www.slideshare.net/BonitaSoft/modeling-with-eclipse Pics : Student Answering Question (Bernie Noble) See also Twitter : http://twitter.com/mickaelistria Blog : http://mickaelistria.wordpress.com Linkedin : http://fr.linkedin.com/in/mickaelistria

Editor's Notes

  • #2: Hello, Thank you Mickael Istria, Eclipse RCP/Plugin Developer at PetalsLink. 3 years commitment on Eclipse committer on GMF-Tooling User and contributor to lots of Eclipse project(modeling et al)
  • #6: * On choisit son « meta » en fonction du use-case * On est toujours le meta d&apos;un autre * « meta » est un mot relatif a la ou on observe.
  • #7: * Validate, serialize, compare...
  • #13: * Show model * Show ecore_diag * Generate .model * Show generated classes
  • #14: * Show client * Show code * Run -&gt; Does not depend on Eclipse, pure POJO * show generated file
  • #16: * EEF : project dedicated to create model editors efficiently – just in a declarative way.
  • #17: * Eclipse RCP, RAP, GWT * Generate .edit * Generate .editor * Open new Eclipse * Create a project, a file, edit Zoo * Import previous file, show zoo
  • #18: * Open Editor + XML editor * Edit « endpoint », Save, Show XML * Ctrl-Z, Ctrl-Y * Show Eclipse « Demo » task with the databinding line * EEF : a new Eclipse project dedicated to this use case
  • #20: * GMF customization thanks to high level APIs * Best modeling product
  • #21: * Writing a whole editor can be long and difficult * Use generators to generate a first version, and customize after
  • #22: * Show GMFMap * Add Top Node Water/child Fish * Show GMFGraph -&gt; Figures desc * Show GMFTool -&gt; Palette desc * Generate GMFGen (add org.eclipse.gmf.runtime.lite.svg) * Generate Code * Show
  • #23: * Generates a (de)serializer for your DSL * Can be embedded in any Java App where EMF runs * Think about a language grammar : Model is AST, Xtext offers parsing, only execution need to be implemented
  • #24: 5min30. * File &gt; New &gt; Xtext Project from Ecore Model -&gt; org.eclipse.modeling.demo.zoo.dsl -&gt; org.eclipse.modeling.demo.zoo.ZooDSL -&gt; zoodsl * Show default grammar ~ Json * Replace with my Grammar -&gt; Show mapping : implicit based on name and {...} * generate editor for « zoodsl » : May ask for ANTLR * Create file « myzoo.zoodsl » - Show completion, validation * Think about a java grammar
  • #26: * Diagram already exists * Synchronization on « save » * Still work in progress * UML dream become true. * Think about Java grammar + UML class diagram
  • #27: * Use case : generate web page * « One-way » Xtext * Batch * 2 different styles : Template ( ~jsp/php ) ; Rules
  • #28: * Go to plugins view * Import as source « org.eclipse.gmf.codegen » * Show Editor.xpt -&gt; Show how easy it is to navigate in EMF objects with « :: » Xpand is not the best ! Acceleo is better but I don&apos;t know it enough to demo it ; and you understood the point;)
  • #29: * Use cases : -&gt; Assuse Meta1 is zoo, and Meta2 is XHTML =&gt; generate XHTML page -&gt; Assume Meta1 is Zoo from Berlin and Meta2 represents Zoo from Lyon. A european law says « everyone must work like Lyon&apos; s zoo ». Then just transform/convert
  • #30: * Show metamodel * Highlight difference -&gt; Containement is not the same -&gt; Class name are different -&gt; No more name -&gt; Containement of plots using a specific type * Show transfo : Rules -&gt; For each element, apply a rule * Execute transfo, show results * Say that this transfo applies on models, not on files ! Then you can transform Xtext-based models as well.
  • #31: * Only a few use-cases were presented
  • #32: * CDO-Dawn -&gt; Collaborative * Teneo -&gt; JPA, Hibernate pour les modeles (Eobject)