Skip to content

2023-10 - SysML v2 Pilot Implementation

Compare
Choose a tag to compare
@seidewitz seidewitz released this 07 Nov 18:00
· 335 commits to master since this release
dc676ca

This is an incremental update to the 2023-08 release. It corresponds to Eclipse plugin version 0.36.0. (There was no 2023-09 release.)

Language Features

  1. New KerML validation constraints. Checks have been implemented for the following new constraints, applying to both KerML and SysML:

    • validateRedefinitionDirectionConformance – If the redefinedFeature of a Redefinition has direction in or out, then the redefiningFeature must have the same direction. If the redefinedFeature has direction inout, then the redefiningFeature must have a non-null direction.
    • validateExpressionResultExpressionMembership – An Expression must have at most one ResultExpressionMembership.
    • validateFunctionResultExpressionMembership – A Function must have at most one ResultExpressionMembership.
    • validateFeatureValueOverriding – All Features directly or indirectly redefined by the featureWithValue of a FeatureValue must have only default FeatureValues.

    [PR #504]

  2. New SysML validation constraints. Checks have been implemented for the following new constraints, applying only to SysML:

    • validateAssignmentActionUsageArguments – An AssignmentActionUsage must have two argument Expressions.
    • validateAssignmentActionUsageReferent – An AssignmentActionUsage must have an ownedMembership that is not an OwningMembership and whose memberElement is a Feature.
    • validateForLoopActionUsageLoopVariable – The first ownedFeature of a ForLoopActionUsage must be a ReferenceUsage.
    • validateForLoopActionUsageParameters – A ForLoopActionUsage must have two owned input parameters.
    • validateIfActionUsageParameters – An IfActionUsage must have at least two owned input parameters.
    • validateWhileLoopActionUsage – A WhileLoopActionUsage must have at least two owned input parameters.
    • validateTriggerInvocationExpressionAfterArgument – If a TriggerInvocationExpression has kind = after, then it must have an argument Expression with a result that conforms to the type ISQ::DurationValue.
    • validateTriggerInvocationExpressionAtArgument – If a TriggerInvocationExpression has kind = at, then it must have an argument Expression with a result that conforms to the type Time::TimeInstantValue.
    • validateTriggerInvocationExpressionWhenArgument – If a TriggerInvocationExpression has kind = when, then it must have an argument Expression with a result that conforms to the type ScalarValues::Boolean.
    • validateAssertConstraintUsageReference – If an AssertConstraintUsage has an ownedReferenceSubsetting, then its referencedFeature must be a ConstraintUsage.
    • validateSatisfyRequirementUsageReference – If a SatisfyRequirementUsage has an ownedReferenceSubsetting, then its referencedFeature must be a RequirementUsage.

    [PR #506]

  3. Feature values on connections. The textual notation now supports declaring connection usages and interface usages with feature values:
    abstract connectionc1;
    abstract connectionc2 = c1; // Previously did not parse.
    connectionc3 = c1connecta to b; // Previously did not parse.

    [PR #505]

  4. View renderings. The notation for a view rendering usage has been extended to allow the rendering to be defined locally within the containing view, rather than just allowing rendering by reference.

    render renderingname : Def [m] ... ;

    The previous notation renderr; then effectively becomes a shorthand for render rendering referencesr;.

    [PR #505]

Model Libraries

Various library models have been updated to correct violations of new KerML validation constraints, as reported in the following KerML and SysML v2 FTF issues. Note, however, that the resolutions of these issues have not yet been approved by the FTFs and, therefore, are subject to change.
[PR #504]

KerML Issues

  • KERML-182 Update Kernel Semantic Library for validateRedefinitionDirectionConformance
  • KERML-184 Update Kernel Model Libraries for validateFeatureValueOverriding constraint
  • KERML-186 Update semantic model of invariants for validateExpressionResultExpressionMembership constraint

SysML v2 Issues

  • SYSML2-491 KerML constraint requires updates to Systems Library models
  • SYSML2-492 KerML constraint requires updates to Domain Library models

Backward Incompatibilities

  1. Validation constraints. The newly implemented validation constraints (particularly validateRedefinitionDirectionConformance and validateFeatureValueOverriding) may cause some models that previously passed validation to now fail.

Jupyter

None.

Visualization

  1. PlantUML
    None.

  2. Tom Sawyer
    None.

Technical Updates

None.

Bug Fixes

Bugs reported in the following KerML and SysML v2 issues have been fixed (or mitigated) in this release. Note, however, that the resolutions to these issues have not yet been approved by the FTFs and, therefore, are subject to change.

KerML Issue

  • KERML-154 Directed features inherited from a conjugated type not handled properly

[PR #504]

SysML v2 Issues

  • SYSML2-495 Textual notation BNF for TriggerExpression is wrong
  • SYSML2-497 validateTriggerInvocationExpressionAfterArgument constraint is too strong
  • SYSML2-498 validateTriggerInvocationExpressionWhenArgument constraint is wrong
  • SYSML2-499 Assignments parsed without a target will fail validateAssignmentActionUsageArguments
  • SYSML2-500 The derivation of AssignmentActionUsage::referent is wrong

[PR #506]