Skip to content

2024-01 - SysML v2 Pilot Implementation

Compare
Choose a tag to compare
@seidewitz seidewitz released this 05 Feb 23:33
· 295 commits to master since this release

This is an incremental update to the 2023-11 release. It corresponds to Eclipse plugin version 0.38.0.

New Features

KerML

  1. Feature values on connectors. The KerML textual notation now supports declaring feature values on connectors that either have no declared ends or ends declared within their body.

    abstract connectorc1;
    abstract connectorc2 = c1; // Previously did not parse.
    connectorc3 = c1 { // Previously did not parse.
       end::> a;
       end::> b;
    }

    [PR #528]

  2. Model-level evaluable functions. Two additional model-level evaluable functions have been implemented.

    • Range construction operator '..'. An expression of the form e1...e2, in which e1 and e2 evaluate to integers, results in an ordered sequence of a range of sequential integers from the value of e1 to the value of e2, inclusive. For example, 1..3 evaluates to the sequence (1, 2, 3). If the value of e1 is greater than the value of e2, then the result is the empty sequence.
    • SequenceFunctions::excludes function. This function tests whether a value is excluded from a sequence. For example, excludes(1..3, 2) is false, while excludes(1..3, 0) is true. It is the inverse of the includes function, which was already implemented.

    [PR #526]

SysML

  1. Keywords on control nodes. In the SysML textual notation, user-defined keywords are now allowed on control nodes (i.e., merge, decision, join and fork nodes).

    #keyword forkfork1;

    [PR #531]

Backward Incompatibilities

  1. Type conjugation. The KerML textual notation no longer allows multiple conjugation parts on a type declaration (which was invalid anyway).
    [PR #528]

Issue Resolutions

KerML

  1. KerML Metamodel. The KerML abstract and concrete syntax have been updated consistent with the resolutions to the following KerML FTF issues. Other than as listed above, these changes will not affect user models.

    • KERML-7 isDirection, definition, semantics
    • KERML-21 Add property for Annotations owned by an AnnotatingElement
    • KERML-24 Connector declaration does not allow a feature value
    • KERML-61 PrimaryExpressionMember production should generate a ParameterMembership
    • KERML-75 Specify default direction for the ownedParameterMember of a ParameterMembership
    • KERML-90 The MetadataFeature::metaclass multiplicity is too restrictive
    • KERML-109 Textual Syntax allows multiple ConjugationParts on a Type
    • KERML-154 Directed features inherited from a conjugated type not handled properly
    • KERML-155 Expression::result has an incorrect subsetting
    • KERML-194 validateRedefinitionDirectionConformance does not account for conjugation
    • KERML-199 validateMultiplicityRangeBoundResultTypes constraint is too strong
    • KERML-204 Behavior portions must be classified by the same behavior they are portions of
    • KERML-232 Additional problems with deriveFeatureType
    • KERML-248 Error in Expression modelLevelEvaluable operation OCL

    [PR #528]

  2. KerML Model Libraries. Various models in the Kernel Model Libraries have been updated consistent with the resolutions to the following KerML FTF issues.

    • KERML-25 Reflective KerML abstract syntax model has inconsistencies
    • KERML-44 Spatial links can be occurrences
    • KERML-49 Some readonly features are intended to have changing values
    • KERML-158 InsideOf association end feature redefines cross feature
    • KERML-231 LinkObject disjointness is redundant

    [PR #529]

SysML

  1. SysML Metamodel. The SysML abstract and concrete syntax has been updated consistent with the resolutions to the following SysML v2 FTF issues. Other than as listed above, these changes will not affect user models.

    • SYSML2-430 Subsetting of subjectParameter properties is wrong
    • SYSML2-499 Assignments parsed without a target will fail validateAssignmentActionUsageArguments
    • SYSML2-616 User-defined keywords are not allowed on control nodes

    [PR #531]

  2. SysML Model Libraries. Various models in the Systems and Domain Model Libraries have been updated consistent with the resolutions to the following SysML v2 FTF issues.

    • SYSML2-80 Reflective SysML abstract syntax model has inconsistencies
    • SYSML2-182 Universal features can have many values (partially implemented in the 2023-11 release)
    • SYSML2-552 Errors in the TradeStudy domain model

    [PR #530]

Jupyter

None.

Visualization

None.

Technical Updates

  1. Metamodel files. The following metamodel files have been updated.

    org.omg.sysml/model

    • SysML.uml
    • SysML_only.uml
    • KerML_only.uml
    • SysML.ecore (includes both the KerML and SysML metamodels, as used in the implementation)
    • kerml.ecore (includes just the KerML metamodel, without implementation-specific custom annotations)

    (Note that the files SysML_only_xmi.uml and KerML_only_xmi.uml have not been updated.)

    org.omg.sysml.generation

    • SysML.uml

    [PR #527]

  2. Schema files. The following JSON schema files have been updated.

    org.omg.sysml/json-schema

    • KerML.json
    • SysML.json

    [PR #532]

Bug Fixes

  1. Implicit redefinitions. Adds required implicit redefinitions even if a type has (other) owned redefinitions.
    [PR #525]