2024年5月26日发(作者:)

第8章使用StarUML绘制序列图

8.1 准备好类图

本章我们会根据前述章节中已经绘制好的类图8-1,继续说明绘制序列图的步骤。

图8-1 类图

8.2 新建序列图

接下来,您可以依照下述步骤新建序列图。

1. 在模型浏览器(Model Explorer)中,在项目处,按下鼠标右键,执行菜单中的【Add

Model】来新建模型,并为新模型更名为“交互设计”。

8

章 使用

StarUML

绘制序列图  

169

2. 接着,单击“交互设计”项目,执行【Add Diagram

Sequence Diagram】来新建序列图,可以更名为“计算资产

计算资产计算资产”,如图8-2所示。

3. 在新建序列图之后,我们会以类图8-1为基础,说明如

何绘制出序列图8-3,并且最后一小节中,还会根据此序列图,

说明输出通信图的操作步骤。

图8-2 新建序列图

图8-3 序列图

170C++

程序员

UML

实务手册

8.3 建立对象及消息

现在,我们要来建立对象及消息,步骤如下所述。

1. 在模型浏览器(Model Explorer)中,单击“交互设计”项目,执行【Add Actor】来

添加执行者的类,并请更名为“user”,如图8-4所示。

图8-4 添加执行者类

2. 接着,单击“user”执行者类,并拖曳至空白处,放开鼠标左键之后,序列图上添加了

一个执行者对象,如图8-5所示。

图8-5 新建执行者对象

3. 单击“结构设计”项目底下的Account类,并拖曳至空白处放开,新建另一个Account对

象,如图8-6所示。

图8-6 新建Account对象

8

章 使用

StarUML

绘制序列图  

171

4. 单击工具箱里的带实心箭头实线Stimulus(消息)图标,如图8-7所示。

5. 随后,单击user对象生命线并拖曳至Account对象生命线处放开,建立两者之间的消息线,

如图8-8所示。

图8-7 单击Stimulus图8-8 新建消息

6. 按下长条窗口最右方的添加操作(Add Operation)按键,并填入操作名称“Account”,

如图8-9所示。

图8-9 添加操作

7. 接着,StarUML已经自动更新图面,并在Account类底下添加了操作,如图8-10所示。

图8-10 更新图面

8. 单击1号消息图标,打开它的属性表,并于Stereoytpe空格处填入“create”,如图8-11所示。

172C++

程序员

UML

实务手册

9. 随后,您会发现StarUML已经更新图面,加上《create》,如图8-12所示。

图8-11 消息的属性表图8-12 <>

10. 请依照上述步骤,添加一个Fund对象,并且建立消息2,如图8-13所示。

图8-13 添加另一个对象及消息

11. 随后,按下消息长条窗口最左方的选择操作(Select an Operation)按键,并选取Fund

的操作,如图8-14所示。

12. 随后,StarUML自动更新图面,如图8-15所示。

图8-14 选取操作图8-15 Fund()

8

章 使用

StarUML

绘制序列图  

173

13. 单击图面空白处,打开序列图的属性表,并在MessageSignature处选取“NAMEANDTYPE”,

如图8-16所示。

图8-16 序列图的属性表

14. 随后,StarUML自动更新图面,显示出操作的参数,如图8-17所示。

图8-17 显示参数

15. 接着,请依照上述步骤添加RegularBid和BidItem对象及3号消息,如图8-18所示。

图8-18 3号消息

16. 单击BidItem对象图标,打开它的属性表,并勾取IsMultiInstance,如图8-19所示。

174C++

程序员

UML

实务手册

图8-19 IsMultiInstance

17. 随后,StarUML自动更新图面,显示出多个BidItem对象,如图8-20所示。

图8-20 多个BitItem对象

18. 依照上述步骤添加4~8号消息,如图8-21所示。

图8-21 添加4~8号消息

8

章 使用

StarUML

绘制序列图  

175

8.4 建立片段

接着,我们来建立循环、序列及引用片段,步骤如下所述。

1. 单击工具箱里的Combined Fragment(片段)图示,如图8-22所示。

2. 随后,在8号消息旁放置片段框,如图8-23所示。

图8-22 单击Combined Fragment图8-23 添加片段

3. 单击片段图示,打开它的属性表,可以删去预设的片段名称,并在InteractionOperator处

选取“loop”(循环),如图8-24所示。

4. 随后,StarUML自动更新图面,标记了loop字眼,如图8-25所示。

图8-24 片段的属性表图8-25 循环片段

5. 依照上述步骤添加9~11号消息,如图8-26所示。

图8-26 9~11号消息

176C++

程序员

UML

实务手册

6. 单击工具箱里的SelfStimulus(自我调用)图示,如图8-27所示。

图8-27 单击SelfStimulus

7. 随后,在11消息之长条矩形处再点一下,添加了一个自我调用消息,如图8-28所示。

图8-28 自我调用

8. 请继续添加13~14号消息和循环片段,直到如图8-29所示为止。

图8-29 13~14号消息

8

章 使用

StarUML

绘制序列图  

177

9. 单击工具箱里的Frame(框)图示,如图8-30所示。

图8-30 单击Frame

10. 随后,在10号消息旁放置片段框,如图8-31所示。

图8-31 添加片段

11. 单击框图示,打开它的属性表,更改名称为“calcAsset flow”,如图8-32所示。

图8-32 框的属性表

12. 随后,StarUML自动更新图面,标记了sd字眼,如图8-33所示。

178C++

程序员

UML

实务手册

图8-33 序列片段

13. 请继续添加15~16号消息,直到如图8-34为止。

14. 接着单击16号消息图标,打开它的属性表,命名为“delete”,并且挑选ActionKind为

“DESTROY”,如图8-35所示。

图8-34 15~16号消息图8-35 消息的属性表

15. 随后,StarUML自动更新图面,出现了大叉的标记,如图8-36所示。

图8-36 销毁消息

16. 再另外添加一个框,放置在16号消息之后,如图8-37所示。

图8-37 框

17. 单击框图示,打开它的属性表,更改名称为“calcAsset flow”,且更改FrameKind为

8

章 使用

StarUML

绘制序列图  

179

“ref”,如图8-38所示。

图8-38 框的属性表

18. 随后,StarUML自动更新图面,并完成整张序列图,如图8-39所示。

图8-39 引用片段

8.5 输出通信图

完成序列图之后,您可以执行主菜单的【Model Convert Diagram Convert Sequence(Role)

▲▲

to Collaboration (Role)】来自动输出通信图。

输出来的通信图是一团混乱,如图8-40所示。待慢慢搬移之后,才能得到如图8-41条理分

明的通信图。

图8-40 一团混乱的通信图

180C++

程序员

UML

实务手册

图8-41 通信图