Skip to main content

Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Sirius » Merging two Sirius models
Merging two Sirius models [message #1828809] Fri, 19 June 2020 06:21 Go to next message
Avi Shaked is currently offline Avi ShakedFriend
Messages: 130
Registered: October 2019
Senior Member

As a follow-up to yesterday's awesome conference (SiriusCon): the guy from Siemens (I believe it was Mr. Mark Zeller) showed their extension of Capella with safety analysis. He mentioned that they actually extended Capella with a viewpoint, so that the Capella model now (in their implementation) includes safety analysis elements as well. It was mentioned that Capella was designed to support this.

Now, I'm curious: can this mechanism of Capella for extension be introduced to Sirius?

I want to be able to integrate two or more models (as in Capella and Safety Analysis above) into one model without having to redefine them (or at least without having to redefine one of them, as it could be a third-party model that I do not wish to change).
This can be very helpful, and if a future version of Sirius will support it, I think it may positively impact the ability to work with models collaboratively from different perspectives (today, I encounter some resistance from those who think a single model should encompass all perspectives).

Re: Merging two Sirius models [message #1828819 is a reply to message #1828809] Fri, 19 June 2020 08:35 Go to previous messageGo to next message
Pierre-Charles David is currently offline Pierre-Charles DavidFriend
Messages: 646
Registered: July 2009
Senior Member
Hi Avi,

There are several approaches which are possible right now depending on your context:

* A single Sirius project/session can reference as many separate semantic models as you want, and they can be of different types. You can have both ".melodymodeler" and ".safety" (or whatever) inside the same Sirius project/session, and they can reference each other (or not) at the semantic level if it makes sense. This approach is often used to "augment" or "decorate" an existing model without changing its metamodel: you can keep a "core" model clean, and store separately another model which references elements in the core with additional information. Once both are loaded inside the Sirius session, you can navigate both ways and have your Sirius representations which take all the information into account.
* If having separate files for the different models is a problem (as it opens the possibility for inconsistencies if they are not always saved together), you can put multiple models right inside the same file. EMF and Sirius support it (Resources with multiple roots), but some tools sometimes assume a Resource has a single root and will not "see" the other ones.
* I know KitAlpha, which is used to implement Capella, offers lower-level mechanisms to extends existing metamodels with additional "viewpoints" without modifying them, but I'm not familiar enough with this to give mode details. See for more details.
* Finally, Sirius supports the notion of FeatureExtension. It is not well documented, but it is an extension point that you can use to put additional data directly inside Sirius's aird models. It is normally used to store information which are more related to how users want to display/customize your Sirius representations than to store actual semantic information. See the org.eclipse.sirius.featureExtensions extension point and

Hope this helps,

Pierre-Charles David

Pierre-Charles David - Obeo

Need training or professional services for Sirius?
Re: Merging two Sirius models [message #1828876 is a reply to message #1828819] Sat, 20 June 2020 17:21 Go to previous message
Avi Shaked is currently offline Avi ShakedFriend
Messages: 130
Registered: October 2019
Senior Member
Thanks for the detailed answer Pierre-Charles David!

I would love to see the KitAlpha mechanism absorbed into Sirius (as it was used with Capella). Regardless, I will check into it.

As for the first option, can you please clarify what you meant by "they can reference each other"?
How can I reference a model from another model within Sirius? Did you mean by code programming (which I can get, because then I can access the session) or by inherent Sirius mechanisms?
I want to be able to present components from the two different models within the same diagram (for example, components from a SysML model and safety analysis elements from a dedicated safety model), so I need the Sirius diagram specifier to support the selection of candidates from each of the models (and not from a single model) and be able to query the two models (by using feature: or aql: queries, for example).

Previous Topic:Properties Editor Won't Edit ViewPoint Specification Project?
Next Topic:Code for Model created in Sirius editor
Goto Forum:

Current Time: Thu Oct 06 23:37:31 GMT 2022

Powered by FUDForum. Page generated in 0.01372 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top