2023-10 - SysML v2 Pilot Implementation
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
-
New KerML validation constraints. Checks have been implemented for the following new constraints, applying to both KerML and SysML:
validateRedefinitionDirectionConformance
– If theredefinedFeature
of aRedefinition
hasdirection
in
orout
, then theredefiningFeature
must have the samedirection
. If theredefinedFeature
hasdirection
inout
, then theredefiningFeature
must have a non-nulldirection
.validateExpressionResultExpressionMembership
– AnExpression
must have at most oneResultExpressionMembership
.validateFunctionResultExpressionMembership
– AFunction
must have at most oneResultExpressionMembership
.validateFeatureValueOverriding
– AllFeatures
directly or indirectly redefined by thefeatureWithValue
of aFeatureValue
must have only defaultFeatureValues
.
[PR #504]
-
New SysML validation constraints. Checks have been implemented for the following new constraints, applying only to SysML:
validateAssignmentActionUsageArguments
– AnAssignmentActionUsage
must have two argumentExpressions
.validateAssignmentActionUsageReferent
– AnAssignmentActionUsage
must have anownedMembership
that is not anOwningMembership
and whosememberElement
is aFeature
.validateForLoopActionUsageLoopVariable
– The firstownedFeature
of aForLoopActionUsage
must be aReferenceUsage
.validateForLoopActionUsageParameters
– AForLoopActionUsage
must have two ownedinput
parameters
.validateIfActionUsageParameters
– AnIfActionUsage
must have at least two ownedinput
parameters
.validateWhileLoopActionUsage
– AWhileLoopActionUsage
must have at least two ownedinput
parameters
.validateTriggerInvocationExpressionAfterArgument
– If aTriggerInvocationExpression
haskind = after
, then it must have an argumentExpression
with aresult
that conforms to the typeISQ::DurationValue
.validateTriggerInvocationExpressionAtArgument
– If aTriggerInvocationExpression
haskind = at
, then it must have an argumentExpression
with aresult
that conforms to the typeTime::TimeInstantValue
.validateTriggerInvocationExpressionWhenArgument
– If aTriggerInvocationExpression
haskind = when
, then it must have an argumentExpression
with aresult
that conforms to the typeScalarValues::Boolean
.validateAssertConstraintUsageReference
– If anAssertConstraintUsage
has anownedReferenceSubsetting
, then itsreferencedFeature
must be a ConstraintUsage.validateSatisfyRequirementUsageReference
– If aSatisfyRequirementUsage
has anownedReferenceSubsetting
, then itsreferencedFeature
must be aRequirementUsage
.
[PR #506]
-
Feature values on connections. The textual notation now supports declaring connection usages and interface usages with feature values:
abstract connection
c1
;
abstract connection
c2 = c1; // Previously did not parse.
connection
c3 = c1
connect
a to b; // Previously did not parse.
[PR #505]
-
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 rendering
name : Def [m] ... ;
The previous notation
render
r
; then effectively becomes a shorthand forrender rendering references
r;
.[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
- Validation constraints. The newly implemented validation constraints (particularly
validateRedefinitionDirectionConformance
andvalidateFeatureValueOverriding
) may cause some models that previously passed validation to now fail.
Jupyter
None.
Visualization
-
PlantUML
None. -
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]