Skip to content

2022-04 - SysML v2 Pilot Implementation

Compare
Choose a tag to compare
@seidewitz seidewitz released this 15 May 21:41
· 1234 commits to master since this release

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

Language Features

  1. Short names. What was previously called the "human ID" of an element is now known as its short name. However, the surface notation remains the same, e.g., part<shortName> longDescriptiveName;. Aliases can now also have short names, e.g., alias<shortAlias> longDescriptiveAliasforlongDescriptiveName;. The name resolution rules for short names are identical to those for regular names.
    [PR #359]
  2. Owning membership. The owned members of a namespace are now related to the namespace using a specialized membership relationship called an owning membership. Previously, the name of an element was derived as the member name given in the membership that owned it. Now, the element name is no longer derived and, instead, the owned member name of an owning membership is derived as the name of its owned member element. This has no effect on the surface notation, but may effect how a model is traversed, e.g., by a tool using the API.
    [PR #359]
  3. Invocation arguments. The argument expressions in an invocation expression are now parsed as feature values on the argument parameters, similarly to how parameter values would naturally be bound in a KerML expr or SysML calc usage. For example, F(x=1, y=2) now parses essentially equivalently to
    expr : F {
        in feature redefines x = 1;
        in feature redefines y = 2;
    }
    
    [PR #359]

Model Library

Kernel Library

  1. Control functions. The expr features on various Functions in the ControlFunctions package have now all been marked as in parameters, which work consistently with the new parsing for invocation expressions, as described above. Previously, these features were not parameters and were handled as special cases for the invocations of these Functions.
    [PR #357]

Quantities and Units Domain Library

  1. UnitsAndScales. CoordinateFrame has been added as a specialization of VectorMeasurementReference along with three concrete specializations of CoordinateTransformation, namely CoordinateFramePlacement, TranslationRotationSequence and AffineTransformationMatrix3D. Minor updates have been made to other models in the UnitsAndScales package consistent with this.
    [PR #354]

Geometry Domain Library

  1. ShapeItems. The ShapeItems library model has been revised and significantly expanded.
    [PR #357]

  2. SpatialItems. SpacialItem has been updated to use the new CoordinateFrame type.
    [PR #354]

Backward Incompatibilities

  1. Reserved words (KerML). Added: chains Removed: is
  2. Features (KerML only).
    • The featurexisy; notation for un-owned features is no longer supported.
    • The featurexisa.b.c; notation for named feature chains has been replaced with the chains clause in a feature declaration, e.g., featurexchainsa.b.c;. This clause may be used in conjunction with all other parts of a regular feature declaration. It comes after any specialization part and before any disjoining or type featuring part, e.g., featurex : Tsubsetsychainsa.b.cdisjoint withz;
  3. Invocations. As part of the update to the parsing of invocation expressions, there are some additional validations that existing models could now potentially fail.
    • If an invocation expression uses named argument notation, then each of the arguments must all name input parameters of the invoked function, and any parameter must be referenced at most once.
    • If a body expression (i.e., one with the form {...}) is used as the argument of an invocation expression, then the corresponding parameter of the invoked function must have an Evaluation type (which is the case, e.g., if the parameter is a KerML expr or SysML calc).
      [PR #359]
  4. Coordinate frames.
    • A general VectorMeasurementReference no longer has a placement. Instead, use a CoordinateFrame whose transformation is a CoordinateFramePlacement.
    • Various specializations of VectorMeasurementReference in the ISQ library models that previously had names of the form ...CoordinateSystem now have names of the form ...CoordinateFrame (e.g., ISQBase::Cartesian3dSpatialCoordinateSystem is now called ISQBase::Cartesian3dSpatialCoordinateFrame).
      [PR #354]
  5. Shapes. In a small number of cases, changes to the ShapeItems library model may not be compatible with uses of the previous version of this model. Corrections should be obvious from reviewing the latest ShapeItems model.
    [PR #357]

Jupyter

None.

Visualization

  1. PlantUML
    • Minor improvements as part of baseline update.
      [PR #359]
  2. Tom Sawyer
    • Fixed visualization of connectors on behavioral connector diagrams.

Technical Updates

None.

Bug Fixes

  1. Model libraries. Fixed the SystemUtil.isModelLibrary method so that it works correctly on Windows.
    [PR #358]