Skip to content

2024-02 - SysML v2 Pilot Implementation

Compare
Choose a tag to compare
@seidewitz seidewitz released this 07 Mar 19:17
· 174 commits to master since this release

This is an incremental update to the 2024-01 release. It corresponds to Eclipse plugin version 0.39.0.

New Features

KerML

  1. Comment locale. In the KerML abstract syntax, a Comment may have a locale specified, which includes "identification of the language of the body text and, optionally, the region and/or encoding", using the international standard notation. The textual notation has now been updated to allow the locale to be specified for a comment.

    locale"en_US" /* This is US English comment text. */

    [PR #540]

  2. Keywords on metadata. User-defined keywords are now allowed on metadata features. (Keywords were already allowed on metaclasses.)

    #keyword metadataM;

    [PR #540]

SysML

  1. Comment locale. The SysML textual notation has been updated to allow the locale for a comment to be specified, using the same syntax as given for KerML above.
    [PR #542]

  2. Perform action effective names. Previously, the effective name of a perform action usage was given solely by the name of its performed action (and similarly for exhibit state usages and include use case usages). If the perform action usage did not specify a performed action, and had no declared name, then it also had no effective name. This has now been changed so that a perform action usage without a performed action acts like a regular usage, so that, if it has a redefinition, that determines its effective name.

    abstract part def P {
        abstract perform action A;
     }
     abstract part def P1 :> P {
         abstract perform action redefines A; // Effective name is "A".
     }
     part def P2 :> P {
         perform B redefines A; // Effective name is "B".
     }
    

    [PR #542]

  3. Keywords on metadata and enumerations. User-defined keywords are now allowed on metadata definitions, metadata usages, enumeration definitions and enumerated values within enumeration definitions (keywords were already allowed on enumeration usages other than enumerated values).

    #keyword metadata defM;
    #keyword metadataM;
    #keyword1 enum defE {
        #keyword2 enume;
    }

    [PR #542]

Backward Incompatibilities

  1. Exponentiation. Previously the exponentiation operators (** and ^) where left-associative, similarly to the additive and multiplicative operators. That is, an expression such as 2 ^ 3 ^ 4 was parsed as (2 ^3) ^ 4. This has been changed so that the exponentiation operators are right-associative, which is the normal expectation for exponentiation. So, 2 ^ 3 ^ 4 now parses as 2 ^ (3 ^ 4).
    [PR #540]

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-22 Name all associations in the KerML abstract syntax
    • KERML-82 checkConnectorTypeFeaturing is not correct
    • KERML-98 Comment Locale not in textual notation
    • KERML-165 Exponentiation should be right-associative
    • KERML-307 User-defined keywords are not allowed on metadata features

    [PR #540]

  2. KerML Model Libraries. Various models in the Kernel Model Libraries have been updated consistent with the resolutions to the following KerML FTF issues. In addition, the .meta.json and .project.json files in the model library directories have been updated to reflect the new normative KerML URI https://www.omg.org/spec/KerML/240201 and the versions have been updated to 1.0.0-beta2.

    • KERML-45 LinkObject is irreflexive
    • KERML-46 Intersection missing for some multiple specializations
    • KERML-120 FlowTransferBefore needs end feature declarations

    [PR #541]

SysML

  1. SysML Metamodel. The SysML abstract and concrete syntax has been updated consistent with the resolutions to the following SysML v2 FTF issues.

    • SYSML2-85 Effective name is not correct for a redefined perform action usage
    • SYSML2-553 checkRequirementUsageObjectiveRedefinition is incorrect
    • SYSML2-631 User-defined keywords are not allowed on metadata
    • SYSML2-637 User-defined keywords are not allowed on enumeration definitions [see note]
    • SYSML2-643 Comment locale not in textual notation
    • SYSML2-783 Parsing KerML Feature elements from SysML textual notation

    [PR #542]

  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. In addition, the .meta.json and .project.json files in the model library directories have been updated to reflect the new normative SysML URI https://www.omg.org/spec/SysML/240201 and the versions have been updated to 2.0.0-beta2. KerML library projects are now required to be version 1.0.0-beta2.

    • SYSML2-158 Example FrontAxle definition
    • SYSML2-634 VerificationCase::subVerificationCases is typed incorrectly

    [PR #543]

Jupyter

None.

Visualization (PlantUML)

  1. Connection ends in compartments. The text for connection ends shown in compartments has been improved to be less cluttered, showing the just names of the referenced features.
    [PR #537]

Technical Updates

  1. Metamodel files. The metamodel files listed below have been updated. The metamodel URIs have been updated with the new date stamp used for the Beta 2 submission to OMG:
    https://www.omg.org/spec/KerML/20240201
    https://www.omg.org/spec/SysML/20240201

    org.omg.sysml/model

    • SysML.uml
    • SysML_only.uml
    • KerML_only.uml
    • SysML_xmi.uml
    • SysML_only_xmi.uml
    • KerML_only_xmi.uml
    • SysML.ecore
    • kerml.ecore

    [PR #534]

  2. Schema files. The following JSON schema files have been updated for the new URIs.

    org.omg.sysml/json-schema

    • KerML.json
    • SysML.json

    [PR #534]

Bug Fixes

  1. Inherited reference rendering. Corrected references to graphical renderings of inherited elements in the SHOWINHERITED style.
    [PR #538]
  2. Lifeclass implicit specializations. Corrected the required implied specialization by a LifeClass of its containing individualDefinition.
    [PR #546]
  3. direction property serialization. Fixed the missing serialization to XMI of the direction property of parameters owned via ParameterMembership.
    [PR #547]
  4. elementId property serialization. Fixed the missing serialization to XMI of the elementId property of standard LibraryPackages.
    [PR #549]