Skip to content

2022-01 - SysML v2 Pilot Implementation

Choose a tag to compare

@seidewitz seidewitz released this 13 Feb 01:51

This is an incremental update to the 2021-12 release. It corresponds to Eclipse plugin version 0.20.0.

Language Features

KerML

  1. Return parameters. It is now possible to mark a parameter declared in a function body as the return parameter in the KerML textual notation (as was already possible in SysML).

SysML

  1. Accept actions. The notation for accept actions (used either within an action model or in a transition) has been updated to allow the payload parameter to be declared with a feature value or incoming flow. In this case, an accepted transfer must have a payload identical to the bound or flowed value.

    • acceptpayloadName:PayloadType=valueExpression;
    • acceptpayloadName:PayloadTypeflow fromsource;

    Note. The syntactic form acceptPayloadType;, without a colon in the payload declaration, is still allowed and still represents a declaration of the payload type, not its name. A binding or flow cannot be included in a declaration of this form.

  2. Change triggers. A change trigger of the form whenchangeCondition can now be used in place of a feature value in a payload declaration. The changeCondition must be a Boolean-valued expression, and the trigger fires when the expression result changes from false to true (or if the result is true when first evaluated).

    • acceptpayloadName:PayloadTypewhenchangeCondition;

    Note. The explicit declaration of the payload parameter is optional, allowing the simple form accept whenchangeCondition;. The form acceptpayloadNamewhenchangeCondition; is also allowed, but this represents a declaration of the payload name, not its type.

  3. Time triggers. A time trigger of the form attimeExpression or afterdurationExpression can now be used in place of a feature value in a payload declaration. The timeExpression must result in a TimeInstantValue, and the trigger fires at that time (relative to the default clock). The durationExpression must result in a DurationValue, and the trigger fires after the elapse of that duration (on the default clock).

    • acceptpayloadName:PayloadTypeattimeExpression;
    • acceptpayloadName:PayloadTypeafterdurationExpression;

    Note. Simplified payload declarations are allowable for time triggers, similarly to change triggers.

Model Library

  1. FeatureReferencePerformances. The Kernel Library package FeatureAccessPerformanceshas been renamed to FeatureReferencingPerformances, and the following behaviors have been added to it:
    • FeatureMonitorPerformance
    • EvaluationResultMonitorPerformance
    • BooleanEvaluationResultMonitorPerformance
    • BooleanEvaluationResultToMonitorPerformance
  2. Clocks and Triggers. The following packages have been added to the Kernel Library:
    • Observation – models monitoring for change and notifying registered observers.
    • Clocks – models clocks that provide a current time reference, with functions for getting the time and duration of an Occurrence relative to a clock.
    • Triggers – provides convenience functions for creating monitored change signals for change triggers, absolute time triggers and relative time triggers.
  3. Time. A specialization of the Kernel Clock model has been added to the Quantities and Units Library Time package, using time instant and duration quantity values.
  4. SI. ScalarQuantityValue in the Quantities and Units Library Quantities package is now a specialization of NumericalValue instead of ScalarValue.

Backward Incompatibilities

  1. Keywords.
    • KerML: Added: return
    • SysML: Added: when at after
  2. FeatureReferencePerformances. The Kernel Library package FeatureAccessPerformanceshas been renamed to FeatureReferencingPerformances.
  3. SI. The Quantities and Units Library package SI no longer imports QuantityCalculations. These means that the SI package no longer re-exports the the calculation definitions from QuantityCalculations or various other members re-exported from QuantityCalculations (such as from ScalarValues and Quantities).
  4. Time. The order of the public owned features of the Iso8601DateTime and Iso8601DateTimeStructure calculation definitions in the Quantities and Units Library has been changed so the non-redefining parameters come first (allowing a more natural use of positional argument notation when invoking these calculations).
  5. USCustomaryUnits. Units other than actual US customary units have been removed from this package.

Jupyter

None.

Visualization

  1. PlantUML
    • Imports (both element and package, recursive or not) are now rendered using the dashed arrow notation. A new option, SHOWIMPORTED, has been added which shows imported elements as well as the traversed elements.
  2. Tom Sawyer
    None.

Technical Updates

None.

Bug Fixes

  1. KerML relationship notation. Fixed the KerML grammar so that
  • A Relationship that is an owned related element of another relationship can have unowned related Eeements.
  • A Relationship can have only owned related elements.
  • All owned related elements of a relationship are added to its targets.