15.2.4 表示法
本节规定活动的图示。该图示是可选的,遵循本规范的工具可以使用一个文本式具体语法。然而,本节及其随后子节所给出的图示是唯一符合本规范的活动图示。
活动的图示是它所包含的活动节点和活动边,和一个边界以及左上角显示的名称组合而成。活动参数节点显示在边界上(参见15.4中活动参数节点的图示)。前置和后置约束分别表示为带有«precondition»和«postcondition»关键字的文本表达式。«singleExecution»关键字用于isSingleExecution=true的活动。
图15.2 Activity notation
图15.2中的圆角边界可以使用附录A中描述的框来替换。活动参数节点显示在框上。圆角边或框可以被完全省略,此时,活动参数节点可以出现在图的任意位置。
带有«activity»关键字的类图示可以拥有表述活动的特征,如图15.3所示。它们可以使用关联显示在类图中。
图15.3 Activity class notation
活动节点的图示如下。该图示在后续子节(和第16章)有更详细的讨论。
图15.4 ActivityNode notation
活动边(不管是控制流还是对象流)表示为连接两个活动节点的、带有开放箭头的直线。如果边有名称,靠近箭头显示。guard以文本方式显示在靠近直线尾部的方括号内。
图15.5 ActivityEdge notation
活动边还可以使用一个连接器来表示,它是一个内部是边的名称的小环。这只是纯粹的展现,不影响背后的模型。所涉及到的环合线都映射到模型中的一条活动边。每个带有给定标签的连接器都必须与相同活动图中带有相同标签的另一个进行结对。一个连接器必须只有一个流入边,而结对的另一个只有一条流出边,它们必须是相同的流类型(对象或控制)。
图15.6 ActivityEdge connector notation
活动边的weight可以用如下表示:
weight-annotation :: =‘{’ ‘weight’ ‘=’ value-specification ‘}’
weight是一个值规约,可以是一个常数或者非0自然数。无限制的weight表示为“*”。
可中断区域的可中断边可以用一个闪电球来表示(参见15.6中可中断边的替代表示)。
图15.7 ActivityEdge notation
控制流用一条连接两个动作的带箭头直线来表示。
图15.8 ControlFlow notation
对象流表示为一个带箭头直线。在图15.9的右上角,两个对象流箭头指示了其背后模型中两个pins间的一条对象流边,如本图底部子图所示。(参见16.2中的其它Pin图示。当模型图被交换式,所使用的的特定图示变体应该被保持,参见附录B。)
图15.9 ObjectFlow notations
选择行为规定在一个带有«selection»关键字的便签内,并被附加到适当的对象流符号上,如下图所示。类似的,转换行为使用«transformation»关键字来规定。便签符号的内容可以包含行为的文本表示(例如,一个OpaqueBehavior的body)或者只是行为的名称。
图15.10 Specifying selection behavior on an ObjectFlow
为了减少复杂图中的杂乱,可以省略Pins。动作的名称可以暗示它们的Pins。工具可以为对象流执行提供超链接来展示流经的数据,并且在直线上显示一个小方块来指示所省略的Pins,如下图所示。任何其它靠近Pin的修饰,像effect,可以被显示在流直线的末尾。
图15.11 Eliding objects flowing on the edge
多播和多收分别使用带有«multicast»和«multireceive»标准的对象流来规定,参见15.2.5。