链接复制成功!
绘制组合片段
Fragment用来对顺序图中的消息发送/接收施加控制,用以将复杂的交互场景分解为更小、更易于管理的部分。每一个Fragment都会有对应的操作符类型,不同的操作符对应着不同的逻辑控制,Fragment中一共有12种操作符类型,可参考下方的操作符介绍说明。
服务将使用频率高的loop、alt元素放到工具箱中直接使用,与通过Fragment设置成loop、alt元素意义相同无区别。
操作符介绍
片段类型 |
片段名称 |
说明 |
---|---|---|
alt |
抉择 |
具备alt操作符的Fragment通常表示一组行为选择,且最多只有一个行为被选择。被选择的行为必须有一个明确或隐含的值为true的卫语句表达式,如果没有显式卫语句表达式则表明其是一个隐含的值为true的表达式。 对应到软件模型,alt通常用来表示if...else if...或者switch语句的逻辑执行。 |
opt |
选择 |
具备opt操作符的Fragment通常表示一个唯一行为是否被选择,它等同于具备一个内容行为和一个空内容行为的alt操作符。 对应到软件模型,alt通常用来表示if 或者 if...else语句的逻辑执行。 |
break |
中断 |
具备break操作符的Fragment通常表示封闭交互内的一个中断行为,带有卫语句表达式在值为true时,该中断行为会被选择,而封闭交互内的其余交互都不会执行。与opt操作符相比,它多了一个中断后续逻辑执行的能力。该Fragment在绘制时应该包含封闭交互逻辑内的所有生命线。 对应到软件模型,break通常用来表示if...break语句的逻辑执行。 |
loop |
循环 |
片段重复一定次数,可以在临界中指示片段重复的条件。 |
par |
并行 |
并行处理。 片段中的事件可以交错。 |
critical |
关键 |
用在par或seq片段中。指示此片段中的消息不能与其他消息交错。 |
seq |
弱顺序 |
有两个或更多操作数片段。 涉及同一生命线的消息必须以片段的顺序发生。 如果消息涉及的生命线不同,来自不同片段的消息可能会并行交错。 |
strict |
强顺序 |
有两个或更多操作数片段。 这些片段必须按给定顺序发生。 |
consider |
考虑 |
指定此片段描述的消息列表。 其他消息可发生在运行的系统中,但对此描述来说意义不大。 |
ignore |
忽略 |
此片段未描述的消息列表。 这些消息可发生在运行的系统中,但对此描述来说意义不大。 |
assert |
断言 |
操作数片段指定唯一有效的序列。 通常用在 consider 或 ignore 片段中。 |
neg |
否定 |
此片段中显示的序列不会发生。 通常用在 consider 或 ignore 片段中。 |
建模步骤
- 选择片段元素的操作符类型。
从元素面板拖拽Fragment元素到画布中,会先要求用户选择对应的操作符类型,默认操作符类型是opt。各个操作符对应的含义可参考上方的操作符说明及下方的模型示例。
除了通用Fragment之外,元素面板还额外提供了使用频率较高的loop和alt操作符片段,可以快速拖入使用。
- 打开编辑条件面板。
Fragment元素通常会包含有一定量的条件集,可以在元素上通过单击“右键 > 编辑条件”打开条件编辑面板。
- 通过交互操作符下拉框设置操作符类型,支持设置操作符的显示和隐藏。
- 通过新增条件按钮/删除按钮/单击条件名称等可以新增/删除/修改条件。
- 通过条件列表首列的拖动图标调整各条件顺序。
除了右键菜单,也可以通过鼠标悬浮到Fragment元素的条件名称上,单击编辑图标打开条件编辑面板。
- 调整条件区域高度
当Fragment元素有多个条件时,在元素内会有多个条件区域,以虚线进行分隔。可以通过拖拽虚线来调整条件区域的高度。