R852 - modelint/shlaer-mellor-metamodel GitHub Wiki
R852 / 1:Mc
Supplied Parameter Value obtains value from exactly one Data Flow
Data Flow provides value for zero, one or many Supplied Parameter Value
When a signal is dispatched, it must carry a Supplied Parameter Value for each required Parameter. We also know that the value can be of any data type including instance reference, tuple, table as well as what is most typical, a scalar value. To obtain a value of any Type, we need a Data Flow as it is the only way such values are conducted within an Activity. And we need exactly one such value, hence a single Data Flow.
Any given Data Flow may or may not be used for this purpose. Furthermore, the same Data Flow could contribute to different Required Parameter Values in the same or different Signal Actions.
Let's say, for example, that we have a variable (Data Flow) holding the value .left
of type Turn Direction
in our self driving vehicle application. Within the same Activity we may have two Signal actions each firing off a different Signal with parameters Signal dir
and Motion dir
both typed as Turn Direction
. In fact, both of these parameters could be sent along with the same Signal, if so specified by its Event Specification.
The point is that a Data Flow can branch off as needed and so may supply any number of Supplied Parameter Values or possibly none at all since there are many alternate uses for a Data Flow.