R992 - modelint/shlaer-mellor-metamodel GitHub Wiki

R992 / 1:1c

Multiple Delegated Create Action sends initial event to exactly one Delegated Facet Instantiation

Delegated Facet Instantiation gets initial event from zero or one Multiple Delegated Create Action


Delegated (asynchronous) creation triggers an initial event in the Initial Pseudo State of newly created instance's Lifecycle. In a Single Delegated Create Action there is only one new instance to receive the event. With a Multiple Delegated Create Action, however, there can be multiple spliced state machines scattered across the specified Lineage in the worst case. This is often bad modeling practice, but not always. Fortunately, we can work out the target instance by selecting the one state machine specifying an Initial Pseudo State. The action need not specify this class explicitly. If more than one is found, the model breaks the principle of spliced state machines as described in [SM2] and there is an error. The process of establishing this R992 relationship will discover the error if it exists.

Formalization

Multiple Delegated Create Action.(Action, Activity, Rnum, Class, Domain) -> Facet Instantiation.(Create Action, Activity, Rnum, Class, Domain)