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

 

 

 

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

2016年06月14日 22:39:10 FXBStudy 阅读数:23584更多

所属专栏: UML-面向对象软件的标准化建模语言

一、概念

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

交互图有顺序图和协作图两种形式。

  • 时序图中描述对象按照时间顺序的消息交换。
  • 协作图着重描述系统成分如何协同工作。

时序图和协作图从不同角度表达了系统中的交互和系统行为,它们之间可以相互转化。

  • 时序图(Sequence Diagram)也称为顺序图。
  • 通信图(Communication Diagram)也称为协作图。

二、时序图

2.1 概念

  • 时序图是以时间为序的表示方法,主要用来描述完成某个行为的对象类和这些对象类之间所传递的消息的时间顺序。
  • 时序图是强调消息时间顺序的交互图。
  • 时序图描述了对象之间传送消息的时间顺序,用来表示用例中的行为顺序。

顺序图(Sequence Diagram)=生命线(Lifeline)+消息(Message)

时序图将交互关系表示为一个二维图。其中,纵轴是时间轴,时间沿竖线向下延伸。横轴代表了在协作中各独立的对象。
时序图包含了4个元素:对象、生命线、消息、激活

顺序图的可视化图符:

UML异步消息:建模软件使用实线箭头表示。

2.2 生命线

每个对象及参与者都有一条垂直的生命线(Lifeline),表示了在交互过程中的生命期限。

表示方式:用矩形框和虚线表示生命线,矩形框中添加生命线的名称,虚线表示生命长度。

生命线名称语法:生命线对象名[选择器]:类名ref decomposition (蓝色表示可选选项)

选择器:同一个类的对象可以有不同的状态值,可以再此中标明。

ref:是引用(Reference)的英文缩写

decomposition:指明在另一个更详细的顺序图中展示了当前交互的参与者如何处理它所接收到的信息的细节

2.3 互动条

活动条(Activation Bar)也称为执行发生(Execution Occurrence),用来表示对象的某个行为的执行状态。

表示方式:虚线上的小矩形条。

2.4 消息

消息简介

对象的行为也称为消息(Message),通常当一个对象调用另一个对象中的行为时,即完成了一次消息传递。

表示方式

在生命线间的带有实心箭头表示消息

消息命名

信号或消息名(参数:参数类型):返回值

简单消息、同步消息、异步消息

消息分为简单消息(Simple Message)、同步消息(Synchronous Message)和异步消息(Asynchronous Message)

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

表示方式如上《顺序图的可视化图符》图。

对象创建消息

  参与交互的对象不必再整个顺序图交互的完整周期中一直存在,可以根据需要,通过发送消息来创建和销毁他们。

表示方式有两种:

  1. 在消息的上方添加构造型《create》来表示对象在交互过程中被创建。
  2. 消息的箭头直接指向被创建的对象生命线的头部,这样就不需要构造型《create》来表达了

对象的销毁

  将构造型《destroy》放在消息的上方来表达对象销毁消息,同时在对象的生命线的结束部分画一个“×”来表示对象被销毁

无触发对象和无接收对象的消息

  无触发对象消息(Found Message):用活动条开始断点上的实心球箭头来表示。(用在开始)

  无接收对象消息(lost message):用箭头加实心球表示。(用在结束)

控制信息

1、条件控制信息

当表达式的条件为真的时候消息才会被发送

语法:[表达式]消息标签

2、重复(迭代)控制信息

消息多次发送给接收对象,迭代条件是表达式,当表达式的判定值为真结束

语法:*[表达式]消息标签

消息的返回值

表示方式:用虚线加开箭头的形式表示

2.5 交互框

  UML2.0添加了交互框(Interaction Frame).

  交互框指途中的一块区域(Region)或片段(Fragment),包含一个操作符(或称为标签),并包含一个警戒.

