UML七交互交互图
第9-7章 交互图

GO
7.1.2 顺序图的表示
(4)创建(Create)和销毁(Destroy)。 )创建( ) 销毁( )。 也就是创建 销毁一个对象。 创建和 一个对象 也就是创建和销毁一个对象。 创建对象通常是利用构造方法来实现的 通常是利用构造方法来实现的, 创建对象通常是利用构造方法来实现的, 对象一创建,生命线就开始; 对象一创建,生命线就开始; 生命终止符号用一个较大的叉形符号表示 用一个较大的叉形符号表示。 生命终止符号用一个较大的叉形符号表示。
GO
图7-3 消息表示法
10
7.1.2 顺序图的表示
将对象之间的消息分为五种类型: 将对象之间的消息分为五种类型: 消息分为五种类型 调用、返回、发送、创建和销毁。 调用、返回、发送、创建和销毁。 (1) 调用(call) 调用( ) 这是最常用的一种消息, 这是最常用的一种消息, 它表示调用某个对象的一个操作 格式为“对象名.成员方 调用某个对象的一个操作(格式为 它表示调用某个对象的一个操作 格式为“对象名 成员方 可以是对象之间 法”).可以是对象之间的调用, 可以是对象之间的调用, 也可以是对象本身 调用(局部调用)。 对象本身的 也可以是对象本身的调用(局部调用)。 我们采用图7-3所示的符号来表示 消息调用” 所示的符号来表示“ 我们采用图 所示的符号来表示“消息调用”, 并在该符号上标明顺序编号 消息的名称、参数。 顺序编号、 并在该符号上标明顺序编号、消息的名称、参数。
顺序图、通讯图、定时图、交互概观图。 顺序图、通讯图、定时图、交互概观图。
3
7.1 顺序图 .
锁车
7.1.1 顺序图的概念 顺序图的概念 1. 顺序图 顺序图也称为时序图, 也称为时序图 顺序图也称为时序图, 它描述了系统中,对象间通过消息进行的交互, 通过消息进行的交互 它描述了系统中,对象间通过消息进行的交互, 它强调了消息 时间轴上的先后顺序。 消息在 它强调了消息在时间轴上的先后顺序。 自动车锁系统中 实现“锁车”用例的顺序图。 图7-1是自动车锁系统中,实现“锁车”用例的顺序图。 2. 顺序图的作用 顺序图的作用 顺序图常用来描述用例 实现, 用例的 顺序图常用来描述用例的实现, 它表明了由哪些对象 通过消息相互协作来实现用例的功能 对象, 消息相互协作来实现用例的功能, 它表明了由哪些对象,通过消息相互协作来实现用例的功能 在顺序图中,标识了消息发生交互的先后顺序 消息发生交互的先后顺序。 在顺序图中,标识了消息发生交互的先后顺序。
软件工程---交互建模之交互图,顺序图与协作图

2.5 消息
格式
[前缀][守卫条件][顺序表达式][返回值:=]消息名([参数列表])
例:
2: display ()
简单消息
1.3.1: p:=find()
带返回值的嵌套消息
[x<0] 4: invert(x, color) 条件消息
3.1 *[x = 1..10] : update() 循环消息
[ 条件子句 ] 条件子句一般用来表示分枝而不是用作守卫条件[x<0]是两个可
以用来分枝的条件子句这两个条件只能有一个为真因而只有一 个分枝被执行(即发送与分枝有关的消息) 条件子句和循环子句都可以用伪代码或真正的编程语言来表示 序列表达式用冒号结束
返回值、消息名和参数表
返回值表示一个操作调用(即一个消息)的结 果
顺序图中消息编号可显示,也可不显示。 协作图中必须显示Procedure Call) 异步(Asynchronous) 返回(Return) 自关联消息(Self Message)
2.5 消息
UML三种消息:
调用(Procedure Call) 发送者把消息发送后,等待直到接收者返回控制, 可以表示同步(synchronous message); 实心箭头符号
包括对象名和类名 类名(匿名对象) 对象名(不关心类)
2.3 生命线
生命线(Lifeline):
每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时 间内的存在
垂直的虚线 如果对象生命期结束, 则用注销符号表示 对象默认的位置在图 顶部,表示对象在交互 之前已经存在 如果是在交互过程中 由另外的对象所创建, 则位于图的中间某处。
顺序图
面向时间描述对象交互的图
协作图
UML科普文,一篇文章掌握14种UML图

