Merging two Sirius models [message #1828809] |
Fri, 19 June 2020 02:21  |
Eclipse User |
|
|
|
Hi,
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).
Regards,
Avi
|
|
|
Re: Merging two Sirius models [message #1828819 is a reply to message #1828809] |
Fri, 19 June 2020 04:35   |
Eclipse User |
|
|
|
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 https://www.eclipse.org/kitalpha/ 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 org.eclipse.sirius.business.api.featureextensions.FeatureExtensionsManager.
Hope this helps,
Pierre-Charles David
|
|
|
Re: Merging two Sirius models [message #1828876 is a reply to message #1828819] |
Sat, 20 June 2020 13:21  |
Eclipse User |
|
|
|
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).
Thanks,
Avi
|
|
|
Powered by
FUDForum. Page generated in 0.03400 seconds