SlideShare a Scribd company logo
1 of 31
Download to read offline
Tools and Methodologies for GMF


                             Aurélien Pupier
             R&D Engineer, Studio Project Leader
                      GMF-Runtime Committer
                                      @apupier
                 EclipseDay Delft , September 27, 2012
Agenda

Show me a GMF editor
GMF Big Picture
Methodologies
Tooling




   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        2
GMF BIG PICTURE


   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        3
GMF




9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                     4
GMF Basic Workflow
 Semantic                                                Diagram
Model (ecore)                                             Model

                             Mapping



                       GMF codegen



                                         Code generation



                       Diagram code



9/29/2012       www.bonitasoft.com | © BonitaSoft S.A.
                                                                   5
What happens after the first
          generation?

Requirements update
Introduce specific behavior
I’m not able to do a one shot!




    9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                         6
METHODOLOGIES


   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        7
Update the model!
Straightforward
Best maintainability
Easiest solution




    9/29/2012     www.bonitasoft.com | © BonitaSoft S.A.
                                                           8
GMF Extension points
24
Classical Eclipse way




    9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                         9
Extension points – Typical pattern
GENERATED Diagram PLUG-IN

             XXXEditPartProvider                     Reference   XXXEditPart


                                   extends                                extends


Custom Diagram PLUG-IN


CustomXXXEditPartProvider                    Reference       CustomXXXEditPart



       9/29/2012    www.bonitasoft.com | © BonitaSoft S.A.
                                                                          10
Generation templates
When?
  Apply to a whole kind of elements
  Ultimately
Useful for:
  Regeneration
  New element introduced




    9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                         11
Generation aspect templates

Reduce amount of code to maintain
Avoid code duplication
Down grain from class to method




    9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                         12
Generation aspect templates




                            .xpt




 9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                      13
Another tip to reduce size of
custom generation templates?




  9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                       14
Utility plugin – why?




9/29/2012      www.bonitasoft.com | © BonitaSoft S.A.
                                                        15
Utility plugin – how?




9/29/2012      www.bonitasoft.com | © BonitaSoft S.A.
                                                        16
Modify Generated code

            @Generated NOT


               Sandbox


9/29/2012     www.bonitasoft.com | © BonitaSoft S.A.
                                                       17
Projects Structure (1/2)




9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                     18
Projects Structure (2/2)

                     Generation Templates




                                 Semantic Model




                                    Diagram Model



9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                     19
GMF Workflow
 Semantic                                                Diagram       Model
Model (ecore)                                             Model
                           Model
                        Mapping


                                                      Utility plugin
                      GMF codegen



                                  Code generation                   Aspect Template


                      Diagram code


                                         Extension points
          9/29/2012        www.bonitasoft.com | © BonitaSoft S.A.
                                                                                  20
TOOLING
GMF-Tooling
Official tooling of GMF
● Several editors
● Wizards
● GMF Dashboard




   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        22
SWTBot4GEF
Automated UI tests
Simple API:
  click
  drag
  select
  activateTool




   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        23
Code generation Ant Task
Generate code at build time
Avoid reconcilier issues
Avoid modification of your sandbox commited




   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        24
OCL Editor and Interpreter
Write and Test constraints




   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        25
Simple Mapping Editor (1/2)




 9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                      26
Simple Mapping Editor (2/2)
All-in-one editor
Keep separation of concerns available
Eating your own dog food




   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        27
EDapt
Big underlying model modifications
PoC for BOS 6.0




   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        28
Keep in mind

Great tooling ecosystem
Proven methodologies for continuous
improvement




   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        29
To go further
Eclipse GMF Forum:
http://www.eclipse.org/forums/index.php/f/16/
Eclipse GMF Wiki:
http://wiki.eclipse.org/GMF
Talk together 




    9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                         30
aurelien.pupier@bonitasoft.com
Twitter: @apupier
Eclipse blog: www.bonitasoft.org/blog/category/eclipse
Talk to me about Bonita, BPMN2, Eclipse Modeling and more



Company: www.bonitasoft.com
Community: www.bonitasoft.org
Twitter: @bonitasoft

More Related Content

Similar to Tools and Methodologies to leverage GMF power (EclipseDay Delft 2012)

Collaboro - EclipseCon Europe 2012, Modeling Symposium
Collaboro - EclipseCon Europe 2012, Modeling SymposiumCollaboro - EclipseCon Europe 2012, Modeling Symposium
Collaboro - EclipseCon Europe 2012, Modeling Symposium
Hugo Bruneliere
 
SAP Mobile Business Intelligence
SAP Mobile Business IntelligenceSAP Mobile Business Intelligence
SAP Mobile Business Intelligence
tasmc
 

Similar to Tools and Methodologies to leverage GMF power (EclipseDay Delft 2012) (20)

