今天小编终于把所有的图都画完啦,在建好系统用例图以及类图基础上分析和设计系统的动态图(结构行为图)并且建立相应的动态模型。

动态模型:描述了系统随时间变化的行为,这些行为是用从静态视图中抽取的系统的瞬间值的变化描述的。

在UML的表现上,动态模型主要是建立系统的交互图以及活动图和状态图。今天咱们主要来聊一聊交互图——包含时序图和协作图。

一、时序图(Sequence Diagram)

一、时序图(Sequence Diagram)也称为序列图、循序图、顺序图等,是一种UML交互图。

时序图是一种描述不同对象之间交互(按时间顺序排列交互)的图。它描述了对象之间传递消息的时间顺序,它用来表示用例中的行为顺序,是强调消息时间顺序的交互图。

时序图中描述的内容有两类:

(1)参与交互的对象;

(2)对象之间消息交互的时间先后顺序。

二、时序图元素:对象(Object)、生命线(Lifeline)、激活(Activation)、消息(Message)

1.对象(Object)

对象 : 时序图中的对象在交互中扮演的角色就是对象;

对象的符号 : 时序图中的对象与对象图中的表示方法一样, 使用矩形将对象名称包含起来, 并且对象名称下有下划线;

对象创建时机 : 对象可以在交互开始的时候创建, 也可以在交互过程中进行创建;

-- 处于顶部 : 如果对象的位置在时序图顶部, 说明在交互开始的时候对象就已经存在了;

-- 不在顶部 : 如果对象的位置不在顶部, 那么对象在交互过程中创建的;

2.生命线(Lifeline)

生命线 : 生命线是一条垂直的虚线, 这条虚线表示对象的存在, 在时序图中, 每个对象的底部都有生命线;

生命线作用 : 生命线是一个时间线, 从时序图顶部一直到底部都存在, 其长度取决于交互的时间;

对象的生命线 : 对象与生命线结合在一起就是对象的生命线, 这个概念包含对象图标 以及 对象下面的生命线图标

3.激活(Activation)—— 控制焦点(Activation)

激活(Activation) : 代表时序图中对象执行一项操作的时期, 激活期可以理解为C语言语义中 {} 中的内容。激活表示该对象被占用以完成某个任务;

去激活(Deactivation) : 指对象处于空闲状态, 在等待消息激活这个对象;

激活的表示 : 当对象处于激活时期, 生命线可以拓宽为矩形, 这个矩形条成为激活条;

激活去激活的时机 :

-- 激活 : 对象激活是在激活条的顶部激活;

-- 去激活 : 激活条的底部去激活, 通常发生在一个消息离开对象生命线;

4.消息(Message)

消息概念 : 定义 交互 和 协作 中 交换信息 的类, 对 对象之间的 通信内容 建模;

消息动作 :

-- 动作种类 : 消息允许在实体间传递信息 (传递参数), 允许实体请求其它服务, 对象之间通过 发送 和 接收 消息 进行通信;

-- 产生结果 : 消息可以触发操作唤起信号, 或使目标对象创建 或 销毁;

消息代表对象之间发送的信息。消息分为三个类型:

(1)同步消息(Synchronous Message): 消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。以一条实线+实心箭头表示。

(2)异步消息(Asynchronous Message): 消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。以一条实线+大于号表示。

(3)返回消息(Return Message):返回消息表示从过程调用返回。以小于号+虚线表示。

比如:

同步消息:你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。
异步消息:你叫我去吃饭,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭。

自关联消息

表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。以一个半闭合的长方形+下方实心剪头表示。

如下图,我们来认识一下这四个元素的表示符号:

消息类型 :

--  : 两个对象间绘制消息;

--  : 两个对象之间的过程调用;

--  : 两个对象之间的异步消息;

--  : 过程调用中返回的消息;

--  : 绘制反身消息;

提示:消息在生命线 上所处的位置并不是消息发生的准确时间,只是一个相对的位置 。如果一个消息 位于另一消息的上方,只说明它先与另一个消息被发送。

使用Rational Rose工具画时序图时的注意点:

1.画一个对象后,显示的可能是不带激活的状态(只有一条生命线),而你需要两个对象之间传递消息,有没有很慌找不到激活的那个小矩形,我该从哪里画消息的连线呢?

  哈哈哈,小编就有这个疑惑,手足无措一脸懵。其实,你可以随便在任何位置开始画消息的那根连线,只要你画消息,自然便激活啦。