类型参数含义
ref表示交互被定义在另一个图中。可将一个规模较大的图划分为若干个规模较小的图,方便图的管理和复用。
assert表示发生在交互框内的交互式唯一有效的执行路径,有助于指明何时交互的每一步必须被成功执行,通常与状态变量一起使用来增强系统的某个状态。
loopmin times,max times,[guard_condition]循环片段,当条件为真的时候执行循环。也可以写成loop(n)来表示循环n次,与java或者C#等中的for循环比较相似。
break如果交互中包含break,那么任何封闭在交互中的行为必须被推出,特别是loop片段,这与java中的break语句比较相似。
alt[guard_condition1]… [guard_condition2]… [else]选择片段,在境界中表达互斥的条件逻辑,与if…else…语句相似。
neg展示了一个无效的交互。
opt[guard_condition]可选片段,当警戒值为真的时候执行。
par并行片段,表达并行执行。
region区域,表示区域内仅能运行一个线程。

注意:下面的图判断都放在了居中位置(因为软件使用不会左对齐,明白就好,以后修正。)

alt

上图理解:

  1. 消息getPrice被发送给SaleManagement,然后根据quantity的值进行选择判断
  2. 如果quantity的值小于MiniAmount,那么SaleManagement将向Retail发送消息getPrice
  3. 否则,SaleManagement将向WholeSale发送消息getPrice

loop

par

可以理解为saveUserData()checkQualification()将并行运行。

2.6时序图建模技术

  1. 识别交互的语境。
  2. 通过识别对象在交互中扮演的角色,设置交互的场景。
  3. 为每个对象设置生命线。
  4. 从引发某个消息的信息开始,在生命线之间画出从顶到底依次展开的消息,显示每个消息的特性(如参数)。
  5. 如果需要可视化消息的嵌套或实际计算发生时的时间点,可以用激活修饰每个对象的生命期。
  6. 如果需要更形式化的说明某控制流,可以为每个消息附上前置和后置条件。

2.7 注意事项

对象不一定非得是类,还可以是参与者。

三、协作图

3.1 概念

  协作图与时序图一样也是用来描述对象与对象之间消息连接关系的,侧重于说明哪些对象之间有消息传递。

协助图 = 交互的参与者 + 通信链 + 消息

通信图描述参与一个交互的对象的链接,它强调发送和接收对象之间的链接。

3.2 交互的参与者

表示方式:用对象符号表示,在矩形框中放置交互的参与者,显示交互的参与者的名称和它所属的类

语法:参与者名:类名

注意:虽然整个系统中可能有其他的对象,但只有涉及协作的对象才会被表示出来。

协作图中可能出现的4类对象:

  1. 存在于整个交互作用中的对象
  2. 在交互作用中创建的对象
  3. 在交互作用中销毁的对象
  4. 在加护作用中创建并销毁的对象

3.3 链接

表示方式:用直线表示。

  • 一般情况下,一个链接就是一个关联实例。
  • 消息可以通过链接进行流动。

3.4 消息

表示方式:依附于链接上的来由标记箭头和带顺序号的消息表达式表示。

  • 箭头表示消息的方向。

控制消息

表示方式:采用中括号表示。

当控制条件为真的时候消息才会被发送。

嵌套消息和自消息

当一个消息导致了另一个消息被发送的时候(编号区分),第二个消息被称为嵌套在第一个消息里。

嵌套可以剁成嵌套。

循环

与时序图中的循环类同。

表示方式:用“*”星号表示。

并发消息

顾名思义,就是几个消息被同事发送,编号是前半部分可以一样,后面采用字母表示。

小细节