20081027 Smart Use Cases Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027 Smart Use Cases Hogeschool Arnhem Nijmegen
 
The Power of Simple: Whats New in BMC Control-M 8
The Power of Simple: Whats New in BMC Control-M 8The Power of Simple: Whats New in BMC Control-M 8
The Power of Simple: Whats New in BMC Control-M 8
 
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
 
Collaboro - EclipseCon Europe 2012, Modeling Symposium
Collaboro - EclipseCon Europe 2012, Modeling SymposiumCollaboro - EclipseCon Europe 2012, Modeling Symposium
Collaboro - EclipseCon Europe 2012, Modeling Symposium
 
Big Ball of Mud: Software Maintenance Nightmares
Big Ball of Mud: Software Maintenance NightmaresBig Ball of Mud: Software Maintenance Nightmares
Big Ball of Mud: Software Maintenance Nightmares
 
KNIME in Life Science, Cheminformatics and Computational Chemistry
KNIME in Life Science, Cheminformatics and Computational ChemistryKNIME in Life Science, Cheminformatics and Computational Chemistry
KNIME in Life Science, Cheminformatics and Computational Chemistry
 
Userforum Process Visualization
Userforum Process VisualizationUserforum Process Visualization
Userforum Process Visualization
 
Benefits of Knowledge Graphs and AI For Enterprise PLM Platforms
Benefits of Knowledge Graphs and AI For Enterprise PLM PlatformsBenefits of Knowledge Graphs and AI For Enterprise PLM Platforms
Benefits of Knowledge Graphs and AI For Enterprise PLM Platforms
 
30+ Recent Design Elements in Web Apps
30+ Recent Design Elements in Web Apps30+ Recent Design Elements in Web Apps
30+ Recent Design Elements in Web Apps
 
Lavacon 2014 - The state of mobile publishing
Lavacon 2014 -  The state of mobile publishingLavacon 2014 -  The state of mobile publishing
Lavacon 2014 - The state of mobile publishing
 
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
 
SAP Mobile Business Intelligence
SAP Mobile Business IntelligenceSAP Mobile Business Intelligence
SAP Mobile Business Intelligence
 
BPM with Bonita Open Solution
BPM with Bonita Open Solution BPM with Bonita Open Solution
BPM with Bonita Open Solution
 
A Site for All Eyes: Considerations for Responsive Design
A Site for All Eyes: Considerations for Responsive DesignA Site for All Eyes: Considerations for Responsive Design
A Site for All Eyes: Considerations for Responsive Design
 
Model driven code development using emf and jet
Model driven code development using emf and jetModel driven code development using emf and jet
Model driven code development using emf and jet
 
Fashion buttons prototyping from 3D design to production
Fashion buttons prototyping from 3D design to productionFashion buttons prototyping from 3D design to production
Fashion buttons prototyping from 3D design to production
 
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
 
DrTAD Blender software. Example 8b. 3D Model of Anchor from Text. Change Font...
DrTAD Blender software. Example 8b. 3D Model of Anchor from Text. Change Font...DrTAD Blender software. Example 8b. 3D Model of Anchor from Text. Change Font...
DrTAD Blender software. Example 8b. 3D Model of Anchor from Text. Change Font...
 
Get Into Open Source
Get Into Open SourceGet Into Open Source
Get Into Open Source
 
Dom introduction-website-v1.0
Dom introduction-website-v1.0Dom introduction-website-v1.0
Dom introduction-website-v1.0
 

More from Aurélien Pupier

More from Aurélien Pupier (12)

How to contribute textual tooling for apache camel in several id es
How to contribute textual tooling for apache camel in several id esHow to contribute textual tooling for apache camel in several id es
How to contribute textual tooling for apache camel in several id es
 
Feedback from an eclipse plugin developer to provide support to large set of ...
Feedback from an eclipse plugin developer to provide support to large set of ...Feedback from an eclipse plugin developer to provide support to large set of ...
Feedback from an eclipse plugin developer to provide support to large set of ...
 
Adopting language server for apache camel feedback from a java/Eclipse plugi...
Adopting language server for apache camel  feedback from a java/Eclipse plugi...Adopting language server for apache camel  feedback from a java/Eclipse plugi...
Adopting language server for apache camel feedback from a java/Eclipse plugi...
 
Why and how to leverage apache camel integration framework in your io t archi...
Why and how to leverage apache camel integration framework in your io t archi...Why and how to leverage apache camel integration framework in your io t archi...
Why and how to leverage apache camel integration framework in your io t archi...
 
Master your integration projects on premise and in the cloud with fuse tooling
Master your integration projects on premise and in the cloud with fuse toolingMaster your integration projects on premise and in the cloud with fuse tooling
Master your integration projects on premise and in the cloud with fuse tooling
 