2.如果画的过程中需要删除某些消息怎么办?

如果你点击Delete,则会删除整个对象,及对象下边涉及的所有信息操作。

如果你只想删除一条消息,可以点击Ctrl+D删除,但是要注意,如果这个消息所在的激活条上还有其他消息,则可能会把附带的其他消息,以及其他消息连接的其他激活条全部删除,这时候可以点击你所要删除的消息连接线,将他移动,使之自己为一个激活条(不影响其他激活条和消息),再点击Ctrl+D即可。

3.如果要撤销一个对象,只要在其生命线终止点放置一个“X”符号即可,该点通常是对 删除或取消 消息的回应。

【二】协作图(Collaboration Diagram)

一、协作图(Collaboration Diagram):

协作图(Collaboration Diagram /Communication Diagram,也叫合作图)是一种交互图(interaction diagram),强调的是发送和接收消息的对象之间的组织结构

一个协作图显示了一系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。对象通常是命名或匿名的类的实例,也可以代表其他事物的实例,例如协作、组件和节点。使用协作图来说明系统的动态情况。

协作图就是表现对象协作关系的图,它表示了协作中作为各种类元角色的对象所处的位置,在图中主要显示了类元角色(Classifier Roles)和关联角色(Association Roles)。

在UML的表示中,协作图将类元角色表示为类的符号(矩形),将关联角色表现为实线的关联路径,关联路径上带有消息符号。

二、协作图的组成元素:对象(Object)、链(Link)、消息(message)

对象和链分别作为协作图中的类元角色和关联角色出现,链上可以有消息在对象间传递。

1. 对象(Object):对象代表协作图交互中所扮演的角色。(与时序图中对象的概念类似,但是在协作图中,无法表示对象的创建和撤销,所以兑现在协作图中的位置没有限制。)

表示:矩形。  矩形内为对象的名字。

2.链(Link):  协作图中链的符号和对象图中链所用的符号是一样的,即一条连接两个类角色的实线。

表示:一条实线。

作用:连接对象。连线可以有名字,它标注与实线上。

协作图中的对象以及几种常用的链符号:

3.消息(Message):消息代表协作图中对象间通过链接发送的消息。

对象之间的箭头表明在对象间交换的消息流,消息由一个对象发出,由消息所指的对象接收,链接用于传输或实现消息的传递。

消息流上标有消息的序列号和对象间发送的消息。一条消息会触发接收对象中的一项操作。

绘制:消息的图标沿直线方向绘制,消息的箭头指向 接受消息的对象。

时序图和协作图中消息的区别 : 时序图中的消息强调消息的时间顺序, 协作图中的消息强调交换消息的对象间的关系;

三、时序图和协作图的异同:

相同点
(1)规定责任。两种图都直观地规定了发送对象和接收对象的责任。将对象确定为接收对象,意味着为此对象添加一个接口。而消息描述成为接收对象的操作特征标记,由发送对象触发该操作。

(2)支持消息。两种图都支持所有的消息类型。

(3)衡量工具。两种图还是衡量耦合性的工具。耦合性被用来衡量模型之间的依赖性,通过检查两个元素之间的通信,可以很容易地判断出它们的依赖关系。

不同点

(1)协作图是将对象的交互映射到他们之间的链上,而时序图没有相应的链存在,但是也可以随意绘制消息。

(2)时序图可以描述对象的创建和撤销(“X”表示该对象在系统中不再继续使用)的情况。而协作图中,对象要么存在要么不存在,除了通过消息描述或约束,没有其他办法可以表示对象的创建或结束。

(3)时序图可以表示对象的激活和去激活情况。但协作图,没有对时间藐视,所以除了通过对消息进行解释,它无法清晰地表示对象的激活和去激活情况。

四、时序图和协作图的转换:F5

机房收费系统的时序图与协作图:

如图:时序图

如图:协作图:

如果有不足的地方,希望多多指导呦~

