Skip to content

2026-01 - SysML v2 Pilot Implementation

Choose a tag to compare

@seidewitz seidewitz released this 10 Feb 19:42
· 59 commits to master since this release

This is an incremental update to the 2025-12 release. It corresponds to Eclipse plugin version 0.56.0.

Language Features

  1. Trig function evaluation. The library functions from the TrigFunctions package are now implemented for non-model-level evaluation.
    [PR #731]

Model Libraries

None.

Backward Incompatibilities

There are no backward incompatibilities in the textual notation representation of the model. However, the in-memory EMF and serialized XMI representations have the following incompatibilities.
[PR #734]

  1. Getters and setters. The following getter and setter methods previously had special handwritten implementations, but now function as just regular getters and setters. This means that it is now the responsibility of the constructor of a model to ensure that the corresponding abstract syntax properties have values consistent with various validation constraints. For example, the isEnd property of the ownedMemberFeature of an EndFeatureMembership will no longer be automatically be true, but must be explicitly set to true to meet the validateEndFeatureMembershipIsEnd constraint. (For the textual notation, this is mostly by post-processing after Xtext parsing.)

    • CommentImpl.setBody
    • ElementImpl.setDeclaredName and setDeclaredShortName
    • FeatureImpl.isDirection and isEnd
    • FlowUsage.isAbstract
    • LiteralString.setValue
    • Membership.setMemberName and setMemberShortName
    • PortUsageImpl.isComposite
    • RequirementDefinition.setReqId
    • RequirementUsage.setReqId
    • TextualRepresentation.setLanguage and setBody
    • UsagImpl.isComposite
  2. Default value overriding. The overriding of metaproperty default values is now implemented by setting the property to the appropriate default value in the constructor for a metaclass Impl, rather than by overriding the getter for the property. It is now possible to subsequently change the value from the default, even if this would violate a validation constraint. For example, when an AttributeUsage is created, the default value for isComposite is false, but it is possible to use the setIsComposite method to set this to true, even though this would violate the validateAttributeUsageIsReferential constraint.

  3. Validation. The following validation constraints were previously not being checked, since they were automatically satisfied due to getter overrides. Since these getter overrides have now been removed, checks have been implemented for all the constraints.

    KerML

    • validateEndFeatureMembership
    • validateParameterMembership
    • validateCollectExpressionOperator
    • validateFeatureChainExpressionOperator
    • validateIndexExpressionOperator
    • validateSelectExpressionOperator
    • validateFlowEndIsEnd

    SysML

    • validateUsageIsReferential
    • validateReferenceUsageIsReferential
    • validateAttributeUsageIsReferential
    • validateEnumerationDefinitionIsVariation
    • validateEventOccurrenceUsageIsReference
    • validatePortUsageIsReference
  4. XMI serialization. The default for the Feature::isComposite property is false. Since XMI is usually serialized without including properties that have their default value, this means that isComposite=false should not be serialized. However, this previously was being serialized in the case of SysML usages that were required to be referential (i.e., always have isComposite=false). It is no longer being serialized in these cases. This effects the following elements:

    • AttributeUsage
    • BindingConnectorAsUsage
    • EventOccurrenceUsage
    • ExhibitStateUsage
    • IncludeUseCaseUsage
    • PerformActionUsage
    • ReferenceUsage
    • SuccessionAsUsage

    Note. This affects the XMI serialization of the standard library models.

Jupyter

None.

Visualization (PlantUML)

Bug fix.

Technical Updates

  1. Eclipse environment. The Eclipse environment required for Pilot Implementation development has been updated to the 2025-12 release (Java 21).
    [PR #732]
  2. EMF metamodel implementation. A number of updates have been made to remove handwritten code from EMF-generated Java Impl classes and to make the abstract syntax implementation more strictly conformant to the KerML and SysML specifications. This should have no effect on user modeling using the textual notation. However, there are some functional changes in the direct programmatic access to the abstract syntax representation of a model (see the items under "Backwards Incompatiblities" above).
    [PR #734]

Bug Fixes

  1. getImportedMembership. Fixed an infinite recursion caused by a circular recursive import when calling getImportedMembership.
    [PR #729]
  2. Inherited connections (PlantUML). Corrected the rendering of nested inherited connections with SHOWINHERITED style.
    [PR #730]
  3. getLocale. Fixed the unescaping of the locale of a comment.
    [PR #735]