R1057 - modelint/shlaer-mellor-metamodel GitHub Wiki
R1057 / M:Mc-1
Decision Action is based on input from one or many Data Flow
Data Flow provides input to zero, one or many Data Flow
The predicate defined by a Decision Action may take any number of data inputs, each supplied by a Data Flow.
It is not really possible to make a useful Decision on no input. Here are a couple of nonsense cases:
true? doA() // This action will always be executed
false? doB() // This action will never be executed
The value of the above actions is dubious and so we require that every Decision Action take at least one input.
A given Data Flow may or may not provide input to any number of Decision Actions as there are many other possible consumers of a Data Flow.
Formalization
Decision Input.(Decision action, Activity, Domain) -> Decision Action.(Action, Activity, Domain)
Decision Input.(Flow, Activity, Domain) -> Data Flow.(Flow, Activity, Domain)