2021-05a - SysML v2 Pilot Implementation
This is an incremental update to the 2021-04 release. It corresponds to Eclipse plugin version 0.13.1.
This release is the same as the 2021-05 release, except that it fixes four bugs and updates the Quantities and Units Library and PlantUML visualization. The release notes for 2021-05 are repeated below along with the additional changes introduced in this revision. Added items have bold headings.
Language features
Occurrences
- Occurrences. An occurrence is something that has a life over time and possibly a spacial extent. In SysML v2, items, actions and constraints (and their further specializations) are all kinds of occurrences (but attributes are not). It is now possible to model an occurrence without committing to what kind of occurrence it is using the definition and usage notations
occurrence def
andoccurrence
. - Individuals. The syntax for individuals has been expanded.
- Individual definitions and usages can now be made on all kinds of occurrences, i.e.,
individual part def
/individual part
,individual action def
/individual action
, etc. - The notations
individual def
andindividual
default toindividual occurrence def
andindividual occurrence
. - Every individual usage of any kind must have exactly one type that is an individual definition. However, individual usages may now also have additional types that are not individual definitions.
- Individual definitions and usages can now be made on all kinds of occurrences, i.e.,
- Time slices and snapshots. The time slice and snapshot notation has been updated.
- The
timeslice
andsnapshot
notations are no longer restricted to individuals, allowing any kind of occurrence type. The kind of occurrence can be explicitly given in the declaration, e.g.,timeslice part
,snapshot action
, etc. - A
timeslice
orsnapshot
usage without an explicit type that is nested in the body of occurrence definition or usage (of any kind) is implicitly a time slice or snapshot of its containing occurrence. - A
timeslice
orsnapshot
usage with a type that is an individual definition implicitly represents a time slice or snapshot of the defined individual. To make atimeslice
orsnapshot
declaration explicitly an individual usage, the notationsindividual timeslice
andindividual snapshot
can be used.
- The
- Event occurrences. A notation has been added for event occurrences.
- The notation
event occurrence
name
;
represents an identified suboccurrence of a containing occurrence. That is, it is equivalent toref occurrence
name
:> suboccurrences;
. - The notation
event
qualifedName
;
declares an event occurrence by reference to an occurrence usage owned elsewhere. It is equivalent toref occurrence
:>
qualifiedName
:> suboccurrences;
. - The
event occurrence
notation can be considered a generalization ofperform action
andexhibit state
. However, unlikeperform
andexhibit
, the referentialevent
notation does not take its effective name from the occurrence usage it references. This is because it is expected thatevent
will commonly be used to reference thesource
andtarget
of messages (see below), which would result in name conflicts between multiple such events in one namespace.
- The notation
- Messages. A notation has been added for messages, which are item flows without explicitly specified
sourceOutput
andtargetInput
features.- Messages are notated as special kinds of connectors:
message
name
of
FlowType
from
source
to
target
;
. Thename
andFlowType
are optional. - As an item flow, the implicit type of a message is the Kernel library type
Transfer
. A message can also be explicitly typed with any specialization ofTransfer
.
- Messages are notated as special kinds of connectors:
Logical Expressions
- Exclusive or. The exclusive-or operator has been changed from
^
to^^
. This allows^
to be used as an exponentiation operator. (The existing**
exponentiation operator has also been retained for now.) - Keyword operators. Keywords have been introduced as alternatives for certain existing symbolic operators.
Keyword | Symbol |
---|---|
and |
&& |
or |
|| |
xor |
^^ |
not |
! |
- Implies. A new
implies
operator has been add for logical implication. Note that this is a conditional operator: the expressionx
implies
y
is equivalent tonot
x
or
y
or!
x
||
y
. That is, ifx
evaluates to false, theny
is not evaluated and the implication results in true. - Conditional. A new syntax
if
test
?
x
else
y
has been introduced as an alternative for the conditional expressiontest
?
x
:
y
.
Library Models
- State space representation. The
StateSpaceRepresentation
package in the Analysis Domain Library has been updated to use vector quantities. - Feature access and control performances. A new
FeatureAccessPerformances
package has been added to the Kernel Library, and theControlPerformances
package has been updated with base behavior for conditional and looping constructs. However, the abstract and contract syntax have not been updated to take advantage of these new models yet. - Henry unit. The Quantities and Units library has been updated to make Henry [H] an InductanceUnit as well as a PermeanceUnit.
Backward incompatibilities
- Keywords. The following new keywords have been added as reserved words:
- KerML:
and implies not or xor
- SysML:
and event implies message not occurrence or xor
- KerML:
- Exclusive or. The operator symbol for exclusive or is now
^^
rather than^
. The operator symbol^
now denotes exponentiation. - Precedence. The precedence of the logical operators has been changed so that
and
and&&
have the same precedence as&
, andor
and||
have the same precedence as|
. The precedence ofimplies
is lower than the or operators. - Transfer ends. The ends of a
Transfer
have been renamed fromtransferSource
/transferTarget
tosource
/target
. This means that the ends of a named message can be referenced asmessageName::source
andmessageName::target
(e.g., when used with theevent
notation).
Visualization
- Tom Sawyer
- Big fixes.
- Big fixes.
- PlantUML
- Updated the visualization of individuals, snapshots and time slices.
- Connectors. Implemented visualization of connectors with ends specified using dot notation.
Bug Fixes
- Dot notation. Allowed the new "dot notation" to be used to specify the ends of item flows.
- Name hiding. Fixed a bug that could cause other scope names to be hidden when using filtered import.
- Visualization.
- Fixed bugs in the Tom Sawyer tool that could case initial loading of diagrams to be empty and disabled the the load project action if the web page was refreshed.
- Fixed a bug in the PlantUML visualization that caused referential features to be rendered using black-diamond (composite) notation.
- XMI export. Fixed a bug in the XMI export utility that sometimes caused member names not to be written to the XMI file.
- Dot notation name resolution. Fixed a bug that caused name resolution to fail for dot notation with more than three features.
- Dot notation and flow notation. Fixed a bug that caused a spurious warning when dot notation was used with the shorthand flow notation.
- Occurrence usage specialization. Corrected the implicit specialization of nested occurrence portion usages when they have no explicit feature typing.
- State definitions. Fixed the SysML grammar to allow individual and variation state defs.
Technical Improvements
- Eclipse 2021-03. The pilot implementation is now being developed and tested using Eclipse 2021-03 and Java 11.
- XMI utility. The XMI export utility has been updated to use element UUIDs as XMI IDs, rather than using the default xpath mechanism for cross-references.
- Syntax highlighting. The utility that generates syntax highlighting files from the Xtext grammars has been updated to automatically generate the Jupyter highlighting configuration.