SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
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
Use examples


           ●   Safety modeling workbench
           ●   Safety analysis (PHA & SHA)
           ●   Documentation generation
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

Contenu connexe

Similaire à 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
 

Similaire à 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
 

Dernier

So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
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
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
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
 
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
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
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
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 

Dernier (20)

So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
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
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
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
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
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
 
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
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
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...
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 

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
  • 46.
  • 47.
  • 48.
  • 49. Use examples ● Safety modeling workbench ● Safety analysis (PHA & SHA) ● Documentation generation
  • 50.
  • 51.
  • 52.
  • 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