前言

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

时序图用来显示对象之间的关系,并强调对象之间消息的时间顺序,同时显示对象之间的交互,
协作图用来描述对象见的交互关系。

一、时序图

(一)概念
定义:
时序图(Sequence Diagram):描述了对象之间传递消息的时间顺序,用来表示用例中的行为顺序,是强调消息时间顺序的交互图;
时序图描述的事物:系统中类和类之间的交互,将这些交互建模成消息交换,时序图描述了类以及类之间的交换以完成的期望行为的消息,时序图中每条消息都代表了类的一个操作 或者 引起状态机改变的触发事件。

表示:
参与交互的对象在时序图顶端水平排列,每个对象的地段绘制了一条垂直虚线,对象A向对象B发送消息,用一条带箭头的视线表示,该实线起始于对象A底部的虚线,终止于对象B底部的虚线;实线箭头水平放置,越靠近顶端越早被发送。

轨迹:
时序图提供了随时间推移的、清晰的可视化的轨迹。

( 二 )组成

时序图=对象+生命线+激活+消息

(1)对象(Object)

对象创建时机:可以在交互开始时创建,也可以在交互过程中创建
→处于顶部:如果对象的位置在时序图顶部,说明在交互开始时对象已经存在
→不在顶部:如果对象的位置不在顶部,说明对象是在交互过程中创建的

(2)生命线(Lifeline)

生命线:是一条垂直虚线,表示对象的存在。在时序图中,每个对象的地步都有生命线
作用:生命线是一个时间线,从时序图顶部一直到底部都存在,其长度取决于交互时间
对象的生命线:对象与生命线结合在一起就是对象的生命线,这个概念包含对象图标以及对象下面的生命线图标,如上图

(3)激活(Activation)

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

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

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

激活去激活的时机:

- 激活:对象激活是在激活条顶部
- 列表内容去激活:激活条的底部去激活,通常发生在一个消息离开对象生命线

(4)消息(Message)

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

消息动作:

- 动作种类:消息允许在实体间船体信息(参数),允许实体请求其他服务,对象之间通过发送和接受消息进行通信;
- 产生结果:消息可以触发操作,唤起信号,或是目标对象创建或销毁

消息的异步和同步通信 :
– 异步通信 : 消息是信号的时候, 发送信号之后, 等待对方触发相应方法, 这是明确的 命名的 对象间的异步通信;
– 同步通信 : 直接调用对象的方法, 执行方法返回结果, 这种具有返回控制机制的操作是同步通信;

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

消息类型:
:两个对象间绘制消息
:两个对象之间的过程调用
:两个对象间的异步消息
:过程调用中返回的消息
:绘制反身消息

  • 简单消息:指标是控制如何从一个对象发给另一个对象,并不包含控制信息。
  • 同步消息:意味着阻塞和等待
  • 异步消息:意味着非等待

@机房收费系统时序图


二、协作图

(一)概念

定义:
协作图(Collaboration Diagram)是一种类图,包含类元角色关联角色,不仅仅是类元关联

- 强调:强调参与交互的各个对象的结构信息和组织

协作图建模对象:对有交互的对象和这些对象之间的关系建模,不参与交互的对象及它们的关系忽略;

协作图内容: 协作图中表现了类操作中用到的参数,布局变量,操作中的永久链

对象图扩展: 协作图可以看做对象图的扩展,该图展示了对象之间的关联,显示出了对象间的消息传递

(一)组成元素

协作图=对象+链+消息

(1)对象(Object)
对象:代表协作图交互中的主体,和时序图汇总对象的概念类似
协作图和时序图中对象区别:协作图中对象无法创建和撤销,因此,对象在协作图的位置没有限制

(2)链(Link)
链的表示:链的符号和对象图中链所用的符号是一样的,用来连接两个类角色的实线
:创建对象之间的通信路径;
:显示对象可以调用自己的属性;
:在两个对象之间或一个对象本身增加消息;
:在两个对象之间或一个对象本身从反方向增加消息;
:显示两个对象之间的信息流;
:在反方向显示两个对象之间的信息流;

(3)消息(Message)
消息:对象间通过链接发送的就是消息

- 消息传递方向*:*对象之间的箭头表明对象间交换的信息流,一个对象发出消息,链指向的对象接收消息,链用于实现消息传输;
- 消息标识:消息流标有消息的序列号和对象间发送的消息名称;
- 消息结果:每条消息是否会出发接收对象的一系列操作;

@机房收费系统协作图

感谢阅读,欢迎指正,请顶!

