R505 - modelint/shlaer-mellor-metamodel GitHub Wiki
R505 / M:Mc-1
State specifies response to zero, one or many Effective Event
Effective Event is responded to in one or many State
This relationship defines a state table by defining the State / Effective Event cross product. A response to each Effective Event is defined for each State.
In the simplest possible state table, we would have one State and no events and an empty state table. In that case, no Event Responses would be defined. The utility of such a State Model is questionable, but perfectly legal.
Let's say that each State is represented by a row and each Effective Event by a column.
If we add an Effective Event, a column is added to the state table and one Event Response is required for each State row.
Even an Initial Pseudo State must define a response for each Effective Event defined on its Lifecycle. This case is special since all Non Transitions must be set to CH
(can't happen). That's because you can't remain in an Initial Pseudo State since it isn't a Real State.
In fact, the only way for a Lifecycle state machine to be instantiated is through the dispatch of some Effective Event placed on a Transition exiting an Initial Pseudo State. Therfore, the CH could only be executed if the model execution domain is faulty.