SlideShare uma empresa Scribd logo
1 de 61
Baixar para ler 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
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

Mais conteúdo relacionado

Semelhante a 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
 

Semelhante a 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
 

Último

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
 
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
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
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
 
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
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
(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
 
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
 
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
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
[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
 
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
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
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
 

Último (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
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...
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
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
 
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
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
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...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
(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...
 
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
 
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
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
[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
 
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
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
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
 

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