SlideShare a Scribd company logo
1 of 61
Download to read offline
Mixing Diagram, Tree, Text, Table and Form editors
                      to build a kick-ass Modeling Workbench




             Mariot Chauvin
             Obeo, France



copyright 2011 Obeo
About
              Obeo

●   Software editor and consulting
●   Model driven company
●   Eclipse strategic member
About
          UML
  "I strongly agree with the complaints about UML
  diagrams being cumbersome and hard to deal with"
                                     Raphael Chaves

“Grady Blooch told me he loved the paper and only wished he had
this when they designed UML - if so, things could have been very
different”.
    Daniel Moody
Universal
    Language ?




                 Break
DSL
Properties

         ●   Explicit
         ●   Targeted
         ●   Expressive
Modeling for
  Everyone


               Break
Textual vs Graphical


●   Both are possible
●   Depends on context
●   Depends on users
Modeling workbench
              Duties

●   Provide rich user interactions
●   Hide some complexity
●   Display specific model views
Modeling
         for Generation

●   Source code
●   Documentation
●   Settings file
Modeling workbench
                Duties

●   Handle synchronization
●   Maintain traceability links
●   Enable managed desynchronization
Modeling
           with Others

●   Several concerns and viewpoints
●   Set processes
●   Conflicts
Modeling workbench
                Duties

●   Separation of concerns
●   Coherence maintenance
●   Integration with collaborative tools
adaptability




  Break
flexibility




              Break
tooling




          Break
Obeo Designer


                ●   Highly extensible
                ●   No set approach
                ●   Focused on tooling
Magic
   Inside
Based on
       Eclipse
                 ●   Open source and extensible
                 ●   Widely used
                 ●   Collaboration ready
Based on
     Eclipse Modeling
             ●   EMF as core
             ●   Dynamic and diverse community
Text generation
          Acceleo
                    ●   MTL Implementation
                    ●   Extensive tooling
                    ●   Standalone
OCL
  user
OCL Syntax
                        Enhancements
                            OCL                                                    Acceleo

●   [sequence->select(oclIsKindOf(Type)).oclAsType(Type)/]    ●   [sequence->filter(Type)]
●   ["ab".concat("bc").concat("ef")]                          ●   ["ab" + "cd" + "ef"]
●   [x.eContainer().eContents()-                              ●   [x.followingSiblings()]
    >subSequence(x.eContainer().eContents()->indexOf(self),
    x.eContainer().eContents()->size())->excluding(self)/]
●   [for (cf:ControlFlow | c.ownedElement->select(a |         ●   [for (c.ownedElement->filter(ControlFlow)
    a.oclIsKindOf(ControlFlow))->sortedBy(e: Element |            ->sortedBy(name))]
    e.oclAsType(ControlFlow).name))]
Featured
                                Editor




●   Syntax highlighting
●   Code completion
●   Outline
Quickfix actions
Refactoring facilities




●   Dialog with original and refactored previews
●   Rapid text replacement
Foreign languages fluency




●   Java code call
●   ATL and QVTO transformations call
Integrated debugger




●   Step into, Step over, Step return
●   Breakpoints and variables
Integrated profiler
Text and models synchro
        Traceability
                   ●   Links for each element
                   ●   Generation preview
                   ●   Part generation
Model transformation
              ATL

                    ●   Declarative approach
                    ●   Extensive tooling
                    ●   Standalone
Integrated
      Tooling
module Families2Persons;
create OUT : Persons from IN : Families;

-- helpers declaration {
-- ...
                                                           ●   Editor
-- } helpers declaration

rule Member2Male {
                                                           ●   Debugger
    from

    to
        s : Families!Member (not s.isFemale())             ●   Profiler
        t : Persons!Male (

                                                               Wizards
            fullName <- s.firstName + ' ' + s.familyName
        )                                                  ●
}

rule Member2Female {
    from
        s : Families!Member (s.isFemale())
    to
        t : Persons!Female (
            fullName <- s.firstName + ' ' + s.familyName
        )
}
Model comparison
          EMF Compare

                   ●   Generic
                   ●   Extensible
                   ●   3 ways comparison
