What is Sirius?
Sirius is a new Eclipse project (http://www.eclipse.org/sirius) that allows you to easily create your own graphical modeling tools. It leverages the Eclipse modeling technologies, including EMF for the model management and GMF for the graphical representation. Based on a viewpoint approach, Sirius makes it possible to equip teams who have to deal with complex architectures on specific domains.
It is particularly adapted for users that have defined a DSL (Domain Specific Language) and need graphical representations to better elaborate and analyze a system and improve the communication with other team members, partners or customers.
Figure 1 - A modeling workbench created with Sirius
All shape characteristics and behaviors can be easily configured with a minimal technical knowledge. This description is dynamically interpreted to materialize the workbench within the Eclipse IDE. No code generation is involved, the specifier of the workbench can receive instant feedback while adapting the description. Once completed, the modeling workbench can be deployed as a standard Eclipse plugin. Thanks to this short feedback loop, a workbench or its specialization can be created in a matter of hours.
Sirius is the result of a collaboration between the Thales Group and Obeo initiated in 2007. The Thales’ goal was to obtain a generic workbench for model-based architecture engineering that could be easily tailored to fit the specific needs of each Thales project. The tool had to provide ergonomic facilities and support very large models.
Originally, the Sirius technology was (and still is) packaged and distributed by Obeo as part of the Obeo Designer product. Sirius was recently released as an Open Source project contributed via the Eclipse Foundation. The technology has also been deployed in such fields as insurance, administration, civilian nuclear, transportation, and communication.
By releasing and developing Sirius publicly, as a new open source project, Thales and Obeo are pursuing two objectives:
- Strengthening the Eclipse Modeling ecosystem by enabling the creation of rich modeling workbenches at a very low cost.
- Unleashing the potential collaborations with other partners and projects in a healthy and commercially-friendly environment.
What can you do with Sirius?
A modeling workbench created with Sirius provides a set of Eclipse editors that allow the users to create, edit and visualize EMF models. There are three main types of editors: diagrams, tables and trees. These editors are grouped by concern in order to provide viewpoints on the models.
With Sirius, a diagram displays model elements according to rules that were defined by the creator of the modeling workbench. These rules define which objects will be displayed (based on their type or their properties) and how they will be displayed (which shape, label, font, color, etc.). The rules also define the graphical relationships between the visible objects. A relationship can be displayed with an edge between shapes or with the containment of a shape within another shape.
When the diagram is synchronized with the EMF model, it is automatically updated to reflect the modifications that concern the displayed objects (creations, suppressions and updates). To allow the users to modify the model directly from a diagram, the creator of the modeler can add a palette providing tools to create new objects or relations. He can also specify the behavior of classic editing actions such as drag & drop, direct edit, edge reconnection, double-click, etc.
In addition, to help the users master the potential complexity of their models, Sirius provides several mechanisms to focus on elements of interest:
- Conditional styles: change the graphical rendering of objects depending on their properties. For example: changing the background color to red when an attribute exceeds a threshold, varying the size of the shape according to the value of an attribute, etc.
- Layers and filters: display or hide elements of the diagram according to specific conditions.
- Validation and quick-fixes: the model can be validated by specific rules. The problems are listed on the Problems View and the corresponding objects are graphically marked. For some problems, quick-fixes can be suggested to correct the model.
In the example below, you will find a modeler dedicated to system processor assembly. The size of the processors (squares) are related to their capacity and their color indicates if they are overloaded (in red). The connexions between elements also vary according to the capacity and the load.
Figure 2 - A sample Sirius diagram
Tables and matrices
Models can also be edited with tables and matrices.
A table contains objects in the first column and displays the features in the other columns. The graphical style of the cells can be configured according to rules defined by the creator of the modeling workbench.
Figure 3 - A sample Sirius table
The cells can be edited to enter new values and tools can be added to create or remove objects (lines).
A matrix contains objects both in the first column and in the first line. The cells show the correlations between the two lists of objects.
Figure 4 - A sample Sirius matrix
The third kind of representation provided by Sirius is the tree. It displays objects in a hierarchical way.
With Sirius, it becomes very easy for the user to obtain many custom representations, each one dedicated to a very specific concern. To avoid disturbing the user with useless representations, Sirius supports the notion of viewpoint. It is an abstraction that provides a specification of a system, limited to a particular set of problems.
For example, the same system can be visualized through a view showing the exchange between its components, another view focusing on the performance issues and another view related to the safety analysis.
Figure 5 - Sample Sirius viewpoints
A viewpoint in Sirius provides a set of representations. By activating a viewpoint, the user can create and edit the corresponding diagrams, tables and trees.
The Sirius project is based on a fairly large initial contribution from Thales group and Obeo.
This source code was recently migrated to the Eclipse Foundation infrastructure, which includes the renaming of all packages to an org.eclipse namespace. This first official release (0.9) will provide the ability to define Table, Tree and Diagram Editors and will be the mark of a complete migration to the Eclipse.org infrastructure: from the source code to the build process and the documentation. It was presented at EclipseCon Europe 2013 in Ludwigsburg at the end of October.
The next milestones will be the 1.0 release, part of the Eclipse Luna simultaneous release in June. This iteration will focus on ease of use when getting started, better tooling to assist you when defining your modeler (better completion, validation and error reporting), scalability and latency.