Releases: Systems-Modeling/SysML-v2-Pilot-Implementation
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]
2024-01 - SysML v2 Pilot Implementation
This is an incremental update to the 2023-11 release. It corresponds to Eclipse plugin version 0.38.0.
New Features
KerML
-
Feature values on connectors. The KerML textual notation now supports declaring feature values on connectors that either have no declared ends or ends declared within their body.
abstract connector
c1
;
abstract connector
c2 = c1; // Previously did not parse.
connector
c3 = c1 { // Previously did not parse.
end
::> a;
end
::> b;
}
[PR #528]
-
Model-level evaluable functions. Two additional model-level evaluable functions have been implemented.
- Range construction operator
'..'
. An expression of the forme1
...
e2
, in whiche1
ande2
evaluate to integers, results in an ordered sequence of a range of sequential integers from the value ofe1
to the value ofe2
, inclusive. For example,1..3
evaluates to the sequence(1, 2, 3)
. If the value ofe1
is greater than the value ofe2
, then the result is the empty sequence. SequenceFunctions::excludes
function. This function tests whether a value is excluded from a sequence. For example,excludes(1..3, 2)
is false, whileexcludes(1..3, 0)
is true. It is the inverse of theincludes
function, which was already implemented.
[PR #526]
- Range construction operator
SysML
-
Keywords on control nodes. In the SysML textual notation, user-defined keywords are now allowed on control nodes (i.e., merge, decision, join and fork nodes).
#keyword fork
fork1;
[PR #531]
Backward Incompatibilities
- Type conjugation. The KerML textual notation no longer allows multiple conjugation parts on a type declaration (which was invalid anyway).
[PR #528]
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-7 isDirection, definition, semantics
- KERML-21 Add property for Annotations owned by an AnnotatingElement
- KERML-24 Connector declaration does not allow a feature value
- KERML-61 PrimaryExpressionMember production should generate a ParameterMembership
- KERML-75 Specify default direction for the ownedParameterMember of a ParameterMembership
- KERML-90 The MetadataFeature::metaclass multiplicity is too restrictive
- KERML-109 Textual Syntax allows multiple ConjugationParts on a Type
- KERML-154 Directed features inherited from a conjugated type not handled properly
- KERML-155 Expression::result has an incorrect subsetting
- KERML-194 validateRedefinitionDirectionConformance does not account for conjugation
- KERML-199 validateMultiplicityRangeBoundResultTypes constraint is too strong
- KERML-204 Behavior portions must be classified by the same behavior they are portions of
- KERML-232 Additional problems with deriveFeatureType
- KERML-248 Error in Expression modelLevelEvaluable operation OCL
[PR #528]
-
KerML Model Libraries. Various models in the Kernel Model Libraries have been updated consistent with the resolutions to the following KerML FTF issues.
- KERML-25 Reflective KerML abstract syntax model has inconsistencies
- KERML-44 Spatial links can be occurrences
- KERML-49 Some readonly features are intended to have changing values
- KERML-158 InsideOf association end feature redefines cross feature
- KERML-231 LinkObject disjointness is redundant
[PR #529]
SysML
-
SysML Metamodel. The SysML abstract and concrete syntax has been updated consistent with the resolutions to the following SysML v2 FTF issues. Other than as listed above, these changes will not affect user models.
- SYSML2-430 Subsetting of subjectParameter properties is wrong
- SYSML2-499 Assignments parsed without a target will fail validateAssignmentActionUsageArguments
- SYSML2-616 User-defined keywords are not allowed on control nodes
[PR #531]
-
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.
- SYSML2-80 Reflective SysML abstract syntax model has inconsistencies
- SYSML2-182 Universal features can have many values (partially implemented in the 2023-11 release)
- SYSML2-552 Errors in the TradeStudy domain model
[PR #530]
Jupyter
None.
Visualization
None.
Technical Updates
-
Metamodel files. The following metamodel files have been updated.
org.omg.sysml/model
SysML.uml
SysML_only.uml
KerML_only.uml
SysML.ecore
(includes both the KerML and SysML metamodels, as used in the implementation)kerml.ecore
(includes just the KerML metamodel, without implementation-specific custom annotations)
(Note that the files
SysML_only_xmi.uml
andKerML_only_xmi.uml
have not been updated.)org.omg.sysml.generation
SysML.uml
[PR #527]
-
Schema files. The following JSON schema files have been updated.
org.omg.sysml/json-schema
KerML.json
SysML.json
[PR #532]
Bug Fixes
- Implicit redefinitions. Adds required implicit redefinitions even if a type has (other) owned redefinitions.
[PR #525]
2023-11 - SysML v2 Pilot Implementation
This is an incremental update to the 2023-10 release. It corresponds to Eclipse plugin version 0.37.0.
Language Features
- Requirement constraint usage bodies. Previously,
assume
andrequire
declarations in a requirement were themselves syntactically treated like requirements, and, so, could have, e.g., nestedsubject
,assume
andrequire
declarations. Howver,assume
andrequire
actually declare constraint usages, for which nested declarations specific to requirements are invalid. This has now been changed so thatassume
andrequire
declarations can only have bodies consistent with regular constraint usages.
[PR #511]
Note. Several issues related to language bug fixes, with resolutions recently approved by the KerML and SysML v2 FTFs, were already implemented in the 2023-10 release.
Model Libraries
-
KerML. Various models in the Kernel Model Libraries have been updated consistent with the resolutions to the following KerML FTF issues. (Note that some issue resolutions recently approved by the FTF, related to the model libraries that, were already implement in the 2023-10 release.)
- KERML-38 Binary association ends always unique
- KERML-42 Occurrences can be data values
- KERML-43 Performances can be objects, behaviors can be structures
- KERML-56 Universal features can have many values
- KERML-77 Problems with IfThenElsePerformance
- KERML-88 BaseFunctions::',' has a bad parameter declaration
- KERML-188 DataFunctions::Min and Max should not be capitalized
- KERML-198 Wrong documentation format for class Occurrence in Semantic Library
- KERML-227 Documentation of features in Transfers library model is wrong
[PR #520]
-
SysML. Various models in the Systems and Domain Model Libraries have been updated consistent with the resolutions to the following SysML v2 FTF issues. (Note that some issue resolutions recently approved by the FTF, related to the model libraries that, were already implement in the 2023-10 release.)
- SYSML2-79 View::viewpointSatisfactions should subset viewpointChecks and checkedConstraints
- SYSML2-83 Narrow down return types of SpatialItem::PositionOf and ::CurrentPositionOf
- SYSML2-102 Semantic constraint for target of AssignmentActionUsage is missing
- SYSML2-219 Action::decisionTransitions should subset Action::transitions
- SYSML2-305 Message and flow connection ends should be occurrence usages [fully implemented]
- SYSML2-490 Actions::acceptSubactions and sendSubactions should subset acceptActions and sendActions
[PR #521]
An additional change was also made consistent with the proposed resolution to the following issue, which has not yet been approved by the FTF.
- SYSML2-182 Universal features can have many value
[PR #522]
Backward Incompatibilities
- Requirement constraint usages. Certain erroneous declarations in the bodies of requirement constraint usages will now be reported as syntax errors rather than validation errors. But there is no effective change in functionality.
Jupyter
None.
Visualization
Bug fixes.
Technical Updates
- JupyterLab installer. Updated the node.js dependency to version
15.*
in the Unix/MacOSinstall.sh
script for Jupyter, so that it works with theosx-arm64
architecture (for which a14.*
binary is not available), while still remaining on Jupyter version2.*
.
Bug Fixes
- Implicit specialization. Fixed a bug that prevented the removal of some unnecessary implicit specializations.
[PR #514] - Concern usages. Corrected the improper implicit specialization of non-framed concern usages.
[PR #514] - Port usages. Corrected the implementation of
isComposite
for port usages.
[PR #515] - View rendering usages. Corrected the implicit redefinition of view rendering usages.
[PR #517] - Function operation expressions. Corrected the parsing of function operation expressions, so they parse as invocation expressions, but not operator expressions.
[PR #518] - Conjugated direction. Corrected the implementation of
Type::directionOf
for conjugation. Also updated the derivations ofType::input
andType::output
.
[PR #519] - Alias membership visualization. Updated the PlantUML visualization so that unnamed alias memberships are not rendered.
[PR #516]
2023-10 - SysML v2 Pilot Implementation
This is an incremental update to the 2023-08 release. It corresponds to Eclipse plugin version 0.36.0. (There was no 2023-09 release.)
Language Features
-
New KerML validation constraints. Checks have been implemented for the following new constraints, applying to both KerML and SysML:
validateRedefinitionDirectionConformance
– If theredefinedFeature
of aRedefinition
hasdirection
in
orout
, then theredefiningFeature
must have the samedirection
. If theredefinedFeature
hasdirection
inout
, then theredefiningFeature
must have a non-nulldirection
.validateExpressionResultExpressionMembership
– AnExpression
must have at most oneResultExpressionMembership
.validateFunctionResultExpressionMembership
– AFunction
must have at most oneResultExpressionMembership
.validateFeatureValueOverriding
– AllFeatures
directly or indirectly redefined by thefeatureWithValue
of aFeatureValue
must have only defaultFeatureValues
.
[PR #504]
-
New SysML validation constraints. Checks have been implemented for the following new constraints, applying only to SysML:
validateAssignmentActionUsageArguments
– AnAssignmentActionUsage
must have two argumentExpressions
.validateAssignmentActionUsageReferent
– AnAssignmentActionUsage
must have anownedMembership
that is not anOwningMembership
and whosememberElement
is aFeature
.validateForLoopActionUsageLoopVariable
– The firstownedFeature
of aForLoopActionUsage
must be aReferenceUsage
.validateForLoopActionUsageParameters
– AForLoopActionUsage
must have two ownedinput
parameters
.validateIfActionUsageParameters
– AnIfActionUsage
must have at least two ownedinput
parameters
.validateWhileLoopActionUsage
– AWhileLoopActionUsage
must have at least two ownedinput
parameters
.validateTriggerInvocationExpressionAfterArgument
– If aTriggerInvocationExpression
haskind = after
, then it must have an argumentExpression
with aresult
that conforms to the typeISQ::DurationValue
.validateTriggerInvocationExpressionAtArgument
– If aTriggerInvocationExpression
haskind = at
, then it must have an argumentExpression
with aresult
that conforms to the typeTime::TimeInstantValue
.validateTriggerInvocationExpressionWhenArgument
– If aTriggerInvocationExpression
haskind = when
, then it must have an argumentExpression
with aresult
that conforms to the typeScalarValues::Boolean
.validateAssertConstraintUsageReference
– If anAssertConstraintUsage
has anownedReferenceSubsetting
, then itsreferencedFeature
must be a ConstraintUsage.validateSatisfyRequirementUsageReference
– If aSatisfyRequirementUsage
has anownedReferenceSubsetting
, then itsreferencedFeature
must be aRequirementUsage
.
[PR #506]
-
Feature values on connections. The textual notation now supports declaring connection usages and interface usages with feature values:
abstract connection
c1
;
abstract connection
c2 = c1; // Previously did not parse.
connection
c3 = c1
connect
a to b; // Previously did not parse.
[PR #505]
-
View renderings. The notation for a view rendering usage has been extended to allow the rendering to be defined locally within the containing view, rather than just allowing rendering by reference.
render rendering
name : Def [m] ... ;
The previous notation
render
r
; then effectively becomes a shorthand forrender rendering references
r;
.[PR #505]
Model Libraries
Various library models have been updated to correct violations of new KerML validation constraints, as reported in the following KerML and SysML v2 FTF issues. Note, however, that the resolutions of these issues have not yet been approved by the FTFs and, therefore, are subject to change.
[PR #504]
KerML Issues
- KERML-182 Update Kernel Semantic Library for validateRedefinitionDirectionConformance
- KERML-184 Update Kernel Model Libraries for validateFeatureValueOverriding constraint
- KERML-186 Update semantic model of invariants for validateExpressionResultExpressionMembership constraint
SysML v2 Issues
- SYSML2-491 KerML constraint requires updates to Systems Library models
- SYSML2-492 KerML constraint requires updates to Domain Library models
Backward Incompatibilities
- Validation constraints. The newly implemented validation constraints (particularly
validateRedefinitionDirectionConformance
andvalidateFeatureValueOverriding
) may cause some models that previously passed validation to now fail.
Jupyter
None.
Visualization
-
PlantUML
None. -
Tom Sawyer
None.
Technical Updates
None.
Bug Fixes
Bugs reported in the following KerML and SysML v2 issues have been fixed (or mitigated) in this release. Note, however, that the resolutions to these issues have not yet been approved by the FTFs and, therefore, are subject to change.
KerML Issue
- KERML-154 Directed features inherited from a conjugated type not handled properly
[PR #504]
SysML v2 Issues
- SYSML2-495 Textual notation BNF for TriggerExpression is wrong
- SYSML2-497 validateTriggerInvocationExpressionAfterArgument constraint is too strong
- SYSML2-498 validateTriggerInvocationExpressionWhenArgument constraint is wrong
- SYSML2-499 Assignments parsed without a target will fail validateAssignmentActionUsageArguments
- SYSML2-500 The derivation of AssignmentActionUsage::referent is wrong
[PR #506]
2023-08 - SysML v2 Pilot Implementation
This is an incremental update to the 2023-07 release. It corresponds to Eclipse plugin version 0.35.0.
Language Features
None.
Model Libraries
None.
Backward Incompatibilities
None.
Jupyter
None.
Visualization
-
PlantUML
None. -
Tom Sawyer
None.
Technical Updates
None.
Bug Fixes
- Cause and Effect Library
.project.json
file. Resolves OMG issue SYSML2-78 by renamingsysml.library/Domain Libraries/Cause and Effect/.proj.json
to.project.json
.
[PR #497] - Derivation of
AnalysisCaseUsage::resultExpression
. Corrects the derivation computation forAnalysisCaseUsage::resultExpresson
.
[PR #498] - Defaults for
kind
properties. Corrects the default values used when serializing to XMI thekind
property of various membership relationships.
[PR #499]
2023-07 - SysML v2 Pilot Implementation
This is an incremental update to the 2023-02 release. It corresponds to Eclipse plugin version 0.34.0.
Note: This is the first release since 2023-02.
Language Features
- Validation constraints. Most previously unimplemented validation constraints from the Beta 1 versions of the KerML and SysML specifications have now been implemented.
[PR #486] [PR #487]
Model Libraries
None.
Backward Incompatibilities
- Validation. Some of the newly implemented validation constraints are already automatically satisfied when a model is parsed from the textual notation. However, the other constraints may cause some models that previously passed validation checking to now fail with errors.
Jupyter
%help
command. A new%help
"magic" command has been added to the Jupyter implementation. Without an argument, this command prints a list of all available magic commands. If given a command name (with or without the initial%
) as its argument, it prints the help information for that command (i.e.,%help
cmd
produces the same result as%cmd
-h
).
[PR #493]
Visualization
-
PlantUML
See Bug Fixes. -
Tom Sawyer
None.
Technical Updates
None.
Bug Fixes
- Rendering of "initial" feature values (PlantUML). Removes the rendering of an unnecessary
=
along with:=
.
[PR #484] - Rendering of feature chains (PlantUML). Corrects the rendering of feature chains at then ends of successions in behavioral diagrams.
[PR #485] - Expression evaluation. Corrects the implementation of integer division and unary Real operator evaluation.
[PR #488] - Derived value computation. Corrects the computation of derived values of various properties.
[PR #490] - Implicit specialization. Corrects the adding of an implicit specialization for declarations that have circular owned specializations.
[PR #491] - Transition usages. Corrects a problem with the setting of the source of a transition usage that could cause spurious warning messages.
[PR #492] - End features. Corrects the implicit redefinition of an end feature whose owner specializes a feature chain.
[PR #494] - Analysis cases. Corrects the computation of the derived value of the
resultExpression
property forAnalysisCaseDefinitions
andAnalysisCaseUsages
.
[PR #495]
2023-02 - SysML v2 Pilot Implementation
This is an incremental update to the 2023-01 release. It corresponds to Eclipse plugin version 0.33.0.
(Note: This is the first public release since 2022-12. There was no public release of 2023-01.)
Language Features
None.
(For Language Feature updates since 2022-12, see the 2023-01 release notes.)
Model Libraries
See Bug Fixes.
Backward Incompatibilities
None.
Jupyter
None.
Visualization
-
PlantUML
- Perform action usages and exhibit action usages are rendered using the
<<perform>>
and<<exhibit>>
keywords (rather than<<perform action>>
and<<exhibit state>>
) if the usages have no declared name or short name, but have a reference subsetting.
[PR #469]
- Perform action usages and exhibit action usages are rendered using the
-
Tom Sawyer
None.
Technical Updates
-
Abstract syntax files. All abstract syntax files have been updated to the 2023-02 baseline, consistent with the latest revised submission to OMG. Changes from 2023-01 are mostly updates to element documentation and addition of OCL constraints, plus two changes to OCL operations:
- Correction of the return type of
ActionUsage::inputParameter
fromObject
toFeature
. - Addition of the operation
FeatureChainExpression::sourceTargetFeature
.
[PR #475]
- Correction of the return type of
-
Normative XMI files. Two new QVT transformations have been added to generate
.uml
files supporting the creation of the normative.xmi
files for the KerML and SysML abstract syntax, as delivered in the latest submission to OMG.SysML_xmi.uml
– Combined KerML and SysML abstract syntax, but with all levels of packaging from the original MOF model.KerML_only_xmi.uml
– Only KerML abstract syntax, with all levels of packaging from the original MOF model.SysML_only_xmi.uml
– Only SysML abstract syntax, with all levels of packaging from the original MOF model. Cross-references KerML elements fromKerML_only_xmi.uml
.
[PR #473]
Bug Fixes
- UseCase::includedUseCases. Changed the subsetting of
UseCases::UseCase::includedUseCases
fromsubUseCases
toenclosedPerformances
. This was necessary becauseincludedUseCases
is referential (it is subsetted byIncludeUseCaseUsages
, which are always referential) andsubUseCases
is composite.
[PR #471] - Case::obj. Changed the subject of
Case::obj
to default toCase::result
, rather than be bound it. Changed the subject ofAnalysisCases::obj
to override this default with a binding.
[PR #474] - Empty subjects. Corrects a bug that caused empty subjects to sometimes still be shown when visualized using PlantUML in Juptyer Lab.
[PR #477] - Highlighting. Fixes the highlighting of string, number and "comment" (note) tokens per Xtext configuration for the KerML and SysML editors.
[PR #478] - Validation cases. Resolved "TODO" comments in various validation case models.
[PR #479] - Index expressions. Fixes a bug in the implicit subsetting of index expressions that could cause errors in subsequent references from feature chaining expressions.
[PR #480]
2023-01 - SysML v2 Pilot Implementation
This is an incremental update to the 2022-12 release. It corresponds to Eclipse plugin version 0.32.0.
(Note: This is an SST-internal release. There is no public release planned for 2023-01.)
Language Features
-
Index expressions. The bracket notation
...[...]
for index expressions has been replaced with a new notation...#(...)
(parentheses are required). The bracket notation continues to be used for constructing quantities with units (e.g.,10.0[km]
).attribute list [*] ordered = ("a", "b", "c"); attribute a = list#(1); // value is "a" attribute b = list#(2); // value is "b" attribute arr : Collections::Array { :>> dimensions = (2, 3); :>> elements = ("a", "b", "c", "x", "y", "z"); } attribute c = arr#(1,3); // value is "c" attribute y = arr#(2,2); // value is "y"
[PR #466]
-
Timeslices and snapshots. The abstract syntax has been simplified for occurrence usages that are time slices and snapshots, eliminating the concept of a "portioning feature". The textual notation is unchanged, but now time slices and snapshot usages implicitly subset the
timeSlices
orsnapshots
features (respectively) of each occurrence definition by which they are explicitly defined, if any, or, otherwise, the occurrence definition or usage in which they are nested.occurrence def AircraftFlight { // Implicitly subsets "timeSlices" of AircraftFlight. timeslice occurrence inAir; } // Implicitly featured by AircraftFlight. // Implicitly subsets "timeSlices" of AircraftFlight. timeslice occurrence preFlight : AircraftFlight;
[PR #454]
Model Libraries
- Deterministic UUIDs. Implemented the generation of deterministic, named-based (version 5) UUIDs as the
elementIds
for standard model library elements with a non-nullqualifiedName
.
[PR #457]
Kernel Semantic Library
- BaseFunctions. Added an abstract function for
#
.
[PR #466] - SequenceFunctions and CollectionFunctions. Changed the specializations of
[
to corresponding specializations of#
.
[PR #466] - StatePerformances. Added the feature
incomingTransitionTrigger
toStatePerformance
, whose value is theMessageTransfer
accepted to trigger a transition into aStatePerformance
. (This is inherited byStateAction
in SysML.)
[PR #455]
Systems Model Library
- Geometry. Simplified the
SpatialItems
model to eliminate the need forCompoundSpatialItem
. Now, anySpatialItem
with one or morecomponentItems
is considered to be a compound union of those items, while aSpatialItem
without anycompoundItems
occurs on its own, separately from itssubitems
.
[PR #468] - Quantities and Units.
- Added definitions for curved definitions for curved spatial coordinate frames (3D spherical, cylindrical and planetary) and associated vector quantities in addition to existing Cartesian frames and vectors.
[PR #406] - Added a
universalCartesianSpatial3dCoordinateFrame
singleton to be used as a default coordinate frame (similar to theTime::universalClock
singleton).
[PR #406] - Added a
transform
calculation definition toVectorCalculations
, which transforms aVectorQuantityValue
from a source to a targetCoordinateFrame
.
[PR #406] - Added models for
TensorCalculations
andMeasurementRefCalculations
.
[PR #467]
- Added definitions for curved definitions for curved spatial coordinate frames (3D spherical, cylindrical and planetary) and associated vector quantities in addition to existing Cartesian frames and vectors.
Backward Incompatibilities
-
Bracket notation. The following validation checks have been added, to catch previous uses of the bracket notation for indexing:
- KerML. A warning whenever the bracket notation is used: "Use #(...) for indexing".
- SysML. A warning when the bracket notation is used and the second argument is not a measurement reference: "Should be a measurement reference (unit)".
[PR #466]
-
Vector quantities and coordinate frames. A consistent naming convention has been adopted for the names of vector and coordinate frame types and features in library packages
Quantities.sysml
,MeasurementReferences.sysml
andISQSpaceTime.sysml
. As a result, some names of existing elements have changed. The following is an example of successive levels of specialization:VectorQuantityValue
,ThreeVectorValue
(from KerML)'3dVectorQuantityValue'
(aliasThreeDVectorQuantityValue
)Position3dVector
CartesianPosition3dVector
CylindricalPosition3dVector
SphericalPosition3dVector
PlanetaryPosition3dVector
[PR #406]
Jupyter
None.
Visualization
-
PlantUML
None. -
Tom Sawyer
None.
Technical Updates
-
Abstract syntax files. The following UML abstract syntax model files are now available in the
org.omg.sysml/model
directory, reflecting the normative metamodel URIs that will be used for the OMG submission.KerML_only.uml
– Contains just the KerML abstract syntax metaclasses, all in a single flat package namedkerml
.
URI:https://www.omg.org/spec/KerML/20230201
SysML_only.uml
– Contains just the SysML abstract syntax metaclasses, all in a single flat package namedsysml
, referencing KerML elements fromKerML_only.uml
.
URI:https://www.omg.org/spec/SysML/20230201
SysML.uml
– Contains the combined SysML and KerML abstract syntax metaclasses (as before), all in a single flat package namedsysml
.
URI:https://www.omg.org/spec/SysML/20230201
[PR #452]
-
ECore metamodel. Since the Ecore metamodel
SysML.ecore
is generated fromSysML.uml
, thesysml
EPackage
from it is now registered using the URIhttps://www.omg.org/spec/SysML/20230201
(rather thanhttp://www.omg.org/spec/SysML/2.0
, as it has been previously).
[PR #452] -
XMI editor features. A
omg.org.sysml.editor.feature
has been created for theomg.org.sysml.edit
andomg.org.sysml.editor
plugins introduced in the last release, and this new feature has been added toomg.org.sysml.site
for the Eclipse installation.
[PR #453]
Bug Fixes
- ControlPerformances. Constrained the earlier/later occurrences of
DecisionPerformance::outgoingHBLink
/MergePerformance::incomingHBLink
to be the performance.
[PR #456] - Links and Transfers. Made the following read-only:
Link::participant
,BinaryLink::source
/target
,Transfer::isInstant
,FlowTransfer::isMove
/isPush
.
[PR #459] - Exponential operator. Implemented
^
as an exponential operator for model-level evaluable expression evaluation.
[PR #460] - ItemFlows and FlowConnectionUsages. Corrected the implicit specialization for
ItemFlows
andFlowConnectionUsages
.
[PR #461] - ActionUsages. Corrected the implicit specialization for an
ActionUsage
as anenclosedPerformance
.
[PR #462] - StateActions. Corrected the subsettings of
StateAction::entryAction
,exitAction
anddoAction
.
[PR #463] - Requirements. Made
RequirementCheck::assumptions
,constraints
,subrequirements
andconcerns
all composite. Also corrected various specializations ofActions::subactions
that should have been composite.
[PR #464] - Occurrences.
2022-12 - SysML v2 Pilot Implementation
This is an incremental update to the 2022-11 release. It corresponds to Eclipse plugin version 0.31.0.
Language Features
KerML
- Elements. The
Element
metaclass is now abstract in the Root abstract syntax. Theelement
notation has therefore been removed from KerML.
[PR #445] - Relationships. The
Relationship
metaclass is now abstract in the Root abstract syntax. Therelationship
notation has therefore been removed from KerML.
[PR #445] - Dependencies.
Dependency
has been added to the Root abstract syntax. The concrete syntax is the samedependency
notation as is already in SysML.
[PR #445]
KerML and SysML
- Effective names. Effective naming has been extended to short names. If both the declared name and short name of a feature are empty, but it has a naming feature (e.g., a feature it redefines), then it will take both its name and short name from the naming feature.
[PR #445]
part def A { attribute <short> longName; } part def B :> A { // This attribute takes both the name "longName" and // the short name "short" from its redefined feature. attribute redefines longName; }
Model Libraries
Kernel Semantic Library
- KerML. The reflective
KerML
model has been updated for abstract syntax changes.
[PR #445] - Occurrences and Performances. Various features related to spatial and temporal modeling associations in the
Occurrences
andPerformances
models have been marked as inverses (for examplesuccessors
andpredecessors
inOccurrences
are inverse features, related to theHappensBefore
association). Certain conditions have also been moved from associations to these features.
[PR #442 and 451]
Systems Model Library
- SysML. The reflective
SysML
model has been updated for a small abstract syntax correction.
[PR #445] - StandardViewDefinitions. The number of view definitions in the
StandardViewDefinitions
package has been reduced from 16 to 9.
[PR #444]
Backward Incompatibilities
- Keywords. Removed from KerML:
element
relationship
[PR #445] - Effective names. The (non-derived)
shortName
andname
properties ofElement
have been renamed todeclaredShortName
anddeclaredName
. The (derived)effectiveName
property has been renamed toname
, and a new, derivedshortName
property has been added. The propertyname
should be used instead ofeffectiveName
when, e.g., querying for an element using the API.
[PR #445] - Multiplicity. The derivation of the
Type::multiplicity
property in the abstract syntax has been changed to only select from the owned members of theType
. This means the property will only have a value if theType
has an explicitly declared multiplicity, but not for an implicitly "inherited" multiplicity. (The new utility methodFeatureUtil.getMultiplicityOf(Type)
implements the previous derivation computation formultiplicity
.)
[PR #448]
Jupyter
None.
Visualization
-
PlantUML
-
Tom Sawyer
None.
Technical Updates
None.
Bug Fixes
- LiteralBoolean. The implemented default for a
LiteralBoolean
value was created fromtrue
to the EMF-generatedfalse
.
[PR #446] - Conditional succession. The implicit specialization for
TransitionUsages
used as conditional succession in action models has been to be the newAction::decisionTransition
feature, which is correctly typed byDecisionTransition
.
[PR #447] - Connections (PlantUML). Corrected the rendering of connections to redefined features.
[PR #439] - Feature chains (PlantUML). Corrected the rendering of feature chains that start with subsetting or redefining features.
[PR #443] - Feature values (PlantUML). Corrected the rendering of feature values that don't have an
=
in the textual notation.
[PR #450]