UML科普⽂,⼀篇⽂章掌握14种UML图前⾔上⼀篇⽂章写了⼀篇建造者模式,其中有⼏个UML类图,有的读者反馈看不懂了,我们今天就来解决⼀哈。
什么是UML?UML是Unified Model Language的缩写,中⽂是统⼀建模语⾔,是由⼀整套图表组成的标准化建模语⾔。
为什么要⽤UML?通过使⽤UML使得在软件开发之前,对整个软件设计有更好的可读性,可理解性,从⽽降低开发风险。
同时,也能⽅便各个开发⼈员之间的交流。
UML提供了极富表达能⼒的建模语⾔,可以让软件开发过程中的不同⼈员分别得到⾃⼰感兴趣的信息。
Page-Jones 在《Fundamental Object-Oriented Design in UML》⼀书中总结了UML的主要⽬的,如下:1. 为⽤户提供现成的、有表现⼒的可视化建模语⾔,以便他们开发和交换有意义的模型。
2. 为核⼼概念提供可扩展性 (Extensibility) 和特殊化 (Specialization) 机制。
3. 独⽴于特定的编程语⾔和开发过程。
4. 为了解建模语⾔提供⼀个正式的基础。
5. ⿎励⾯向对象⼯具市场的发展。
6. ⽀持更⾼层次的开发概念,如协作,框架,模式和组件。
7. 整合最佳的⼯作⽅法 (Best Practices)。
UML图有哪些?UML图分为结构图和⾏为图。
结构图分为类图、轮廓图、组件图、组合结构图、对象图、部署图、包图。
⾏为图⼜分活动图、⽤例图、状态机图和交互图。
交互图⼜分为序列图、时序图、通讯图、交互概览图。
UML图概览什么是类图?【概念】类图是⼀切⾯向对象⽅法的核⼼建模⼯具。
类图描述了系统中对象的类型以及它们之间存在的各种静态关系。
【⽬的】⽤来表⽰类、接⼝以及它们之间的静态结构和关系。
在类图中,常见的有以下⼏种关系。
泛化(Generalization)【泛化关系】是⼀种继承关系,表⽰⼦类继承⽗类的所有特征和⾏为。
【箭头指向】带三⾓箭头的实线,箭头指向⽗类。
2019最新03交互图数学