Compare
    Editor
Graphical modeling
             Viewpoint

                     ●   Viewpoint driven tool
                     ●   Multiple representations
                     ●   Interpreted approach
Viewpoints specification


                      ●   Viewpoints definitions
                      ●   Owned representations
                      ●   Representation extensions
Viewpoints usage


                   ●   Viewpoints activation
                   ●   Available features update
Representations specification


                      ●   Mappings
                      ●   Graphical style
                      ●   Behaviors
Representations usage
Properties, Wizards and Forms
                  EEF

                        ●   Generative approach
                        ●   User friendly widgets
                        ●   Enhanced widgets
beautiful properties




●   Live validation in text widget
●   Table and and other user-friendly widgets
●   Help for each model element
wizards
●   Tabs
●   Undo management
Forms editors
Textual representation
             Xtext

                    ●    Generative approach
                    ●    Advanced text editor
Demo ?
Use examples


        ●   System engineering workbench
        ●   Design, Validation, Analysis
        ●   Code and documentation generation
Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench
Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench
Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench
Use examples


           ●   Safety modeling workbench
           ●   Safety analysis (PHA & SHA)
           ●   Documentation generation
Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench
Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench
Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench
More ?
Sequence diagrams
Sequence diagrams
UML diagrams
UML diagrams
UML diagrams
Thanks



         Questions ??
●   Adaptability : http://www.flickr.com/photos/curnen/1041618126/sizes/l/in/photostream/

●   Tooling : http://www.flickr.com/photos/batega/1596898776/sizes/l/in/photostream/

●   Flexibility : http://www.flickr.com/photos/notsogoodphotography/2187498747/sizes/o/in/photostream/

●   OCL User : http://www.flickr.com/photos/lara604/2369412952/sizes/l/in/photostream/

●   Card deck : http://www.flickr.com/photos/stevendepolo/4028160820/sizes/o/in/photostream/

●   Everyone : http://www.flickr.com/photos/jamescridland/613445810/

●




Copyright SXC - http://www.sxc.hu/txt/license.html

●   Boxing gloves : http://www.sxc.hu/photo/901672

●   Quran : http://www.sxc.hu/photo/1079650

●   Jesus : http://www.sxc.hu/photo/907654

●   Buddha : http://www.sxc.hu/photo/794720

●
Quotes
●   Raphael Chaves, http://abstratt.com/blog/2008/06/02/when-uml-meets-slashdot/
●   Daniel Woody, http://www.ajilon.com.au/news-publications/264-ajilons-dr-moody-delivers-software-engineering-key-note

More Related Content

Similar to Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench

Build your Own Customizable 3D Objects with Sculpteo
Build your Own Customizable 3D Objects with SculpteoBuild your Own Customizable 3D Objects with Sculpteo
Build your Own Customizable 3D Objects with SculpteoSculpteo
 
Foster - Getting started with Angular
Foster - Getting started with AngularFoster - Getting started with Angular
Foster - Getting started with AngularMukundSonaiya1
 
Introduction to f#
Introduction to f#Introduction to f#
Introduction to f#mjyeaney
 
The advantage of developing with TypeScript
The advantage of developing with TypeScript The advantage of developing with TypeScript
The advantage of developing with TypeScript Corley S.r.l.
 
Benefits of using software design patterns and when to use design pattern
Benefits of using software design patterns and when to use design patternBenefits of using software design patterns and when to use design pattern
Benefits of using software design patterns and when to use design patternBeroza Paul
 
Jab12 - Joomla! architecture revealed
Jab12 - Joomla! architecture revealedJab12 - Joomla! architecture revealed
Jab12 - Joomla! architecture revealedOfer Cohen
 
How to make Robust and Scalable Modeling Workbenches with Sirius - SiriusCon ...
How to make Robust and Scalable Modeling Workbenches with Sirius - SiriusCon ...How to make Robust and Scalable Modeling Workbenches with Sirius - SiriusCon ...
How to make Robust and Scalable Modeling Workbenches with Sirius - SiriusCon ...mporhel
 
