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>]*
And less helpfully:
<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.
<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 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'.