Classic middleware integration for your IoT Gateways integration
Classic middleware integration for your IoT Gateways integrationClassic middleware integration for your IoT Gateways integration
Classic middleware integration for your IoT Gateways integration
 
Fast unit tests for Eclipse Plugins
Fast unit tests for Eclipse PluginsFast unit tests for Eclipse Plugins
Fast unit tests for Eclipse Plugins
 
Functional Testing made easy with SWTBot for Developers and Testers
Functional Testing made easy with SWTBot for Developers and TestersFunctional Testing made easy with SWTBot for Developers and Testers
Functional Testing made easy with SWTBot for Developers and Testers
 
Committing IDE meta files: misconceptions, misunderstandings, and solutions.
Committing IDE meta files: misconceptions, misunderstandings, and solutions.Committing IDE meta files: misconceptions, misunderstandings, and solutions.
Committing IDE meta files: misconceptions, misunderstandings, and solutions.
 
How to contribute to Eclipse
How to contribute to EclipseHow to contribute to Eclipse
How to contribute to Eclipse
 
Time to build and test results 3x faster - how we did it
Time to build and test results 3x faster - how we did itTime to build and test results 3x faster - how we did it
Time to build and test results 3x faster - how we did it
 
Take advantage of memory analyzer tool inside your continuous integration
Take advantage of memory analyzer tool inside your continuous integrationTake advantage of memory analyzer tool inside your continuous integration
Take advantage of memory analyzer tool inside your continuous integration
 

Recently uploaded

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Recently uploaded (20)

Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreel
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 

Tools and Methodologies to leverage GMF power (EclipseDay Delft 2012)

  • 1. Tools and Methodologies for GMF Aurélien Pupier R&D Engineer, Studio Project Leader GMF-Runtime Committer @apupier EclipseDay Delft , September 27, 2012
  • 2. Agenda Show me a GMF editor GMF Big Picture Methodologies Tooling 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 2
  • 3. GMF BIG PICTURE 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 3
  • 4. GMF 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 4
  • 5. GMF Basic Workflow Semantic Diagram Model (ecore) Model Mapping GMF codegen Code generation Diagram code 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 5
  • 6. What happens after the first generation? Requirements update Introduce specific behavior I’m not able to do a one shot! 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 6
  • 7. METHODOLOGIES 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 7
  • 8. Update the model! Straightforward Best maintainability Easiest solution 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 8
  • 9. GMF Extension points 24 Classical Eclipse way 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 9
  • 10. Extension points – Typical pattern GENERATED Diagram PLUG-IN XXXEditPartProvider Reference XXXEditPart extends extends Custom Diagram PLUG-IN CustomXXXEditPartProvider Reference CustomXXXEditPart 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 10
  • 11. Generation templates When? Apply to a whole kind of elements Ultimately Useful for: Regeneration New element introduced 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 11
  • 12. Generation aspect templates Reduce amount of code to maintain Avoid code duplication Down grain from class to method 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 12
  • 13. Generation aspect templates .xpt 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 13
  • 14. Another tip to reduce size of custom generation templates? 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 14
  • 15. Utility plugin – why? 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 15
  • 16. Utility plugin – how? 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 16
  • 17. Modify Generated code @Generated NOT Sandbox 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 17
  • 18. Projects Structure (1/2) 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 18
  • 19. Projects Structure (2/2) Generation Templates Semantic Model Diagram Model 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 19
  • 20. GMF Workflow Semantic Diagram Model Model (ecore) Model Model Mapping Utility plugin GMF codegen Code generation Aspect Template Diagram code Extension points 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 20
  • 22. GMF-Tooling Official tooling of GMF ● Several editors ● Wizards ● GMF Dashboard 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 22
  • 23. SWTBot4GEF Automated UI tests Simple API: click drag select activateTool 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 23
  • 24. Code generation Ant Task Generate code at build time Avoid reconcilier issues Avoid modification of your sandbox commited 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 24
  • 25. OCL Editor and Interpreter Write and Test constraints 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 25
  • 26. Simple Mapping Editor (1/2) 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 26
  • 27. Simple Mapping Editor (2/2) All-in-one editor Keep separation of concerns available Eating your own dog food 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 27
  • 28. EDapt Big underlying model modifications PoC for BOS 6.0 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 28
  • 29. Keep in mind Great tooling ecosystem Proven methodologies for continuous improvement 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 29
  • 30. To go further Eclipse GMF Forum: http://www.eclipse.org/forums/index.php/f/16/ Eclipse GMF Wiki: http://wiki.eclipse.org/GMF Talk together  9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 30
  • 31. aurelien.pupier@bonitasoft.com Twitter: @apupier Eclipse blog: www.bonitasoft.org/blog/category/eclipse Talk to me about Bonita, BPMN2, Eclipse Modeling and more Company: www.bonitasoft.com Community: www.bonitasoft.org Twitter: @bonitasoft