1、顺序图
顺序图又称为时序图,顾名思义,它着重表现的是对象间消息传递的时间顺序。顺序图描述的对象也是一个用例,即一组行为操作,而它表现的是这组行为的先后关系(纵坐标),以及每个行为是属于哪个对象的(横坐标)。
作用:用对象间的交互来描述用例。
组成成分:参与者、对象
对象的生命线:用于表示某段时间内该对象是存在的,表示对象的生存时间。
消息:表示对象间的通信。当收到消息后,接收消息的对象立即开始执行活动,起到激活对象的作用。通常用消息名和参数表来标识。
横坐标:表示不同的对象。对象的左右顺序不重要,但是为了整洁清晰,应该遵循以下两个原则:(观点来自于http://www.lupaworld.com/article-233409-1.html)
(1)把交互频繁的对象尽可能地靠拢。
(2)把初始化整个交互活动的对象(有时是一个参与者)放置在最左边。
纵坐标:表示行为的先后关系。在图上方的消息在时间上先于下方的消息,消息的阅读顺序是严格自上而下的。
下面以银行储蓄系统为例:
参与者:储户、业务员
对象:窗口类(Windows)的对象表单(form)、账户类(Account)的对象、取款记录类(WithdrawRecord)的对象。
消息:
1)首先业务员向表单对象发送消息:inputWithdrawInfo(输入取款信息);
2)表单对象接收到消息后向账户对象发送消息:withdraw(取款),消息含有参数:accountNo(账户编号)、amount(取款数量);
3)账户对象接收消息后向自己发送消息,激活自己的行为活动:checkBalance(查询余额),消息含有参数:accountNo(账户编号)、amount(取款数量);
4)接下来账户对象向窗口对象(表单)发送返回消息:requestPassword(要求输入密码);
5)储户输入密码后,向账户对象发送消息:checkPassword(请求检验密码),消息含有参数:pwd(密码);
6)账户对象检查密码后,如果密码正确,则回馈给储户密码正确的信息(return true);
7)、8)账户对象向自身发送信息,激活自身的行为:compInterest(计算利息)、compBalance(计算账户余额);
9)账户对象向取款记录对象发送消息:addRecord(增加记录),消息参数有:accountNo(账户编号)、amount(取款数量)、interest(利息);
10)如果添加记录成功,取款记录对象向账户对象返回正确的消息(return true);
11)如果账户对象收到正确的消息,则向业务员返回正确的消息(return true)。
2、用Visio画UML顺序图
(1)打开Visio 2010软件
(2)点击“新建”->“软件和数据库”->“UML模型图”。
(3)在“模型资源管理器”中右击“顶层包”或者先新建一个子系统,“新建”->“序列图”
(4)下面就可以拖拽各种组件来构建自己的顺序图了。
其中“参与者”在“UML用例”中可以找到,其他的组件都在“UML序列”中可以找到。
如果想更改对象或者消息的名称,则双击绘制屏幕上的组件,输入信息即可。