UML时序图
一、时序图
时序图是一种强调时间顺序的交互图,在时序图中,首先把参与交互的对象放在图的上方,沿X轴方向排列。通常把发起交互的对象放在左边,较下级对象依次放在右边,然后把这些对象发送和接受的消息沿Y轴方向按时间顺序从上到下放置。这样就提供了控制流随着时间推移的清晰的可视化轨迹。
二、时序图元素
1、角色
系统角色,可以是人、及其甚至其他的系统或者子系统
2、对象
对象包括三种命名方式:
第一种方式包括对象名和类名;
第二中方式只显示类名不显示对象名,即表示他是一个匿名对象;
第三种方式只显示对象名不显示类明。
3、生命线
生命线在顺序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间,如下图
4、控制焦点
控制焦点是顺序图中表示时间段的符号,在这个时间段内对象将执行相应的操作。用小矩形表示
5、消息
消息一般分为同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message).如下图所示:
同步消息=调用消息(Synchronous Message)
消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。
异步消息(Asynchronous Message)
消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。
返回消息(Return Message)
返回消息表示从过程调用返回
6、自关联消息
表示方法的自身调用以及一个对象内的一个方法调用另外一个方法
7、时序图实例:
8、时序图和协作图是可以相互转化的,只要按F5就可以轻松转化。
————————————————————————————————————————————————————————
中央控制序列图
分布控制序列图
范例:[自调用、调用、创建、销毁、自销毁、同步、异步消息]
循环与条件:[loop 、alt、 opt、 guard警戒]
——————————————————————————————————————
一. 时序图 (Sequence Diagram)
1.时序图的概念
时序图定义 : 描述了对象之间传递消息的时间顺序, 用来表示用例中的行为顺序, 是强调消息时间顺序的交互图;
时序图描述的事物: 时序图描述系统中类和类之间的交互, 将这些交互建模成消息交换, 时序图描述了类以及类之间的交换以完成的期望行为的消息, 时序图中每条消息都代表了类的一个操作 或者 引起状态机改变的触发事件;
时序图表示 : 参与交互的对象在时序图顶端水平排列, 每个对象的底端绘制了一条垂直虚线, 对象A像对象B发送消息, 用一条带箭头的实线表示, 该实线起始于对象A底部的虚线, 终止于对象B底部的虚线; 实线箭头水平放置, 越靠近顶端越早被发送.
时序图轨迹 : 时序图提供了随时间推移的, 清晰的 可视化的轨迹;
2. 时序图组成
时序图组成 : 时序图包括四个元素 对象(Object), 生命线(Lifeline), **(Activation), 消息(Message);
(1) 对象(Object)
对象 : 时序图中的对象在交互中扮演的角色就是对象;
对象的符号 : 时序图中的对象与对象图中的表示方法一样, 使用矩形将对象名称包含起来, 并且对象名称下有下划线;
对象创建时机 : 对象可以在交互开始的时候创建, 也可以在交互过程中进行创建;
– 处于顶部 : 如果对象的位置在时序图顶部, 说明在交互开始的时候对象就已经存在了;
– 不在顶部 : 如果对象的位置不在顶部, 那么对象在交互过程中创建的;
(2) 生命线(Lifeline)
生命线 : 生命线是一条垂直的虚线, 这条虚线表示对象的存在, 在时序图中, 每个对象的底部都有生命线;
生命线作用 : 生命线是一个时间线, 从时序图顶部一直到底部都存在, 其长度取决于交互的时间;
对象的生命线 : 对象与生命线结合在一起就是对象的生命线, 这个概念包含对象图标 以及 对象下面的生命线图标 如上图;
(3) **(Activation)
**(Activation) : 代表时序图中对象执行一项操作的时期, **期可以理解为语义中 {} 中的内容, 表示该对象被占用以完成某个任务;
去**(Deactivation) : 指对象处于空闲状态, 在等待消息**这个对象;
**的表示 : 当对象处于**时期, 生命线可以拓宽为矩形, 这个矩形条成为**条;
**去**的时机 :
– ** : 对象**是在**条的顶部**;
– 去** : **条的底部去**, 通常发生在一个消息离开对象生命线;
(4) 消息
消息概念 : 定义 交互 和 协作 中 交换信息 的类, 对 对象之间的 通信内容 建模;
消息动作 :
– 动作种类 : 消息允许在实体间传递信息 (传递参数), 允许实体请求其它服务, 对象之间通过 发送 和 接收 消息 进行通信;
– 产生结果 : 消息可以触发操作, 唤起信号, 或使目标对象创建 或 销毁;
消息的异步和同步通信 :
– 异步通信 : 消息是信号的时候, 发送信号之后, 等待对方触发相应方法, 这是明确的 命名的 对象间的异步通信;
– 同步通信 : 直接调用对象的方法, 执行方法返回结果, 这种具有返回控制机制的操作是同步通信;
时序图和协作图中消息的区别 : 时序图中的消息强调顺序, 协作图中的消息强调交换消息的对象间的关系;
消息类型 :
– : 两个对象间绘制消息;
– : 两个对象之间的过程调用;
– : 两个对象之间的异步消息;
– : 过程调用中返回的消息;
– : 绘制反身消息;
3. 时序图示例
示例简介 :
– 使用场景 : 汽车租赁公司;
– 使用的对象 : Customer (客户), Worker (工作人员), Order (请求), Record (记录), Car (汽车);
– 工作流程 : ① 客户 向 工人 提出租车要求, ② 工人 检查 请求, ③ 客户 付款, ④ 工人 填写 记录, ⑤ 工人 取车;
时序图 :
4. 对象的创建和撤销
对象位置 :
– 顶部 : 时序图中对象的默认位置是在时序图顶部, 这表明对象在交互开始之间就已经存在;
– 中间 : 如果对象在时序图中间部分, 说明对象时在交互过程中创建的;
交互过程中创建对象的方法 :
– 消息指向对象 : 消息是构造方法, 箭头指向对象所代表的的矩形;
– 消息指向**条 : 消息是构造方法, 箭头指向对象下面的**条;
撤销对象 : 如果想要在时序图中撤销一个对象, 因为如果同时有几个对象, 如果不进行特殊操作其生命周期将会一样长;
– 效果图 : 下图中将 Customer 和 Order 对象撤消了, 因为它们基本没有参与后期的交互;
参考:https://blog.****.net/ggibenben1314/article/details/8572431
https://blog.****.net/tanxiang21/article/details/8222188
https://blog.****.net/xingjiarong/article/details/50232199