13.3.4 表示法
在触发器上下文之外,没有事件的表示法。触发器基于事件的种类来文本式的表示:
<trigger> ::= <call-event> | <signal-event> | <any-receive-event> | <time-event> | <change-event>
其中:
- CallEvent由触发操作的名称来指示,可选的,后面跟一个赋值规约:
其中:<call-event> ::= <name> [‘(’[<assignment-specification>]‘)’] <assignment-specification> ::= <assigned-name> [‘,’ [assigned-name>]*
- <assigned-name>是一个隐含的赋值,把操作相应的参数值赋值到被触发行为的上下文对象的属性或变量。
- <assignment-specification>是可选的,即使该操作有参数它也可以被省略。从一个赋值规约到UML抽象语法没有定义一个标准的映射。遵循本规范的工具不必支持该表示。如果它支持,它可能提供一个到标准的UML抽象语法的映射,例如通过隐式地插入动作来执行由该表示所暗示的行为。
- SignalEvent由触发信号的名称所指示,可选的,后面跟一个赋值规约:
其中<_assignment-specification>与上面的CallEvent类似。<signal-event> ::= <name> [‘(’[<assignment-specification>]‘)’] <assignment-specification> ::= <attr-name> [‘,’ [attr-name>]*
- AnyReceiveEvent由“all”来指示:
<any-receive-event> ::= “all”
- ChangeEvent由“when”和一个布尔表达式来指示:
参见第8章对于各种值表达式的表示。<change-event> ::= “when” <value-specification>
- 相对的TimeEvent由“after”和一个时间表达式来指示,例如“after 5 seconds”。绝对的TimeEvent由“at”和一个实际表达式来规定,例如“at Jan. 1, 2000, Noon”。
参见8.4.4中对于时间表达式的表示。<time-event> ::= <relative-time-event> | <absolute-time-event> <relative-time-event> ::= ‘after’ <time-expression> <absolute-time-event> ::= ‘at’ <time-expression>
13.3.5 示例
无。