第七章 交互图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。



7.1 顺序图——顺序图的深入
图7-9 consider和assert操作符
7.1 顺序图——顺序图的深入
5、critical
crtical表示子片段是“临界区域”,在临界 区域中,生命线上的事件序列不能和其他区域 中的任何其他事件交错。
7.1 顺序图——顺序图的深入
图7-11 操作符crtical
7.1 顺序图——顺序图的表示
1、对象

参与者实例也是对象;
顺序图中水平方向为对象维;
一般参与者和对象按从左到右顺序排列在顺序 图的顶部;
7.1 顺序图——顺序图的表示
1、对象 对象的命名方式有三种: 显示对象名和类名 只显示类名(匿名对象) 只显示对象名(不关心类)
7.1 顺序图——顺序图的表示

opt:支持单条件
7.1 顺序图——顺序图的深入
图7-5
顺序图中的分支表示(1)
7.1 顺序图——顺序图的深入
图7-7
顺序图中的分支表示(2)
7.1 顺序图——顺序图的深入
2、表示循环的操作符:loop 说明该片段将可以执行多次,而具体 的次数由循环次数和监护条件表达式来 说明。
7.1 顺序图——顺序图的深入
4、assert、consider、ignore

assert是用来表示执行过程中,那个时刻的行为是唯 一有效的。 consider包含一个子片段和一个消息类型列表。只有 列表中的消息类型可以出现在子片段中,其他类型可 以出现在实际的系统中,但是交互会忽略它们。 ingore也包含一个子片段和一个消息类型列表。列表 中的消息类型可以出现在子片段中,但交互会忽略它 们。它的含义与consider刚好相反。
7.2 通信图
三、组成元素 3、消息


通信图中的消息类型与顺序图中的相同。
为了说明交互过程中消息的时间顺序,需要给 消息添加顺序号。顺序号是在消息的前面加一 个整数。每个消息都必须有唯一的顺序号。 编号方式:无层次编号和嵌套编号。

7.2 通信图
三、组成元素 4、迭代标记 在顺序编号前加上一个迭代符“*”和一个可 选的迭代表达式来表示,用来说明循环规则。
表7-2常用迭代表达式
迭代表达式 [i:=1..n] [I=1..10] [while(表达式)] [until(表达式)]
语义 迭代n次
I迭代10次 表达式为true时才进行迭代 迭代到表达识为true时,才停止迭代 在对象集合上迭代
[for each(对象集合)]
7.2 通信图
三、组成元素 5、监护条件 监护条件通常是用来表示分支 在UML中,监护条件是以“[条件表达式]”的 格式表示的。
7.1 顺序图——绘制顺序图
以饮料自动销售系统为例,对“买饮料”的 3种场景进行建模,对每一个场景,我们绘制其 对应的顺序图。 下面是买到饮料的一般事件流: (1)顾客从机器的前端钱币口投入钱币,然后 选择想要的饮料; (2)钱币到达钱币记录仪,记录仪更新自己的 存储; (3)记录仪通知分配器分发饮料到机器前端;
teahcer
teahcer
练习三
1、用户打印文件,计算机向打印服务器发 送打印命令,打印机如果空闲,则直接打 印;否则把打印文件存储在打印队列中。 2、管理员通过课程管理器打印课程UML的 信息。
[a]
管理员通过课程管理器打印全部课程信息。
7.2 通信图
一、通信图的概念




通信图也称协作图(collaboration diagram); 描述系统中对象(或活动者)如何共同协作实 现用例; 强调的是参与交互的对象的组织; 一般,顺序图和协作图之间可相互转换;
2、生命线

表示对象存在的时间。 如果对象生命期结束,则用注销符号表示。
7.1 顺序图——顺序图的表示
3、控制焦点(激活期)

对象执行某个动作的时期。
7.1 顺序图——顺序图的表示
4、消息

对象间交互信息的方式

