2024-07 - SysML v2 Pilot Implementation
This is an incremental update to the 2024-05 release (there was no 2024-06 release). It corresponds to Eclipse plugin version 0.43.2.
New Features
None.
Backward Incompatibilities
-
Import visibility.
- All imports (other than view usage expose declarations) now have
private
visibility by default in the KerML and SysML v2 abstract syntax models. In the textual notation, it will be mandatory to declare the visibility explicitly, even forprivate
. However, in order to allow a transitional period, import declarations without an explicit visibility indicator will continue to be defaultpublic
, but will give a warning message: "Default public import is deprecated; make private if possible". Import declarations with this warning will result in syntax errors in the next release. - In addition, imports at the top-level in a model (that is, not nested in any other namespace, and, so, importing into the "root namespace") are now required to be
private
. (This prevents the "re-export" of names imported into a root namespace directly back into the global scope, which simplifies global name resolution.) - Expose declarations are kinds of imports. However, unlike regular imports, expose declarations are know required to have
protected
visibility. That is, elements exposed by the declaration are visible only within the exposing view usage and any specializations of that view usage. Since the visibility is alwaysprotected
, a visibility indicator is no longer part of the syntax of an expose declaration.
[PR #582]
- All imports (other than view usage expose declarations) now have
-
Action invocation. Previously, invoking a KerML behavior (as opposed to a function) or SysML v2 action definition (as opposed to a calculation definition) in an expression was specified as performing the behavior, but resulting in a
null
(empty) result value. This is now changed so such an invocation is treated as a "constructor expression" for the behavior or action, returning the behavior performance itself, which allows access to the values of any output parameters of the behavior or action. For example, in the following model, the value ofa_out
will be3
.action def A { in x; out y = x; } action a = A(x = 3); ref a_out = a.y;
[PR #582]
-
Analysis actions. The definition for
AnalysisAction
has been removed from the Systems Library modelAnalysisCases
. The subactions of anAnalysisCase
can be any kind of action, so there was no need for a special kind ofAnalysisAction
.[PR #583]
Issue Resolutions
KerML
-
KerML Metamodel. The KerML abstract and concrete syntax have been updated consistent with the resolutions of the following KerML FTF issues. Changes affecting user models are described under "Backward Incompatibilities" above.
- KERML_-37 Add derived property for targetFeature
- KERML_-67 Invocation of a non-functional behavior
- KERML_-73 Disallow public imports at root level
- KERML_-74 Make imports private by default
The resolution of the following issue from KerML FTF2 Ballot 1 was already consistent with previous implementation:
- KERML_-75 Restrict the functionality of recursive import
[PR #582]
-
KerML Model Libraries. Th reflective abstract syntax model
KerML
in the Kernel Semantic Library has been updated consistent with the resolution of the following KerML FTF issue. In addition, an explicitpublic
keyword has been added to all public imports in the textual notation for all models in the Kernel Model Libraries, consistent with the resolution to issue KERML_-74.- KERML_-65 isOrdered and isUnique are missing from the reflective abstract syntax binding
[PR #582]
SysML
-
SysML Metamodel. The SysML abstract and concrete syntax have been updated consistent with the resolutions to the following SysML v2 FTF issues. Changes affecting user models are described under "Backward Incompatibilities" above.
- SYSML2_-183 checkStateUsageExclusiveStateSpecialization and checkStateUsageSubstateSpecialization have problems
- SYSML2_-187 There is no need for AnalysisAction [also affects the model library]
- SYSML2_-207 Update language description and concrete syntax related to imports
-
SysML Model Libraries. The models
States
,AnalysisActions
andSysML
in the Systems Model Library have been updated consistent with the resolutions to the following SysML v2 FTF issues. In addition, an explicitpublic
keyword has been added to all public imports in the textual notation for all models in the Systems Model Library and Domain Model Libraries, consistent with the resolution to issue SYSML2_-207.- SYSML2_-184 StateAction::substates has an implied subsetting of exclusiveStates
- SYSML2_-187 There is no need for AnalysisAction [also affects the abstract syntax]
- SYSML2_-209 isOrdered and isUnique are missing from the reflective abstract mapping
Jupyter
None.
Visualization (PlantUML)
-
Multiplicities in nodes. Rendering of multiplicities inside node symbols is now supported, in addition to rendering multiplicities on edges. Three new style options have been added:
NODEMULTIPLICITY
– Show multiplicities in nodes. (This is the default for theTREE
view.)EDGEMULTIPLICITY
– Show multiplicities on edges.IMPLICITMULTIPLICITY
– Show implicit multiplicities as well. (Even if multiplicity is not specified explicitly for a feature, the visualizer renders the default or inherited multiplicity.)
[PR #584]
-
Bug fixes. See below.
Technical Updates
None.
Bug Fixes
-
Inherited features of non-standard libraries (PlantUML). Fixes a bug (introduced in PR #556) that caused inherited features of non-standard libraries to be wrongly hidden.
[PR #573]
-
Nested inherited features on a connection (PlantUML). Properly renders nested features referenced by connections.
[PR #574]
-
Inherited features (PlantUML). Fixes a bug (introduced in PR #561) that caused memberships of inherited features to be incorrectly rendered. Also corrects the rendering of subsettings of inherited features.
[PR #577]