目录

目录

例子

表示循环和分支

1、alt和opt

2、loop

3、assert、consider、ignore

(1)consider和assert操作符混用

(2)ignore和assert操作符混用

4、break

5、critical(region)

6、par

7、ref

补充:图类型的表示法



例子

绘制饮料自动销售系统顺序图

表示循环和分支

顺序图中,对象的行为有循环和分支两种方式,为了表示这两种行为,引入了交互片段、区域和操作符的概念。下面分别讲述。

一个交互片段可以包含多个区域,每个区域拥有一个监护条件和一个复合语句。

图1

在图1中是操作符alt的使用实例,它说明如果peddeleryid不存在,则执行复合语句1;如果存在执行复合语句2。如果要表示多个条件分支,则可以用“区域分隔线”分解出多个区域,并为每个区域设置一个监护条件。

每个交互片段都有一个操作符,操作符决定了交互片段的执行方式.下面分别讲述每种操作符的应用.

1、alt和opt

可以表示分支的操作符有两个:支持多条件的alt和支持单条件的的opt。

在图2中,实际上要表示的逻辑是“如果peddeleryid不存在就先创建它,然后添加;否则就直接添加。因此,也可以使用单条件的opt来表示,如图3

图2

图3

2、loop

表示循环的操作符是loop,它说明该片段将可以执行多次,而具体的次数由循环次数和监护条件表达式来说明。在图7-7中,没有通过循环次数说明,而只是采用了监护条件。它表示的意思是,对每一个orderltem都执行一遍业务逻辑。也可以显式地指出循环的次数,例如:

Loop(1,n):表示for i=1;i<n;i++

Loop(10):表示执行10次。

交互片段是UML2.0中新添加的一个特性,因此在采用UML1.0的建模工具时是无法完成上述模型的。这时,只能使用UML1.0中的迭代标记和监护条件来表示。

迭代标记是由一个附于消息名的“*”号来表示,用来表示循环,也可以在“*”号后面加上一个方括号,并在里面写出循环次数。监护条件是置于方括号内的条件表达式。

虽然这些标志在UML2.0的顺序图已经不再采用,但是在UML2.0的通信图中是仍然保留的。如果用这种表示法,那么与图7-4等价的交互图就将是如图4所示。

图4

3、assert、consider、ignore

操作符assert是用来表示行为是执行过程中那个时刻唯一的有效行为。如果执行到这个片段的前面,则说明该片段一定会发生。它通常和ignore或consider一起使用,以断言某种特定种类的信息行为。

(1)consider和assert操作符混用

操作符consder包含一个子片段和一个消息类型列表。只有列表中的消息类型可以出现在子片段中,这表示其他类型可以出现在实际的系统中,但是交互会忽略它们。图5所示是一个混合使用assert和consider操作符的例子。

图5

图5所表示的意思是,他们只接受start或stop消息(consider{start,stop}),而且在start消息之后必须是一个stop消息(assert操作符表示),而不能是其他消息。

(2)ignore和assert操作符混用

操作符ingore也包含一个子片段和一个消息类型列表。列表中的消息类型可以出现在子片段中,但交互会忽略它们。它的含义与consider刚好相反

4、break

操作符break和循环语句的berak有些类似,通常用break定义一个含有监护条件的子片段。如果监护条件为“真”则执行子片段,而且不执行子片段后面的其他交互;如果监护条件为“假”,那么就按正常流程执行.

在图6中,当系统要用户登录时。如果单击“取消”按钮,那么就将取消登录。并且不再执行后续地交互;否则就将等待用户输入登录信息,系统对输入的信息进行相应地应答。

图6

5、critical(region)

操作符crtical表示子片段是“临界区域”,在临界区域中,生命线上的事件序列不能和其他区域中的任何其他事件交错。它通常用来表示一个原子性的连续操作,例如事务性操作,图7所示就是一个实际的例子。

图7

图7表示地含义是,从银行帐号(bankaccount)扣钱和往证卷帐户(stockaccount)加钱的这两个动作要么全部成功完成,要么都不执行。

6、par

操作符par是用来表示“并行”的,也就是用来表示两个或多个并发执行的子片段,并行子片段中,单个元素的执行次序可以以任何可能的顺序相互操作(除非采用critical禁止)。例如,可以采用图8来表示VCD播放器的工作原理。

图8

这幅图说明在VCD播放的过程中,显然图像(displayframe)的同时,可以响应各种按键。但是有一个例外,当用户按下暂定键(pause)时,在用户按下恢复键之前是无法显示图像的。

7、ref

ref用来在一个交互图中,引用其他的交互图. 在一个矩形框的左上交标识ref操作符,并在方框中写明被引用的交互图名称。

Ref操作符如图9所示。

补充:图类型的表示法

在UML中,各种图类型的表示法如表所示。

图类型

对应的表示法

图类型

对应的表示法

类图

class

对象图

object

包图

package

用例图

use case

顺序图

sd

通信图

comm

定时图

timing

活动图

activity

交互概观图

intover

状态机图