UML--交互图(时序图、协作图)相关推荐

  1. UML交互图 -- 时序图 协作图详解

    作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/17927131 . 动态图概念 : 从静态图中抽取瞬间值的变 ...

  2. 【UML 建模】UML入门 之 交互图 -- 时序图 协作图详解

    . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/17927131 . 动态图概念 : 从静态图中抽取瞬间值 ...

  3. 架构设计 —— 系统建模(UML、时序图、数据流图、流程图)

    需求的归需求,设计的归设计,实现的归实现. 系统建模 0. 交互模型 分类 用户交互,与用户输入输出有关:为用户交互建模有助于我们识别用户需求: 系统间的交互,系统内部交互,更多是设计和实现层面的考虑 ...

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

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

  5. 【转】UML之时序图详解

    作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/17927131 动态图概念 : 从静态图中抽取瞬间值的变化描 ...

  6. [UML]UML系列——时序图(顺序图)sequence diagram

    原文:[UML]UML系列--时序图(顺序图)sequence diagram 系列文章 [UML]UML系列--用例图Use Case [UML]UML系列--用例图中的各种关系(include.e ...

  7. 移动端UML图应用之UML交互图——顺序图和通信图

    系列文章目录 移动端UML图应用之UML图简述 移动端UML图应用之UML行为图--用例图.活动图和状态机图 移动端UML图应用之UML交互图--顺序图和通信图 移动端UML图应用之UML结构图--包 ...

  8. 【UML】时序图Sequence diagram(交互图)(转)

    前言 UML时序图是UML动态图之一,它是强调时间顺序的交互图. 定义 时序图是显示按时间顺序排列的对象之间交互的图. 组成元素 对象 包括三种命名方式:第一种方式包括对象名和类名:第二中方式只显示类 ...

  9. UML总结—时序图(Sequence Diagram)和协作图(Collaboration Diagram)

    一.时序图 时序图是一种强调时间顺序的交互图,在时序图中,首先把参与交互的对象放在图的上方,沿X轴方向排列.通常把发起交互的对象放在左边,较下级对象依次放在右边,然后把这些对象发送和接受的消息沿Y轴方 ...

  10. 【UML】交互图——时序图

    一.概念 时序图(Sequence Diagram)描述了对象之间传递消息的时间顺序,它用来表示用例中的行为顺序,是强调消息时间顺序的交互图.时序图描述类系统中类和类之间的交互,它将这些交互建模成消息 ...

最新文章

  1. CUDA之单thread单block多thread单block多thread多block
  2. Spring Aop实例之xml配置
  3. 85. Leetcode 746. 使用最小花费爬楼梯 (动态规划-基础题)
  4. Zookeeper 3.5启动时 8080端口被占用
  5. 火焰效果材质实现_「游戏开发」使用Unity实现魔法火焰效果
  6. 【Go】panic: reflect: call of reflect.Value.FieldByName on ptr Value
  7. 一至七-----小东西
  8. linux系统初级管理书,Linux系统管理基础--超级适合Linux新手的书
  9. iOS之 开发常用到的宏定义
  10. pytorch 解压kaggle中的zgz文件
  11. html内容超出不自动滚动,16.css: overflow使用 例: 固定div大小,不让内容超出div
  12. 基于javaweb+SpringBoot+MyBatis网上书店管理系统在线购书系统(前台、后台)
  13. 2021最新一线互联网大厂常见高并发面试题解析,快手Java面试算法题
  14. MapGuide Maestro 3.0发布
  15. CUDA优化之PReLU性能调优
  16. android传感器测试工具,传感器测试工具
  17. 南京信息工程大学计算机与科学专业,2019南京信息工程大学专业排名
  18. 线性方程组什么时候无解?多个解?唯一解?
  19. 自动驾驶发展_自动驾驶网络及其发展
  20. 为什么自学Java学不好?大概率是这3个原因

热门文章

  1. 【BZOJ-2400】Spoj839Optimal Marks 最小割 + DFS
  2. 1199: [HNOI2005]汤姆的游戏 - BZOJ
  3. SQL查询效率注意事项 2011.12.27
  4. 常用 Dos 命令+杂项-常用的命令符+常用的公式
  5. 采访前高级软件工程课程学员付浩同学,及Scrum总结阅读感想
  6. 允许Fedora 12以root身份登录图形界面
  7. 学 Win32 汇编[27] - 乘除指令: MUL、IMUL、DIV、IDIV
  8. 利用Split函数进行多关键字检索
  9. 【jQuery笔记Part1】03-jQuery加载模式对比JS
  10. 做了3年Excel报表,换了这个报表神器后,不禁感叹:国产真香