R831 - modelint/shlaer-mellor-metamodel GitHub Wiki

R831 / 1:1c

Synchronous Output feeds exactly one Data Flow

Data Flow is fed by zero or one Synchronous Output


Consider the data flow diagram that you could draw to define a Method. If the Method defines a Synchronous Output, there must be some output Data Flow that delivers this value whenever the Method is called. And we also need to ensure that the Type associated with this Data Flow matches that defined by the Synchronous Output.

If you want to think in terms of action language instead of a data flow diagram, this means that there must be some statement in the Method that specifies an output value. In Scrall this is a =>> statement.

If there is conditional logic in the Method, there may be multiple such output flows, but they must be mutually exclusive for any given execution of the Method.

A given Data Flow may or may not be used to deliver a Method's output.