statemachine

构件图

component

部署图

deployment

顺序图-循环和分支-操作符的使用相关推荐

  1. 【python第3课】顺序、循环、分支

    程序结构:三种结构:顺序.循环.分支 分支语句 1.主要讲分支结构: 1)基本语法 if 语句 2)条件表达式就是计算结果必须为布尔值的表达式为True执行if语句 3)条件表达式的冒号不可少 4)同 ...

  2. 编程中的逻辑实现,三种逻辑结构(顺序、循环、分支)、跳转、函数以及错误处理

    编程中常见的逻辑控制包括 1. 按顺序执行(顺序),2. 不同种情况分别处理(分支),3. 同一个操作重复执行(循环).搭配上跳转语句.函数和错误处理就可以实现大多数逻辑状况. 一.顺序 顺序是最常见 ...

  3. UML测试题(顺序图建模)

    顺序图建模  相关文章: UML测试题(UML基础)_星星以外的博客-CSDN博客 UML测试题(用例图基础a)_星星以外的博客-CSDN博客 UML测试题(用例图基础b)_星星以外的博客-CSDN博 ...

  4. 软件测试顺序图写测试用例,基于UML顺序图的场景测试用例生成方法

    基于UML顺序图的场景测试用例生成方法 发表于:2007-06-01来源:作者:点击数: 引言 本文提出了一个基于 UML 模型图来测试场景的方法,它以顺序图为主要测试模型,结合类图和状态图导出所有的 ...

  5. 顺序图中的复合片断(条件、可选、循环、同步)和引用片断

    顺序图中对于流程控制的模块: 复合片段(Combined Fragments) 复合片段有多种,在此主要介绍一下几种: 条件判断.可选.循环.同步 1.条件判断:用于描述代码中if-else-这种结构 ...

  6. UML学习笔记——顺序图(时序图)

    文章目录 顺序图(时序图) 顺序图的引入 顺序图的概念 顺序图的组成 ①对象( Object) ②生命线( Lifeline ) ③激活(Activation) (控制焦点focus of contr ...

  7. uml通信图画法_UML 交互图 (顺序图、通信图、鲁棒图、定时图)

    交互与交互图 交互的概念 一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为 消息 UML中的4种交互图 顺序图:顺序图是一种强调消息时间顺序的交互图,为读 ...

  8. shell循环和分支

    循环和分支 对代码块的操作是构造组织shell脚本的关键. 循环和分支结构为脚本编程提供了操作代码块的工具. 10.1. Loops 循环就是重复一些命令的代码块,如果条件不满足就退出循环. for ...

  9. 动态顺序图可视化控件

    目录 介绍 为什么要使用它? 分布式系统的端到端跟踪 调试器 背景 使用代码 示例 如何使用控件 怎么运行的 Tick()方法 元素渲染 API引用 顺序 参加者 消息 激活 方框 SequenceD ...

最新文章

  1. 部分和模板的复杂嵌套
  2. 索赔 100 万!只是因为一个开源插件?
  3. TensorFlow2简单入门 - 池化层
  4. 乱入Linux界的我是如何学习的
  5. 06 / LiveVideoStack主编观察:六岁的Frame.io被收购
  6. 函数sigsetjump和siglongjump
  7. 数据统计 测试方法_统计测试:了解如何为数据选择最佳测试!
  8. 【转载】Kali-linux安装之后的简单设置
  9. WCF 基础 契约 和 绑定
  10. Android ViewPager + PagerAdapter 实现轮播图
  11. 运用incremental backup恢复归档GAP的DG-上篇
  12. oracle毕业论文题目,2012届本科毕业论文设计题目参考
  13. python控制小爱同学_GitHub - xinruoyusixian/Blinker-for-xiaoai: 基于micopython 的小爱同学的代码...
  14. 芭蕉河梯级水电站群监控系统
  15. 基于python高仿探迹源码
  16. 怎么起用计算机无线开关,笔记本电脑无线网卡,教您如何打开电脑无线网卡开关...
  17. 2023年电工杯数学建模AB题思路分析
  18. 在windows下制作mac os x的启动安装U盘
  19. visio中公式太小_针织布的价格计算公式你学会了吗?
  20. outlook2010 pst文件压缩方法

热门文章

  1. [摘录]TGA图像文件格式资料
  2. 阿迪卫衣79/茅台茅韵两瓶149/南极人内裤4条14.9/八杯水九件套59.9
  3. Vue app.js文件过大,带宽占用过大,优化方案(持续优化)
  4. android回收activity,Android系统回收activity行为
  5. 用于说明卷积神经网络(ConvNet)的Python脚本
  6. 计算机应用基础excel2007 6.2使用函数和公式 教案,计算机应用基础教案62使用函数和公式.docx...
  7. Nature:基于宏基因组测序构建人类肠道微生物组参考基因集
  8. 鸭鸭来袭--官方下载
  9. C# 获取汉字的拼音首字母(转)
  10. 优秀!95后程序员月薪2万背电脑送外卖,送单途中修bug!