Skip to content

2022-11 - SysML v2 Pilot Implementation

Compare
Choose a tag to compare
@seidewitz seidewitz released this 20 Jan 07:21
· 717 commits to master since this release

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

Language Features

  1. Membership and namespace import. The abstract syntax for Import has been revised so that it is now abstract with two concrete subclasses, MembershipImport and NamespaceImport. The textual and graphical notations are unchanged, but their parsing is different.

    • An import declaration of the form importqualifiedName; now parses to a MembershipImport with its importedMembership given by the resolution of the qualifiedName. If the qualifiedName is suffixed by ::**, then isRecursive = true.
    • An import declaration of the form importqualifiedName::*; now parses to a NamespaceImport with its importedNamespace given by the resolution of the qualifiedName. If ::** is also added, then isRecursive = true.

    [PR #426]

  2. Membership and namespace expose. In the SysML abstract syntax, Expose is a kind of Import. Parallel to the abstract syntax change for Import, Expose is now abstract with two concrete subclasses MembershipExpose and NamespaceExpose. ViewUsage has also been updated to replace the exposedNamespace and viewedElement properties with a single exposedElement. As a result of these changes, it is now possible for a ViewUsage to have MembershipExpose relationships to the Memberships for individual elements, even if those elements are not named.
    [PR #426]

Model Libraries

  1. KerML and SysML. The reflective syntax models KerML and SysML have been updated to reflect the changes in the abstract syntax for Import and Expose.
    [PR #426]
  2. Interchange data. .project and .meta files have been added to each of the model library directories in the sysml.library project, conformant with the format required in subclause 10.2 of the latest KerML Specification. As a result, compressing each of these directories into a ZIP archive results in a legal project interchange (.kpar) file, having model interchange files using the textual notation (.sysml).
    [PR #437]

Backward Incompatibilities

There are no changes to the concrete syntax, so all existing valid models will continue to be valid. However, the abstract syntax for Import and Expose relationships has changed, so import and expose declarations will parse differently than before, as described above.

Jupyter

None.

Visualization

  1. PlantUML
    See bug fixes
  2. Tom Sawyer
    None.

Technical Updates

  1. Eclipse version. The minimum required version for Eclipse installation has been updated to 2022-09.
    [PR #425]

  2. JSON schema. The following JSON Schema files have been added to the org.omg.sysml project under a new json-schema directory:

    • KerML.json – KerML abstract syntax (also to be used for API payload validation)
    • SysML.json – SysML abstract syntax (also to be used for API payload validation)
    • ModelInterchange.json – Interchange project information (.project) and interchange project file metadata (.meta)

    [PR #433]

Bug Fixes

  1. RequirementDerivation. Corrected the baseTypes for OriginalRequirementMetadata to originalRequirements and DerivedRequirementMetadata to derivedRequirements. These had been switched.
    [PR #432]
  2. Feature chain evaluation. Corrected the evaluation of feature chains with intermediate features that are redefined.
    [PR #435]
  3. Rendering of subjects (PlantUML). Rendered requirement and case subjects as distinct nodes in order to render subjects with bindings or subsettings.
    [PR #428]
  4. Start/done and entry/exit action rendering (PlantUML). Properly rendered start and done in actions and entry and exit actions in states.
    [PR #429]
  5. Variant visualization (PlantUML). Revised visualization of variants to align with specification.
    [PR #431]
  6. Short name rendering (PlantUML). Fixed an error inadvertently introduced by PR #385 that prevented short names from being rendered.
    [PR #434]
  7. Binding connector rendering (PlantUML). Properly rendered binding connectors between ports.
    [PR #436]