Skip to content

2026-09 - SysML v2 Pilot Implementation

Choose a tag to compare

@seidewitz seidewitz released this 22 Oct 22:05
· 9 commits to master since this release

This is an incremental update to the 2026-08 release. It corresponds to Eclipse plugin version 0.63.0.

Language Features

Default Multiplicity. Previously, default multiplicities were not applied if a usage had explicit owned subsettings, including owned redefinitions, largely consistent with the SysML specification. However, this leads to cases in which intuitively equivalent declarations had different default multiplicities. For example:

attribute m1 : ISQ::MassValue; // Multiplicity 1..1
attribute m2 :> ISQ::mass;     // Multiplicity 0..* (inherited from ISQ::mass)

This has now been changed so that a usage with an explicit, non-redefinition owned subsetting does get the SysML 1..1 default multiplicity. But a usage with explicit owned redefinitions still does not get a default multiplicity.

For the specification, it is expected that this situation will be handled as part of the resolution to SYSML21-185 ("Default multiplicities are not formally specified").
[PR #815][PR #821]

Model Libraries

None.

Backward Incompatibilities

Default Multiplicity. The change in the default multiplicity criteria described under "Language Features" above will result in usages with explicit, non-redefinition owned subsettings getting a default multiplicity of 1..1, when they didn't before. Since multiplicity 1..1 is almost always valid for a subsetting feature (the only exception being if the subsetted feature has multiplicity 0..0), it is unlikely that this change will result in syntactic errors in existing models, though it may result in multiplicity violations in the interpretation of some models.
[PR #815][PR #821]

Issue Resolutions

None.

Jupyter

None.

Visualization (PlantUML)

None.

Technical Updates

  1. Standalone Setup. Standalone SysML logic initialization (not requiring Eclipse plugins beyond EMF) and model-library name resolution has been stabilized in case the serializer, parser, or another client initializes the logic layer more than once.
    [PR #812]
  2. Model Mutation. Previously, the implementation physically added default multiplicities and certain expression result parameters to the model via adapter methods. These could be triggered on-demand while executing a call to a getter, resulting in model mutation, which is undesirable for getter methods. To avoid this, these model mutations have been moved to corresponding post-processors, which means they happen once for each relevant element, just after parsing, eliminating the need for them to be triggered again later.
    [PR #815][PR #818][PR #821]

Bug Fixes

  1. Connection and flow defs. Adds validation checks that the end features of connection definitions and flow definitions are usages.
    [PR #805]
  2. multiplicity derivation. Fixes the derivation computation for the property Type::multiplicity and the implementation of th constraint validateTypeOwnedMultiplicity.
    [PR #809][PR #820]
  3. Reflective abstract syntax evaluation. Fixes model-level evaluation to allow the evaluation of abstract syntax properties with enumeration types.
    [PR #816]
  4. Metadata stack overflow. Fixes a bug that causes a StackOverflowError when a metaclass/metadata definition is annotated with itself.
    [PR #817]