Skip to content

2021-11 - SysML v2 Pilot Implementation

Choose a tag to compare

@seidewitz seidewitz released this 11 Dec 18:06
· 2388 commits to master since this release
9cd8d36

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

Language features

  1. Assignment actions. An assignment action is used to change the value of a feature at the time of performance of the action.

    • Assignment to feature in scope. Assigns the result of valueExpression to the feature with a featureName in the current scope.

      assignfeatureName:=valueExpression;

      Example: assigncurrentStatus := StatusEnum::Nominal;

    • Assignment to feature of a target occurrence. Assigns the result of a valueExpression to the feature with name featureName of the occurrence that is the result of a targetExpression.

      assigntargetExpression.featureName:=valueExpression;

      Example: assigntrailer.trailerFrame.coupler := vehicle.hitch;

      Note: In this case the targetExpression is the path step expression trailer.trailerFrame, and the valueExpression is also a path step expression, vehicle.hitch. The featureName is coupler.

  2. Initial values. An initial value is specified when declaring a feature similarly to a bound value, but using the symbol := rather than =. The feature is set to the specified initial value at the start of the lifetime of its containing occurrence, and, unlike if a bound value was specified, the initial value can be subsequently changed using an assignment action.

    attributecount : Integer := 0;

    It is also possible to mark an initial value as a default, in which case it may be overridden in a redefinition of the feature.

    itemsensordefault:= primarySensor;

  3. Invocation using feature chains. Feature chains can now be used as the target of invocation expressions.

    directory.addressOf(userName)

  4. Implicit typing. If a feature is declared without an explicit feature typing, but with a feature value, then the feature is implicitly typed by the result type of the feature value expression.

    attributecolor = ColorEnum::red; // color implicity has type ColorEnum.

    Note that this also works if the feature value is initial and/or default.

Model Library

  1. AssignmentAction. Added the action definition AssignmentAction and the action usage assignmentActions to the SysML Actions model library.

Backward incompatibilities

  1. Keywords. SysML: Added: assign.

  2. Risk metadata. The enumerated values for the LevelEnum and RiskLevelEnum in the RiskMetadata model have been renamed from L, M, H to low, medium, high.

  3. Trade studies. The calculation definition ObjectiveFunction in the TradeStudies model has been renamed EvaluationFunction and the corresponding calculation feature TradeStudy::objectiveFunction has been renamed evaluationFunction.

  4. Enumerations. Previously, if a feature was typed by an enumeration definition, then the name of an enumerated value from the definition could be used as a feature value without qualification. However, it is now necessary to qualify the name, unless it has otherwise been imported into the local namespace.

    attributecolor : ColorEnum = ColorEnum::red; // Qualification is necessary.

Jupyter

None.

Visualization

  1. PlantUML
    • Added new view for cases, including analysis cases, verification cases and use cases.
    • Added special rendering for actors and stakeholders in the tree view.
    • Added compartment rendering for connections.
    • Corrected the rendering of flow connections in the interconnection view.
  2. Tom Sawyer
    • Implemented visualization of "proxy" connections and connection points.
    • Implemented a view that combines aspects of a tree and a nesting view, through actions that expand single nodes as nesting or as a tree.

Technical Updates

  1. Eclipse. Updated the development baseline to Eclipse version 2021-09.

Bug Fixes

  1. Variations. Declaring a case (of any kind) to be a variation no longer results in a spurious "A variation must only have variant owned members." error.
  2. Protected visibility. Fixed the resolution of the name of an inherited member with protected visibility when referenced in a nested scope. Also updated handling of protected visibility to conform to the current specification that resolution of qualified names requires that all segments but the first have public visibility.
  3. Feature value scoping. Names in feature value expressions are now resolved starting with the scope of the owning namespace of the corresponding feature declaration, not in the scope of the feature itself, eliminating anomalous resolution to members of the feature. (Note, however, that this causes the backwards incompatibility for enumerations described above.)
  4. Metadata visualization. For PlantUML, fixed the visualization of feature chains used to specify a metadata feature.
  5. Requirement constraints. For PlantUML, fixed the visualization of require and assume constraints in the constraint compartment of a requirement definition or usage.