This page identifies a possible issue, inconsistency, concern, error, or bug!
One of the ways Webel IT Australia helps promote tools, technologies, and languages is by donating a lot of time identifying, tracking, and reporting potential issues, in order to help vendors and developers improve the tools and technologies. In some cases, we also offer workarounds and advice for users. All issues tracked on our public site are offered most constructively and with sincerest gratitude to the tool vendors and technology developers.
DISCLAIMER: Vendors do not officially endorse issue analysis by Webel IT Australia.
Relates to:
Relates to the following specification snippets:
The issue (such as it may be) is that in some SysMLv2 spec, Annex, and GitHub examples variously:
- ALL parameters (including out parameters) are redefined (yet without feature values) presumably to provide "clean" binding targets as opposed to binding to inherited parameters (although it's not 100% clear whether such is necessary).
- Only in parameters are redefined to provide feature values, but the out parameters are not. (This mode relates also to usages of calculation definitions using parameter syntax where the special
resultout is not provided.) - All in parameters are redefined to provide feature values AND the out parameter is redefined (but without a feature value).
action providePower : ProvidePower {
in fuelCmd : FuelCmd;
action generatePower : GeneratePower {
in fuelCmd : FuelCmd = providePower::fuelCmd;
out generatedTorque : Torque;
}
flow generatePower.generatedTorque
to transmitPower.generatedTorque;
...
The out generatedTorque has also been redefined, presumably for consistency (since the in fuelCmd is implicitly redefined through the = shorthand) or to provide a "clean" binding target for the flow, or both. But it's not clear that out generatedTorque HAS to be or SHOULD also been redefined,
More relevant examples are tracked here:
The matter relates to the following from KerML1.0, the gist of which for action usages is that you can't simply plonk in a new owned parameter "on-the-fly"; any owned parameter (sayx) of an action usage MUST be related to (through redefinition) an existing parameter of action definition (such as feature types the owning usage of the parameter x) or an action usage (such as subsetted by the owning action usage of the parameter x ):
