It's all about the answers!

Ask a question

Is this allowed in Global Configurations?


Glyn Costello (1047) | asked Sep 20 '21, 8:59 a.m.

 Hi, 


Is the same RM component allowed to appear in a Global Congifuration twice, but with different "Streams" or local configurations?

i.e. lets say we have a component called "Generator" and a Global Configuration called "Vessel 1"

If Generator has two streams, Generator Port and Generator Starboard, can both of these streams appear under the same "Vessel 1" global configuration?

Vessel 1
> Generator Port
>> (from "Generator" RM component)
> Generator Starboard
>> (from "Generator" RM component)

Accepted answer


permanent link
Tom Poulin (662) | answered Sep 21 '21, 6:05 p.m.
edited Oct 01 '21, 12:39 p.m.

 As Thomas mentions above, having two or more different configurations of the same component in a GC hierarchy is allowed, but it creates a condition called "component skew". Component skew affects which configuration is used to resolve an artifact version. The ambiguity of component skew is resolved using the order of the configurations in the hierarchy, with the first one (by a depth-first search traversal) being given precedence.


The GC tree will show a warning when component skew is present. Skew is not necessarily wrong, but it may be if done unintentionally. If the skewed components are in different parts of the tree, then setting your configuration context (in DOORS Next or ETM) to something more specific (a node that isn't a common ancestor) is one way to eliminate the ambiguity of skew. The skew resolution rules based on order does ensure you have consistent behavior, but it may not be obvious to a user who isn't aware of the skew. Opening the configuration context menu in the banner of RM will reveal which local configuration (Generate Port or Generator Starboard) was actually selected for the GC.

You may want to consult the following topic:

Glyn Costello selected this answer as the correct answer

Comments
Glyn Costello commented Oct 01 '21, 11:30 a.m.

 Ok, this makes sense and I have tried it in the test area. So basically, if a user was viewing the Motor component's RM artifacts in the context of the "Vessel 1" the local RM config would be selected based on skew resolution rules (because it can't show the artifact content for both Port side and Starboard side motors). 


Tom Poulin commented Oct 01 '21, 1:02 p.m.

 Glyn, I'm not sure where the motor component fits in as I don't see it represented in the original hierarchy you shared.


But if Vessel 1 is the context GC, then Generator Port would be the chosen local configuration per skew resolution, because it appears before the other candidate, Generator Starboard. Therefore the RM artifacts you see would be from Generator Port.

You can try this clicking setting the RM configuration context to Vessel 1. Then, expand the configuration context menu and see the local configuration that was chosen (Generator Port).


Tom Poulin commented Oct 01 '21, 1:02 p.m.
Also, from the GC hierarchy in GCM, try clicking each of the RM contributions. If you click the non-preferred one, a disambiguation dialog will appear prior to navigating you to RM. If you proceed with the non-preferred selection, RM will be opened in the context of that local configuration only, with no GC. That's because showing the GC in this case would be misleading - any links for the GC would be with respect to the preferred configuration (Generator Port), not Generator Starboard.

Geoffrey Clemm commented Oct 02 '21, 9:12 a.m. | edited Oct 08 '21, 12:14 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

I agree with all of Tom's comments, except for the "skew is not necessarily wrong" comment.   I believe that using a GC with skew will virtually always result in significant user confusion, and very likely significant errors (for the reason TomK identifies in his answer).   I believe the only purpose of skew is to allow you to temporarily be in a skewed state as you transition to a new configuration, but that you should never leave a configuration in a skewed state.   If you need to have two "variants" of a component in the same system, I recommend having a separate component for each variant.

One other answer



permanent link
Thomas Kirstätter (181415) | answered Sep 20 '21, 9:13 a.m.
Hello,
as per my knowledge, this will cause "Component Skew" with a corresponding warning in the GC.
It is possible to have the same configuration of a contribution twice in a GC (same BL or same Stream) but 2 different configurations of the same component will result in skew.

The impact afaik is e.g.:
- Link resolution will not work as expected
- reporting may not work as expected.

Comments
Glyn Costello commented Sep 20 '21, 9:40 a.m.

 Is it still "Skew" if they were under their own global configuration in the GC hierarchy?


i.e. 

GC: Vessel 1
> GC: Generator Port
>> RM: Generator Port
> GC: Generator STBD
>> RM: Generator STBD


Thomas Kirstätter commented Sep 20 '21, 9:43 a.m.

this does not make a difference.


Tom Poulin commented Oct 01 '21, 1:11 p.m.

It's still skew if you're using the same root GC, Vessel 1, because the two configurations of the same component have a common ancestor. But, if each of your skewed RM configurations had their own GC, and you set your RM context to one of those GCs, then there would be no skew at that level of the hierarchy. That is, if the you narrow the scope of your context, you may be able to eliminate skew in that context.


For instance, if you select "GC: Generator STBD" in the GC hierarchy from GCM and choose the action "Show as root", the component skew notification will go away, because "RM: Generator Port" doesn't exist in that context.


Tom Poulin commented Oct 01 '21, 1:19 p.m.

So, if you have skew at the top level of the hierarchy, but still want users to be able to work on a non-preferred local configuration in some (narrower) GC context, introducing an intermediate GC like "GC: Generator STBD" is a way to achieve this. That makes the most sense if you have other contributions in that same narrower context, such as a QM configuration with test cases for that RM configuration's requirements. As long as you use "GC: Generator STBD" as your GC context in RM, links between those RM and QM contributions will be resolved within that narrower context, which is what you want.


Tom Poulin commented Oct 01 '21, 1:20 p.m.

But, if you try to resolve such links in a broader context (say Vessel 1), then the skew resolution rules are going to use "RM: Generator Port" rather than "RM: Generator STBD". 

Your answer


Register or to post your answer.