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由触发信号的名称所指示,可选的,后面跟一个赋值规约:
    <signal-event> ::= <name> [‘(’[<assignment-specification>]‘)’]
    <assignment-specification> ::= <attr-name> [‘,’ [attr-name>]*
    
    其中<_assignment-specification>与上面的CallEvent类似。
  • AnyReceiveEvent由“all”来指示:
    <any-receive-event> ::= “all”
    
  • ChangeEvent由“when”和一个布尔表达式来指示:
    <change-event> ::= “when” <value-specification>
    
    参见第8章对于各种值表达式的表示。
  • 相对的TimeEvent由“after”和一个时间表达式来指示,例如“after 5 seconds”。绝对的TimeEvent由“at”和一个实际表达式来规定,例如“at Jan. 1, 2000, Noon”。
    <time-event> ::= <relative-time-event> | <absolute-time-event>
    <relative-time-event> ::= ‘after’ <time-expression>
    <absolute-time-event> ::= ‘at’ <time-expression>
    
    参见8.4.4中对于时间表达式的表示。

    13.3.5 示例

    无。

results matching ""

    No results matching ""