- Focused on domain specific modeling technologies
- 50 people working on products and customer projects
- Services: training, consulting and Open Innovation
“Sirius is an Eclipse project which aims at providing specific multi-view modeling workbenches through diagram, table or tree editors based on EMF.
Users can easily define their own modeling workbench, even with very little technical knowledge of Eclipse, while still being able to deeply customize it when needed.”
A few relases
Version |
Date |
Closed |
Feature Requests |
1.0.0(Luna) |
Jun 14, 2014 |
100 |
2 |
1.0.1(Luna SR1) |
Aug 14, 2014 |
20 |
- |
1.0.2(Luna SR2) |
Jan 28, 2015 |
9 |
- |
2.0.0 |
Oct 14, 2014 |
113 |
27 |
2.0.1 |
Nov 14, 2014 |
2 |
- |
2.0.2 |
Dec 14, 2014 |
15 |
- |
2.0.3 |
Jan 15, 2015 |
16 |
- |
2.0.4 |
Feb 15, 2015 |
8 |
- |
2.0.5 |
Apr 15, 2015 |
8 |
- |
2.0.6 |
Jun 06, 2015 |
2 |
- |
3.0.0(Mars) |
Jun 14, 2015 |
219 |
35 |
3.0.1 |
Sep 10, 2015 |
14 |
- |
3.0.2(Mars.1) |
Sep 15, 2015 |
3 |
- |
3.1.0 |
Oct 15, 2015 |
82 |
17 |
3.1.1 |
Oct 29, 2015 |
5 |
- |
Total |
|
616 |
81 |
|
To sum up
- June 2014: 1.0.0(Luna)
- October 2014: Sirius 2.0.0
- June 2015: Sirius 3.0.0(Mars)
- October 2014: Sirius 3.1.0
Upgrading
- The runtime handles .odesign and .aird models for you
- Easy process :
- Check release notes for user-visible changes.
- Change update-site, versions
- In case of impacting API change, re-check the release notes for instructions
(EcoreTools and UML Designer had no impact whatsoever)
Query languages
What is the type of
var:source
?
Type analysis within the Action Language
Requires stronger type information from Interpreters
- Reference support in aql:
- Implemented in feature:, var:
- Improvements in [/]
- No support in legacy <%%> and ocl:
Definition Tooling : demo
- Workspace class loading is BACK
- Image path validation and selection wizard
- Quick Outline
- Prioritized sub menus
- ...
Goal : 1 Million Model Elements
Constant improvements
|
Time (sec) |
Heap (Mb) |
Time Variation |
Heap Variation |
Open Huge Project |
80 |
276 |
-31,00% |
-20,00% |
Open Big Class Diagram |
11 |
24 |
-54,00% |
+20,00% |
Refresh Big Class Diagram |
0,731 |
0 |
-18,00% |
0,00% |
Save After Diagram Change |
26 |
0 |
-23,00% |
0,00% |
Close Diagram |
0,1 |
-6 |
0,00% |
0,00% |
Close Project |
55 |
294 |
0,00% |
0,00% |
Big operations
- Models Footprint, ~20% improvement
- use of MinimalEObject
- Colors transformed from full-blown EObject to Immutable DataType
- detection and correction of leaks
- reduce usage of Adapters
- Save Strategy
- Improvements in the Image cache...
Latency
- Diagram Refresh
- UI Runtime
- Model Element Selection Dialogs for big models
- Right-click latency in the explorer
- Better integration with EEF (property views)
- Tables
- SWT Refreshes now done as a batch
- Table model refresh improvements
Implementation specifically tailored for the Sirius use case
- Many variables for a given expression
null
values are common
- Navigation with many steps aggregating data
- Interactive use : context is constantly changing
- Complex or custom logic : Java Services
- Predictable ordering and performance overhead .
Language Characteristics
- You know OCL ? Then you know AQL
- No implicit variables
aql:name
is invalid and become aql:self.name
aql:self.eContents()->select(name.startsWith('A'))
is invalid and become aql:self.eContents()->select(i | i.name.startsWith('A')
self.referenceWithNoValue.someOtherAttribute
has no evaluation error, and returns "Nothing"
- Classic operations : filter, collect
- Convenient operations : eInverse(), eResource()..
Not strictly compatible* with MTL
*: but a subset of MTL works for both
Implementation Characteristics
- Small: 100 classes of non-generated code
- Evaluation: fast and collect errors as it goes
- Validation: strong and precise
- Tiny dependency surface: ease integration and
deployement in other contexts
- Compliant with dynamic use cases
- Extensible with simple Java classes
Queries engines -- Overhead bench
Recommended query language for Sirius 3.1.0
- in preference to Acceleo 3 or OCL
- simpler for querying EMF models
- more concise and very easy to learn
- improved code completion
- improved syntax errors detection
- Still using
<%%>
: consider it
- Using
[/]
: prepare your queries so that upgrading get easy
Demo
Me too !
- Performances depends on your .odesign specification
- Focus on queries wich would depend on the number of elements in the whole model
- Measure*, Improve, Repeat *: Sirius embedded profiler is one click away
3.0 released with Mars in June
- VSM editor improvements
- Better performance and memory consumption
- Experimental Compartments feature
- Experimental AQL query engine
- Anchors on borders (image styles)
- Underline and strike through
3.1 just released late October
- Diagram UX improvements
- Compartments feature complete
- Bullet-proof AQL query engine
- More performance and scalability improvements
- Partial support for internationalization: all literal strings from the runtime
Potential Themes for Eclipse Neon
- Better SVG rendering
- Prefered side for ports
- Customizable rich property views and edition wizards
- Improve the i18n Story
- Edges from/to list elements
- Tighter integration with the workspace
- Scalability, Performance, Headless
- Your priority
Take Aways
- Sirius : "State of The Art" modeling tools.
- Join the ~15 new authors every month on the Eclipse forum
- Obeo Designer Community Edition : all in one package
www.siriuscon.org