Biblioteka Baidu
UML中5种消息: 调用(同步消息) 发送(异步消息) 返回 创建 销毁
如何读懂通信图
例:
图7-18从订单生成订货单的通信图
例:
1: add item( ) : Maintenance Window : Administrator 2: find(String) 3: update( ) : Item
: Title
图7-19 通信图
例:
1.1: findStudent(name) 1.2: findCourse(course) <<self>> 1: register(name,course) :Registrar :RegistrationManager [(!s)&c]1:studentNotFound [s&(!c)]1:courseNotFound [(!s)&(!c)]1:allNotFound [s&c]1:OK :StudentList
图7-5 嵌套编号
Rose中的消息
7.1 顺序图——顺序图的深入
顺序图中,对象的行为有循环和分支两
种方式,为了表示这两种行为,引入了 交互片段、区域和操作符的概念。
7.1 顺序图——顺序图的深入
每个交互片段都有一个操作符,操作符
决定了交互片段的执行方式。
1、表示分支的操作符

alt:支持多条件
10i迭代10次while表达式表达式为true时才进行迭代until表达式迭代到表达识为true时才停止迭代each对象集合在对象集合上迭代三组成元素5监护条件在uml中监护条件是以条件表达式的格式表示的
第7章 交互图





Interaction Diagram 交互图是用来描述对象之间以及对象与参与者之 间的动态协作关系以及协作过程中行为次序的图 形文档。 用来描述一个用例的行为,显示该用例中所涉及 的对象和这些对象之间的消息传递情况。 包括顺序图、通信图(协作图)、定时图和交互 概观图四种形式。 一个用例需要多个顺序图或通信图,除非特别简 单的用例。
7.1 顺序图——顺序图的表示
(1)调用消息


发送者把消息发送后,等待,直到接收者返回 控制。 可表示同步。
图:同步消息
7.1 顺序图——顺序图的表示
(2)发送消息

消息发送后,发送者继续操作,不等待。 常用于表示并发。
图:异步消息
7.1 顺序图——顺序图的表示
(3)返回消息

表示消息的返回。一般同步的返回不需画出, 直接隐含,而异步返回则可用它。
目录
7.1 顺序图 7.2 通信图 7.3 绘制交互图
7.4 顺序图与通信图的关系
7.5 定时图
7.1 顺序图
一.顺序图的概念

也称时序图,Sequence Diagram
描述了系统中对象之间传送消息的时间顺序。
二.顺序图的作用

用来描述用例的实现
7.1 顺序图
图:即时通信系统中对象server和对象Database的交互
UML2.0 可以帧化顺序图,即用一个边框包围他并在左上 角添加一个间隔区,间隔区中包含了识别该顺序图的信息。 (例,sd:表示该图是顺序图;login:顺序图名)
7.1 顺序图——顺序图的表示
三.组成元素

对象-- Object 生命线-- Lifeline 消息-- Message 控制焦点(激活)-- Activation
ref login
图7-13 ref操作符
7.1 顺序图——顺序图的深入
顺序图中使用其它的技术: 1、使用注释 2、使用约束 3、使用状态
7.1 顺序图——顺序图建模
1. 为每一个用例编写事件流,包括一个基本事件 流和若干可选事件流或异常流; 2. 识别事件流中参与交互的对象; 3. 为每个事件流绘制顺序图,包括为每个对象设 置生命线,即确定哪些对象存在于整个交互过 程中,哪些对象在交互过程中被创建和撤销; 4. 从引发这个交互过程的初始消息开始,在生命 线之间自顶向下依次画出随后的各个消息; 5. 如果需要,可以画上交互片段、交互引用和约 束等。
练习一
第三步:添加消息
练习二
例:建模“成绩系统”的“浏览成绩(view grades)”用例,需要至少表示出3个要建 模的工作流: • 教师成功的检查学生的分数; • 教师试图检查某个学生的分数,但是该学 生在系统中不存在; • 教师试图检查某个学生的分数,但是该学 生的分数在系统中不存在。
teahcer
1: logOut 2: logOut 3: delete server:Server
图:销毁消息示例
7.1 顺序图——顺序图的表示
5、消息的格式 UML中规定的消息语法格式如下:

