上一页 下一页

交互操作员

创建组合碎片时,必须应用适当的交互操作符来表征碎片。该表提供了各种操作员的指导及其相应的描述。

交互操作

操作

详情

ALT

根据布尔条件划分交互片段。

选择

附上一个可选的交互片段。

平价

指示操作数并行运行。

循环

指示操作数重复多次,如交互约束所指定。

危急

指示不能被其他处理中断的序列。

NEG

断言片段无效,并暗示所有其他交互都是有效的。

断言

指定要发生的唯一有效片段。此运算符通常包含在Conside或ignore操作数中。

严格

指示必须严格按顺序处理操作数的行为。

以次

表明组合片段的序列很弱。这意味着维护操作数内的排序,但操作数之间的排序是未定义的,只要第一个操作数的事件发生在第二个操作数的事件发生之前,如果事件发生在同一生命线上。

忽视

指示在执行期间应忽略哪些消息,或者可以出现在执行跟踪中的任何位置。

考虑

指定应在跟踪中考虑哪些消息。这通常用于使用assert运算符指定结果事件的出现次数。

REF

提供对另一个图表的引用。

不使用“ 创建组合片段”主题中描述的方法创建ref片段要创建ref片段,只需将现有图表从项目浏览器拖到当前图表上即可。

学到更多

OMG UML规范

OMG UML规范(UML上部结构规范,v2.1.1,p.468-471)规定:

'CombinedFragment的语义取决于interactionOperator,如下所述。

备择方案

interactionOperator'alt'指定CombinedFragment表示行为选择。最多将选择一个操作数。所选操作数必须具有显式或隐式保护表达式,在交互中此时计算结果为true。如果操作数没有保护,则隐含真正的保护。

定义选择的跟踪集是操作数的(保护的)跟踪的并集。

由else守卫的操作数指定一个守卫,否定封闭的CombinedFragment中所有其他守卫的分离。

如果没有操作数具有计算结果为true的保护,则不执行任何操作数,并执行封闭的InteractionFragment的其余部分。

选项

interactionOperator'opt'指定CombinedFragment表示行为的选择,其中(唯一)操作数发生或没有发生。一个选项在语义上等同于另一个CombinedFragment,其中有一个操作数具有非空内容而第二个操作数为空。

打破

interactionOperator'break'指定CombinedFragment表示一个突破场景,意思是操作数是执行的场景而不是封闭的InteractionFragment的其余部分。当guard为true并且忽略封闭的Interaction Fragment的其余部分时,选择带有guard的break运算符。当break操作数的保护为false时,将忽略break操作数,并选择封闭的InteractionFragment的其余部分。在没有保护的中断操作数和封闭的InteractionFragment的其余部分之间进行选择是非确定性的。

具有interactionOperator break的CombinedFragment应该覆盖封闭的InteractionFragment的所有Lifelines。

平行

interactionOperator par指定CombinedFragment表示操作数行为之间的并行合并。只要保留由每个操作数强加的排序,就可以以任何方式交织不同操作数的发生规范。

并行合并定义了一组跟踪,这些跟踪描述了操作数的OccurrenceSpecifications可以交错的所有方式,而不会妨碍操作数内的OccurrenceSpecifications的顺序。

弱序列

interactionOperator seq指定CombinedFragment表示操作数行为之间的弱排序。

弱序列由具有以下属性的跟踪集定义:

  1. 在结果中维护每个操作数内的OccurrenceSpecifications的顺序。
  2. 出现不同操作数的不同生命线的出现可以按任何顺序排列。
  3. 对来自不同操作数的相同生命线的出现规范进行排序,使得第一操作数的出现规范在第二操作数的出现之前。

因此,当操作数在参与者的分离集上时,弱排序减少到并行合并。当操作数仅对一个参与者起作用时,弱测序减少到严格的测序。

严格的排序

interactionOperator严格指定CombinedFragment表示操作数行为之间的严格排序。严格排序的语义定义了CombinedIFragment中第一级操作数的严格排序和interactionOperator strict。因此,包含的CombinedFragment中的OccurrenceSpecifications不会直接与封闭的CombinedFragment的其他OccurrenceSpecifications进行比较。

interactionOperator neg指定CombinedFragment表示定义为无效的跟踪。

定义具有interactionOperator否定的CombinedFragment的跟踪集等于其(唯一)操作数给出的跟踪集,只是该集是一组无效而非有效的跟踪。与Negative不同的所有InteractionFragments都被认为是积极的,这意味着它们描述了有效且应该可行的跟踪。

关键区域

interactionOperator critical指定CombinedFragment代表一个关键区域。关键区域意味着该区域的痕迹不能被其他OccurrenceSpecifications(在该区域覆盖的那些Lifelines上)交错。这意味着在确定有效迹线集时,通过封闭片段原子地处理该区域。即使封闭CombinedFragments可能意味着某些OccurrenceSpecifications可能会交错到该区域,例如par -operator,这可以通过定义一个区域来防止。

因此,封闭构造的一组痕迹受到关键区域的限制。

忽略/考虑

(p.473)interactionOperator ignore指定某些消息类型未在此组合片段中显示。这些消息类型可以被认为是无关紧要的,如果它们出现在相应的执行中,则会被隐式忽略。或者,可以理解忽略意味着被忽略的消息可以出现在跟踪中的任何位置。

相反,interactionOperator会考虑指定在此CombinedFragment中应考虑哪些消息。这相当于定义要忽略的每个其他消息。

断言

interactionOperator断言指定CombinedFragment表示断言。断言的操作数的序列是唯一有效的延续。所有其他延续会导致无效的跟踪。断言通常与Ignore或Conside结合使用。

循环

interactionOperator循环指定CombinedFragment表示循环。循环操作数将重复多次。

Guard可以包括循环的较低和较高数量的迭代以及布尔表达式。语义是这样的,循环将迭代最小'minint'次数(由guard中的迭代表达式给出)并且最多迭代'maxint'次。在执行了最小迭代次数并且布尔表达式为false之后,循环将终止。循环结构表示seq运算符的递归应用,其中循环操作数在早期迭代的结果之后被排序。

盖茨的语义学

CombinedFragment的大门代表CombinedFragment与其周围环境之间的语法接口,这意味着与其他InteractionFragments的接口。

门的唯一目的是定义消息的来源和目标。