Tags and keywords
A CallEvent is denoted by the name of the triggering Operation, optionally followed by an assignment specification:Where:<call-event> ::= <name> [‘(‘ [<assignment-specification>] ‘)’] <assignment-specification> ::=<assigned-name> [‘,’ <assigned-name>]*
<assigned-name>
is an implicit assignment of the argument value for the corresponding Parameter of the
Operation to a Property or Variable of the context object for the triggered Behavior.
And less helpfully:
<assignment-specification>
is optional and may be omitted even if the Operation has Parameters. No standard mapping is defined from an assignment specification to the UML abstract syntax. A conforming tool is not required to support this notation. If it does, it may provide a mapping to standard UML abstract syntax, e.g., by implicitly inserting Actions to carry out the behavior implied by the notation.
We'll nevertheless attempt to mimic this as far as possible (or at least show that we can) in our Magic Model Analyst® (Cameo Simulation Toolkit®) tool simulation, with a few variations.
There are entry and exit Behaviors named start dial tone
and stop dial tone
. I don't like using names like that for definition level elements. I recommend you either at least use a capital first letter (like Start dial tone
) or you use full UpperCamelCase (a.k.a. PascalCase) like StartDialTone
; that way if you use it in an anonymous CallBehaviorAction such as :StartDialTone
you can see clearly that it is not an Action name (for which I recommend anonymous, or lowerCamelCase or 'lower case' if a name is really necessary).
But what about that entry Behavior number.append(n)
? Is it supposed to be a reference to an Operation of a property 'number' of type Number
with an Operation Number::append(n)
? This one we are going to HACK with an Activity named number.append
and an input Parameter 'n'.
Our first task though is to represent telephone "buttons" for each number one can dial as Signals