Hello,
I’m working on a Capella 1.4.2 environment.
On a methodology that I try to define, I would like to have:
- 1 system model 150% with model elements for all options and variants
- Many system model 100% (1 per variant) with only model elements corresponding to the variant
- Possibility to create system model 100% from system model 150%
- Possibility to update system model 100% from system model 150% (example : to push a new function from 150% model to the 100% models)
Using Filtering plugin answers well to the 3 first mentioned needs with the “Derivation” functionality. However, when applying derivation, it requires to create a new model. So that, my last need could not be complete for now.
What do you suggest to me to be able to update the 100% from 150% model?
(May be some improvements have been done on last versions)
Best regards,
Benoit
Hello Benoit,
I guess in your use case, you have modified the system model 100% (the derived model from 150% model). In Thales, we call that iterative derivation. In this case, no choice you have to do a diffmerge. With Capella you have a 3 way diffmerge. It’s very usefull for this use case because it makes easier to take decision during diffmerge visaulizing the common ancestor ; it allows to know if a specific difference comes from the new derivation (the 150% model has been updated) or from the modified system model 100% or both:
- In your workspace, you have to have these 3 models (the 3 models have to have different names) : the model coming from the fisrt derivation (the common ancestor)/ the modified system model 100% / the model coming from the last derivation.
- Select the 3 .airds of these 3 odel and right-click and select Compare with/Each other as models
- Configure the popup (the ancestor is of course the common ancestor the model coming from the first derivation and only the the modified system model 100% has to be modifiable) and click on finish.
I never tried the diffmerge with models coming from the filtering derivation (I use pure::variants) but it should work because I guess tthe derived model elements keep the same ids.
The diffmerge is not easy to use but what you want to do is a complex operation.
Hoping it helps you!
Sébastien