Django Patterns - Pycon India 2014
Django Patterns - Pycon India 2014Django Patterns - Pycon India 2014
Django Patterns - Pycon India 2014arunvr
 
Counterclockwise past present future
Counterclockwise  past present futureCounterclockwise  past present future
Counterclockwise past present futurelolopetit
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code cleanBrett Child
 
Writing Effective Self-Help Guides for World Domination
Writing Effective Self-Help Guides for World DominationWriting Effective Self-Help Guides for World Domination
Writing Effective Self-Help Guides for World DominationEmma Jane Hogbin Westby
 
EclipseCon Eu 2015 - Breathe life into your Designer!
EclipseCon Eu 2015 - Breathe life into your Designer!EclipseCon Eu 2015 - Breathe life into your Designer!
EclipseCon Eu 2015 - Breathe life into your Designer!melbats
 
How I Built My Code Editor in Ruby
How I Built My Code Editor in RubyHow I Built My Code Editor in Ruby
How I Built My Code Editor in RubyAndy Maleh
 
Design Patterns In Scala
Design Patterns In ScalaDesign Patterns In Scala
Design Patterns In ScalaKnoldus Inc.
 
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)Ofer Cohen
 
Effects, Coeffects & Subscriptions: a pit of success for SPAs
Effects, Coeffects & Subscriptions: a pit of success for SPAsEffects, Coeffects & Subscriptions: a pit of success for SPAs
Effects, Coeffects & Subscriptions: a pit of success for SPAsManuel Rivero
 
Configuring in the Browser, Really!
Configuring in the Browser, Really!Configuring in the Browser, Really!
Configuring in the Browser, Really!Tim Geisler
 
Effects, coeffects & subscriptions: a pit of success for SPAs Socracan18
Effects, coeffects & subscriptions: a pit of success for SPAs Socracan18Effects, coeffects & subscriptions: a pit of success for SPAs Socracan18
Effects, coeffects & subscriptions: a pit of success for SPAs Socracan18Manuel Rivero
 

Similar to Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench (20)

Build your Own Customizable 3D Objects with Sculpteo
Build your Own Customizable 3D Objects with SculpteoBuild your Own Customizable 3D Objects with Sculpteo
Build your Own Customizable 3D Objects with Sculpteo
 
Foster - Getting started with Angular
Foster - Getting started with AngularFoster - Getting started with Angular
Foster - Getting started with Angular
 
Introduction to f#
Introduction to f#Introduction to f#
Introduction to f#
 
The advantage of developing with TypeScript
The advantage of developing with TypeScript The advantage of developing with TypeScript
The advantage of developing with TypeScript
 
Benefits of using software design patterns and when to use design pattern
Benefits of using software design patterns and when to use design patternBenefits of using software design patterns and when to use design pattern
Benefits of using software design patterns and when to use design pattern
 
Jab12 - Joomla! architecture revealed
Jab12 - Joomla! architecture revealedJab12 - Joomla! architecture revealed
Jab12 - Joomla! architecture revealed
 
How to make Robust and Scalable Modeling Workbenches with Sirius - SiriusCon ...
How to make Robust and Scalable Modeling Workbenches with Sirius - SiriusCon ...How to make Robust and Scalable Modeling Workbenches with Sirius - SiriusCon ...
How to make Robust and Scalable Modeling Workbenches with Sirius - SiriusCon ...
 
Django Patterns - Pycon India 2014
Django Patterns - Pycon India 2014Django Patterns - Pycon India 2014
Django Patterns - Pycon India 2014
 
Counterclockwise past present future
Counterclockwise  past present futureCounterclockwise  past present future
Counterclockwise past present future
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code clean
 
Evolutionary Design Solid
Evolutionary Design SolidEvolutionary Design Solid
Evolutionary Design Solid
 
Writing Effective Self-Help Guides for World Domination
Writing Effective Self-Help Guides for World DominationWriting Effective Self-Help Guides for World Domination
Writing Effective Self-Help Guides for World Domination
 