动作图框可以包含任意语言的语句(在本例中,表
示“i”递增)。该图框应置于其所应用的生命线上
图15-16 使用相对直接的表示法对集合进行遍历
可能的Java代码实现见下页
24
图15-6 可能的Java代码实现
public class Sale{ private List<SalesLineItem> lineItems= new ArrayList<SalesLineItem>();
:B
21
有条件消息
: Foo opt [ color = red ]
xx calculate
yy
图15-13 有条件消息
: Bar
22
互斥的有条件消息
:A doX
alt
[ x < 10 ]
[ else ]
:B calculate
calculate
图15-15 互斥的有条件消息
:C
23
对集合的迭代
顺序图与类图的映射
职责分配
系统顺序图 鲁棒性分析
BCE模式
案例实践与分析
交互图概述
顺序图:按照时间顺序来描述对 象的交互
通信图:围绕着对象和对象之间 的链接来描述对象的交互
这两种图在语言上是对等的,但二
者所展示的信息有一些区别 8
交互图是有价值的
交互图为编程提供了帮助 模式、原则和惯用法被用来提高交互图的质量 UML初学者没有对交互图给予足够重视
图15-24 消息
35
“自身”传递的消息
msg1 : Register
1: clear
图15-25 传递到“自身”的消息
UML九种建模图--顺序图

UML九种建模图--顺序图概述顺序图是⼀种交互图(interaction diagram).交互图展现了⼀种交互,它由⼀组对象或参与者以及它们之间可能发送的消息构成。
交互图专注于系统的动态视图。
顺序图是强调消息的时间次序的交互图。
组成顺序图主要有4个标记符:对象、⽣命线、消息和激活。
对象三种表⽰⽅法1.包括对象名和类名,2、只有类名3.只有对象名⽣命线⽣命线⽤于描述对象的存在周期,对象下⽅的虚线就是该对象的⽣命线。
激活控制焦点是指活动者或对象处于执⾏状态的时间段消息消息⽤于描述对象间交互的⽅式及内容。
消息分为四种:同步消息、异步消息、返回消息、⾃关联消息1.同步消息:⼀个对象向另⼀个对象发出同步消息后,将处于阻塞状态,⼀直等到另⼀个对象的回应表⽰⽅式:2.异步消息:⼀个对象向另⼀个对象发出异步消息后,这个对象可以进⾏其他的操作,不需要等到另⼀个对象的响应表⽰⽅式:3.返回消息:同步消息的返回消息表⽰⽅式:4.⾃关联消息:⽤来描述对象内部函数的互相调⽤表⽰⽅式:还有顺序图中对于流程控制的模块:复合⽚段复合⽚段有多种,在此主要介绍⼀下⼏种:条件判断、可选、循环、同步1.条件判断:⽤于描述代码中if…else…这种结构标记为“alt”例如:2.可选:是⼀种特殊的“条件判断”,它只是⼀个if,没有else if或else 可选的标记为:opt3.循环:是指代码中的for、while之类的语句块循环的标记为:loop例如:下图中[m,n]是指⾄少执⾏m次,最多执⾏n次4.同步:⽤于描述多线程的情况同步的标记是:par画顺序图的步骤:1. 确定交互的范围2. 确定参与交互的活动者与对象3. 确定活动者、对象的⽣存周期4. 确定交互中产⽣的消息5. 细化消息的内容。
UML交互图

UML交互图目录1、UML交互图概述 (1)2、使用交互图的场合 (1)3、UML交互图作用 (2)4、UML交互图如何绘制? (3)5、协作图 (3)6、序列图 (4)1、UML交互图概述UML交互图描述的是对象之间的动态合作关系以及合作过程中的行为次序。
UML交互图常常用来描述一个用例的行为,显示该用例中所涉及的对象以及这些对象之间的消息传递情况,即一个用例的实现过程。
UML交互图包括两种:序列图和协作图。
序列图:显示对象之间的关系,强调对象之间消息的时间顺序,显示对象之间的交互。
协作图:描述对象之间的交互关系2、使用交互图的场合我们现在来讨论交互图在实际情况中的应用。
要了解实际应用中,我们需要了解的基本性质序列图和协作图。
这两个图的主要目的,是相似的,因为它们是用来捕捉系统的动态行为:序列图是用来捕获从一个对象到另一个消息流的顺序;协作图用来描述参与相互作用中的对象的结构组织。
一个单一的图是不足以说明整个系统的动态环节,这样的一套图是用来捕获一个整体。
使用交互图,当我们想要了解的消息流和组织结构。
消息流装置控制流从一个对象到另一个序列和结构组织的装置,在一个系统中的元素的视觉组织。
以下是交互图的用法:2.1.按时间顺序的控制流建模。
2.2.为了模拟流结构组织控制。
2.3.对于正向工程。
2.4.逆向工程。
3、UML交互图作用UML交互图主要包括对象和消息两类元素,创建交互图的过程实际上就是向对象分配任务的过程,是可视化系统的交互行为。
由于可视化的交互是一个困难的任务,所以要使用不同类型的模型来捕获不同方面的相互作用,这也是序列图和时序图的作用。
总而言之,对交互图的描述如下:3.1.交互图捕捉一个系统的动态行为;3.2.交互图用来描述该系统中的消息流;3.3.交互图用来描述对象的结构组织;3.4.交互图是为了描述对象之间的互动。
4、UML交互图如何绘制?我们已经了解了交互图的作用就是捕捉系统的动态环节。
uml建模第七章 交互图

图7-13 ref操作符
7.1 顺序图——顺序图的深入
顺序图中使用其它的技术: 1、使用注释 2、使用约束 3、使用状态
7.1 顺序图——顺序图建模
1. 为每一个用例编写事件流,包括一个基本事件 流和若干可选事件流或异常流; 2. 识别事件流中参与交互的对象; 3. 为每个事件流绘制顺序图,包括为每个对象设 置生命线,即确定哪些对象存在于整个交互过 程中,哪些对象在交互过程中被创建和撤销; 4. 从引发这个交互过程的初始消息开始,在生命 线之间自顶向下依次画出随后的各个消息; 5. 如果需要,可以画上交互片段、交互引用和约 束等。
7.2 通信图
三、组成元素 1、对象
(2)主动对象(活动对象) 一组属性和一组方法的封装体,其中至少有一 个方法不需要接收消息就能主动执行(称作主 动方法)。
UML中
Rose中
7.2 通信图
三、组成元素 2、链
用来连接对象,消息显示在链的旁边,一个链 上可以有多个消息。 在顺序图中不使用链,只有协作图中才使用链 的概念。
图7-5 嵌套编号
Rose中的消息
7.1 顺序图——顺序图的深入
顺序图中,对象的行为有循环和分支两
种方式,为了表示这两种行为,引入了 交互片段、区域和操作符的概念。
7.1 顺序图——顺序图的深入
每个交互片段都有一个操作符,操作符
决定了交互片段的执行方式。
1、表示分支的操作符
alt:支持多条件
表7-2常用迭代表达式
迭代表达式 [i:=1..n] [I=1..10] [while(表达式)] [until(表达式)]
语义 迭代n次
I迭代10次 表达式为true时才进行迭代 迭代到表达识为true时,才停止迭代 在对象集合上迭代
uml动态建模-交互模型

06
UML交互模型案例研究
案例一:银行ATM机交互模型
总结词
简单、高效、安全
详细描述
银行ATM机交互模型是一个典型的UML交互模型案例。通过使用UML,可以清晰地描 述ATM机与用户、银行系统之间的交互关系。该模型强调简单、高效和安全,为用户
提供便捷的自助服务,同时保障银行资金的安全。
案例二:网上购物系统交互模型
交互模型可用于验证系统的功能 和行为,以及进行系统测试,确 保系统的正确性和可靠性。
交互模型的历史与发展
历史
UML交互模型起源于早期的面向对象分析和设计方法,如Booch方法和OMT方 法。随着UML的发展,交互模型逐渐成为UML的重要组成部分。
发展
随着软件工程领域的发展,UML交互模型也在不断演进和完善。新的UML规范 和扩展不断涌现,以满足不同领域的建模需求。同时,UML交互模型与其他建模 方法的集成也在不断发展,如与工作流、活动图等方法的集成。
总结词
便捷、丰富、互动
VS
详细描述
网上购物系统交互模型展示了用户如何通 过网站或APP进行商品浏览、选择、下单 和支付等操作。该模型强调便捷的购物流 程、丰富的商品选择以及用户与商家之间 的互动,使用户能够轻松完成购物,提高 用户满意度。
案例三:智能家居系统交互模型
总结词
智能、舒适、节能
详细描述
智能家居系统交互模型描述了家庭中的各种 智能设备如何相互连接和协同工作。该模型 强调智能化的家居管理、舒适的生活环境和 节能环保,通过UML交互模型,可以更好 地理解智能家居系统的工作原理和功能需求。
顺序图
01
顺序图是UML动态建模中用于描述对象之间交互顺序的模型元素。
02
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Is Selected floag set?
calculate new data
UPdate data
Update Display
7
1 引言
➢ 该例中,用户和系统的交互可以分为三个连续执行的动作 1、用户在位图区域内按下鼠标左键; 2、保持左键按下拖动鼠标; 3、释放鼠标左键。
➢ 这三个动作构成了系统参与者和系统的交互 每一动作都相当于向系统发出了一个命令 系统必须在内部执行相应的操作,以正确地响应这些命令,即消息 (message) 。
同步消息 异步消息 创建(create):此消息的发送导致目标对象被创建。 销毁(destroy):此消息的发送导致目标对象被销毁 。
10
2.1 交互的基本概念-- 消息
➢ 消息的表示
在UML里,消息用箭头表示,从发送消息的a 对象指向接收消 : 息的对象
同步消息 :实心箭头 异步消息 :枝状箭头
22
3.1 顺序图
➢ 控制焦点 在UML里,由消息引发的动作的执行过程被描述为控制焦点 定义: 控制焦点代表一个对象直接地或通过一个子过程间接地执 行一个动作的那段时间。 图形化表示:它由位于对象生命线上的一个窄长方形表示 控制焦点长方形的顶端代表动作的开始时刻 底端代表动作的结束时刻 控制焦点可以理解为是C语言中一对花括弧(“{}”)内 的内容
15
2.1 交互的基本概念-- 消息
➢ 消息的顺序号
此顺序号可前缀于消息的名字前面
: View
c : Controller
: Catche
它们之间用冒号分隔
➢ 顺序号分为两种:
单调顺序号(flat sequence)
1. clickAt(p) 1.1. I=findAt(p)
单调顺序号严格按照消息的发送顺序排列 如:1,2,3,…,等等 过程顺序号(procedual sequence)
同步消息的逻辑意义
invoking execution thread
request
invoked execution thread
Blocking period
response
12
2.1 交互的基本概念-- 消息
异步消息的逻辑意义
invoking execution thread A
put
queue
4
1 引言
➢ 在任何有意义的系统中,对象都不是孤立存在的,它们之间通过传递 消息进行交互。 使用交互建模软件系统中对象之间的消息的传递,用以描述对象 之间的交互行为。
➢ 交互是为达某一目的而在一组对象之间进行消息交换的行为。 交互可以对软件系统为实现某一任务而必须实施的动态行为进行 建模。 交互所包含的UML建模元素包括 对象或角色(role) 参与者 消息 在UML中,使用交互图建模对象之间的交互。
➢ 在考虑系统内部对象的设置时,首先区分系统“边界”与系统内核 专设一个对象“接收鼠标消息”用于接收用户传来的鼠标消息 对象收到操作系统传来鼠标消息后,把它传给对象:“处理鼠标消息” 然后,发送消息给bmpviewer的系统内核里的对象:“系统数据”, 进ห้องสมุดไป่ตู้具体的执行。
8
2.1 交互的基本概念-- 消息
➢ 链是关联的实例(a link is an instance of an association )
19
2.4 交互的基本概念– 链
➢ 下列约束可以用来修饰链的有关端点
Association
{Association}
o1
o2
说明对应的对象通过关联是可见的
Self
说明对应的对象因为是本操作的调遣者,所以是可见的
部署图 deployment D.
包图package D. 时序图 timing D.
交互概览图 interaction overview D.
交互图Interaction Diagram
➢ 交互 对象或角色(role) 参与者 消息
➢ 交互图 顺序图sequence diagram 通信图Communication diagram/协作图collaboration diagram
3
构件 Component
制品 Artifact
注释事物
包 Package
注释 Anotational
thing
关系
图
依赖
关联 泛化 实现
类图 Class D. 对象图 Object D.
构件图 Component D.
用例图 use case D.
状态图 state D.
活动图activity D. 制品图 artifact D.
28
SD 案例 (POS系统)用例描述和用例图
➢ (1) 基本资料管理(包括 货品资料、客户资料、 供应商资料、收支类型、 其他库存变动类型等) 基本资料填写(或修 改)→提交资料填写 (或修改)
17
2.3 交互的基本概念– 对象和角色
➢ 参与交互的对象既可以是具体的事 物,又可以是角色
学生张力、学生王海 (具体的 事物) 学生甲、学生乙(角色)
➢ 影视剧中的角色:
肯定需要一个人来演 但不一定是某个特定的演 员来演
对象名 : 类 名
:类 名
对象(记名对象)
匿名对象
18
2.4 交互的基本概念– 链
消息的发送是有顺序的 此顺序由它在顺序图垂 直方向上的位置决定 垂直方向靠近顺序图的 顶端的消息先执行 靠近顺序图底部的消息 后执行
C : CALLER : Telephone : Exchange 1: liftHandset( ) 2: assertCall( )
图 消息、消息名和消息顺序号 (单调顺序号)
2: Synchronous_call
撤销对象
4: <<Create>> 5: return()
: NewClass4
6: 7: Simple_call
8: Asynchronous_call
消息的发送形式
2.1 交互的基本概念-- 消息
➢ 消息的表示
消息可以有名字 它列在消息的箭头的直 线上 如果对象的实现类已经 确定,则此名字可以标 记为实现类的某一操作 的定义 ➢ 例如,C/C++语 言里的函数定义等
1.2. putRecentPick(I)
过程顺序号是嵌入式的
当一个消息启动了另一个消息顺序时, 此消 息顺序内的各消息就可以重新开始编号。
如:消息1发送后,启动了其后的一系列消息, 则这些消息就可以编号为1.1, 1.2, 1.3, …
16
2.2 交互的基本概念– 语境
➢交互通常发生在一定的语境、场景中: 例如:C/S系统中,Client对象和Server对象之间 有交互 在操作的实现中可以发现对象之间的交互 操作的参数、局部/全局变量 在构件、节点或用例的表示中发现交互
23
: View
3.1 顺序图
c : Controller
: Catche
1. clickAt(p)
控制焦点的嵌套 1.1. I=findAt(p)
控制焦点
1.2. putRecentPick(I)
对象生存线
顺序图、对象生存线、控制焦点
24
3.1 顺序图
➢ 动作(Action) 当一个对象收到了消息后,此对象把消息当做执行某种动作的 命令。 在UML里,一个动作(Action)被定义为 动作是执行一系列可执行的原子计算(atomic computation),并可导致系统状态的变化或返回某个值。 ➢ 典型的例子:执行某个函数 在动作的执行过程中,会导致其它一系列的消息的顺序发 送 ➢ 典型的例子是:函数调用其它函数
6
1 引言
: 用户
:接收鼠标消息
:处理鼠标消息
:系统数据
User Press LB Down Pass LB Down Message Is Cursor inside image
Set Selected Flag
: 显示窗口
User Mover mouse while LBDOWN Pass the message
UML Unified Modeling Language
统一建模语言
Lecture七 交互、交互图
SEI OF ECNU
杜育根 ygdu@
《戏说三国》Scenario
曹操 刘备
孔明
求战 请拟策略
锦囊妙计
请防守荊州
关羽
张飞 孙权
请防守 荊州前线
请联络孙权
请孙权领兵相助
➢ 交互图分为两种: 顺序图 Sequence diagram 通信图communicationdiagram/协作图 collaboration diagram
➢ 它们在语义上是等价的 顺序图:强调消息的时间顺序 协作图:强调接收和发送消息的对象的结构组织
21
3.1 顺序图
➢ 顺序图的定义: 顺序图是交互图的一种,它强调的是消息发送在时间上的先后 顺序。
invoked execution thread B
fetch
Thread remains active
queue
fetch
put
13
调用 自己 的消 息
14
2.1 交互的基本概念-- 消息
: NewClass
1: procedure_call 3: <<destroy>>
: NewClass2
: NewClass3
火攻曹军
借東风火攻
2
Review: UML的概念模型
UML
事物
结构事物
行为事物 分组事物