编号与后半部分用冒号隔开。


 

  • ningmengbaby

    郝雨烁: 感谢博主的分享,收货多多。(06-16 20:16#2楼)

【UML】交互图

lrtcsdn

 296

交互图是描述对象之间的关系以及对象之间的信息传递的图,交互图分为:时序图和协作图...

UML之行为图(活动图、状态图、交互图

sz15732624895

 5386

UML的行为图是用来描述系统的动态模型和对象之间的交互关系,包括三种:活动图、状态图、交互图。        下面对这三种图进行介绍: 一、活动图:        1、定义:用来描述满足用例要求...

 

UML交互图

liukuan73

 3317

http://www.uml.org.cn/UMLApplication/UMLApplication31.htm 交互图描述的是一组对象之间的交互过程,或者说,这里我们实际上要回答这样一个问题:...

UML 交互图 (顺序图、通信图、鲁棒图、定时图)

Heng_Ji

 4208

UML 交互图 (顺序图、通信图、鲁棒图、定时图) •交互与交互图 交互的概念 •一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行...

uml交互图

Alexander_Frank

 2498

交互图用来描述系统中的对象是如何进行相互作用的。即一组对象是如何进行消息传递的。当交互图建模时,通常既包括对象(每个对象都扮演某一特定的角色),又包括消息(每个消息都代表对象之间的通信活动,并导致一定...

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

Scythe666

 5408

作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/17927131 . 动态图概念...

 

UML建模中的时序图详解 - CSDN博客

9-24

时序图中包括的建模元素主要有:对象(Actor)、生命线...QVariant类的使用注意事项 Qt中SQLite3的增、删、...

UML时序图总结 - CSDN博客

9-21

其次,时序图展示对象之间的交互,这些交互是指在场景或用例的事件流中发生的。时序...信息同步信息带响应线点击选择同步还是异步.效果如下:注意事项:1.   ...

【UML】UML图--交互图时序图协作图

qq1515312832

 265

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

Interaction Diagram(交互图)——UML

liutengteng130

 1万

交互图(Interaction Diagram)用来描述系统中的对象是如何进行相互作用的。即一组对象是如何进行消息传递的。         当交互图建模时,通常既包括对象(每个对象都扮演某一特定的角...

UML之交互图

wyj19950908

 380

【前言】交互图是用来描述系统中的对象是如何进行相互作用的,也就是一组对象是如何进行消息传递的。我们今天分析的交互图主要有两种即顺序图和协作图。 一、顺序图(Sequence diagram) 1、初...

【UML】协作图Collaboration diagram(交互图

sds15732622190

 1630

UML——协作图

相关热词

uml图 uml图继承关系 uml图组织 uml图软件 uml图在线

时序- CSDN博客

9-10

因为数据挖掘的大作业是打算做时间序列的东西,最近两天。Time Series Analysis and Its Applications这本书真的非常好,此外还看了http://www.stats.ox.ac.uk/~...

使用Astah制作UML时序图 - CSDN博客

9-25

顺序图( Sequence Diagram )别称:“交互流程图” 或“时序图”或“序列图”...信息同步信息带响应线点击选择同步还是异步.效果如下:注意事项:1.   ...

旅行注意事项 - CSDN博客

9-18

旅行注意事项2016年08月29日 19:45:28 SieSteven 阅读数:212 标签: 杂记 版权...VS自带的时序图 n950814abc:学习了 SqlServer 分页 ROW... sms15732621690:...

UML时序图 - CSDN博客

9-10

     时序图是一种强调时间顺序的交互图,在时序图中,首先把参与交互...Android Sqlite数据库升级时注意事项 Android FlexboxLayout布局属性详解 ViewPag...

windows上面画时序图(timing chart)的工具 - CSDN博客

9-19

(1)在线时序图工具websequencediagrams,效果图如下,支持多种样式,如手绘效果等。...IC 软件使用注意事项 数据处理常用网站 一些常用的软件 [DFT] OCC(On-Chip...

时序图学习 - CSDN博客

9-3

今天,导师们和我谈话了,主要说了一下我近期的任务,主要是能够读懂项目代码,能够顺利接下导师们掌管的模块,我的信心又重新被点燃了,今天首先为了看懂代码,学习了一...

FXBStudy

关注

原创

148

粉丝

235

喜欢

86

评论

70

等级:

 

访问:

 

36万+

积分:

 

4704

排名:

 

8813

勋章:

 

若文章对您有帮助,望君打赏一二!

个人分类

展开

博主专栏

最新评论

热门文章

归档

展开

最新文章

 

联系我们

客服

扫码联系客服

客服

扫码下载APP

关于招聘广告服务 网站地图

京ICP证09002463号百度提供站内搜索

©2018 CSDN版权所有

kefu@csdn.net400-660-0108

QQ客服客服论坛

经营性网站备案信息网络110报警服务

中国互联网举报中心北京互联网违法和不良信息举报中心

app

官方公众号

app

区块链大本营

  •  

    3

  •  
  •  
  •  
  •  
  •  
  •  

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值