Sirius
graphical 


editors 

for your 


DSL
Polarsys Day
December 3rd, 2013

Mikaël Barbero
Obeo
1
Domain
Specific
Language
Domain
Specific
Language
Introduction 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
2
Introducing
Sirius
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
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
What benefits?
Developers

End users

Reduce cost and
complexity

Tools adapted to their
needs and workflows

No need to be a
GMF expert

Improved experience
(compared to raw GMF)

Dynamic and iterative
(live) development

Common experience
across multiple DSLs
What benefits?
Developers

End users

Reduce cost and
complexity

Tools adapted to their
needs and workflows

No need to be a
GMF expert

Improved experience
(compared to raw GMF)

Dynamic and iterative
(live) development

Common experience
across multiple DSLs
What benefits?
Developers

End users

Reduce cost and
complexity

Tools adapted to their
needs and workflows

No need to be a
GMF expert

Improved experience
(compared to raw GMF)

Dynamic and iterative
(live) development

Common experience
across multiple DSLs
What benefits?
Developers

End users

Reduce cost and
complexity

Tools adapted to their
needs and workflows

No need to be a
GMF expert

Improved experience
(compared to raw GMF)

Dynamic and iterative
(live) development

Common experience
across multiple DSLs
What benefits?
Developers

End users

Reduce cost and
complexity

Tools adapted to their
needs and workflows

No need to be a
GMF expert

Improved experience
(compared to raw GMF)

Dynamic and iterative
(live) development

Common experience
across multiple DSLs
What benefits?
Developers

End users

Reduce cost and
complexity

Tools adapted to their
needs and workflows

No need to be a
GMF expert

Improved experience
(compared to raw GMF)

Dynamic and iterative
(live) development

Common experience
across multiple DSLs
What benefits?
Developers

End users

Reduce cost and
complexity

Tools adapted to their
needs and workflows

No need to be a
GMF expert

Improved experience
(compared to raw GMF)

Dynamic and iterative
(live) development

Common experience
across multiple DSLs
What benefits?
Developers

End users

Reduce cost and
complexity

Tools adapted to their
needs and workflows

No need to be a
GMF expert

Improved experience
(compared to raw GMF)

Dynamic and iterative
(live) development

Common experience
across multiple DSLs
Two parts for two
kinds of users
Specification environment

Runtime environment

(Specifier / Developer)

(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
•

•

Environment adapted to
user needs
•

•

No code generation

Viewpoint-based

Simplified workflow
•

Modeling Project
Showtime
3
History &
Plans
e 2009
Sinc
Obeo
Designer
Obeo’s flagship commercial product that
is embedding the Sirius technology
Viewpoint
The name of the Sirius technology
within Obeo Designer at that time
2013
The Viewpoint technology is made
open-source as an Eclipse project: Sirius
5
Modeling Workbenches
500+
Diagrams in some Models
1.3M+
Elements in Biggest Models
4
Conclusion
Sirius
What you should remember
•

•
•

Full featured environment
to create custom graphical
modelers
Mature, many deployments
Official Eclipse project
http://www.eclipse.org/sirius/
http://www.obeodesigner.com/
http://www.obeo.fr

Sirius: Graphical Editors for your DSLs