举例 2:display(x,y) 简单消息 1.3.1:p:=find(specs) 嵌套消息 [x<0] 4:invert(x,color) 条件消息 3.1 * :update() 循环消息
图7-7
顺序图中的循环表示
7.1 顺序图——顺序图的深入
3、break
用break定义一个含有监护条件的子片段。

如果监护条件为“真”则执行子片段,而且 不执行子片段后面的其他交互; 如果监护条件为“假”,那么就按正常流程 执行。

7.1 顺序图——顺序图的深入
图7-10 break操作符
7.1 顺序图——顺序图的深入
7.1 顺序图——顺序图的表示

自调用
例:
表示某对象调用自己的操作。
UML标记
ROSE标记
7.1 顺序图——顺序图的表示
(4)创建 通常利用构造方法来实现,对象一创建, 生命线就开始了。
图:创建消息示例
7.1 顺序图——顺序图的表示
(5)销毁 生命终止符号用一个较大的叉形符号表示。
client:Client systemMenu:SystemMenu
7.2 通信图
三、组成元素 1、对象
(2)主动对象(活动对象) 一组属性和一组方法的封装体,其中至少有一 个方法不需要接收消息就能主动执行(称作主 动方法)。
UML中
Rose中
7.2 通信图
三、组成元素 2、链


用来连接对象,消息显示在链的旁边,一个链 上可以有多个消息。 在顺序图中不使用链,只有协作图中才使用链 的概念。
1.2.1: c=find(course) :CourseList
练习一
第一步:确定事件流
“用户登录”用例的基本事件流: (1)打开登录对话框; (2)输入用户信息; (3)将用户信息发给服务器; (4)服务器访问数据库,验证账号合法性; (5)数据库返回账号合法信息以及用户的离线 消息(如果有); (6)服务器更新在线用户列表; (7)客户端更新好友列表的状态信息,显示离 线消息。
7.1 顺序图——绘制顺序图
1、买到饮料的场景对应的顺序图,如图7-14所示。
图7-14
买到饮料的场景
7.1 顺序图——绘制顺序图
2. 饮料“已售完”的场景
图7-15 饮料已售完的场景
7.1 顺序图——绘制顺序图
3. 机器没有合适的零钱
图7-16
零钱“找不开”的场景
练习一
例:为即时通信系统中的“用户登录”用例建 立顺序图: 第一步:确定事件流 第二步:识别对象 第三步:添加消息
7.1 顺序图——顺序图的深入
6、par
par是用来表示“并行”的,也就是用来表 示两个或多个并发执行的子片段。
7.1 顺序图——顺序图的深入
par
图7-12 par操作符
7.1 顺序图——顺序图的深入
7、ref
ref用来在一个交互图中,引用其他的交互 图。 在一个矩形框的左上角标识ref操作符, 并在方框中写明被引用的交互图名称。
描述用例或用例中特定部分的行为。
二、通信图的作用

7.2 通信图
三、组成元素

对象(参与者实例、多对象、主动对象) 消息 链
7.2 通信图
三、组成元素 1、对象
(1)多对象 多个对象的集合,往往是同类的对象。 如果消息同时发送给多个对象,则用多重对象 表示。 在顺序图中仍然显示为同单对象一样的图标。
7.1 顺序图——顺序图的表示
(1)消息编号

顺序编号 ——在每个消息的前面加上一个用冒号隔 开的顺序号来表示其顺序。
7.1 顺序图——顺序图的表示
图7-4 将订单生成送货单
7.1 顺序图——顺序图的表示
(2)消息编号

嵌套编号 ——把属于同一个对象发送和接收的消息 放在同一层进行编号。
7.1 顺序图——顺序图的表示
练习一
第一步:确定事件流
“用户登录”用例的异常事件流: 用户输入的信息与数据库的信息不匹配,数 据库验证不通过,弹出错误消息;
练习一
第二步:识别对象
(1)客户(client); (2)登录对话框(entryDialogue); (3)服务器(server); (4)数据库(database); (5)好友列表(friendList);
相关文档
最新文档