R515 - modelint/shlaer-mellor-metamodel GitHub Wiki
R515 / 1:M
State Signature defines input required by one or many Real State
Real State requires input defined by exactly one State Signature]
We define a set of signatures on a State Model such that each has its own unique set of Parameters. The same State Signature can then be shared by any Real State in the same State Model. An Event Specification can then conform to one of these State Signatures and thereby be able to effect a Transition into any associated State.
This is much easier than, say, defining signatures both for Event Specifications and States and then having to match them up whenever defining a Transition into a State to ensure that each shares the same set of Parameter names and types.
As an example consider a State Model with multiple Real States where no Parameters at all are required. In that situation, the State Model defines only one State Signature associated with the empty set of Parameters. This State Signature will then be shared among all of the Real States.
Now let's say that we add one more Real State 'CRUISE' with a State Activity that requires the parameters (speed: Airspeed, altitude: MSL Altitude). We must define a new State Signature, associated it with those Parameters, and then associated with the new Real State. If we later define another Real State that requires the same exact set of Parameters, within the same State Model, we can re-use that State Signature. Any Event Specification associated with this parameter set may trigger a Transition only to one of these two Real States.
Every State requires a set, possibly the empty set of Parameters as defined by a State Signature.
More than one Real State will share the same State Signature if all such States require the same set of Parameters.