Syntax ain't Semantics! Spot a problem in this model? The text statement it is attempting to capture in SysMLv1 is:
'The tornado chaser plane "has" a chaser car "with" a chaser team.'
The 'has' and 'with' in the text statement have both been interpreted as 'composite' aggregation, so the poor people corresponding to the part :ChaserTeam
, which has 'composite' aggregation as a part within :ChaserCar
(itself incorrectly modelled as a 'composite' part within the ChaserPlane
Block), are now stuck up in the sky in a flying along with the :ChaserPlane
(as shown here using instances)!
The ChaserTeam
is a custom SysML-style block-based "actor" with the Stereotype keyword «actor»:
So although use of AggregationKind 'composite' for :ChaserTeam
is not semantically correct here, it is syntactically allowed in SysMLv1, as often used for "actor parts" in SystemContext IBDs.
SysMLv1 has aggregation kind 'shared'. That lends itself perhaps to the 'with' in 'chaser car with a chaser team' for :ChaserTeam
within the ChaserCar
, and might given them a way out of their predicament.
But it's that use of 'composite' for :ChaserCar
for 'The tornado chaser plane has a chaser car' that has caused them big trouble. The :ChaserCar
is now a part of the plane, hence its scary appearance up in the sky carried along by the flying chaser plane that is chasing a tornado!
The solution? Use a reference property instead with AggregationKind 'none' for :ChaserCar
within ChaserPlane
.
Officially in SysMLv1:
But informally the term shared property is used, although it does not appear in a separate compartment from references on SysMLv1 Block symbols.