顺序图-循环和分支-操作符的使用
目录
目录
例子
表示循环和分支
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 |
顺序图-循环和分支-操作符的使用相关推荐
- 【python第3课】顺序、循环、分支
程序结构:三种结构:顺序.循环.分支 分支语句 1.主要讲分支结构: 1)基本语法 if 语句 2)条件表达式就是计算结果必须为布尔值的表达式为True执行if语句 3)条件表达式的冒号不可少 4)同 ...
- 编程中的逻辑实现,三种逻辑结构(顺序、循环、分支)、跳转、函数以及错误处理
编程中常见的逻辑控制包括 1. 按顺序执行(顺序),2. 不同种情况分别处理(分支),3. 同一个操作重复执行(循环).搭配上跳转语句.函数和错误处理就可以实现大多数逻辑状况. 一.顺序 顺序是最常见 ...
- UML测试题(顺序图建模)
顺序图建模 相关文章: UML测试题(UML基础)_星星以外的博客-CSDN博客 UML测试题(用例图基础a)_星星以外的博客-CSDN博客 UML测试题(用例图基础b)_星星以外的博客-CSDN博 ...
- 软件测试顺序图写测试用例,基于UML顺序图的场景测试用例生成方法
基于UML顺序图的场景测试用例生成方法 发表于:2007-06-01来源:作者:点击数: 引言 本文提出了一个基于 UML 模型图来测试场景的方法,它以顺序图为主要测试模型,结合类图和状态图导出所有的 ...
- 顺序图中的复合片断(条件、可选、循环、同步)和引用片断
顺序图中对于流程控制的模块: 复合片段(Combined Fragments) 复合片段有多种,在此主要介绍一下几种: 条件判断.可选.循环.同步 1.条件判断:用于描述代码中if-else-这种结构 ...
- UML学习笔记——顺序图(时序图)
文章目录 顺序图(时序图) 顺序图的引入 顺序图的概念 顺序图的组成 ①对象( Object) ②生命线( Lifeline ) ③激活(Activation) (控制焦点focus of contr ...
- uml通信图画法_UML 交互图 (顺序图、通信图、鲁棒图、定时图)
交互与交互图 交互的概念 一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为 消息 UML中的4种交互图 顺序图:顺序图是一种强调消息时间顺序的交互图,为读 ...
- shell循环和分支
循环和分支 对代码块的操作是构造组织shell脚本的关键. 循环和分支结构为脚本编程提供了操作代码块的工具. 10.1. Loops 循环就是重复一些命令的代码块,如果条件不满足就退出循环. for ...
- 动态顺序图可视化控件
目录 介绍 为什么要使用它? 分布式系统的端到端跟踪 调试器 背景 使用代码 示例 如何使用控件 怎么运行的 Tick()方法 元素渲染 API引用 顺序 参加者 消息 激活 方框 SequenceD ...
最新文章
- 部分和模板的复杂嵌套
- 索赔 100 万!只是因为一个开源插件?
- TensorFlow2简单入门 - 池化层
- 乱入Linux界的我是如何学习的
- 06 / LiveVideoStack主编观察:六岁的Frame.io被收购
- 函数sigsetjump和siglongjump
- 数据统计 测试方法_统计测试:了解如何为数据选择最佳测试!
- 【转载】Kali-linux安装之后的简单设置
- WCF 基础 契约 和 绑定
- Android ViewPager + PagerAdapter 实现轮播图
- 运用incremental backup恢复归档GAP的DG-上篇
- oracle毕业论文题目,2012届本科毕业论文设计题目参考
- python控制小爱同学_GitHub - xinruoyusixian/Blinker-for-xiaoai: 基于micopython 的小爱同学的代码...
- 芭蕉河梯级水电站群监控系统
- 基于python高仿探迹源码
- 怎么起用计算机无线开关,笔记本电脑无线网卡,教您如何打开电脑无线网卡开关...
- 2023年电工杯数学建模AB题思路分析
- 在windows下制作mac os x的启动安装U盘
- visio中公式太小_针织布的价格计算公式你学会了吗?
- outlook2010 pst文件压缩方法
热门文章
- [摘录]TGA图像文件格式资料
- 阿迪卫衣79/茅台茅韵两瓶149/南极人内裤4条14.9/八杯水九件套59.9
- Vue app.js文件过大,带宽占用过大,优化方案(持续优化)
- android回收activity,Android系统回收activity行为
- 用于说明卷积神经网络(ConvNet)的Python脚本
- 计算机应用基础excel2007 6.2使用函数和公式 教案,计算机应用基础教案62使用函数和公式.docx...
- Nature:基于宏基因组测序构建人类肠道微生物组参考基因集
- 鸭鸭来袭--官方下载
- C# 获取汉字的拼音首字母(转)
- 优秀!95后程序员月薪2万背电脑送外卖,送单途中修bug!