mixing diagram, tree, text, table and form editors to build a kick-ass modeling workbench
DESCRIPTION
The last few years Obeo has built - mainly for corporate customers - several modeling workbenches dedicated to various domains : from enterprise applications to embedded system going through the insurance portfolios management. For each of those project defining a specific vocabulary leveraging the domain concepts was a key success factor but was not the only one : the ability to easily adapt the associated meta-model and the associated workbench, to support rich user interactions hiding some complexity and leveraging several kind of representations in a coherent environment were important factors too : they allowed us to adapt the tooling to the customer's methodology.TRANSCRIPT
![Page 1: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/1.jpg)
Mixing Diagram, Tree, Text, Table and Form editors
to build a kick-ass Modeling Workbench
Mariot Chauvin
Obeo, France
copyright 2011 Obeo
![Page 2: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/2.jpg)
AboutObeo
● Software editor and consulting
● Model driven company
● Eclipse strategic member
![Page 3: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/3.jpg)
AboutUML
"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
![Page 4: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/4.jpg)
Break
UniversalLanguage ?
![Page 5: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/5.jpg)
DSL Properties
● Explicit● Targeted● Expressive
![Page 6: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/6.jpg)
Break
Modeling for Everyone
![Page 7: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/7.jpg)
Textual vs Graphical
● Both are possible● Depends on context● Depends on users
![Page 8: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/8.jpg)
● Provide rich user interactions
● Hide some complexity
● Display specific model views
Modeling workbench Duties
![Page 9: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/9.jpg)
Modelingfor Generation
● Source code
● Documentation
● Settings file
![Page 10: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/10.jpg)
Modeling workbench Duties
● Handle synchronization
● Maintain traceability links
● Enable managed desynchronization
![Page 11: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/11.jpg)
Modelingwith Others
● Several concerns and viewpoints
● Set processes
● Conflicts
![Page 12: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/12.jpg)
● Separation of concerns
● Coherence maintenance
● Integration with collaborative tools
Modeling workbench Duties
![Page 13: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/13.jpg)
Break
adaptability
![Page 14: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/14.jpg)
Break
flexibility
![Page 15: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/15.jpg)
Break
tooling
![Page 16: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/16.jpg)
Obeo Designer
● Highly extensible● No set approach● Focused on tooling
![Page 17: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/17.jpg)
InsideMagic
![Page 18: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/18.jpg)
Based on Eclipse
● Open source and extensible● Widely used● Collaboration ready
![Page 19: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/19.jpg)
Based on Eclipse Modeling
● EMF as core● Dynamic and diverse community
![Page 20: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/20.jpg)
Text generation Acceleo
● MTL Implementation● Extensive tooling● Standalone
![Page 21: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/21.jpg)
OCLuser
![Page 22: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/22.jpg)
OCL Syntax Enhancements
● [sequence->select(oclIsKindOf(Type)).oclAsType(Type)/]
● ["ab".concat("bc").concat("ef")]
● [x.eContainer().eContents()->subSequence(x.eContainer().eContents()->indexOf(self), x.eContainer().eContents()->size())->excluding(self)/]
● [for (cf:ControlFlow | c.ownedElement->select(a |a.oclIsKindOf(ControlFlow))->sortedBy(e: Element | e.oclAsType(ControlFlow).name))]
● [sequence->filter(Type)]
● ["ab" + "cd" + "ef"]
● [x.followingSiblings()]
● [for (c.ownedElement->filter(ControlFlow)->sortedBy(name))]
OCL Acceleo
![Page 23: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/23.jpg)
Featured
● Syntax highlighting
● Code completion
● Outline
Editor
![Page 24: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/24.jpg)
Quickfix actions
![Page 25: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/25.jpg)
Refactoring facilities
● Dialog with original and refactored previews
● Rapid text replacement
![Page 26: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/26.jpg)
Foreign languages fluency
● Java code call
● ATL and QVTO transformations call
![Page 27: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/27.jpg)
Integrated debugger
● Step into, Step over, Step return
● Breakpoints and variables
![Page 28: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/28.jpg)
Integrated profiler
![Page 29: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/29.jpg)
Text and models synchro Traceability
● Links for each element● Generation preview● Part generation
![Page 30: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/30.jpg)
Model transformation ATL
● Declarative approach● Extensive tooling● Standalone
![Page 31: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/31.jpg)
Integrated
module Families2Persons;create OUT : Persons from IN : Families;-- helpers declaration {-- ...-- } helpers declaration
rule Member2Male {from
s : Families!Member (not s.isFemale())to
t : Persons!Male (fullName <- s.firstName + ' ' + s.familyName
)}
rule Member2Female {from
s : Families!Member (s.isFemale())to
t : Persons!Female (fullName <- s.firstName + ' ' + s.familyName
)}
● Editor● Debugger● Profiler● Wizards
Tooling
![Page 32: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/32.jpg)
Model comparison EMF Compare
● Generic ● Extensible● 3 ways comparison
![Page 33: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/33.jpg)
CompareEditor
![Page 34: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/34.jpg)
Graphical modeling Viewpoint
● Viewpoint driven tool ● Multiple representations● Interpreted approach
![Page 35: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/35.jpg)
Viewpoints specification
● Viewpoints definitions ● Owned representations ● Representation extensions
![Page 36: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/36.jpg)
Viewpoints usage
● Viewpoints activation ● Available features update
![Page 37: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/37.jpg)
Representations specification
● Mappings ● Graphical style ● Behaviors
![Page 38: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/38.jpg)
Representations usage
![Page 39: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/39.jpg)
Properties, Wizards and Forms EEF
● Generative approach● User friendly widgets● Enhanced widgets
![Page 40: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/40.jpg)
beautiful properties
● Live validation in text widget
● Table and and other user-friendly widgets
● Help for each model element
![Page 41: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/41.jpg)
wizards
● Tabs
● Undo management
![Page 42: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/42.jpg)
Forms editors
![Page 43: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/43.jpg)
Textual representation Xtext
● Generative approach● Advanced text editor
![Page 44: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/44.jpg)
Demo ?
![Page 45: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/45.jpg)
Use examples
● System engineering workbench ● Design, Validation, Analysis ● Code and documentation generation
![Page 46: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/46.jpg)
![Page 47: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/47.jpg)
![Page 48: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/48.jpg)
![Page 49: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/49.jpg)
Use examples
● Safety modeling workbench● Safety analysis (PHA & SHA)● Documentation generation
![Page 50: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/50.jpg)
![Page 51: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/51.jpg)
![Page 52: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/52.jpg)
![Page 53: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/53.jpg)
More ?
![Page 54: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/54.jpg)
Sequence diagrams
![Page 55: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/55.jpg)
Sequence diagrams
![Page 56: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/56.jpg)
UML diagrams
![Page 57: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/57.jpg)
UML diagrams
![Page 58: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/58.jpg)
UML diagrams
![Page 59: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/59.jpg)
Thanks
Questions ??
![Page 60: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/60.jpg)
● 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/
●
● 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
●
Copyright SXC - http://www.sxc.hu/txt/license.html
![Page 61: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench](https://reader034.vdocuments.net/reader034/viewer/2022052522/554e21efb4c9056b798b4dee/html5/thumbnails/61.jpg)
● 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
Quotes