前页 后页

互动运营商

创建组合片段时,必须应用适当的交互操作符来表征片段。该表提供了有关各种运算符及其相应说明的指南。

互动算子

操作员

行动

alt

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

选择

包含一个可选的交互片段。

平价

指示操作数并行操作。

循环

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

危急

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

负数

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

断言

指定发生的唯一有效片段。该运算符通常包含在考虑或忽略操作数内。

严格

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

序列

表示组合片段的序列较弱。这意味着,只要事件发生在同一生命线上,只要第一个操作数的事件发生在第二个操作数的事件发生之前,就可以保持操作数在内部的排序,但是操作数之间的排序是不确定的。

忽视

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

考虑

指定在跟踪中应考虑哪些消息。通常使用断言运算符来指定结果事件的发生。

参考

提供对另一个图的引用。

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

学到更多

OMG UML规范:

OMG UML规范( UML上层结构规范,v2.1.1,第468-471页)规定:

“ CombinedFragment的语义取决于此处所述的interactingOperator。

备择方案

interactOperator'alt'表示CombinedFragment代表行为选择。最多将选择一个操作数。选定的操作数必须具有一个显式或隐式的保护表达式,该表达式在交互中此时评估为true。如果操作数没有保护,则意味着隐式的真正保护。

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

由其他保护的操作数指定一个保护,该保护与封闭的CombinedFragment中所有其他保护的析取取反。

如果所有操作数都不具有评估为true的保护,则将不执行任何操作数,并执行其余的InteractionFragment。

选项

interactOperator'opt'表示CombinedFragment表示(唯一的)操作数发生或什么都不发生的行为选择。一个选项在语义上等效于一个替代的CombinedFragment,其中一个操作数的内容为非空,第二个操作数为空。

打破

从操作数是一个场景而不是封闭的InteractionFragment的其余部分执行的意义上来说,interactionOperator“ break”表示CombinedFragment代表一个破坏场景。当防护为真时选择带有防护的中断操作符,而忽略其余的交互片段。当中断操作数的保护值为false时,中断操作数将被忽略,并选择其余的InteractionFragment。在没有保护的中断操作数与封闭的InteractionFragment其余部分之间的选择是不确定的。

带有interactionOperator中断的CombinedFragment应该涵盖封闭的InteractionFragment的所有生命线。

平行

interactOperator参数指定CombinedFragment表示操作数的行为之间的并行合并。只要保留每个操作数所施加的顺序,就可以以任何方式交错不同操作数的OccurrenceSpecifications。

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

弱排序

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

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

  1. 结果中将维护每个操作数中OccurrenceSpecifications的顺序。
  2. 发生不同操作数的不同生命线上的规范可能以任何顺序出现。
  3. 来自不同操作数的同一生命线上的OccurrenceSpecifications的顺序是,第一个操作数的OccurrenceSpecification排在第二个操作数的OccurrenceSpecification之前。
因此,当操作数在参与者的离散集合上时,弱排序减少为并行合并。当操作数仅对一个参与者起作用时,弱排序将变为严格排序。

严格排序

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

interactOperator neg表示CombinedFragment代表定义为无效的迹线。

定义了一个带有interactionOperator负数的CombinedFragment的跟踪集等于其(唯一)操作数给出的跟踪集,只是该集合是一组无效而不是有效的跟踪。所有与Negative不同的InteractionFragments被认为是肯定的,表示它们描述了有效且应该可能的轨迹。

关键区域

interactoperator临界值指示CombinedFragment代表临界区。关键区域意味着该区域的迹线不能被其他出现规范所交错(在该区域所覆盖的生命线上)。这意味着在确定有效迹线集时,该区域将被包围的片段原子处理。即使将CombinedFragments括起来可能意味着某些OccurrenceSpecifications可能会交织到区域中,例如使用par -operator,但这可以通过定义区域来防止。

因此,封闭构建体的痕迹集受到关键区域的限制。

忽略/考虑

(第473页)interactOperator忽略表示此组合的片段中未显示某些消息类型。这些消息类型可以被认为无关紧要,如果它们出现在相应的执行中,则将被隐式忽略。另一种方法是,将“理解忽略”理解为意味着被忽略的消息可以出现在跟踪中的任何位置。

相反,interactionOperator考虑指定应在此CombinedFragment中考虑哪些消息。这等效于定义所有其他要忽略的消息。

断言

interactOperator断言指定CombinedFragment代表一个断言。断言操作数的序列是唯一有效的继续。所有其他继续导致无效的跟踪。断言通常与忽略或考虑相结合。

循环

interactOperator循环指定CombinedFragment代表一个循环。循环操作数将重复多次。

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

盖茨的语义

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

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