交互图
第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):
每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时 间内的存在
垂直的虚线 如果对象生命期结束, 则用注销符号表示 对象默认的位置在图 顶部,表示对象在交互 之前已经存在 如果是在交互过程中 由另外的对象所创建, 则位于图的中间某处。
顺序图
面向时间描述对象交互的图
协作图
系统分析设计实验05交互图(时序图协作图)_May5
交互图建模
内 容
基本概念 时序图 协作图 时序图和协作图共有的元素 对象规范与应用 消息规范与应用 消息编号 协作图特有的要素——链 时序图所特有的元素——控制焦点 时序图与协作图之间的转换
引
言
交互图可以用于对一个用例的事件流程进行 建模,也可以单独使用,用于可视化、详述、构造 和文档化一个特定对象群体的动态方面。交互图显 示一个交互,由一组对象和它们之间的关系构成, 其中包括:需要什么对象、对象相互发送什么消息、 什么角色启动消息以及消息按什么顺序发送。
一个例子
1 基本概念
1.1 交互图
分类
交互图分为两种:时序图和协作图
时序图强调消息发送的时间顺序 协作图则强调接收和发送消息的对象的组织结构
时序图和协作图语义等价
时序图和协作图在语义上是等价的,共享相同的基本 模型 两个图都可以表示另一个图所不能表示的某些东西 时序图和协作图可以实现两者之间的等价转换,而不 丢失任何信息
撤销方法
选择脚本和消息中的任意一项; 选择Edit > Detach Script。
2 时序图
2.4 时序图的删除
方法步骤
右键单击浏览器中的顺序框图名; 在快捷菜单中选择“Delete”。
2 时序图
2.5 时序图工具箱
12种常见工具按钮 可以定制
时序图注意事项
2 时序图
2.1 时序图中的要素
时序图包含的内容 1)对象 2)对象生命线 3)消息 4)控制焦点 对象、对象生命线和控制焦点 表示方法
对象向下方垂直伸展的虚线称为该对象 的生命线 ,表示该对象存在的时间长度 大“X”标记表明生命的结束 在生命线上的窄矩形条称为控制焦点, 控制焦点表示该对象正在执行某个操作。 窄矩形的长度表示操作的持续时间。
UML--时序图
• 所以,要我请你吃饭就用同步的方法, 所以,要我请你吃饭就用同步的方法, 要请我吃饭就用异步的方法,这样你可 要请我吃饭就用异步的方法, 以省钱。 以省钱。^_^!
3. 消息 消息:对象之间传输的信息。 消息有以下类型: 消息:对象之间传输的信息。UML消息有以下类型: 消息有以下类型 调用消息( ① 调用消息 Procedure Call ) 调用消息(也称为同步消息 的发送者把控制传递给 调用消息 也称为同步消息)的发送者把控制传递给 也称为同步消息 接收者,然后停止活动, 接收者,然后停止活动,直到消息接收者放弃或返回控 制。
Hale Waihona Puke 1.1 交互图的概念1. 交互图的概念 交互图(interaction): 用来描述对象之间、对象与参与 用来描述对象之间、 交互图 者之间的动态协作关系, 者之间的动态协作关系,以及协作过程中行为次序的图 形。 2.交互图的类型 2.交互图的类型 • • 顺序图( 顺序图( Sequence diagram )又称为时序图 协作图( 协作图( Collaboration diagram )
匿名对象
2. 顺序图样式和组成 ② 生命线
●
表示对象存在的时间,对象下面一条虚线表示。 表示对象存在的时间,对象下面一条虚线表示。 生命线从对象创建开始到对象销毁时终止。 生命线从对象创建开始到对象销毁时终止。 对象在生命线上的两 种状态: 种状态: 休眠状态 激活状态 ×
表示对象 的撤销
对象生命线
1.1 交互图的概念
1. 交互图的概念 交互图( 交互图 Interaction diagram ): 是描述对象之间的关系 以及对象之间的信息传递的图。 以及对象之间的信息传递的图。 2.交互图的类型 2.交互图的类型 • • 顺序图( 顺序图( Sequence diagram ) 协作图( 协作图( Collaboration diagram ) 3. 交互图的作用 通常用来描述一个用例的行为,实现一个用例, 通常用来描述一个用例的行为,实现一个用例,完成对 系统行为的建模。 系统行为的建模。
UML交互图
类图如下
student + + + + + + + + name address ID age sex : : : : : std::string std::string int int char + + + + + + + + schedule semester : int commit () selectcourse () changecourse () delete () submit () updata () save () pass () : : : : : : : : void void void void void void void void 0..1 0..*
活动者或对象
一般活动者和对象按照从左到右的顺序排列, 主要活动者排在最左边;
活动者或对象
对象的命名方式有三种:
包括对象名和类名 类名(匿名对象) 对象名(不关心类)
生命线
每个对象都有自己的生命线,是一条垂直的虚线,用 来表示一个对象在一段时间内存在。 如对象生命期结束,则用e () : getID () : getphone () : selectcourse () : givegoals () :
要求
绘制学生修改课程顺序图
控制焦点( focus of control )/激活期
对象执行某个动作的时期
消息
对象间交互信息的方式,消息分为五种:
对象创建、同步调用、返回、异步消息、交叉异步消息、对 象销毁
顺序图元素
间消息来表示, 对象间的通信通过在对象的生命线之 间消息来表示,消息的箭头类型指明 消息的类型。 消息的类型。 同步消息=调用消息(Synchronous Message) 消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接 收者放弃或者返回控制。用来表示同步的意义。 异步消息(Asynchronous Message) 消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动, 不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作 的。 返回消息(Return Message) 返回消息表示从过程调用返回
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与系统分析设计第二版 第6章 交互图.ppt
在UML2.0中提供了对系统动态行为建模的四大类图形: Use Case图、交互图、状态机图和活动图。
交互图(Interaction Diagram)主要表现对象之间是如何进 行交互和通信的。
交互图主要用于对Use Case中的控制流的建模。一般情况下, 一个交互图表达单个Use Case的行为,它表示出该Use Case 中的若干个实例对象和对象之间所传递的消息。
命线表示为从对象图标向下延伸的一条虚线。 3.激活期 激活期(Activation)又称为控制焦点(Focus of control),表示对象执行一个动作的期间,也即对象激 活的时间段。 激活期由位于生命线上的一个窄矩形框表示。 当一个对象在激活期时,该对象处于激活状态,能够响 应或发送消息,执行动作或活动。当一个对象不在激活 期时,该对象处于休眠状态,什么事都不做,但它仍然 存在,等待新的消息来激活它。
Home
6.1.1 顺序图的组成
4.消息 消息(Message)表示对象之间的通信,对象之间的交互通过互发消
息来实现,消息将触发接受对象中的特定操作。 。 在顺序图中消息用对象角色之间的一条水平箭线表示。消息箭线从
源对象指向目标对象,其上标有消息内容标签。 消息内容标签的格式为:
序号 [保安条件] *[循环] 返回表:= 操作名(参数表) 序号为消息在整个交互中的顺序号。 保安条件(Guard Condition)是一个布尔条件表达式。只有当其保
6.1.3 同步消息与异步消息
同步消息(Synchronous massage)代表一个通过操作调 用的嵌套的控制流,该操作调用要求操作同步。
同步消息的发送者把控制传递给消息的接收者,然后暂 停活动,等待消息接收者放弃或返回控制。
交互图知识点总结归纳
交互图知识点总结归纳交互图是一种用于描述系统中对象之间交互关系的图形表示方法。
它可以帮助软件开发人员更好地理解系统中对象之间的交互关系,从而更好地进行系统设计和开发。
在软件工程中,交互图是一种重要的分析和设计工具,它能够帮助开发人员更好地理清和把握系统中对象之间的交互关系,从而更好地进行系统分析、设计和实现。
在软件开发过程中,交互图主要包括时序图、协作图和状态图这三种不同类型的图。
每种交互图都有其特定的用途和应用场景,可以帮助开发人员更好地理解系统中对象之间的交互关系,从而更好地进行系统设计和开发。
时序图是一种描述系统中对象之间交互关系的图形表示方法。
它能够清晰地显示对象之间的消息交换和时序关系,从而帮助软件开发人员更好地理解系统中对象之间的交互关系,从而更好地进行系统分析、设计和实现。
时序图主要用于描述系统中对象之间的消息交换和时序关系,可以帮助开发人员更好地理解系统中对象之间的交互关系,从而更好地进行系统设计和开发。
协作图是一种描述系统中对象之间协作关系的图形表示方法。
它能够清晰地显示对象之间的协作关系和信息流动,从而帮助软件开发人员更好地理解系统中对象之间的协作关系,从而更好地进行系统分析、设计和实现。
协作图主要用于描述系统中对象之间的协作关系和信息流动,可以帮助开发人员更好地理解系统中对象之间的协作关系,从而更好地进行系统设计和开发。
状态图是一种描述系统中对象状态和状态转换的图形表示方法。
它能够清晰地显示对象的状态和状态转换规则,从而帮助软件开发人员更好地理解系统中对象的状态和状态转换规则,从而更好地进行系统分析、设计和实现。
状态图主要用于描述系统中对象的状态和状态转换规则,可以帮助开发人员更好地理解系统中对象的状态和状态转换规则,从而更好地进行系统设计和开发。
总的来说,交互图是一种非常重要的软件工程分析和设计工具,它能够帮助开发人员更好地理解系统中对象之间的交互关系,从而更好地进行系统设计和开发。
第7章 交互图
交互与交互图 如何阅读交互图
如何绘制交互图
交互图应用说明 定时图 本章小结
阅读顺序图
从订单生成送货单
顺序图的主要元素
•
对象与角色:最顶上一排矩形框。在交互图中,参与交互的
对象既可以是具体的事物,又可以是原型化的事物。作为具
体的事物,一个对象代 表现实世界中的某个东西。例如,aOrder
作为类Order的一个实例,可以代表一个
特定的订单;而如果作为一个原型化的事 件,则aOrder可以代表类Order的任何一 个实例。 生命线与控制焦点:每个对象都有自己的 生命线,对象生命线是一条垂直的虚线, 用来表示一个对象在一段时间内存在。
•
顺序图的主要元素
• • •
பைடு நூலகம்
消息:用来描述对象之间所进行的通信的,该信息带有
对将要发生的活动的期望。当传送一个消息时,它所引 起的动用是一个通过对计算过程的抽象而得到的可执行 语句。 消息分为五种:调用、返回、发送、创建和销毁
顺序图的主要元素
•
顺序编号:整个消息的传递过程就形成了一个完整的序列, 因此通过在每个消息的前面加上一个用冒号隔开的顺序号 来表示其顺序。除了顺序编号之外,还可以采用嵌套方案:
顺序图的主要元素
•
循环与分支
读图小结
• • •
在dispatchForm(分发窗体)中,对于某个已支付的Order进行分 发时,就会调用该订单(一个Order类的实例对象aOrder)的 dispatch()方法 dispatch()方法将逐个调用该Order对应的所有OrderItem对象的 getPeddleryId()方法还获取供应商ID(PeddleryId),而 OrderItem对象则是通过其所对应的Product对象来的 getPeddleryId()方法来获取供应商ID
uml交互图(顺序图通信图鲁棒图定时图)
uml交互图(顺序图、通信图、鲁棒图、定时图)交互与交互图交互的概念一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为消息UML中的4种交互图顺序图:顺序图是一种强调消息时间顺序的交互图,为读者提供了控制流随着时间推移的清晰的可视化轨迹通信图:UML 2.0中的通信图实际上就是UML1中的协作图,它强调的是参加交互的对象的组织,为读者提供了在协作对象结构组织的语境中观察控制流的一个清晰的可视化轨迹定时图:采用了一种带数字刻度的时间轴来精确地描述消息的顺序交互概述图:是交互图和活动图的混合物如何阅读交互图阅读顺序图顺序图的主要元素对象与角色:最顶上一排矩形框。
在交互图中,参与交互的对象既可以是具体的事物,又可以是原型化的事物。
作为具体的事物,一个对象代表现实世界中的某个东西。
例如,aOrder作为类Order的一个实例,可以代表一个特定的订单;而如果作为一个原型化的事件,则aOrder可以代表类Order 的任何一个实例。
生命线与控制焦点:每个对象都有自己的生命线,对象生命线是一条垂直的虚线,用来表示一个对象在一段时间内存在消息:用来描述对象之间所进行的通信的,该信息带有对将要发生的活动的期望。
当传送一个消息时,它所引起的动作是用一个通过对计算过程的抽象而得到的可执行语句(就是方法头)。
消息分为五种:调用、返回、发送、创建和销毁调用:表示调用某个对象一个操作顺序编号(第几步的编号):整个消息的传递过程就形成了一个完整的序列,因此通过在每个消息的前面加上一个用冒号隔开的顺序号来表示其顺序。
除了顺序编号之外,还可以采用嵌套方案:读图小结第1步在dispatchForm(分发窗体)中,对于某个已支付的Order进行分发时,就会调用该订单(一个Order类的实例对象aOrder)的dispatch()方法。
1.1 dispatch()方法将逐个调用[for each orderitem]该Order对应的所有OrderItem对象的getPeddleryId()方法获取供应商ID 1.2(PeddleryId),1.1.1而OrderItem对象则是通过其所对应的Product对象来的getPeddleryId()方法来获取供应商ID。
交互图
顺序图表示
对象/参与者
对象维
生命线 消息 时间维 控制焦点
19
顺序图的表示
对象 • 顺序图中对象的符号和对象图中对象所用的符号 一样。 • 将对象置于顺序图的顶部意味着在交互开始的时 候对象就已经存在了 • 如果对象的位置不在顶部,那么表示对象是在交 互的过程中被创建的
20
顺序图的表示
• 对象的撤销 • 如果要撤销一个对象,只要在其生命线终止点放 置一个“X”符号即可,该点通常是对删除或取 消消息的回应。
同步消息 返回消息 异步消息 简单消息
• UML1.3前的消息还有:
–简单消息 simple
• Rose扩充的消息
–阻止消息 balking –超时消息 time-out
26
顺序图的表示
同步消息:消息的发送者把控制传递给消息的接收者, 等待接收者返回或放弃控制.
调用消息必有一个与之配对的返回消息, 但是可以不 用画出.
将订单生成送货单
顺序图
• (2)嵌套编号: • UML标准中定义了“嵌套编 号方案”。嵌套编号方案表示 了方法间的包含关系。 • 由于顺序图本身已经充分表现 出消息执行的顺序,因此在 UML模型中并没有要求对消 息进行编号。只是要求在通信 图中,对消息进行了编号。但 在Rose等建模工具中,为了 能够自动实现顺序图与通信图 的转换,在顺序图中也默认采 取“嵌套编号方案。如1.1, 1.2,1.3
21
顺序图的表示
对象的左右排列位置
对象的左右顺序并不重要,但是为了图面的清晰整 洁起见,通常应遵循以下两个原则: (1)把交互频繁的对象尽可能地靠拢 (2)把初始化整个交互活动的对象(有时是一个 参与者)放置在最左边
Байду номын сангаас
交互图的名词解释
交互图的名词解释交互图是一种图形表达方式,用于展示不同实体之间的关系和相互作用。
它主要通过图形元素的位置、线条的连接和颜色的运用来传达信息,并帮助人们更好地理解相关概念和展示复杂的关系网络。
首先,交互图的基本元素是实体。
实体可以是人、组织、物品、事件等,它们以图形的形式呈现在交互图中。
每个实体通常通过一个特定的图标或形状来表示,以示区别和识别。
其次,交互图中的连接线条是表达实体间相互作用和关系的关键部分。
连接线可以是直线、曲线、箭头等形式,用于表示实体间的关联或交互方式。
这些连接线可以帮助人们更好地理解不同实体之间的相互影响,从而更好地把握整体情况。
此外,交互图中的颜色运用也是非常重要的。
颜色的运用可以帮助人们更好地区分和辨识不同类型的实体,从而更好地理解和解读交互图。
例如,可以选择不同的颜色来表示不同的实体类别,比如使用蓝色表示人物、红色表示组织等,这样可以使得交互图更加直观和易于理解。
交互图还可以通过布局和分组来展示实体之间的关系。
通过合理的布局和分组,可以使得交互图更加清晰,使得人们更容易理解其中的关联和联系。
比如,可以将相互关联的实体放置在一起或者按照一定的逻辑进行排布,这样可以帮助人们快速地捕捉到实体之间的关系。
交互图在多个领域都有应用,特别是在信息可视化和网络分析方面具有重要作用。
对于复杂的关系网络和大量的关联数据,交互图可以帮助人们更好地理解和分析。
比如,在社交网络中,交互图可以展示不同人物之间的关系和互动,从而帮助人们发现潜在的联系和信息。
在商务领域,交互图可以用于分析市场竞争、业务流程和组织结构等方面,为决策者提供支持和指导。
总之,交互图是一种强大的图形表达工具,用于展示实体间的关系和相互作用。
通过图形元素的位置、线条的连接和颜色的运用,交互图可以帮助人们更好地理解和展示复杂的关系网络。
它在信息可视化和网络分析等领域都有广泛的应用,为人们呈现了一个更加直观、清晰的全局视角。
交互图-顺序图
第二个是目标对象收到一条同步消息并返回一条回复。
第三个是目标对象收到一条异步消息并返回一条回复。
迷路消息和拾取消息
迷路消息是那些发送了却没有到达指定接收者, 或者到达的接收者不再当前图中。
拾取消息是收到来自那些未知的发送者,或者来 自没有显示在当前图的发送者的消息。 它们都表明是去往或来自一个终点元素。
门
门是连接片段内消息和片段外消息的连接点。 在 EA中,门显示为片段框架上的小正方形。作用为 顺序图与页面外的连接器。 用来表示进来的消息 源,或者出去消息的终点。
内部通信
内部消息表现为一个操作的递 归调用,或一个方法调用属于 同一个对象的其他方法。显示 为生命线上执行事件的嵌套控 制焦点。
复合片段
顺序图不适合表达复杂的过程逻辑。在一种情况下,有许多机制允许把一定程度的过程逻辑加入到图中, 并把它们放到复合片段的标题下。复合片段是一个或多个处理顺序被包含在一个框架中,并在指定名称的 环境下执行。 片段可以是: 选择性片段 (显示 “alt”) 为 if…then…else 结构建模。 选项片段 (显示 “opt”) 为 "switch"(开关) 结构建模。 中断片段对被处理事件的可选择顺序建模,而不是该图的其他部分。 并行片段(显示 “par”) 为并发处理建模。 弱顺序片段 (显示 “seq”) 包含了一组消息,这组消息必须在后继片段开始之前被处理。但不会把片段 内消息的先后顺序强加到不共享同一条生命线的消息上。 严格顺序片段 (显示 “strict”) 包含了一系列需要按照给定顺序处理的消息。 非片段 (显示 “neg”) 包含了一系列不可用的消息。 关键片段 具有关键部分。 忽略片段 声明一个没有意义的消息,如果它出现在当前上下文中。 考虑片段与忽略片段相反,不包含在考虑片段内的消息都应该被忽略。 断言片段 (显示 “assert”)标明任何没有显示为声明操作数的顺序都是无效的。 循环片段 包含一系列被重复的消息。
交互图状态图活动图
entry / setMode(onTrack) exit / setMode(offTrack)
2. 事件的描述 事件名称[参数表]
字符串,常为接收对象类中 的一个操作。
事件的形式参数 ,可以省略
3. 事件的类型
① 调用事件:是表示对操作的调度。
7.2.2 活动图的要素
活动
活动流 分劈
泳道
汇合
ቤተ መጻሕፍቲ ባይዱ
1 活动
活动(Action): 是活动图主要结点,用两边为弧的条形框表 示,中间填活动名 。
活动分为简单活动和复合活动。 简单活动:不能再分解的活动; 复合活动:可以再分解的复杂活动。
简单 活动
复合 活动
2 活动流
活动流(ActionFlow): 描述活动之间的有向关系,反映一 个活动向另外一个活动之间的转移。用带箭头的实线表示。
,然后停止活动,等到消息接收者放弃或返回控制。
调用消息
3. 消息 ②异步消息 异步消息的发送者通过消息把信号传递给接收者,然后继
续自己活动,不等待接收者返回消息或控制。
异步消息
3. 消息 ③返回消息 返回消息表示从过程调用返回。如果是从过程调用返回,则 返回消息是隐含的,可以不画出来。 对于非过程调用,如果有返回消息,必须画出来。
活动流
3 分支
分支: 表示活动流的分叉和合并。表示从一个活动按照某 种条件转移到几个不同的活动。
分叉 合并
4 分劈和汇合
分劈和汇合: 表示并发的同步行为,用同步杆表示。
分劈 汇合
5 泳道
泳道(swimlane): 是活动图中的区域划分,每一个泳道代 表一个责任区域。一个泳道中包括一组相关活动。
UML4 交互图
把技能”A/D“加入资源”王平“的剧本(实例顺序图) 17
买饮料用例:一个理想的买饮料场景(有饮料并钱数正确),四个对象类角色: 顾客:买饮料;前端:饮料售货机与顾客之间的接口;钱币记录仪:负责收集顾客投的 钱币;分配器:负责取饮料递给前端。四个对象类角色之间的交互序列: (1)某顾客向机器前端投币口投入正确的钱币。(2)顾客选择有存货的饮料品种。 (3)钱币被传送到记录仪。(4)记录仪控制分配器将一罐饮料投递到销售机的前端。
四、交互图(Interaction Diagram)
交互图表示对象之间的交互,是描述一组对象如何合作 完成某个行为的模型化工具。
交互图主要用于对Use Case中的控制流的建模。一般情 况下,一个交互图表达单个Use Case的行为,它表示出 该Use Case中的若干实例对象和对象之间所传递的消息。 交互图有效地帮助人们观察和理解系统内部的协作关系 和过程行为。
源对象
目标对象
Synchronous Message
阻止消息:源对象发消息给 目标对象,如果目标对象无 法立即接收消息,则源对象 放弃这个消息。
源对象
Balking Message
目标对象
9
4.1.1 顺序图的组成[4]
超时消息:源对象发出消息给 目标对象并等待指定的时间, 如果目标对象无法在指点的时 内接收消息,则源对象放弃这 个消息。
5
主要内容
1. 顺序图的组成 2. 运用顺序图 3. 实例图与一般图 4. 对象的创建与销毁
6
4.1.1 顺序图的组成[1]
顺序图由下列图形元素构成:对象、生命线、激活期和
消息。
(1)对象:一般只给出名称,其命名规则与在对象图中相同。对象
图标一般位于顺序图的顶部,布局以能够使图形尽量简洁为主。
交互作用图(顺序、协作)
创建消息:创建一个对象,箭头需要指到所建立的 对象上面。 销毁消息:销毁一个对象,对象生命线用差号来表 示销毁,表示被销毁对象的生命周期将到此终结。
obj1:Class <<c re at e>> obj2:Class
<<d e s t ro y >>
<<boundary>> : 职员管理界面
• findTitle(isbn:String):OID • 返回指定ISBN的Title对象的 OID • getTitle(oid:OID):Title • 返回Title对象 • getAvaliableBook():OID • 返回第一个可借阅的Book对 象的OID
• 类Borrower • borrowerID:String • loans:OID[ ]
(3). 简单消 息
它只表示控制如何从一个对象传递给另一个对象,而没有描述通信的任何细节。 这种类型的消息主要用于通信细节未知或者无需考虑通信细节的场合。也就是说,主 要用于不知道消息是同步还是异步的场合,但通常情况下表示异步消息此外在高层分 析中,有时候没有必要指定一个消息是同步的还是异步的。如下面的示例所示。
顺序图是显示对象之间交互的图, 这些对象是按时 间顺序排列的. 它显示参与交互的对象及对象之间消息交互的顺序.
对象/参与者 对象维
生命线 消息 时间维 控制焦点
对象的三种命名方式:
生命线是对象图标向下延伸的虚线, 表示对象生存时间.
消亡点
控制焦点(Focus of Control)又称为激活期(Activation), 用 生命线上的小矩形表示, 在这个时间段内, 对象执行相 应的操作.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.1 顺序图
对象
控制焦点 消息
•图7-2 顺序图
生命线
6.1 顺序图
2.对象: 对象: 对象
顺序图中对象的符号和对象图中对象所用的符号一样。 顺序图中对象的符号和对象图中对象所用的符号一样。将对象置于顺序 图的顶部意味着在交互开始的时候对象就已经存在了, 图的顶部意味着在交互开始的时候对象就已经存在了,如果对象的位置 不在顶部,那么表示对象是在交互的过程中被创建的。 不在顶部,那么表示对象是在交互的过程中被创建的。
3.顺序图的组成元素 顺序图的组成元素
顺序图中的元素包括对象、生命线、控制焦点、消息。 顺序图中的元素包括对象、生命线、控制焦点、消息。消息表示了对象 间的通讯,生命线表示了对象的生存期, 间的通讯,生命线表示了对象的生存期, 控制焦点表示对象正在执行一 些活动。 些活动。
6.1 顺序图
6.1.2 顺序图的表示 UML中,表示一个顺序图,主要是标识系统中的对象、对象的 中 表示一个顺序图,主要是标识系统中的对象、 生命线、对象的控制焦点、对象间交互的消息。如图7-2所示 所示。 生命线、对象的控制焦点、对象间交互的消息。如图 所示。 1.顺序图的布局结构 顺序图的布局结构
UML和设计模式 和设计模式 UML and Design Patterns
丁华锋 dingh_f@
UML和设计模式 和设计模式 第六章 交互图
目录
6.1 顺序图 6.2 通信图 7 . 3 绘制交互图 6.4 顺序图与通信图的关系 6.5 定时图
第六章 交互图
描述系统中,对象之间通过消息进行通讯的图就是交互图。 描述系统中,对象之间通过消息进行通讯的图就是交互图。交 互图包含4种类型 它们是顺序图、通讯图、定时图、 种类型, 互图包含 种类型,它们是顺序图、通讯图、定时图、交互概述 图。
也就是创建和销毁一个对象。创建对象通常是利用构造方法来实现的, 也就是创建和销毁一个对象。创建对象通常是利用构造方法来实现的, 对象一创建,生命线就开始;生命终止符号用一个较大的叉形符号表示。 对象一创建,生命线就开始;生命终止符号用一个较大的叉形符号表示。
6.1 顺序图
消息编号: 5.消息编号: 消息编号 按消息产生的先后顺序, 按消息产生的先后顺序, 给消息编号, 给消息编号,有两种编 号方案, 号方案,一种是顺序编 另一种是嵌套编号. 号,另一种是嵌套编号 (1)顺序编号:整个消息的 顺序编号: 顺序编号 传递过程就形成了一个 完整的序列, 完整的序列,因此通过 在每个消息的前面加上 一个用冒号隔开的顺序 号(按照消息的先后顺 按照消息的先后顺 序,从1开始对消息编 开始对消息编 来表示其顺序。 号)来表示其顺序。 来表示其顺序
发送是指向对象发送一个信号。信号和调用不同,它是一种事件, 发送是指向对象发送一个信号。信号和调用不同,它是一种事件,用来 表示各对象间进行通信的异步激发机制。 表示各对象间进行通信的异步激发机制。 调用是同步的机制,而信号是一种异步的机制。 调用是同步的机制,而信号是一种异步的机制。
(4)创建(Create)和销毁(Destroy)。 )创建( )和销毁( )。
3.生命线 生命线
生命线是一条垂直的虚线,表示顺序图中的对象在一段时间内的存在。 生命线是一条垂直的虚线,表示顺序图中的对象在一段时间内的存在。 每个对象的底部中心的位置都带有生命线。生命线是一个时间线, 每个对象的底部中心的位置都带有生命线。生命线是一个时间线,所用 的时间取决于交互持续的时间。 的时间取决于交互持续的时间。
(1).在dispatchForm(分发窗体)中,对于某个已支付的 在 对于某个已支付的Order进行分发 (分发窗体) 进行分发 就会调用该订单(一个Order类的实例对象 类的实例对象aOrder)的dispatch()方 时,就会调用该订单(一个 类的实例对象 ) 方 法 (2).dispatch()方法将逐个调用该Order对应的所有 方法将逐个调用该Order对应的所有 对应的所有OrderItem对象的 方法将逐个调用该 对象的 getPeddleryId()方法还获取供应商ID(PeddleryId),而OrderItem对象 方法还获取供应商ID ),而 方法还获取供应商 ( ), 对象 则是通过其所对应的Product对象来的 对象来的getPeddleryId()方法来获取供应商 则是通过其所对应的 对象来的 方法来获取供应商 ID (3).当Order的实例对象 当 的实例对象aOrder得到返回的 得到返回的PeddleryId后,根据该值判断是 的实例对象 得到返回的 后 否已经有相对应的DeliverOrder对象,如果没有就创建它(调用 对象, 否已经有相对应的 对象 如果没有就创建它( create(PeddleryId)),然后再将对应的 ),然后再将对应的 添加到这个DeliverOrder ),然后再将对应的Product添加到这个 添加到这个 对象中。否则就直接添加到相应的DeliverOrder对象中 对象中。否则就直接添加到相应的DeliverOrder对象中 本交互图说明,根据 对象中各个产品所属的供应商, 本交互图说明,根据order对象中各个产品所属的供应商,把产品拆分成 对象中各个产品所属的供应商 多个deliverorder对象,每个deliverorder对象是与一个特定的供应商相关 对象, 多个 对象 每个deliverorder对象是与一个特定的供应商相关 联的。这样就可以由每个供应商对其进行送货。 联的。这样就可以由每个供应商对其进行送货。
顺序图采用二维的布局结构,在顶端,从左到右,把对象排列在顺序图 顺序图采用二维的布局结构,在顶端,从左到右, 的顶部,一般说来,首先排列参与者对象,其次是边界对象, 的顶部,一般说来,首先排列参与者对象,其次是边界对象,然后是实 体对象,对象用矩形框表示;虚线是生命线; 体对象,对象用矩形框表示;虚线是生命线;生命线上的矩形是对象的 控制焦点;从对象往下延伸的生命线表示了时间轴的正方向。 控制焦点;从对象往下延伸的生命线表示了时间轴的正方向。 在图7-2中 参与者对象是车主,边界对象是车钥匙,实体对象是汽车, 在图 中,参与者对象是车主,边界对象是车钥匙,实体对象是汽车, 这三个对象在平面图的顶部,从左向右依此排列。 这三个对象在平面图的顶部,从左向右依此排列。
改用opt操作符表示 图 改用 操作符表示
6.1 顺序图
Loop(10):表示执行 次。 表示执行10次 表示执行 交互片段是UML2.0中新添加的一个特性,因此在采用UML1.0 中新添加的一个特性, 中新添加的一个特性 因此在采用 交互片段是 的建模工具时是无法完成上述模型的。这时,只能使用UML1.0 的建模工具时是无法完成上述模型的。这时,只能使用 中的迭代标记和监护条件来表示。 中的迭代标记和监护条件来表示。 迭代标记是由一个附于消息名的“ ”号来表示,用来表示循环, 迭代标记是由一个附于消息名的“*”号来表示,用来表示循环, 也可以在“*”号后面加上一个方括号,并在里面写出循环次数。 也可以在“ ”号后面加上一个方括号,并在里面写出循环次数。 监护条件是置于方括号内的条件表达式。 监护条件是置于方括号内的条件表达式。 虽然这些标志在UML2.0的顺序图已经不再采用,但是在 的顺序图已经不再采用, 的顺序图已经不再采用 虽然这些标志在 UML2.0的通信图中是仍然保留的。如果用这种表示法,那么与 的通信图中是仍然保留的。 的通信图中是仍然保留的 如果用这种表示法, 图7-4等价的交互图就将是如图 8所示。 4等价的交互图就将是如图7-8所示。
6.1 顺序图
6.1.1 顺序图的概念 1.顺序图 顺序图
顺序图也称为时序图, 顺序图也称为时序图,它描述了 系统中, 系统中,对象间通过消息进行的 交互, 交互,它强调了消息在时间轴上 的先后顺序。 的先后顺序。 图7-1是自动车锁系统中,实现 是自动车锁系统中, “锁车”用例的顺序图。 锁车”用例的顺序图。
6.1 顺序图
注意在图7-8 注意在图 8中加 入灰色背景的文字, 入灰色背景的文字, 它们分别用来表示 循环和分支。显然, 循环和分支。显然, 其直观程度不如 UML2.0中的交互片 中的交互片 段。 下面来总结一下这 张交互图所代表的 意思: 意思:
•图7-8 UML1.0表示循环和分支
6.1 顺序图
(2)返回(return)。 )返回( )。
返回表示被调用的对象向调用者返回一个值。 返回表示被调用的对象向调用者返回一个值。在UML的交互图中,将采 的交互图中, 的交互图中 用如虚线箭头线来表示,在箭头线上应标明返回值。 用如虚线箭头线来表示,在箭头线上应标明返回值。
6.1 顺序图
(3)发送(Send)。 )发送( )。
6.1 顺序图
每个交互片段都有一个操作符, 每个交互片段都有一个操作符,操作符决定了交互片段的执行 方式.下面分别讲述每种操作符的应用 下面分别讲述每种操作符的应用. 方式 下面分别讲述每种操作符的应用 1.alt和Opt 和
可以表示分支的操作符有两个:支持多条件的alt和支持单条件的的 和支持单条件的的opt。 可以表示分支的操作符有两个:支持多条件的 和支持单条件的的 。 在图7-5所示的例子中,实际上要表示的逻辑是“如果peddeleryid不存 在图 所示的例子中,实际上要表示的逻辑是“如果 所示的例子中 不存 在就先创建它,然后添加;否则就直接添加。因此, 在就先创建它,然后添加;否则就直接添加。因此,也可以使用单条件 来表示, 所示( 的opt来表示,如图 所示(注意加灰的部分) 来表示 如图7-7所示 注意加灰的部分)
2.顺序图的作用 顺序图的作用
顺序图常用来描述用例的实现, 顺序图常用来描述用例的实现, 它表明了由哪些对象, 它表明了由哪些对象,通过消息 相互协作来实现用例的功能,在 相互协作来实现用例的功能, 顺序图中, 顺序图中,标识了消息发生交互 的先后顺序。 的先后顺序。
•图7-1顺序图。