Creation Signature - modelint/shlaer-mellor-metamodel GitHub Wiki

You can create a new instance of a Class with a Lifecycle asynchronously by simply directly an ordinary Event at the target class. Unlike an Event directed at an instance of a Class, additional information is provided so that the instance can be initialized properly. The Creation Signature will define a set of Parameters that are used to set explicit values for any non-referential Attributes that must be initialized in the newly created instance.

There are two signatures specified during asynchronous creation, so be careful not to confuse the Creation Signature with the State Signature associated with the triggering Event. Here's an example written in Scrall:

Execute(time: tstamp) -> *Transfer(priority: highest) &R53 cabin in shaft, destination aslev

The first signature in parentheses, left to right, is a State Signature associated with the Execute event. It provides whatever data the transition out of the Initial Pseudo State into the initial Real State requires. The second is the Creation Signature supplying attribute initialization values. Those initialiaiton values are fed into the system generated Delegated Creation Activity.

In the actual Elevator Case Study example, the Scrall looks like this:

Execute -> *Transfer() &R53 cabin in shaft, destination aslev

where we see that the Execute event carries no required Parameters and the Delegated Creation Activity does not explicitly initialize any non-referential Attributes.

Identifiers

  1. SIGnum + Domain

Attributes

No non-referential attributes.