EclipseCon Eu 2015 - Breathe life into your Designer!
EclipseCon Eu 2015 - Breathe life into your Designer!EclipseCon Eu 2015 - Breathe life into your Designer!
EclipseCon Eu 2015 - Breathe life into your Designer!
 
How I Built My Code Editor in Ruby
How I Built My Code Editor in RubyHow I Built My Code Editor in Ruby
How I Built My Code Editor in Ruby
 
Design Patterns In Scala
Design Patterns In ScalaDesign Patterns In Scala
Design Patterns In Scala
 
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)
 
Effects, Coeffects & Subscriptions: a pit of success for SPAs
Effects, Coeffects & Subscriptions: a pit of success for SPAsEffects, Coeffects & Subscriptions: a pit of success for SPAs
Effects, Coeffects & Subscriptions: a pit of success for SPAs
 
Hibernate 1x2
Hibernate 1x2Hibernate 1x2
Hibernate 1x2
 
Configuring in the Browser, Really!
Configuring in the Browser, Really!Configuring in the Browser, Really!
Configuring in the Browser, Really!
 
Effects, coeffects & subscriptions: a pit of success for SPAs Socracan18
Effects, coeffects & subscriptions: a pit of success for SPAs Socracan18Effects, coeffects & subscriptions: a pit of success for SPAs Socracan18
Effects, coeffects & subscriptions: a pit of success for SPAs Socracan18
 

Recently uploaded

UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4DianaGray10
 
Patch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updatePatch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updateadam112203
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2DianaGray10
 
Novo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNovo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNeo4j
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
 
The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)codyslingerland1
 
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxEmil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxNeo4j
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingFrancesco Corti
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and businessFrancesco Corti
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInThousandEyes
 
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through TokenizationStobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through TokenizationStobox
 
Scenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosScenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosErol GIRAUDY
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud DataEric D. Schabell
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024Brian Pichman
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingMAGNIntelligence
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxKaustubhBhavsar6
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxNeo4j
 
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applicationsnooralam814309
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxSatishbabu Gunukula
 

Recently uploaded (20)

UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4
 
Patch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updatePatch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 update
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2
 
Novo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNovo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4j
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)
 
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxEmil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is going
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and business
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
 
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through TokenizationStobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
 
Scenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosScenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenarios
 
