Skip to content

2022-10 - SysML v2 Pilot Implementation

Choose a tag to compare

@seidewitz seidewitz released this 10 Nov 17:20
· 1615 commits to master since this release

This is an incremental update to the 2022-09 release. It corresponds to Eclipse plugin version 0.29.0.

Language Features

  1. User-defined keywords.
    • User-defined keyword notation (#keyword) is now available in KerML.
    • In both KerML and SysML, multiple user-defined keywords can now be used in a single declaration.
  2. Binding connectors and successions. In KerML only, it is now possible to declare the ends of a binding connector or succession using end feature declarations in the connector body, rather than using the special notation ... = ... or first ... then ....
  3. Cast operators. The parsing of the cast operators as and meta has been changed to make the target type directly the type of the result parameter of the operator expression. (This is a backward compatible change.)
  4. Flow payloads. Previously, the textual notation only allowed limited declaration of the name and type of the payload feature (of...) of an item flow (in KerML) or a flow connection usage (in SysML). Now, payload features can have full declarations, including subsetting and redefinition specializations and feature value bindings. This is useful for modeling e.g., a message in SysML with a specific value for its payload.
    message of fuelCommand : FuelCommand = engineController.engineControlPort.incomingFuelCommand
        from engineController to engine;
    

[PR #420]

Model Libraries

  1. BaseFunctions. The functions in the Kernel Semantic Library package BaseFunctions corresponding to the cast operators have been updated consistent with the change noted above.
    [PR #420]
  2. Connections. See Bug Fixes below.

Backward Incompatibilities

None.

Jupyter

None

Visualization

  1. PlantUML

    • Updated PlantUML to 1.2022.7.
      Important Note: To work with this release, existing Eclipse installations will need to have their PlantUML installation updated from the update site https://https://github.com/himi/p2-update-puml-sysmlv2/raw/main/updates.
    • Updated compartment title style to be centered and italic.

    [PR #419]

  2. Tom Sawyer
    None.

Technical Updates

There were a number of changes to clean up the abstract syntax, which should not effect user models.

  1. Implementation-specific metaclasses. The abstract syntax as implemented previously contained five metaclasses that were specific to the pilot implementation but not considered part of the normative abstract syntax model documented in the specifications. Two of these (ItemFeature and ItemFlowEnd) have now been made normative, while three others (ItemFlowFeature, SourceEnd and TargetEnd) have been removed, with the pilot implementation updated to not need them.
  2. Multiplicity lower bounds. Previously, the Feature::type property had a multiplicity lower bound of 1. This has now been changed to 0, as has the multiplicity lower bound for all properties that (directly or indirectly) subset this property. This allows models to be peristed and interchanged without explicit typing, with semanticly necessary types ultimately provided via implied relationships added by tooling.
  3. Ecore. Previously, during preprocessing of the exported MOF model, the property Feature::isNonunique was added to SysML.uml for use as an workaround in parsing the nonunique keyword. In addition, the OperatorExpressions::operand property was included in the abstract syntax model as an implementation workaround for parsing operator expressions. Now, these two features are added to SysML.ecore by the custom UML to Ecore converter and are not included in the SysML.uml model.

[PR #420]

Bug Fixes

  1. Flow connections. In the Systems Library model Connections, corrected MessageConnection to specialize Actions::Action and messageConnections to specialize Actions::actions.
    [PR #421]