2022-05 - SysML v2 Pilot Implementation
This is an incremental update to the 2022-04 release. It corresponds to Eclipse plugin version 0.24.0.
Language Features
-
Feature inverses (KerML only). A new feature inverting relationship has been added. The basic notation for this relationship is
invertingnameinversefeatureInvertedofinvertingFeature;The
invertingnamepart may be omitted.A feature inverting that is owned by its
featureInvertedmay be specified in the declaration of that Feature:featurefeatureInvertedinverse ofinvertingFeature;The
inverse ofinvertingFeaturepart must come after any specialization or conjugation part in the Feature declaration. However, it is now allowable to specify the chaining, disjoining, inverting and featuring parts of a Feature declaration in any order.Two features related by a feature inverting relationship are asserted to be inverses of each other. The features can be arbitrarily nested. So, for example, given
classifier A { feature b1 :B { feature c1 : C; } }and
classifier C { feature b2 : B { feature a2 : A inverse of A::b1::c1; } }then it must always be the case that, for any
a1 : A,a1.b1.c1.b2.a2 == a1.
[PR #361] [PR #366]
Model Library
Kernel Library
-
Base. A new
thatfeature has been added as a nested feature ofthings, the base for all features. It is constrained inAnything(the base type of everything) such that thethatreference for all values reached by navigating through any nested feature of anything is the nesting thing.For example, given
classifier Example { feature f; } feature x : Example[1];the value of
x.f.thatisx.
[PR #365] -
Occurrences. Space modeling additions:
- inner and outer space boundaries. In
Occurrence,innerandouteroccurrence references have been added, nested underspaceBoundary. These are space slices that also have nospaceBoundary,where theouterone surrounds theinnerones (seeSurroundedBybelow). - OutsideOf associations. The following new associations from Occurrence to itself (indirectly) specialize the existing association
OutsideOf:JustOutsideOf, linking occurrences that have space slices with no space between them (MatesWith).MatesWith, specializingJustOutsideOf, linking occurrences that have no space between them.InnerSpaceOf, linking an occurrence to another that completely occupies the space surrounded by aninnerspace boundary of the first occurrence. AddedOccurrence::innerSpaceOccurrencesas the cross-navigation feature for this.SurroundedBy, linking an occurrence that is included in space by aninnerSpaceOccurrenceof the other. Types additional connectors inOccurrencethat ensurespaceBoundarysurroundsspaceInteriorandspaceInteriorsurroundsinnerspace boundaries.
[PR #360]
- inner and outer space boundaries. In
-
Performances. A new
thisfeature provides a context for performances similar to the "this" pointer in object-oriented programming languages such as C++, Java and JavaScript. For all occurrences that are not performances (such as items and parts in SysML),thisdefaults toself. For performances that are owned via composite features of an object (including owned actions of a part),thisis the owning object. For performances that are owned via composite features of a performance (such as subactions in SysML),thisdefaults to the same value as for the owning performance.So, for example, an action declared at "package level" will be the
thisreference for all subactions in the composition tree it roots:package Example1 { action def A { action b { action c; } } action a : A; // a.b.c.this == a }On the other hand, an action declared within a part definition will have an instance of that part definition as the
thisreference for itself and all subactions within it:package Example2 { part def C { action a { action b; } } part c : C; // c.a.b.this == c }[PR #365]
Systems Library
-
Items. Space modeling additions:
- Generalized
Item::envelopingShapesto cover curves and surfaces enveloping two dimensional shapes. - Added
Item::boundingShapesspecializingenvelopingShapesasStructuredSpaceObjectsin which every face/edge intersects the item. - Added
Item::voidsas the SysML name forinnerSpaceOccurrences. DefinedisSolidas having novoids.
[PR #360]
- Generalized
-
Actions.
AcceptActionhas areceiverparameter that references the occurrence via which anincomingTransfermay be accepted. The declaration forAcceptActionhas been updated so that the defaultreceiveristhis(see description above). In the concrete syntax for accept actions, thereceiveris specified using aviaclause. The default is used if noviaclause is given. For example, inpart def Device { state Device_Behavior { state off; transition first off accept On_Signal then on; state on; } }the default receiver for
accept On_Signalis the instance ofDeviceowning theDevice_Behaviorperformance. (Note that this is similar to the concept of the "context object" for event pooling in UML/SysML v1.)Note. Performed actions and exhibited states are always referential, not composite. Therefore, the subactions of a performed action or exhibited state do not have the performing or exhbiiting part as their
thisreference. Instead,thisis determined by the composite structure that actually contains the action or state being performed/exhibited.
[PR #365]
Backward Incompatibilities
- Reserved words (KerML). Added:
invertinginverse thisandthat. The new featurethisis inherited by all kinds of occurrences (e.g. SysML items, parts, actions, etc.). The featurethatis inherited by all nested features (SysML usages). Therefore, the namesthisorthatfor features in user models.
[PR #365]- MeasurementReferences. The Quantities and Units Domain LIbrary package
UnitsAndScaleshas been renamed toMeasurementReferences, which better reflects what it contains (units and scales are kinds of measurement references). References to the package in all other library and example models in the repository have been updated to the new name.
[PR #369] - Subsetting validation. The validation of the owner of a subsetted feature has been tightened. This may cause some new warnings in existing models. This can usually be corrected using the dot notation.
[PR #368]
Jupyter
None.
Visualization
- PlantUML
- Improved the rendering of features whose types are vector quantities.
[PR #362 ]
- Improved the rendering of features whose types are vector quantities.
- Tom Sawyer
None.
Technical Updates
- Security advisories. Removed
yarn.lockand prevented it from being recommitted for the JupyterLab extension. This eliminates security advisory notifications related to declared version dependencies.
[PR #363]