Skip to content

2021-03 - SysML v2 Pilot Implementation

Choose a tag to compare

@seidewitz seidewitz released this 14 Apr 20:07
4425d3e

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

Language features

  1. Port Types. A port usage had been restricted to being typed by a single port definition. It now may be typed by one or more type definitions (including types inherited through subsetting and redefinition).
  2. Units Notation. The notation num[unit] can now be used for quantities with units, rather than num@[unit]. The old units notation num@[unit] is now deprecated and should no longer be used.
  3. Tensor and Vector Quantities. The Quantities and Units model library has been extensively updated to allow for tensor and vector quantities. The QuantityValue attribute definition is now an alias for the most general TensorQuantityValue attribute definition, which has specializations VectorQuantityValue and ScalarQuantityValue. Similarly, MeasurementReference is now an alias for TensorMeasurementReference, which has specializations VectorMeasurementReference and ScalarMeasurementReference. MeasurementUnit specializes ScalarMeasurementReference.
  4. Array. A multi-dimensional Array type has been added to Collections, the Kernel Library model of collection types. This is used as the base type for TensorQauntityValue and TensorMeasurementValue.

Backward incompatibilities

  1. Quantity Values. The definition of QuantityValue has been revised to include explicit quantity dimensions relative to a system of units. This effects user models if they define new quantity values. However, for most previous usages of quantities and standard units, user models should be unaffected.
  2. Quantities. The quantity attribute Quantities::quantity has been renamed to Quantities::quantities, and it is now an alias for tensorQuantities. For scalar quantities, use Quantities::scalarQuantities.
  3. SpeedValue. The quantity definition VelocityValue has been renamed SpeedValue, which is a ScalarQuantityValue, with corresponding quantity speed. For vector velocity quantities, use the new quantity definition Cartesian3dVelocityVector (a VectorQuantityValue with a Cartesian3dVelocityCoordinateSystem) and corresponding quantity velocityVector. (These elements are all available from the ISQ package, re-exported from ISQSpaceTime.)
  4. Integer Division. The return type of the IntegerFunctions::'/' function is now Rational instead of Integer.
  5. Collections. The library packages NonScalarValues and NonScalarFunctions have been renamed Collections and CollectionFunctions.
  6. Sampled Functions. The data type NonScalarValue::SampledFunctionValue is nowCollections::SampledFunction. It's definition has also changed having two multivalued attributes for domain and range values to a single multivalued attribute samples, each element of which has a domainValue and a rangeValue.

Visualization

  1. Tom Sawyer
    • Implemented the visualization of variations and variants.
  2. PlantUML
    • Added a help option to the %viz command. %viz -h now produces a brief description of usage and options.

Bug Fixes

  1. ISQ Units. Removed certain redundant ISQ unit definitions.
  2. PlantUML. Fixed a possible stack overflow due to circular import of a definition element.
  3. Deployment. Fixed build failure when deploying from a release-tagged commit.

Technical Improvements

  1. Implicit Generalization. The code for creating implicit generalizations and computed redefinitions has been moved out of the EMF Impl classes into the adapter classes previously created for performing transformations.
  2. Conda Publishing. The Jupyter kernel for SysML is now published to Conda for each release. This is then used by the Jupyter installer distributed in the release.