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)

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 NijmegenSander Hoogendoorn
 
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 8BMC Software
 
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...Fabrice Bernhard
 
Collaboro - EclipseCon Europe 2012, Modeling Symposium
Collaboro - EclipseCon Europe 2012, Modeling SymposiumCollaboro - EclipseCon Europe 2012, Modeling Symposium
Collaboro - EclipseCon Europe 2012, Modeling SymposiumHugo Bruneliere
 
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 NightmaresGonzalo Rodríguez
 
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 ChemistryGirinath Pillai
 
Userforum Process Visualization
Userforum Process VisualizationUserforum Process Visualization
Userforum Process Visualizationduncanseidler
 
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 PlatformsOleg Shilovitsky
 
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 AppsAmi Rotter
 
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 publishingVikram Verma
 
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 ...Kiko Monteverde
 
SAP Mobile Business Intelligence
SAP Mobile Business IntelligenceSAP Mobile Business Intelligence
SAP Mobile Business Intelligencetasmc
 
BPM with Bonita Open Solution
BPM with Bonita Open Solution BPM with Bonita Open Solution
BPM with Bonita Open Solution Bonitasoft
 
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 DesignDori Kelner
 
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 jetkowost
 
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 productionAlex Mufatti
 
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...Davalen LLC
 
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...FIDE Master Tihomir Dovramadjiev PhD
 
Get Into Open Source
Get Into Open SourceGet Into Open Source
Get Into Open SourceJoe Sepi
 
Dom introduction-website-v1.0
Dom introduction-website-v1.0Dom introduction-website-v1.0
Dom introduction-website-v1.0Cogility
 

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

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 esAurélien Pupier
 
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 ...Aurélien Pupier
 
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...Aurélien Pupier
 
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...Aurélien Pupier
 
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 toolingAurélien Pupier
 
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 integrationAurélien Pupier
 
Fast unit tests for Eclipse Plugins
Fast unit tests for Eclipse PluginsFast unit tests for Eclipse Plugins
Fast unit tests for Eclipse PluginsAurélien Pupier
 
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 TestersAurélien Pupier
 
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.Aurélien Pupier
 
How to contribute to Eclipse
How to contribute to EclipseHow to contribute to Eclipse
How to contribute to EclipseAurélien Pupier
 
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 itAurélien Pupier
 
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 integrationAuré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

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 

Recently uploaded (20)

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 

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