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

Post on 09-May-2015

2.563 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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

Mixing Diagram, Tree, Text, Table and Form editors

to build a kick-ass Modeling Workbench

Mariot Chauvin

Obeo, France

copyright 2011 Obeo

AboutObeo

● Software editor and consulting

● Model driven company

● Eclipse strategic member

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

Break

UniversalLanguage ?

DSL Properties

● Explicit● Targeted● Expressive

Break

Modeling for Everyone

Textual vs Graphical

● Both are possible● Depends on context● Depends on users

● Provide rich user interactions

● Hide some complexity

● Display specific model views

Modeling workbench Duties

Modelingfor Generation

● Source code

● Documentation

● Settings file

Modeling workbench Duties

● Handle synchronization

● Maintain traceability links

● Enable managed desynchronization

Modelingwith Others

● Several concerns and viewpoints

● Set processes

● Conflicts

● Separation of concerns

● Coherence maintenance

● Integration with collaborative tools

Modeling workbench Duties

Break

adaptability

Break

flexibility

Break

tooling

Obeo Designer

● Highly extensible● No set approach● Focused on tooling

InsideMagic

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

OCLuser

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

Featured

● Syntax highlighting

● Code completion

● Outline

Editor

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

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

Model comparison EMF Compare

● Generic ● Extensible● 3 ways comparison

CompareEditor

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/

● 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

● 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

top related