Tags and keywords
For better or worse, both AggregationKind::none and AggregationKind::shared qualify as determining reference properties, as long as the Property is typed by a Block, which can sometimes be confusing, as the notation for them is then the same:
SysML-1.6: 'SysML also supports properties with shared aggregation, as shown by a white diamond symbol on an association. Like UML, SysML defines no specific semantics or constraints for properties with shared aggregation, but particular models or tools may interpret them in specific ways.'
Dr Darren says:
Ah, the joys of shared aggregation. If only anyone knew what it actually means. One thing I know; just because it not easy to define the semantics sufficient for execution engines does not mean it is not immensely useful to pragmatic SysML modellers. It certainly means something to a lot of users.Here we look at just one example of how one might use shared aggregation. Consider one triangle - which be definition has three edges - that shares one of those edges with another triangle. Good ol' Wikipedia tells us that:
In geometry, an edge is a particular type of line segment joining two vertices in a polygon... In a polygon, an edge is a line segment on the boundary, and is often called a side.So in the diagram there is a block
Triangle
that shares 3 edge
Properties of block type LineSegment
. We see next how this might be represented in an object model