UML

UML图之五——时序图

https://blog.csdn.net/wangyongxia921/article/details/8250107

 

一、什么是时序图

序列图表示了系统在参与者互动执行某一个用例期间,系统内部的一群对象的协作情况。一个用例就对应一个时序图。序列图是对系统动态行为进行描述。用于用例分析和设计阶段。

 

二、对比

1、序列图和协作图

序列图跟协作图相似,两种图传递的意思是一样的。不同的是序列图强调的是消息的传递顺序,它将交互关系表示为一个二维图。纵向是时间轴,横轴是对象,对象的生命周期沿竖线向下延伸。而协作图强调的是系统间的组织结构,重在表现对象的角色,消息的传递顺序不明显。

看示例:

时序图

协作图

2、时序图和类图、用例图

用例图是系统外部对象(参与者)与系统这两大对象之间的互动,而类图是对系统中涉及到得所有对象,进行抽象描述。时序图是参与者和系统进行交互,系统内部对象之间的具体互动实现。SO,时序图关联了类图与用例图,可以通过用例图和类图进行整合。

 

三、时序图的构成

1、角色:参与者。

角色是类中的用户类,可以直接拖过来用,但是这里的角色应该是脱离系统之外的一个单纯的角色。类中定义的属性和操作可以不考虑。

 

2、对象:系统内部参与用例的一群对象。

对象的来源

1、类图。

开篇已经说过时序图其实可以是用例图和类图的整合。所以时序图中的对象大部分是已经存在的。

存在哪?在类图中。也就是说时序图中的对象是我们在类中已经创建好的,我们只需要拿来用。还有一点要注意:时序图中用到得是具体的对象,而非类,所以时序图中的对象是类图中类的实例化。

画法:

2、创建

还有一小部分对象是在交互过程中通过消息创建的。

画法:

当然有创建就有撤销:在生命线的末尾打岔。

3、消息:角色,跟对象,对象和对象之间信息的传递。

简单消息:

同步消息:发出消息后等待对方回应后,再去做别的事情。

异步消息::发出消息后无需等待对方回应,可以先去做别的事情。

返回消息:

4、生命线:对象在某一用例中的生命周期。

激活期:生命线上不是虚线的部分,代表对象在某一用例过程中执行某一操作的时间。

PS:    一个用例,可以对应生成一个用例。

参与者对象只能跟边界对象互动。

实体对象不能发送消息给边界对象和控制对象。

如只是对数据增,删,该,查,可以不设置控制对象。

关系:序列图的一群对象来自类图,对象之间的交互来自用例描述。

 

四、时序图怎么画?

采用BCE(boundary-control-entity patterns)模式绘制时序图。

BCE 模型中将对象分为三类:边界类,控制类,实体类。

边界类:用来隔离系统内外,通常负责接收并响应系统内外消息,参与者与系统对象进行消息传递要通过边界类来实现。

控制类:一个用例会生成一个控制类。用来控制用例执行期间的复杂运算或者业务逻辑。

实体类:系统内部的对象。

他们的排列如下图所示。

步骤:1、找出参与者和添加用例控制类。

2、然后根据用例流程不断对边界类和实体类进行填充。

PS:控制类只有一个,边界类和实体类可以使多个。

 

分析下来,其实我们的具体实现是在做一道填空题。我们需要向B,C,E三个框中添加对象。

 

以下是对机房收费系统登陆用例的时序图:

按F5键同时生成的协作图:

修改密码示例:图一个为一次修改成功:

图二为二次修改成功

图二的画法不确定,请指正。

Leave a Reply

Your email address will not be published. Required fields are marked *