SheDev 2024
SheDev 2024SheDev 2024
SheDev 2024
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced Computing
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptx
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
 
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applications
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptx
 

Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench

  • 1. Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass Modeling Workbench Mariot Chauvin Obeo, France copyright 2011 Obeo
  • 2. About Obeo ● Software editor and consulting ● Model driven company ● Eclipse strategic member
  • 3. About UML "I strongly agree with the complaints about UML diagrams being cumbersome and hard to deal with" Raphael Chaves “Grady Blooch told me he loved the paper and only wished he had this when they designed UML - if so, things could have been very different”. Daniel Moody
  • 4. Universal Language ? Break
  • 5. DSL Properties ● Explicit ● Targeted ● Expressive
  • 6. Modeling for Everyone Break
  • 7. Textual vs Graphical ● Both are possible ● Depends on context ● Depends on users
  • 8. Modeling workbench Duties ● Provide rich user interactions ● Hide some complexity ● Display specific model views
  • 9. Modeling for Generation ● Source code ● Documentation ● Settings file
  • 10. Modeling workbench Duties ● Handle synchronization ● Maintain traceability links ● Enable managed desynchronization
  • 11. Modeling with Others ● Several concerns and viewpoints ● Set processes ● Conflicts
  • 12. Modeling workbench Duties ● Separation of concerns ● Coherence maintenance ● Integration with collaborative tools
  • 14. flexibility Break
  • 15. tooling Break
  • 16. Obeo Designer ● Highly extensible ● No set approach ● Focused on tooling
  • 17. Magic Inside
  • 18. Based on Eclipse ● Open source and extensible ● Widely used ● Collaboration ready
  • 19. Based on Eclipse Modeling ● EMF as core ● Dynamic and diverse community
  • 20. Text generation Acceleo ● MTL Implementation ● Extensive tooling ● Standalone
  • 22. OCL Syntax Enhancements OCL Acceleo ● [sequence->select(oclIsKindOf(Type)).oclAsType(Type)/] ● [sequence->filter(Type)] ● ["ab".concat("bc").concat("ef")] ● ["ab" + "cd" + "ef"] ● [x.eContainer().eContents()- ● [x.followingSiblings()] >subSequence(x.eContainer().eContents()->indexOf(self), x.eContainer().eContents()->size())->excluding(self)/] ● [for (cf:ControlFlow | c.ownedElement->select(a | ● [for (c.ownedElement->filter(ControlFlow) a.oclIsKindOf(ControlFlow))->sortedBy(e: Element | ->sortedBy(name))] e.oclAsType(ControlFlow).name))]
  • 23. Featured Editor ● Syntax highlighting ● Code completion ● Outline
  • 25. Refactoring facilities ● Dialog with original and refactored previews ● Rapid text replacement
  • 26. Foreign languages fluency ● Java code call ● ATL and QVTO transformations call
  • 27. Integrated debugger ● Step into, Step over, Step return ● Breakpoints and variables
  • 29. Text and models synchro Traceability ● Links for each element ● Generation preview ● Part generation
  • 30. Model transformation ATL ● Declarative approach ● Extensive tooling ● Standalone
  • 31. Integrated Tooling module Families2Persons; create OUT : Persons from IN : Families; -- helpers declaration { -- ... ● Editor -- } helpers declaration rule Member2Male { ● Debugger from to s : Families!Member (not s.isFemale()) ● Profiler t : Persons!Male ( Wizards fullName <- s.firstName + ' ' + s.familyName ) ● } rule Member2Female { from s : Families!Member (s.isFemale()) to t : Persons!Female ( fullName <- s.firstName + ' ' + s.familyName ) }
  • 32. Model comparison EMF Compare ● Generic ● Extensible ● 3 ways comparison
  • 33. Compare Editor
  • 34. Graphical modeling Viewpoint ● Viewpoint driven tool ● Multiple representations ● Interpreted approach
  • 35. Viewpoints specification ● Viewpoints definitions ● Owned representations ● Representation extensions
  • 36. Viewpoints usage ● Viewpoints activation ● Available features update
  • 37. Representations specification ● Mappings ● Graphical style ● Behaviors
  • 39. Properties, Wizards and Forms EEF ● Generative approach ● User friendly widgets ● Enhanced widgets
  • 40. beautiful properties ● Live validation in text widget ● Table and and other user-friendly widgets ● Help for each model element
  • 41. wizards ● Tabs ● Undo management
  • 43. Textual representation Xtext ● Generative approach ● Advanced text editor
  • 45. Use examples ● System engineering workbench ● Design, Validation, Analysis ● Code and documentation generation
  • 49. Use examples ● Safety modeling workbench ● Safety analysis (PHA & SHA) ● Documentation generation
  • 59. Thanks Questions ??
  • 60. Adaptability : http://www.flickr.com/photos/curnen/1041618126/sizes/l/in/photostream/ ● Tooling : http://www.flickr.com/photos/batega/1596898776/sizes/l/in/photostream/ ● Flexibility : http://www.flickr.com/photos/notsogoodphotography/2187498747/sizes/o/in/photostream/ ● OCL User : http://www.flickr.com/photos/lara604/2369412952/sizes/l/in/photostream/ ● Card deck : http://www.flickr.com/photos/stevendepolo/4028160820/sizes/o/in/photostream/ ● Everyone : http://www.flickr.com/photos/jamescridland/613445810/ ● Copyright SXC - http://www.sxc.hu/txt/license.html ● Boxing gloves : http://www.sxc.hu/photo/901672 ● Quran : http://www.sxc.hu/photo/1079650 ● Jesus : http://www.sxc.hu/photo/907654 ● Buddha : http://www.sxc.hu/photo/794720 ●
  • 61. Quotes ● Raphael Chaves, http://abstratt.com/blog/2008/06/02/when-uml-meets-slashdot/ ● Daniel Woody, http://www.ajilon.com.au/news-publications/264-ajilons-dr-moody-delivers-software-engineering-key-note