Releases: Systems-Modeling/SysML-v2-Pilot-Implementation
2024-12 - SysML v2 Pilot Implementation
This is an incremental update to the 2024-11 release. It corresponds to Eclipse plugin version 0.47.0.
New Features
KerML
-
Cross subsetting. A cross feature of an end feature is specified using a new cross subsetting relationship between an end feature and its cross feature. The cross multiplicity of an end feature refers to the multiplicity of its cross feature, rather than the multiplicity of the end feature itself, which is always 1..1. The cross ordering and uniqueness of end features similarly refer to those of their cross feature.
Cross subsetting is identified by the
crosses
keyword or the equivalent symbol=>
. For example,struct LegalEntity { feature assetsOwned [*] ordered : Asset; } struct Asset { feature owningEntities [1..*] : LegalEntity; } assoc AssetOwnership { end owner : LegalEntity crosses ownedAsset.owningEntities; end ownedAsset : Asset crosses owner.assetsOwned; }
With the specified cross subsetting, creating an
AssetOwnership
link between aLegalEntity
and anAsset
means that theAsset
must be one of the aassetsOwned
by theLegalEntity
and that theLegalEntity
must be one of theowningEntities
of theAsset
. As shown above, the target of a cross subsetting relationship must be a feature chain in which the first feature is the other association end and the second feature is the cross feature for that end.Cross feature multiplicity effectively constrains the number of instances of an association. It applies to each set of instances (links) of the association that have the same (single) values for each of the other ends. For a binary association, this is the same as the number of values resulting from "navigating" across the association from an instance of one related type to instances of the other related type. Cross feature uniqueness and ordering apply to the instances navigated to, preventing duplication among them and ordering them to form a sequence.
If an end instead has an owned cross feature, the cross subsetting is implicit. The cross multiplicity, ordering and non-uniqueness can then be declared directly on an end feature, with a notation that makes it clear that these are properties of the cross feature, not the end feature itself:
assoc AssetOwnership { end [1..*] feature owner : LegalEntity; end [*] ordered feature ownedAsset : Asset; }
If no cross feature is given for an end, then its cross multiplicity is effectively
0..*
by default.Connector ends declared in the body of a connector may have cross features, specified using cross subsetting, as for association ends. The cross feature for the connector end further constrains any inherited cross feature(s). In the more common shorthand notation for connectors, the cross multiplicity (but not ordering or non-uniqueness) can be given at the before of the end's related feature (previously this was given after the related feature):
struct WheelAssembly { composite feature halfAxles[2] : Axle; composite feature wheels[2] : Wheel; // Connects each one of the halfAxles to a different one of the wheels. connector from [1] halfAxles to [1] wheels; }
[PR #608]
SysML
- Cross subsetting. The
crosses
keyword can also be used in SysML, with the same meaning as in KerML.The notation for owned cross features is also similar:part def LegalEntity { ref part assetsOwned [*] ordered : Asset; } part def Asset { ref part owningEntities [1..*] : LegalEntity; } connection def AssetOwnership { end part owner : LegalEntity crosses ownedAsset.owningEntities; end part ownedAsset : Asset crosses owner.assetsOwned; }
As is the shorthand notation for connection usages (including interface usages):connection def AssetOwnership { end [1..*] part owner : LegalEntity; end [*] ordered part ownedAsset : Asset; }
In addition, for SysML, end features always have a default multiplicity ofpart WheelAssembly { part halfAxles[2] : Axle; part wheels[2] : Wheel; // Connects each one of the halfAxles to a different one of the wheels. connect [1] halfAxles to [1] wheels; }
1..1
, even for kinds of usages that would otherwise not have that default if they were not ends.
[PR #608] - Transfers across interfaces. The semantic library models for ports and interfaces have been updated to formalize the semantics for the automatic targeting of a transfer outgoing from a port at one end of an interface to a port at another end of the interface. That is, if an send action is used to initiate a transfer via a port, then, if that port is at one end of a binary interface, that transfer will automatically target the port at the other end of the interface, and the transfer can then be accepted via that target port. However, a transfer can only have one target, so, if a port is connected to an interface with more than two ends, or to multiple interfaces, the transfer will be targeted to exactly one of the possible target ports across all other interface ends.
[PR #610]
part def DistributedSystem { item def Request; item def Response; part client { port clientPort; action clientBehavior { send Request() via clientPort; then accept Response via clientPort; } } part server { port serverPort; action serverBehavior { accept Request via serverPort; then send Response() via serverPort; } } // Transfers from the clientPort automatically target the serverPort // and vice versa. interface client.clientPort to server.serverPort; }
Backward Incompatibilities
- Reserved words. New KerML and SysML keyword:
crosses
- Flow connections. Flow connection usages are no longer kinds of structural connection usages (which are kinds of part usages). This has no effect on the concrete syntax or behavioral semantics of flows. But it means that, in the abstract syntax, flow connection usages will no longer appear in the list of
ownedParts
of aDefinition
or thenestedParts
of aUsage
. However, they do still appear in the lists ofownedConnections
/nestedConnections
(since they are still kinds of KerML connectors). Semantically, composite flows are also no longersubparts
of a containingItem
orPart
, but they remain assubactions
of a containingAction
. The model library elements related to flow connections have been move out of the library packageConnections
to the new packageFlowConnections
.
[PR #607] - Cross features. Formerly, cross multiplicities were specified directly on end features, even though this meant they had a different semantics than multiplicities on regular features. With the introduction of cross features, the multiplicity of end features is now required to be
1..1
(like participant properties in SysML v1). Giving an end feature a multiplicity other than1..1
currently results in a warning, but this will become an error in the future. However, multiplicities in the old position on connector or connection ends in the shorthand notation will result in syntax errors. In either case, the multiplicity should be moved to the position of a cross multiplicity (as shown above).
[PR #608] - Structure/behavior validation. Validations have been added such that a KerML structure cannot specialize a behavior, and vice versa. In SysML, kinds of structures include definitions of items, parts, ports, metadata, renderings and connections (but not flows). Kinds of behaviors include definitions of actions, states, constraints, requirements, cases, views and flows.
[PR #609] - Feature chain expressions. The target of the implied subsetting of the result of a feature chain expression has been updated to be the feature chain of the expression rather than just the final target feature. This has no affect on end-user models.
[PR #611] - Index expressions. Index expressions are now parsed to a new
IndexExpression
metaclass in the abstract syntax. This has no affect on end-user models.
[PR #611] - Annotations. The abstract syntax for annotations has been revised so that an annotation relationship must be owned be either its annotated element or its annotating element. These were already the only possibilities when parsing from the textual notation.
[PR #611] - Transitions. Transitions in a state model whose source is not a state usage (for example, if the source is the entry action) are now semantically considered to be decision transactions, that is, they have the same semantics as conditional successions in action models. It is therefore now a validation error to have an accepter on such a transition.
[PR #612] - Inheritence. The Beta 2.4 KerML Specification includes a complete specification of the computation of the inherited memberships of a type, and the implementation has now been updated to conform to this. The update resolves certain anomalies in the case of "diamond inheritence" in which a feature could be unexpectedly inherited multiple times, or in which what was inherited depended on the ordering of specializations. Note, however, that the handling of inheritance for name resolution is separate from this computation, and some anomalies still exist when resolving names.
[PR #613]
Issue Resolutions
This release includes implementation of resolutions to the issues listed below.
KerML
Resolut...
2024-11 - SysML v2 Pilot Implementation
This is an incremental update to the 2024-09 release (there was no 2024-10 release). It corresponds to Eclipse plugin version 0.46.0.
New Features
-
Terminate actions. A terminate action is used to terminate the performance of some other action. It has the form
action
name
terminate
expression
;
The
action
part is optional. Theexpression
evaluates to the action to be terminated. The terminated action ends its performance no later than the completion of the terminate action. If theexpression
is omitted, the default is the immediately containing action of the terminate action.action outerAction { in action a; action term_a terminate a; // terminates a then terminate; // terminates outerAction }
A terminate action usage may also be used to terminate a non-action occurrence (such as a part). In this case, the lifetime of the terminated occurrence must end no later than the completion of the terminate action. That is, the terminate action usage effectively "destroys" the terminated occurrence.
part container { part component : Component[0..1]; action act { assign component := Component(); // Create component then terminate component; // Destroy component } }
[PR #597]
Backward Incompatibilities
- Reserved words. New SysML keyword:
terminate
Issue Resolutions
-
SysML Metamodel. The SysML concrete syntax, abstract syntax and model library have been updated consistent with the resolution of the following SysML v2 FTF issue.
-
SYSML2_-44 Transformation of UML4SysML::ActivityFinalNode is not specified yet
[PR #597]
The resolution to the following issue had already been substantially implemented, but the implementation has been further updated consistent with the final resolution.
-
SYSML2_-222 TransitionUsage source and target properties do not support feature chains
[PR #602]
-
Jupyter
None.
Visualization (PlantUML)
Bug fix.
Technical Updates
-
Caching. Added clearing of the cached
effectiveName
andeffectiveShortName
of elements.[PR #595]
Bug Fixes
-
Port conjugation. Fixes the setting of the
source
andconjugatedType
fields of aPortConjugation
.[PR #596]
-
Transition usage. Fixes the parsing of the source of a transition usage when it is a feature chain.
[PR #600]
-
Transition usage rendering (PlantUML). Fixes the rendering of transition usages to resolve its succession end features correctly.
[PR #601}
-
Binding connections. Fixes the implicit subsetting of binding connections as usages in SysML models.
[PR #603]
2024-09 - SysML v2 Pilot Implementation
This is an incremental update to the 2024-08 release. It corresponds to Eclipse plugin version 0.45.0.
New Features
None.
Backward Incompatibilities
None.
Issue Resolutions
None.
Jupyter
None.
Visualization (PlantUML)
-
Metadata. Metadata is now rendered in a compartments if it is owned by an element that is rendered with compartments.
[PR #592]
Technical Updates
-
Peformance. The performance of certain validation and transformation computations has been significantly improved by revising the computation of inherited memberships
[PR #594]
Bug Fixes
-
Index file encoding. Updates generation of the library index to always use UTF-8 encoding.
[PR #593]
2024-08 - SysML v2 Pilot Implementation
This is an incremental update to the 2024-07 release. It corresponds to Eclipse plugin version 0.44.0.
New Features
None.
Backward Incompatibilities
-
Import visibility. The deprecation warning for default-public import visibility has been removed in this release. All imports (other than view usage expose declarations) now have
private
visibility by default. Further, in the textual notation, it is now mandatory to declare the visibility explicitly, even forprivate
.Warning. Parsing errors due to imports without visibility in top-level packages can result in unexpected corruption of the global namespace and cascading errors. For projects with a significant number of models having imports remaining without explicit visibility indicators, it is recommended to correct these before upgrading to this release.
[PR #589]
Issue Resolutions
-
KerML Metamodel. The resolution of the following issue is now fully implemented.
- KERML_-74 Make imports private by default
[PR #589]
-
SysML Metamodel. The resolution of the following issue is now fully implemented.
- SYSML2_-207 Update language description and concrete syntax related to imports
[PR #589]
Jupyter
-
Performance. The Jupyter deployment has been updated to use the new library index to significantly improve the performance of processing cells that contain large SysML v2 models. (See also "Library Index" under Technical Updates, below.)
[PR #587]
Visualization (PlantUML)
None.
Technical Updates
-
Library Index.
- Performance of name resolution has been significantly improved by using a pre-calculated index of names in the standard library models to avoid long searches in library namespaces for unresolvable names.
- The library index can be generated by right-clicking on the
sysml.library
project in an Eclipse runtime instance and selectingGenerate Library Index
from the drop-down menu. The library models will first all be re-built before the index is generated. - The library index is stored in the repository in the
sysml.library
project, so it is not necessary to re-generate the index unless a change is made to one of the standard library models.
[PR #589]
Bug Fixes
-
Transition source. Allows a feature chain to used as the source of a transition. (It was already possible to use a feature chain as the target.)
[PR #590]
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]
2024-05 - SysML v2 Pilot Implementation
This is an incremental update to the 2024-04.1 release. It corresponds to Eclipse plugin version 0.42.0.
New Features
None.
Backward Incompatibilities
None.
Issue Resolutions
None.
Jupyter
None.
Visualization (PlantUML)
Bug fixes.
Technical Updates
-
Parse post-processing. Handwritten code implementing various Xtext parsing workarounds has been moved out of the generated
Impl
classes intopostProcess
methods in the corresponding adapter classes.
[PR #570] -
Jupyter kernel build. The Maven build configuration has been updated to remove the use of Gradle for building the Jupyter kernel.
[PR #568]
Bug Fixes
Actor
andstakeholder
properties. Corrects the derivation computation foractor
andstakeholder
properties.
[PR #569]- Flow connection rendering (PlantUML). Corrects the rendering of certain flow connections when an action model includes a
start
action.
[PR #566] - Succession rendering (PlantUML). Fixes the rendering of successions declared using the "shorthand" textual notation.
[PR #567]
2024-04.1 - SysML v2 Pilot Implementation
This release is the same as the 2024-04 release, except for one additional bug fix. It corresponds to Eclipse plugin version 0.41.1.
The release notes for 2024-04 are repeated below for convenience, along with the additional bug fix at the end.
New Features
None.
Backward Incompatibilities
None.
Issue Resolutions
None.
Jupyter
- JupyterLab version. The JupyterLab deployment now installs JupyterLab 3.x (formerly 2.x) and Node.js 16.x (formerly 14.x on Windows and 15.x on Mac and Unix).
[PR #564]
Visualization (PlantUML)
Bug fixes.
Technical Updates
-
Eclipse version. The supported Eclipse version has been updated to 2024-03 and all projects are now compiled using Java 17. Earlier versions of Eclipse are no longer supported.
[PR #563] -
Derived state computer. The implementation no longer uses the Xtext "derived state computer" mechanism. As a result, KerML and SysML files now open without significant delay in the Eclipse editor. (Note, however, that this change does not improve the performance of subsequent name resolution performed while editing a file, which is essentially the same as before.)
[PR #562]
Bug Fixes
- Feature chain rendering (PlantUML). Corrects the rendering of chains of features that do not belong to the chaining feature.
[PR #558] - Visualization crash (PlantUML). Fixes a bug that could cause PlantUML visualization to crash.
[PR #559] - Variation definition rendering (PlantUML). Fixes the rendering of variation definitions.
[PR #560] - Redefinition rendering (PlantUML). Corrects the rendering of certain redefinitions.
[PR #561] - Instantiation exception. Fixes a bug that causes an exception when a view usage with an expose relationship is published (or rendered) in Jupyter.
[PR #565]
2024-04 - SysML v2 Pilot Implementation
This is an incremental update to the 2024-03 release. It corresponds to Eclipse plugin version 0.41.0.
New Features
None.
Backward Incompatibilities
None.
Issue Resolutions
None.
Jupyter
- JupyterLab version. The JupyterLab deployment now installs JupyterLab 3.x (formerly 2.x) and Node.js 16.x (formerly 14.x on Windows and 15.x on Mac and Unix).
[PR #564]
Visualization (PlantUML)
Bug fixes.
Technical Updates
-
Eclipse version. The supported Eclipse version has been updated to 2024-03 and all projects are now compiled using Java 17. Earlier versions of Eclipse are no longer supported.
[PR #563] -
Derived state computer. The implementation no longer uses the Xtext "derived state computer" mechanism. As a result, KerML and SysML files now open without significant delay in the Eclipse editor. (Note, however, that this change does not improve the performance of subsequent name resolution performed while editing a file, which is essentially the same as before.)
[PR #562]
Bug Fixes
- Feature chain rendering (PlantUML). Corrects the rendering of chains of features that do not belong to the chaining feature.
[PR #558] - Visualization crash (PlantUML). Fixes a bug that could cause PlantUML visualization to crash.
[PR #559] - Variation definition rendering (PlantUML). Fixes the rendering of variation definitions.
[PR #560] - Redefinition rendering (PlantUML). Corrects the rendering of certain redefinitions.
[PR #561]
2024-03 - SysML v2 Pilot Implementation
This is an incremental update to the 2024-02 release. It corresponds to Eclipse plugin version 0.40.0.
New Features
None.
Backward Incompatibilities
None.
Issue Resolutions
None.
Jupyter
Bug fixes.
Visualization (PlantUML)
Bug fixes.
Technical Updates
-
Metamodel operations. The implementation of all OCL operations from the metamodel specifications has been moved from in-line method code in metamodel
Impl
classes into separate delegate classes, using the Eclipse "invocation delegate" mechanism.
[PR #554] [PR #555] -
Maven build. The Maven build was updated to resolve a problem introduced by a newly released version of a plugin used by the
tycho-build
extension.
[PR #550 ]
Bug Fixes
- Standard library element rendering (PlantUML). Corrects the rendering of standard library elements in compartments when SHOWLIB and SHOWINHERITED styles are not used.
[PR #548] - Bindings with standard library metadata (Jupyter). Fixes a bug introduced in the 2024-02 release that caused bindings of enumeration features of metadata usages of metadata definitions from library models to spuriously cause warnings in the Jupyter environment (but not in Eclipse).
[PR #551] - Resolution of results, subjects and objectives. Fixes a bug that caused the incorrect resolution of names of result parameters, subject parameters and objectives that were physically inserted into the abstract syntax tree after parsing.
[PR #552] - Implicit subsetting of occurrenceUsages. Fixes the implementation of the implicit subsetting of
occurrenceUsages
that aresuboccurrences
.
[PR #553] - %viz command (PlantUML, Jupyter). Fixes a bug caused by the changes in PR #552 in which the
%viz
command in the Jupyter environment would sometimes throw aConcurrentModificationException
.
[PR #557]
2024-02 - SysML v2 Pilot Implementation
This is an incremental update to the 2024-01 release. It corresponds to Eclipse plugin version 0.39.0.
New Features
KerML
-
Comment locale. In the KerML abstract syntax, a
Comment
may have alocale
specified, which includes "identification of the language of thebody
text and, optionally, the region and/or encoding", using the international standard notation. The textual notation has now been updated to allow thelocale
to be specified for a comment.locale
"en_US" /* This is US English comment text. */
[PR #540]
-
Keywords on metadata. User-defined keywords are now allowed on metadata features. (Keywords were already allowed on metaclasses.)
#keyword metadata
M;
[PR #540]
SysML
-
Comment locale. The SysML textual notation has been updated to allow the locale for a comment to be specified, using the same syntax as given for KerML above.
[PR #542] -
Perform action effective names. Previously, the effective name of a perform action usage was given solely by the name of its performed action (and similarly for exhibit state usages and include use case usages). If the perform action usage did not specify a performed action, and had no declared name, then it also had no effective name. This has now been changed so that a perform action usage without a performed action acts like a regular usage, so that, if it has a redefinition, that determines its effective name.
abstract part def P { abstract perform action A; } abstract part def P1 :> P { abstract perform action redefines A; // Effective name is "A". } part def P2 :> P { perform B redefines A; // Effective name is "B". }
[PR #542]
-
Keywords on metadata and enumerations. User-defined keywords are now allowed on metadata definitions, metadata usages, enumeration definitions and enumerated values within enumeration definitions (keywords were already allowed on enumeration usages other than enumerated values).
#keyword metadata def
M;
#keyword metadata
M;
#keyword1 enum def
E {
#keyword2 enum
e;
}
[PR #542]
Backward Incompatibilities
- Exponentiation. Previously the exponentiation operators (
**
and^
) where left-associative, similarly to the additive and multiplicative operators. That is, an expression such as2 ^ 3 ^ 4
was parsed as(2 ^3) ^ 4
. This has been changed so that the exponentiation operators are right-associative, which is the normal expectation for exponentiation. So,2 ^ 3 ^ 4
now parses as2 ^ (3 ^ 4)
.
[PR #540]
Issue Resolutions
KerML
-
KerML Metamodel. The KerML abstract and concrete syntax have been updated consistent with the resolutions to the following KerML FTF issues. Other than as listed above, these changes will not affect user models.
- KERML-22 Name all associations in the KerML abstract syntax
- KERML-82 checkConnectorTypeFeaturing is not correct
- KERML-98 Comment Locale not in textual notation
- KERML-165 Exponentiation should be right-associative
- KERML-307 User-defined keywords are not allowed on metadata features
[PR #540]
-
KerML Model Libraries. Various models in the Kernel Model Libraries have been updated consistent with the resolutions to the following KerML FTF issues. In addition, the
.meta.json
and.project.json
files in the model library directories have been updated to reflect the new normative KerML URIhttps://www.omg.org/spec/KerML/240201
and the versions have been updated to1.0.0-beta2
.- KERML-45 LinkObject is irreflexive
- KERML-46 Intersection missing for some multiple specializations
- KERML-120 FlowTransferBefore needs end feature declarations
[PR #541]
SysML
-
SysML Metamodel. The SysML abstract and concrete syntax has been updated consistent with the resolutions to the following SysML v2 FTF issues.
- SYSML2-85 Effective name is not correct for a redefined perform action usage
- SYSML2-553 checkRequirementUsageObjectiveRedefinition is incorrect
- SYSML2-631 User-defined keywords are not allowed on metadata
- SYSML2-637 User-defined keywords are not allowed on enumeration definitions [see note]
- SYSML2-643 Comment locale not in textual notation
- SYSML2-783 Parsing KerML Feature elements from SysML textual notation
[PR #542]
-
SysML Model Libraries. Various models in the Systems and Domain Model Libraries have been updated consistent with the resolutions to the following SysML v2 FTF issues. In addition, the
.meta.json
and.project.json
files in the model library directories have been updated to reflect the new normative SysML URIhttps://www.omg.org/spec/SysML/240201
and the versions have been updated to2.0.0-beta2
. KerML library projects are now required to be version1.0.0-beta2
.- SYSML2-158 Example FrontAxle definition
- SYSML2-634 VerificationCase::subVerificationCases is typed incorrectly
[PR #543]
Jupyter
None.
Visualization (PlantUML)
- Connection ends in compartments. The text for connection ends shown in compartments has been improved to be less cluttered, showing the just names of the referenced features.
[PR #537]
Technical Updates
-
Metamodel files. The metamodel files listed below have been updated. The metamodel URIs have been updated with the new date stamp used for the Beta 2 submission to OMG:
https://www.omg.org/spec/KerML/20240201
https://www.omg.org/spec/SysML/20240201
org.omg.sysml/model
SysML.uml
SysML_only.uml
KerML_only.uml
SysML_xmi.uml
SysML_only_xmi.uml
KerML_only_xmi.uml
SysML.ecore
kerml.ecore
[PR #534]
-
Schema files. The following JSON schema files have been updated for the new URIs.
org.omg.sysml/json-schema
KerML.json
SysML.json
[PR #534]
Bug Fixes
- Inherited reference rendering. Corrected references to graphical renderings of inherited elements in the
SHOWINHERITED
style.
[PR #538] Lifeclass
implicit specializations. Corrected the required implied specialization by aLifeClass
of its containingindividualDefinition
.
[PR #546]direction
property serialization. Fixed the missing serialization to XMI of thedirection
property of parameters owned viaParameterMembership
.
[PR #547]elementId
property serialization. Fixed the missing serialization to XMI of theelementId
property of standardLibraryPackages
.
[PR #549]