Sirius: Graphical Editors for your DSLs

Preview:

Citation preview

Siriusgraphical

editors for your

DSLMikaël Barbero

ObeoPolarsys Day December 3rd, 2013

Domain Specific

Language

1

Domain Specific

LanguageIntroduction to DSLs borrowed from

http://www.slideshare.net/peterfriese/overcoming-the-impedance-mismatch-between-source-code-and-architecture

Domain Specific

Language

Imagine you want to peal an apple…

What is the appropriate tool?

Your good old Swiss army knife!

Because it does so many things!

Imagine you want to peal a bit more apples…

Is it still the best tool?

Better use this one…

and this one!

while avoiding the unitasker

Domain Specific

Language

=

SELECT name, salary, age FROM person WHERE salary > 2000 ORDER BY salary, age

all: hello !

hello: main.o factorial.o hello.o g++ main.o factorial.o hello.o -o hello !

main.o: main.cpp g++ -c main.cpp !

factorial.o: factorial.cpp g++ -c factorial.cpp

Domain Specific

Language

$ $

$ $

Sirius

Sirius

Introducing Sirius

2

Tool to quickly define custom

multi-view workbenches

Based on Eclipse Modeling

technology stack

New Eclipse Project

Based on graphical editors

/ modelers

No need to be an expert for

most uses

But already proven

technology

In a nutshell

Tool to quickly define custom

multi-view workbenches

Based on Eclipse Modeling

technology stack

New Eclipse Project

Based on graphical editors

/ modelers

No need to be an expert for

most uses

But already proven

technology

In a nutshell

Tool to quickly define custom

multi-view workbenches

Based on Eclipse Modeling

technology stack

New Eclipse Project

Based on graphical editors

/ modelers

No need to be an expert for

most uses

But already proven

technology

In a nutshell

Tool to quickly define custom

multi-view workbenches

Based on Eclipse Modeling

technology stack

New Eclipse Project

Based on graphical editors

/ modelers

No need to be an expert for

most uses

But already proven

technology

In a nutshell

Developers End users

Reduce cost and complexity

Tools adapted to their needs and workflows

What benefits?

No need to be a GMF expert

Dynamic and iterative (live) development

Improved experience (compared to raw GMF)

Common experience across multiple DSLs

Developers End users

Reduce cost and complexity

Tools adapted to their needs and workflows

What benefits?

No need to be a GMF expert

Dynamic and iterative (live) development

Improved experience (compared to raw GMF)

Common experience across multiple DSLs

Developers End users

Reduce cost and complexity

Tools adapted to their needs and workflows

What benefits?

No need to be a GMF expert

Dynamic and iterative (live) development

Improved experience (compared to raw GMF)

Common experience across multiple DSLs

Developers End users

Reduce cost and complexity

Tools adapted to their needs and workflows

What benefits?

No need to be a GMF expert

Dynamic and iterative (live) development

Improved experience (compared to raw GMF)

Common experience across multiple DSLs

Developers End users

Reduce cost and complexity

Tools adapted to their needs and workflows

What benefits?

No need to be a GMF expert

Dynamic and iterative (live) development

Improved experience (compared to raw GMF)

Common experience across multiple DSLs

Developers End users

Reduce cost and complexity

Tools adapted to their needs and workflows

What benefits?

No need to be a GMF expert

Dynamic and iterative (live) development

Improved experience (compared to raw GMF)

Common experience across multiple DSLs

Developers End users

Reduce cost and complexity

Tools adapted to their needs and workflows

What benefits?

No need to be a GMF expert

Dynamic and iterative (live) development

Improved experience (compared to raw GMF)

Common experience across multiple DSLs

Developers End users

Reduce cost and complexity

Tools adapted to their needs and workflows

What benefits?

No need to be a GMF expert

Dynamic and iterative (live) development

Improved experience (compared to raw GMF)

Common experience across multiple DSLs

Two parts for two kinds of users

Specification environment (Specifier / Developer)

Runtime environment (End-user)

The Specification Environment

• Define custom multi-view workbenches

• Diagrams, Trees, Tables

• With little technical knowledge

• Get a working modeler fast

• Instant feedback

• Highly customizable

• Native tooling

• Java or extension points

The Runtime Environment

• Executes the specification

• No code generation • Environment adapted to

user needs

• Viewpoint-based

• Simplified workflow

• Modeling Project

Showtime

History & Plans

3

Since 2009

Obeo’s flagship commercial product that is embedding the Sirius technology

Obeo Designer

The name of the Sirius technology within Obeo Designer at that time

Viewpoint

The Viewpoint technology is made open-source as an Eclipse project: Sirius

2013

5Modeling Workbenches

Diagrams in some Models

500+

Elements in Biggest Models

1.3M+

Conclusion

4

• Full featured environment to create custom graphical modelers

• Mature, many deployments • Official Eclipse project

SiriusWhat you should remember

http://www.eclipse.org/sirius/

http://www.obeodesigner.com/

http://www.obeo.fr