SysML 2.0b2 FTF Avatar
  1. OMG Issue

SYSML2 — validateTriggerInvocationExpressionAfterArgument constraint is too strong

  • Key: SYSML2-497
  • Status: closed  
  • Source: Model Driven Solutions ( Mr. Ed Seidewitz)
  • Summary:

    The approved resolution to SYSML2-28 includes adding the constraint validateTriggerInvocationExpressionAfterArgument, which requires:

    If a TriggerInvocationExpression has kind = after, then it must have an argument Expression with a result that conforms to the type ISQ::DurationValue.

    However, in a typical relative time trigger such as, e.g., after 10[SI::s], the result of the expression 10[SI::s] is not a DurationValue. Rather it is a ScalarQuantityValue whose mRef is the DurationUnit SI::s. Therefore, this example time trigger violates validateTriggerInvocationExpressionAfterArgument as specified in the resolution to SYSML2-28.

  • Reported: SysML 2.0b1 — Fri, 27 Oct 2023 09:31 GMT
  • Disposition: Resolved — SysML 2.0b2
  • Disposition Summary:

    Revise validateTriggerInvocationExpressionAfterArgument

    Since a DurationValue is already required to have an mRef that is a kind of DurationUnit, the easiest revision is to require that the argument result conform to ScalarQuantityValue and have an mRef that conforms to DurationUnit. Here, "having an mRef" more precisely means "having a feature that directly or indirectly redefines mRef". (Note that the Type::redefinesFromLibrary only checks for direct redefinition, so it cannot be used here.)

  • Updated: Tue, 1 Jul 2025 14:50 GMT