sirius: graphical editors for your dsls
TRANSCRIPT
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