前页 | 后页 |
交互
创建组合片段时,您必须应用适当的交互操作符来表征片段。本表对各种操作员及其相应的描述提供了指导。
交互
操作员 |
行动 |
---|---|
alt |
根据布尔条件划分交互片段。 |
选择 |
附上一个可选的交互片段。 |
标准杆 |
指示操作数并行操作。 |
环形 |
指示操作数重复多次,由交互约束指定。 |
批判的 |
指示一个不能被其他处理中断的序列。 |
否定 |
断言片段无效,并暗示所有其他交互都是有效的。 |
断言 |
指定要出现的唯一有效片段。此运算符通常包含在考虑或忽略操作数中。 |
严格的 |
表示操作数的行为必须严格按序列处理。 |
序列 |
表明组合片段是弱排序的。这意味着操作数内的顺序保持不变,但操作数之间的顺序未定义,只要第一个操作数的事件发生在第二个操作数的事件发生之前,如果事件发生在同一生命线上。 |
忽视 |
指示在执行期间应该忽略哪些消息,或者可以出现在执行跟踪中的任何位置。 |
考虑 |
指定应在跟踪中考虑哪些消息。这通常用于使用断言运算符指定结果事件的发生。 |
参考 |
提供对另一个图表的参考。 引用片段不是使用创建组合片段主题中描述的方法创建的。要创建 ref 片段,只需将现有图表从浏览器窗口拖到当前图表上。 |
了解更多
OMG UML规范:
OMG Unified Modeling Language规范 (v2.5. 1 , pp.583-585) 指出:
interactionOperator的值对于 CombinedFragment 的语义很重要,如下文针对每个interactionOperator 枚举值指定的那样。
备择方案
interactionOperator alt 指定 CombinedFragment 代表行为的选择。最多选择一个操作数。选择的操作数必须有一个显式或隐式的保护表达式,在交互的这一点上计算结果为真。如果操作数没有保护,则隐含隐含的真实保护。定义选择的跟踪集是操作数的(受保护的)跟踪的并集。由else保护的操作数指定一个保护,它否定封闭的 CombinedFragment 中所有其他保护的析取。如果没有一个操作数具有评估为 true 的保护,则不会执行任何操作数,并且执行封闭的 InteractionFragment 的其余部分。如果在 alt CombinedFragment 的任何 InteractionOperand 中使用了内部 CombinedFragment门,则该 alt CombinedFragment 的每个 InteractionOperand 必须使用具有相同名称的门。
选项
interactionOperator opt 指定CombinedFragment 表示选择(唯一)操作数发生或什么都不发生的行为。一个选项在语义上等同于一个可选的 CombinedFragment,其中一个操作数具有非空内容,而第二个操作数为空。
休息
interactionOperator break 指定 CombinedFragment 代表一个中断场景,因为操作数是一个被执行的场景,而不是封闭的 InteractionFragment 的其余部分。当守卫闭合的其余部分为真时,选择带有交互A中断运算符。当 break 操作数的保护为false时,会忽略 break 操作数并选择其余的封闭 InteractionFragment。没有保护的中断操作数和其余的封闭 InteractionFragment 之间的选择是非确定性的。带有interactionOperator break A CombinedFragment 应该覆盖封闭InteractionFragment 的所有生命线。
平行
interactionOperator par 指定 CombinedFragment 表示操作数的行为之间的并行合并。不同操作数的 OccurrenceSpecifications 可以以任何方式交错,只要保留每个操作数强加的顺序。并行合并定义了A组跟踪,这些跟踪描述了操作数的 OccurrenceSpecifications 可以交错而不妨碍操作数内的 OccurrenceSpecifications 顺序的所有方式。
弱测序
interactionOperator seq 指定 CombinedFragment 表示操作数行为之间的弱排序。弱排序由具有以下属性的跟踪集定义:
1每个操作数内的 OccurrenceSpecification 的顺序在结果中保持不变。
2 来自不同操作数的不同生命线上的 OccurrenceSpecifications 可能以任何顺序出现。
对来自不同操作数的同一生命线上的 3 个 OccurrenceSpecification 进行排序,以使第一个操作数的 OccurrenceSpecification 排在第二个操作数的之前。
因此,当操作数在不相交的参与者集上时,弱排序会简化为并行合并。当操作数仅对一个参与者起作用时,弱排序会降低到严格排序。
严格测序
interactionOperator strict 指定 CombinedFragment 表示操作数行为之间的严格排序。严格排序的语义用interactionOperator strict 定义了CombinedFragment 内第一级操作数的严格排序。因此,包含的 CombinedFragment 中的 OccurrenceSpecifications 不会直接与封闭的 CombinedFragment 的其他 OccurrenceSpecifications 进行比较。
消极的
interactionOperator neg 指定 CombinedFragment 表示定义为无效的跟踪。定义带有interactionOperator 负数的CombinedFragment 的跟踪集等于其(唯一)操作数给出的跟踪集,只是该集是一组无效而不是有效的跟踪。所有与 Negative 不同的 InteractionFragment 都被认为是积极的,这意味着它们描述了有效且应该可能的跟踪。
关键区域
interactionOperator 关键指定 CombinedFragment 代表一个关键区域。临界区域意味着A区域的轨迹不能被其他 OccurrenceSpecifications 交错(在该区域覆盖的那些生命线上)。这意味着在确定有效跟踪集时,该区域由封闭片段原子地处理。即使封闭 CombinedFragments 可能意味着某些 OccurrenceSpecifications 可能会交织到区域中,例如使用 par-operator,但通过定义区域可以防止这种情况发生。因此,封闭构造的轨迹集受到关键区域的限制。
忽略/考虑
interactionOperator 忽略指定有一些消息类型未显示在此组合片段中。这些消息类型可以被认为是无关紧要的,如果它们出现在相应的执行中,它们就会被隐式忽略。或者,可以将忽略理解为意味着被忽略的消息类型可以出现在跟踪中的任何位置。相反,interactionOperator 考虑指定在这个组合片段中应该考虑哪些消息。这等效于定义要忽略的所有其他消息。
断言
interactionOperator 断言指定 CombinedFragment 表示一个断言。断言操作数的序列是唯一有效的延续。所有其他继续都会导致无效的跟踪。断言通常与忽略或考虑结合使用,如图 17.17 所示。
环形
interactionOperator 循环指定 CombinedFragment 代表一个循环。循环操作数将重复多次。
守卫条件可以包括循环的下限和上限迭代次数以及布尔表达式。语义是这样的,循环将迭代最少的“minint”次数(由保护中的迭代表达式给出),最多迭代“maxint”的次数。在执行了最小次数的迭代并且布尔表达式为false后,循环将终止。循环构造表示 seq 运算符的递归应用,其中循环操作数在较早迭代的结果之后排序。
如果循环包含带有规范的单独 InteractionConstraint,则只有在该规范在执行期间评估为 true 时,循环才会继续,而不管循环中指定的最小迭代次数如何。