顺序图-循环和分支-操作符的使用

目录

目录

例子

表示循环和分支

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

 

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

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

1、alt和opt

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

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

 

顺序图-循环和分支-操作符的使用_第2张图片

图2

顺序图-循环和分支-操作符的使用_第3张图片

图3

 

2、loop

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

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

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

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

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

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

顺序图-循环和分支-操作符的使用_第4张图片

图4

3、assert、consider、ignore

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

(1)consider和assert操作符混用

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

顺序图-循环和分支-操作符的使用_第5张图片

图5

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

(2)ignore和assert操作符混用

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

4、break

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

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

 

顺序图-循环和分支-操作符的使用_第6张图片

图6

5、critical(region)

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

顺序图-循环和分支-操作符的使用_第7张图片

图7

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

 

6、par

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

顺序图-循环和分支-操作符的使用_第8张图片

图8

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

7、ref

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

Ref操作符如图9所示。

 

补充:图类型的表示法

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

图类型

对应的表示法

图类型

对应的表示法

类图

class

对象图

object

包图

package

用例图

use case

顺序图

sd

通信图

comm

定时图

timing

活动图

activity

交互概观图

intover

状态机图

statemachine

构件图

component

部署图

deployment

 

你可能感兴趣的:(UML)