UML 时序图与协作图相关推荐

  1. UML建模之交互图——时序图、协作图

    UML建模之交互图--时序图.协作图 一. 时序图 (Sequence Diagram) 1.时序图的概念 2. 时序图组成 二. 协作图 (Collaboration Diagram) 动态图概念 ...

  2. 火车购票系统服务器端uml活动图,火车购票完整系统UML类图时序图状态图协作图活动图对象图用例图.doc...

    火车购票完整系统UML类图时序图状态图协作图活动图对象图用例图 <UML面向对象分析>课程 实践项目报告 项目名称: 网上订购火车票系统 项目组成员: 学 号: 班 级: 指导 教师: 2 ...

  3. 【UML】UML图--交互图(时序图和协作图)

    交互图 用来描述系统中对象是如何进行相互作用(消息传递)的.(主要用于描述写作的动态行为方面.)     当对交互建模时,通常既包括对象(每个对象都扮演某一特定的角色),又包括消息(每个消息都代表对象 ...

  4. UML图详解(七)——交互图(时序图与协作图)

    一.概念 交互图描述对象之间的动态合作关系以及合作过程中的行为次序. 交互图常常用来描述一个用例的行为,显示该用例中所涉及的对象以及这些对象之间的消息传递情况,即一个用例的实现过程. 交互图有顺序图和 ...

  5. UML图中时序图和协作图转化

    运行IBM.Rational.Rose,然后在 Rose 中,时序图与协作图间的转换特别容易. 要从时序图转换为协作图,只需打开时序图,然后选择 Browse → Create collaborati ...

  6. UML之交互图(时序图和协作图)

    1.交互图: 概念:用来描述对象之间.对象与参与者之间的动态协作关系,以及协作过程中行为次序的图形文档. 作用:通常用来描述一个用例的行为,实现一个用例,完成对系统行为的建模 类型:时序图和协作图 2 ...

  7. uml 时序图_UML各种图总结:

    UML的书籍:<UML distilled>.<UML和模式应用>.<UML用户指南>.<UML对象设计与编程>.<UMLOracle8建模> ...

  8. UML--交互图(时序图、协作图)

    前言 在建好系统用例图以及类图的基础上,接下来需要分析和设计系统的动态图(结构行为图),并且建立相应的动态模型了.动态模型描述了系统随时间变化的行为,这些行为是用从静态视图中抽取的瞬间值得变化来描述的 ...

  9. uml 时序图_设计模式-UML

    定义 统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明.可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言.UML是面向对象设计 ...

最新文章

  1. 老王学linux-centos6.7drbd8.4.3
  2. linux问答学知识
  3. Django - 分页器
  4. 【Linux】一步一步学Linux——telinit命令(144)
  5. css单位介绍em ex ch rem vw vh vm cm mm in pt pc px
  6. sasmgr get_info -D /dev/sasd1 -q raid 查看RX6600 硬件 raid 信息
  7. 计算机上没有系统软件应用软件也一样能使用,2010判断题一般双击桌面上的程序图标可以打开该程序...
  8. 力扣题目系列:1370. 上升下降字符串(Python题解)
  9. 用canvas画一个刮刮卡
  10. cisco MSDP配置指南
  11. 深入浅出系列之 -- kafka消费者的三种语义模型
  12. AI人工智能可以做哪些课题的毕业设计毕设
  13. NPOI使用Excel批注导入数据
  14. mysql创建表并指定字符集_mysql 创建表 指定字符集
  15. “喜茶Go”微信小程序新零售商业实战案例经验分享-概述
  16. sleep(0) 的作用
  17. 工程博士与在职博士的区别
  18. 魔兽世界任务制作教学,已经本人自己服务器中测试
  19. R语言--股票数据分析
  20. Cocos学习日记2

热门文章

  1. win10计算机如何切换用户名,win10更改电脑用户名的方法是什么_w10怎么更改电脑管理员名字...
  2. 整数划分 ← 递推法
  3. 拿下园区乒乓球比赛团体冠军
  4. python列表操作-赋值
  5. 公司从大厂挖了一个资深工程师,他写的Controller代码同事都说漂亮!
  6. [ 云计算 | AWS ] 亚马逊云科技核心服务之计算服务(Part1:AWS EC2 星巴克为什么横向排队)
  7. 车载lin通信协议栈_专家技术文章:INICnet技术简化车载音频和声学功能的实现...
  8. Matlab函数contourf
  9. LVS和Keepalived简介
  10. linux 有名管道使用 mkfifo