Tags and keywords
(We'll see later how this can be used for representing "deep" configurations of a system using the SysML context-specific values mechanism; but for now, we'll just examine one level of value configuration.)
You can use a "link" (a special form of InstanceSpecification) to relate two instances together; the tool also knows how to identify and match Slots and any candidate Associations, and it will prompt you to perform Slot assignments and choose a compatible Association if one exists.
In the example, there is a link :OB-BWV
from defaultOuter:OuterBlock
to instance defaultPart:BlockWithValues
, which has been assigned to the Slot 'part'. The link is typed by the Association OB-BWV
.
The instance defaultPart:BlockWithValues
also has Slots for each of the Features of BlockWithValues
, but it has overridden all of the default values! So one level of re-configuration has been performed in the context of BlockWithValues
through assignment of defaultPart:BlockWithValues
as the default 'part'.
You don't have to use explicit links, you can just assign to the Slots directly (which approach one might use if there is no explicit Association). One can reinforce the assignment using visual nesting, but please be aware that:
The visual nesting of instance customPart:BlockWithValues
within customOuter:OuterBlock
indeed corresponds to the assignment of customPart:BlockWithValues
to the 'part' Slot of customOuter:OuterBlock
, but that's purely a drawing device.
The Slot 'part' of instance customOuter:OuterBlock
has overridden the default 'part' with an instance customPart:BlockWithValues
, which has in turn redefined all value Slots. So we have a 2nd level of value re-configuration.