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

3,221 views
2,959 views

Published on

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.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,221
On SlideShare
0
From Embeds
0
Number of Embeds
213
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass Modeling Workbench Mariot Chauvin Obeo, Francecopyright 2011 Obeo
  2. 2. About Obeo● Software editor and consulting● Model driven company● Eclipse strategic member
  3. 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 hadthis when they designed UML - if so, things could have been verydifferent”. Daniel Moody
  4. 4. Universal Language ? Break
  5. 5. DSLProperties ● Explicit ● Targeted ● Expressive
  6. 6. Modeling for Everyone Break
  7. 7. Textual vs Graphical● Both are possible● Depends on context● Depends on users
  8. 8. Modeling workbench Duties● Provide rich user interactions● Hide some complexity● Display specific model views
  9. 9. Modeling for Generation● Source code● Documentation● Settings file
  10. 10. Modeling workbench Duties● Handle synchronization● Maintain traceability links● Enable managed desynchronization
  11. 11. Modeling with Others● Several concerns and viewpoints● Set processes● Conflicts
  12. 12. Modeling workbench Duties● Separation of concerns● Coherence maintenance● Integration with collaborative tools
  13. 13. adaptability Break
  14. 14. flexibility Break
  15. 15. tooling Break
  16. 16. Obeo Designer ● Highly extensible ● No set approach ● Focused on tooling
  17. 17. Magic Inside
  18. 18. Based on Eclipse ● Open source and extensible ● Widely used ● Collaboration ready
  19. 19. Based on Eclipse Modeling ● EMF as core ● Dynamic and diverse community
  20. 20. Text generation Acceleo ● MTL Implementation ● Extensive tooling ● Standalone
  21. 21. OCL user
  22. 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. 23. Featured Editor● Syntax highlighting● Code completion● Outline
  24. 24. Quickfix actions
  25. 25. Refactoring facilities● Dialog with original and refactored previews● Rapid text replacement
  26. 26. Foreign languages fluency● Java code call● ATL and QVTO transformations call
  27. 27. Integrated debugger● Step into, Step over, Step return● Breakpoints and variables
  28. 28. Integrated profiler
  29. 29. Text and models synchro Traceability ● Links for each element ● Generation preview ● Part generation
  30. 30. Model transformation ATL ● Declarative approach ● Extensive tooling ● Standalone
  31. 31. Integrated Toolingmodule Families2Persons;create OUT : Persons from IN : Families;-- helpers declaration {-- ... ● Editor-- } helpers declarationrule 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. 32. Model comparison EMF Compare ● Generic ● Extensible ● 3 ways comparison
  33. 33. Compare Editor
  34. 34. Graphical modeling Viewpoint ● Viewpoint driven tool ● Multiple representations ● Interpreted approach
  35. 35. Viewpoints specification ● Viewpoints definitions ● Owned representations ● Representation extensions
  36. 36. Viewpoints usage ● Viewpoints activation ● Available features update
  37. 37. Representations specification ● Mappings ● Graphical style ● Behaviors
  38. 38. Representations usage
  39. 39. Properties, Wizards and Forms EEF ● Generative approach ● User friendly widgets ● Enhanced widgets
  40. 40. beautiful properties● Live validation in text widget● Table and and other user-friendly widgets● Help for each model element
  41. 41. wizards● Tabs● Undo management
  42. 42. Forms editors
  43. 43. Textual representation Xtext ● Generative approach ● Advanced text editor
  44. 44. Demo ?
  45. 45. Use examples ● System engineering workbench ● Design, Validation, Analysis ● Code and documentation generation
  46. 46. Use examples ● Safety modeling workbench ● Safety analysis (PHA & SHA) ● Documentation generation
  47. 47. More ?
  48. 48. Sequence diagrams
  49. 49. Sequence diagrams
  50. 50. UML diagrams
  51. 51. UML diagrams
  52. 52. UML diagrams
  53. 53. Thanks Questions ??
  54. 54. ● 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●
  55. 55. 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

×