usage-variation-specialization
Available in: SysML
This checks that variation usages do not specialize other variations.
Specification
A
variationUsagemay not specialize anyvariationDefinitionorUsage.
Example
variation part def P;
variation part d : P; // error: A `variation` must not specialize another `variation`
To fix this, do not specialize other variations:
variation part def P;
variation part d; // ok
Or specialize non-variations:
part def P;
variation part d : P; // ok
Due to semantic constraints where variant usages must specialize the owning variation,
variants must not be variations themselves:
variation part def P {
variant variation part p; // error: A `variant` cannot itself be a `variation`
variant part q; // ok
}