-
Key: SYSML17-389
-
Status: open
-
Source: Elparazim ( Edward Roberts)
-
Summary:
I believe the reason Lower and Upper were added into the standard was to allow for multiplicities that did not follow the multiplicity rules of the standard... I have an example... and I think an example should be in the standard to clarify this mystifying need for lower and upper... because it is not clear really why they are needed...
suppose I have the following
part1[3..4]
part2[3..7]
part3[4..6]and I want to bind a BoundReferece x to part1.part2.part3 in block y... now I can take several approaches...
1. <<boundReference>> x:Part3 [*[ - this removes the double maintenance problem when multiplicities of the paths change does not restrict anything
2. <<boundReference>> x:Part3 [36..168] - this mimics the multiplicities of the path, so really no restriction
3. <<boundReference>> x:Part3 [2..10] - this restricts the number of part3s that there can be at the end of that pathoption 3 could have also been specified as
{lower=2,upper=10}
<<boundReference>> x:Part3 [*]now block z specializes block x and I have another property a such that
{redefines x,lower=5,upper=20}
<<endPathMultiplicity>> a:Part3[*[but this only works if x has multiplicity * otherwise
{redefines x}
<<endPathMultiplicity>> a:Part3 [5..20[if x is <<boundReference>> x:Part3 [2..10] does not work
because 5..20 is not a restriction of 2..10This is why lower and upper can be different (but constrained by) the multiplicity
-
Reported: SysML 1.6 — Sun, 25 Oct 2020 14:00 GMT
-
Updated: Tue, 27 Oct 2020 19:38 GMT