Instances with part-carrying Slots

If the definingFeature of a Slot is typed by a Block - i.e. if it is a block property that is part property or a reference property - the Slot will carry an instance of a Block, the Slots of which may in turn carry simple values or other block properties:
Click on the image to view it full size
Dependency relationships indicating Types in this diagram are for illustration only
Note that the defaultValue of any block property (part property or reference property) may also be a instance typed by a Block; this mechanism is extremely important for representing value configurations of systems.

(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.

Up next
Snippets (quotes/extracts)
Visit also
Visit also (backlinks)
Related slides (includes other tutorials)
Related slides (backlinks, includes other tutorials)