2025-07 - SysML v2 Pilot Implementation
This is an incremental update to the 2025-06 release. It corresponds to Eclipse plugin version 0.51.0.
Language Features
Bug fixes.
Model Libraries
Kernel Semantic Library
-
Name collisions. The following models were updated to avoid name collisions due to diamond inheritance:
FeatureReferencingPerformancesObjectsObservationOccurrencesTransfers
[PR #679]
-
Transfers. The features
transfersandmessageTransfersare now steps instead of flows. As a result, these features no longer have spurious implied subsettings offlowTransfers.
[PR #682] -
Transition performances. In the
TransitionPerformancemodel, inTransitionPerformance::accept, the nested redefinition ofreceivewas removed and replaced with a binding connector. This allows thereceiveparameter of theaccepterin a SysMLTransitionUsageto be redefined and bound.
[PR #683]
Kernel Function Library
- Name collisions. The
VectorFunctionsmodel was updated to avoid name collisions due to diamond inheritance.
[PR #679]
Systems Library
-
Trade studies. The
TradeStudiesmodel forTradeStudyObjectiveshas been updated to avoid validation errors when the objective of aTradeStudyis redefined as intended, to give it a concrete type such asMinimizeObjectiveorMaximizeObjective.
[PR #676] -
Name collisions. The following models were updated to avoid name collisions due to diamond inheritance:
ActionsConnectionsFlowsItemsMetadataPartsPortsSysMLViews
[PR #679]
-
Flows. The flow definition
Messageand the flow usagemessagesno longer have owned end features. As a result,messagesno longer has a spurious implied subsetting offlows.
[PR #682] -
Assignments. In the
Actionsmodel, inAction::assignments, a nested owned parametertargetwas added. This ensures that the parameters redefined by anActionUsagearetargetandreplacementValues, in that order.
[PR #683]
Geometry Domain Library
-
Name collisions. The following models were updated to avoid name collisions due to diamond inheritance:
ShapeItemsSpatialItems
[PR #679]
Quantities and Units Domain Library
- Name collisions. The following models were updated to avoid name collisions due to diamond inheritance:
SIUSCustomaryUnits
Requirement Derivation Domain Library
- Name collisions. The
DerivationConnectionsmodel was updated to avoid name collisions due to diamond inheritance.
Backward Incompatibilities
-
Subjects and objectives. Previously, if a requirement definition/usage or case definition/usage was parsed without an owned subject and/or objective, then a subject or objective element was physically inserted into the parse tree by the relevant adapter. Starting with this release, these insertions are no longer being done, which is more conformant with the SysML specification. However, the previous insertion of subjects meant that the validation checks for the subject being the first parameter were satisfied even if the subject was not declared explicitly and there were additional parameters. This is no longer necessarily the case.
For example, the following requirement definition would previously have not produced an error, but now results in a "Subject must be first parameter" validation error.
requirement def R { // Error: Subject must be first parameter. in x; }In particular, stakeholders and actors are kinds of parameters, so a subject must always be explicitly declared if stakeholders and/or actors are also declared.
concern c { subject; // Required to avoid error. stakeholder s; } use case uc { subject; // Required to avoid error. actor a; }Note that this is the case even when specializing a supertype with an inheritable subject:
use case uc1 { subject subj; } use case uc2 :> uc1 { subject subj; // Implied redefinition of uc1::subj. actor a; } use case uc3 :> uc, uc1 { subject; // Required to avoid "Only one subject is allowed" error. }[PR #677]
-
Validation. Existing models may now get distinguishibility warnings that were not previously generated. For example, the following model previously did not cause a warning, but now it does as indicated.
part def Vehicle { part wheels [2..*] : Wheel; } part def Car :> Vehicle { part :>> wheels [3..4]; } part def Truck :> Vehicle { part :>> wheels [4..18]; } part def SUV :> Car, Truck; // Warning: Duplicate of inherited member name 'wheel'The warning can be removed by redefining both
Vehicle::wheelsandTruck::wheelswithinSUV:part def SUV :> Car, Truck { part :>> Car::wheels, Truck::wheels; }[PR #679]
-
Spatial items. The item definition
SpatialItems::SpatialItemfrom the Geometry Model Library redefines the featurelocalClockso that it is typed byTime::Clockfrom the Quantities and Units Domain Library. However,localClockis also redefined inOccurrences::Occurrence::suboccurrences, which is indirectly specialized byItems::Item::subitems. As a result, declaring a subitem that is aSpatialItemwithin anotherSpatialItemnow results in a warning.item def SpacialItemWithSubitem :> SpatialItem { // Warning: Duplicate of inherited name 'localClock' from SpatialItem, suboccurrences item aSubItem : SpatialItem; // implied subsetting of subitems }In order to avoid having to further redefine
localClockwithin every such subitem declaration, additional features have been added toSpatialItem:subSpatialItems– Subset this for subitems that areSpatialItems.subSpatialParts– Subset this for subparts that areSpatialItems.componentParts– Subset this for component items that are parts (instead of subsettingcomponentItems).
item def SpacialItemWithSubSpacialItems :> SpatialItem { item aSubSpaitalItem :> subSpatialItem; part aSubSpaitalPart :> subSpatialPart; } item def SpacitalItemWithComponents :> SpatialItem { item aComponentItem :> componentItems; // Per specification part aComponentPart :> componentParts; }[PR #679]
-
Messages. The end features
sourceandtargetofMssages::MessageandMessages::messagesare now inherited and are no longer occurrence usages. This means that they cannot be used as the referenced occurrences in an event occurrence usage. However, this is appropriate, because the referenced events for a message should instead besourceEventandtargetEventwhich are still occurrence usages.
[PR #682] -
Binary connectors/connections. Correction of the
validateConnectorBinarySpecializationcheck may result both in cases in which a previously valid connector/connection declaration becomes invalid or a previously invalid declaration becomes valid.
[PR #682]
Issue Resolutions
The KerML 1.1 ans SysML 2.1 RTFs have not yet approved any issue resolutions. However, this release includes proactive resolutions to the following issues to correct library models, largely to avoid validation errors that have now been identified due to corrections in validation checking.
KerML
- KERML11-76 Library models have inherited member name collisions
- KERML11-78 Transfers::transfers and Transfers::flowTransfers subset each other
- KERML11-79 TransitionPerformance::accept is incorrect
SysML
- SYSML21-318 Diamond inheritance problem with TradeStudy
- SYSML21-322 Library models have inherited member name collisions
- SYSML21-324 Flows::messages and Flows::flows subset each other
- SYSML21-327 AssignmentAction parameters get reordered
Jupyter
None.
Visualization (PlantUML)
None.
Technical Updates
None.
Bug Fixes
- Conditional succession. Fixed the setting of the source of a shorthand conditional succession.
[PR #678] - isDistinguishableFrom. Corrected the implementation of the
Membership::isDistinguishableFromoperation.
[PR #680] - Implied binding connectors. Corrected the insertion of implied binding connectors during XMI or JSON export.
[PR #681] - Binary connector validation. Corrected the implementation of the check of the constraint
validateConnectorBinarySpecializationto properly handle redefined features when counting connector ends.
[PR #682] - Parameters and end features. Fixed the computation of the parameters and end features of a type, particularly as used in determining the implied redefinitions of these features.
[PR #683]