提示:用例图从参与者的角度出发,描述了系统的需求(用例图);静态图定义系统中的类和对象间的静态关系(类图、对象图和包图);状态机模型描述系统元素的行为和状态变化流程(状态图和活动图);而交互图描述整体系统各元素间的交互(顺序图、时间图、通信图和交互概览图)。
UML-顺序图
- 一、顺序图简介
- 1.对象
- (1)初始时已存在的对象
- (2)在执行中新建的对象
- 2.生命线
- 3.激活期
- 4.消息
- (1)序号
- (2)参数
- 5.组合片段
- (1)选项组合片段
- (2)备选组合片段
- (3)循环组合片段
- (4)引用组合片段
- 交互图主要描述系统中各个对象之间的交互,包含顺序图、时间图、交互概览图和通信图等。
- 在交互图中,使用最为广泛的是顺序图和通信图,顺序图主要突出系统对象之间交互的顺序;通信图主要突出系统对象之间的协作关系和交互的详细内容。
一、顺序图简介
- 顺序图描述了系统各成员之间的交互,这里的系统成员包括参与者、系统中的各个对象等。
- 顺序图通过时间轴的方式将这些交互联系起来,同时以时间轴的方式描述各个对象交互的先后次序。
- 顺序图从上往下表示时间的进行,每一步行为可以使用序号表达执行顺序。
- 顺序图的构成元素有四个:对象、生命线、消息和激活期。
1.对象
- 顺序图中的对象并不是系统类的对象,而是系统中存在交互的元素,可以是类、参与者或组件。
- 顺序图中的对象分为两种,一种是在程序运行初始就已经存在的。另一种是在程序的运行过程中创建的。
(1)初始时已存在的对象
- 对象在顺序图中由拖着生命线的矩形表示。对象名放在头部矩形内部。
- 顺序图中的对象代表参与交互的一类元素,并不特指一个对象。
(2)在执行中新建的对象
- 在顺序图中,由于生命线由上向下延续,初始对象在一开始就存在,因此初始对象放在顺序图中的顶部。但执行中创建的对象是在被创建之后才开始它的生存期,因此执行中创建的对象可以放在顺序图时间轴方向的中间。
2.生命线
- 生命线有两种状态:休眠状态和激活状态。处在激活状态下的生命线时段又称为激活期。
- 休眠状态下的对象没有进行交互,只要有交互存在,对象就处在激活状态。
- 休眠状态下生命线由一条虚线表示,代表对象在该时间段是没有信息交互的。
- 激活状态就是激活期,用矩形长条表示,代表对象在该段时间段内有信息交互,交互由信息表示。
- 每一种对象的生命线默认初始状态为休眠状态,在发生交互时变为激活状态。无论是休眠状态还是激活状态,都标识在对象下方的垂直线上。
3.激活期
- 当一条消息被传递给对象的时候,它会触发该对象的某个行为,这时就说该对象被激活了。在生命线上,激活期使用矩形长条表示。矩形长条本身被称为对象的控制期,控制期说明对象正在执行某个动作。
- 激活期本身从一条信息的发出或接收开始,到最后一条信息的发出或接收结束;激活期的垂直长度表示信息交互持续的时间(粗略的时间)。
- 在顺序图中,一个激活期只包含一个事件。因此需要将激活期分开来表示。
4.消息
- 对象、生命线和激活描述了对象的交互状态,而消息是对交互的解释说明。每两个对象的交互中都会有消息存在。
- 消息的高度决定了消息产生的时间顺序,在顺序图中,消息使用带箭头的直线来表示,由一个对象的生命线指向另一个对象的生命线。
- UML 中的四种类型的消息:
- 同步消息: 是同步进行、需要返回消息的消息,通常成对出现。
- 异步消息: 是不需要返回消息的消息,通常单独出现。
- 简单消息: 是不区分同步、异步的消息,用于概括消息的传递。
- 返回消息: 是对象间返回的信息消息,用于信息的传递。
- 注意: 有时消息并不用分清是同步还是异步,或者不确定是同步还是异步,此时使用简单消息代替同步消息和异步消息既能表达意思,又能很好地被接受。
(1)序号
- 序号不是顺序图的构成元素是对消息的一个补充。将顺序图中所有的消息使用连续的序号进行修饰,使读者能够根据消息的序号看出消息发出的顺序。
- 消息中的序号并不只是根据消息的发生顺序从 1 向后排序,对于同步消息来说,同步消息和异步消息的传递是不可分割的,是同一个过程,因此需要放在同一个步骤中。
- 需要作为同一个步骤的不只是同步消息和返回消息,有时一个步骤需要多个消息的交互,需要将消息的序号分级表示。
(2)参数
- 对象间传送的消息可以是信息或事件,与类中的方法等效。一些事件是有参数和返回值的,顺序图中的消息同样可以使用参数和返回值。
5.组合片段
- 组合片段是顺序图中的一个片段,以组合的形式描述顺序图中的一个特殊工作流。
- 组合片段用于解决顺序图中的控制流分支、循环或中断。
(1)选项组合片段
- 用于描述特殊情况下的对象交互。选项组合片段类似于程序中的 if 语句,而没有 else 选项。
(2)备选组合片段
- 用于指出某时刻不同情况下的所有可能的控制流,类似于程序中的 switch 语句。备选组合片段在区域内部使用虚线,分割成不同区域,每个区域代表一种条件下的控制流。
(3)循环组合片段
- 该组合片段区域内的交互需要执行多次。循环组合片段可以定义循环执行的条件,并具有 Min 和 Max 属性,分别定义交互重复的最小和最大循环次数,默认是“无限制”。
(4)引用组合片段
- 引用组合片段用来实现交互序列的可重用性。
- 引用组合片段首先定义用于重用的交互序列,之后将该交互序列引入到顺序图中的其他位置。