2026-01 - SysML v2 Pilot Implementation
This is an incremental update to the 2025-12 release. It corresponds to Eclipse plugin version 0.56.0.
Language Features
- Trig function evaluation. The library functions from the
TrigFunctionspackage 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]
-
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
isEndproperty of theownedMemberFeatureof anEndFeatureMembershipwill no longer be automatically betrue, but must be explicitly set totrueto meet thevalidateEndFeatureMembershipIsEndconstraint. (For the textual notation, this is mostly by post-processing after Xtext parsing.)CommentImpl.setBodyElementImpl.setDeclaredNameandsetDeclaredShortNameFeatureImpl.isDirectionandisEndFlowUsage.isAbstractLiteralString.setValueMembership.setMemberNameandsetMemberShortNamePortUsageImpl.isCompositeRequirementDefinition.setReqIdRequirementUsage.setReqIdTextualRepresentation.setLanguageandsetBodyUsagImpl.isComposite
-
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 anAttributeUsageis created, the default value forisCompositeisfalse, but it is possible to use thesetIsCompositemethod to set this totrue, even though this would violate thevalidateAttributeUsageIsReferentialconstraint. -
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
validateEndFeatureMembershipvalidateParameterMembershipvalidateCollectExpressionOperatorvalidateFeatureChainExpressionOperatorvalidateIndexExpressionOperatorvalidateSelectExpressionOperatorvalidateFlowEndIsEnd
SysML
validateUsageIsReferentialvalidateReferenceUsageIsReferentialvalidateAttributeUsageIsReferentialvalidateEnumerationDefinitionIsVariationvalidateEventOccurrenceUsageIsReferencevalidatePortUsageIsReference
-
XMI serialization. The default for the
Feature::isCompositeproperty isfalse. Since XMI is usually serialized without including properties that have their default value, this means thatisComposite=falseshould not be serialized. However, this previously was being serialized in the case of SysML usages that were required to be referential (i.e., always haveisComposite=false). It is no longer being serialized in these cases. This effects the following elements:AttributeUsageBindingConnectorAsUsageEventOccurrenceUsageExhibitStateUsageIncludeUseCaseUsagePerformActionUsageReferenceUsageSuccessionAsUsage
Note. This affects the XMI serialization of the standard library models.
Jupyter
None.
Visualization (PlantUML)
Bug fix.
Technical Updates
- Eclipse environment. The Eclipse environment required for Pilot Implementation development has been updated to the 2025-12 release (Java 21).
[PR #732] - EMF metamodel implementation. A number of updates have been made to remove handwritten code from EMF-generated Java
Implclasses 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
- getImportedMembership. Fixed an infinite recursion caused by a circular recursive import when calling
getImportedMembership.
[PR #729] - Inherited connections (PlantUML). Corrected the rendering of nested inherited connections with SHOWINHERITED style.
[PR #730] - getLocale. Fixed the unescaping of the locale of a comment.
[PR #735]