返回目录:
Chilan Yuk:软件工程分析设计图库目录zhuanlan.zhihu.com顺序图说明事件如何引发从一个对象到另一个对象的转移。一旦通过用例确认事件,就可以创建一个顺序图。事实上,顺序图表现了导致行为从一个类流动到另一个类的关键类和事件。
顺序图以栅栏的形式描述对象的交互,其中在右侧添加新创建对象。
一、主要元素
1. 对象
参与交互的类的实例,对象之间可以发送消息和接收消息。在分析模型中可以用类的类型表示对象。
2. 参与者
描述本次交互的发起者,即用例的驱动者。用小人形状表示。
3. 生命线
生命线用于描述对象的生存周期,对象下方的虚线就是该对象的生命线。
4. 执行规格条/激活条
表示控制焦点的控制期,指活动者或对象处于执行状态的时间段。用矩形条表示。
5. 消息
消息用于描述对象间交互的方式及内容。
消息(它可能表示事件或操作的调用)被画成水平的。
消息图标的端点与垂直线相连,这些垂直线又与图顶部的实体相连。消息从发出者指向接收者。次序由垂直位置来表示,第一个消息出现在图的顶部,最后一个消息出现在图的底部。
二、消息类型
1. 同步消息
一个对象向另一个对象发出同步消息后,将处于阻塞状态,一直等到另一个对象的回应。
2. 异步消息
一个对象向另一个对象发出异步消息后,这个对象可以进行其他的操作,不需要等到另一个对象的响应。
3. 返回消息
表示从过程调用返回。
4. 简单消息
不区分同步或异步。
三、消息语法格式
[条件][消息序号][返回值:=]消息名([参数列表])
例如:
- 2:display( x , y ):简单消息
- 1.2.1:p:= find( specs ):嵌套消息,消息带返回值
- [x<0] 4: invert( x , color ) :条件消息
- 3.1 * update( ):循环消息
四、销毁事件
销毁事件表明何时一个对象被销毁,它表示为生命线末端的一个 X。
如果对象是一个组合对象,那么相关的对象也会被销毁。
五、控制流
有两种方式来修改顺序图的控制流:使用分支、使用从属流。
1. 使用分支
2. 使用从属流
从属流允许某一个对象根据不同的条件改变执行不同的操作,即创建对象的另一条生命线分支。
六、控制结构
序列片段可以用来简化序列图,也可以用来表示序列图中的流程控制结构。
如下图,在序列图中引入一个循环。
矩形方框表示UML图框。图框操作符有下列几种:
- alt:选择性片段。
- loop:条件为真的循环片段。
- opt:可选片段。
- par:并行执行片段。
- region:只能执行一个线段的临界片段。
例题:商场购物卡
- 若某商场中发行一种购物卡,用户可以根据自己的需要提出申请去办理购物卡。
- 商场的卡管理员可以根据申请,创建新的购物卡。
- 用户可以向购物卡预存费用,商场卡管理员为该用户添加相应的预存费用。
- 用户可以用购物卡在商场进行消费,每进行一次消费,售货员就从购物卡中扣除相应的费用。
- 当购物消费每满一定数额时,商场自动在卡中添加奖励费。