Last June, during SiriusCon 2022, I presented a talk to explain the basics of Sirius Web. My objective was to show what kind of graphical modeling tool you can create with Sirius Web, without writing a single line of code.
Unlike a diagramming tool that only allows users to create drawings, a modeling tool also manages the data that is graphically represented, ensuring a bi-directional correspondence between the diagrams and the corresponding data. Depending on the way your data is visualized, when you change the data, it may be reflected on the diagram, and reciprocally. For example, if you change the name of a model element, the label of each shape that represents it on all the diagrams will automatically change. With Sirius Web, you can create this kind of tool directly on the web.
Concretely, you have to define both the structure of the data managed by your tool (Domain definition) and the structure of your diagrams (View definition). We call this kind of tool a Domain-Specific Workbench. It gives the possibility to users to create their own projects containing their data and their representations based on a certain vocabulary and concepts. A Domain definition corresponds to what is sometimes called a Metamodel, or a Domain-Specific Language (DSL).
Like Sirius Desktop, Sirius Web supports low-code principles. It means that most of the features of your custom modeling tool can be defined by configuration, with no code. But “low-code” is not “no-code”, so you still have to write some code to provide all your expected features and behavior.
Meanwhile, you can already benefit from many no-code features, and get very interesting results without programming. This is what was illustrated in my talk through a concrete example: the creation of a modeling tool for describing a company.
This sample modeling tool allows users to edit and represent companies. On the data side, the companies are composed of sites and teams, the teams are composed of employees, the employees have a manager, and the employees are located on a site.
On the graphical side, I want to represent (and edit) the companies according to two different visualizations:
- a first one that shows the teams containing their members, with hierarchical links between them, and links between each team and the locations where at least one of their members is located
- a second one that shows the sites containing the employees who work there, and a color code on each employee that indicates his team.
Let’s imagine a fictitious company named PetStore. It would be described by using three kinds of data:
- Teams = Marketing, Sales, Operations
- Sites = Paris, Berlin, and New York
- Employees = Daniel Weber, Emma Simon, Lea David, etc
And this data would be visualized with these two diagrams:
These two diagrams represent the same data, with different graphical rules.
To create such a modeling tool with Sirius Web, I have to specify:
- a domain model “Company Domain Model” which defines the concepts of Company, Team, Employee, and Site.
- two view definitions “Teams Diagram” and “Sites Diagram” which define the two kinds of visual representation.
And that’s all !! In my case, no custom code is required.
In the video of the talk (40 minutes), you can see a step-by-step demonstration of how to create this Company DSL.
The video shows the creation of the Domain Model thanks to a dedicated graphical editor:
It also demonstrates the creation of the two Views which define the components of the diagrams (nodes and edges), the rules that map them to the domain model, and the graphical properties that specify how to display these elements.
Watch the complete video:
As Sirius Web is in constant improvement, many new features have been added since this talk in June 2022. So don’t miss the speech of Mélanie Bats at EclipseCon 2022, on the 25th of October in Ludwigsburg (Germany). She will present an updated version of this "Sirius Web 101" talk, and unveil some important improvements!