mixing diagram, tree, text, table and form editors to build a kick-ass modeling workbench

61
Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass Modeling Workbench Mariot Chauvin Obeo, France copyright 2011 Obeo

Upload: chauvin-mariot

Post on 09-May-2015

2.562 views

Category:

Technology


1 download

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

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

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

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

Break

UniversalLanguage ?

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

DSL Properties

● Explicit● Targeted● Expressive

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

Break

Modeling for Everyone

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

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

● 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

Modelingfor Generation

● Source code

● Documentation

● Settings file

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

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

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

● 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

Break

adaptability

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

Break

flexibility

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

Break

tooling

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

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

InsideMagic

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

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

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

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

OCLuser

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

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

Featured

● Syntax highlighting

● Code completion

● Outline

Editor

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

Quickfix actions

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

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

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

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

Integrated profiler

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

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

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

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

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

CompareEditor

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

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

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

Viewpoints usage

● Viewpoints activation ● Available features update

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

Representations specification

● Mappings ● Graphical style ● Behaviors

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

Representations usage

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

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

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

wizards

● Tabs

● Undo management

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

Forms editors

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

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

Demo ?

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

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
Page 47: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench
Page 48: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench
Page 49: 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

Page 50: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench
Page 51: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench
Page 52: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench
Page 53: Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeling workbench

More ?

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

Sequence diagrams

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

Sequence diagrams

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

UML diagrams

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

UML diagrams

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

UML diagrams

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

Thanks

Questions ??

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

● 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

● 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