收藏 分享(赏)

Chapter 06-交互图(顺序图与协作图).ppt

上传人:ysd1539 文档编号:8147663 上传时间:2019-06-11 格式:PPT 页数:47 大小:8.68MB
下载 相关 举报
Chapter 06-交互图(顺序图与协作图).ppt_第1页
第1页 / 共47页
Chapter 06-交互图(顺序图与协作图).ppt_第2页
第2页 / 共47页
Chapter 06-交互图(顺序图与协作图).ppt_第3页
第3页 / 共47页
Chapter 06-交互图(顺序图与协作图).ppt_第4页
第4页 / 共47页
Chapter 06-交互图(顺序图与协作图).ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、第6章:交互图 顺序图与协作图,王传栋 南京邮电大学计算机学院,Chd.Wang,E-Mail:C,2,说明,完整建模必须描述系统的两个方面 静态模型:类图和对象图 描述对象数据与链接 动态模型:交互图 描述对象行为,也就是对象之间的消息传递 交互图类型 顺序图 协作图 交互概述图(UML 2.0) 定时图(UML 2.0),Chd.Wang,E-Mail:C,3,顺序图,也称时序图 常用于描述用例的实现 描述系统(用例)中对象间通过消息进行的交互 强调消息交互在时间轴上的先后顺序 顺序图的组成元素 对象:矩形,符号与对象图相同 生命线:虚线,表示对象生存期 控制焦点:矩形条,表示对象正在执行

2、一些活动 消息:箭头线,表示对象间消息通讯,Chd.Wang,E-Mail:C,4,顺序图的表示 二维布局,对象 顶端排列,表示交互开始时对象已经存在 位置不在顶部,表示对象在交互过程中被创建 自左至右依次为参与者、边界、实体等对象类型 生命线 垂直虚线,表示对象的存在时间 生命线是一个时间线,所用时间取决于交互持续的时间 控制焦点 矩形条,表示对象处于激活状态(正在执行任务) 虚线位置,表示对象处于空闲状态,Chd.Wang,E-Mail:C,5,顺序图的表示 二维布局,消息 描述对象之间的通信,包括消息名、消息参数等 消息编号 顺序编号 格式:顺序号:消息 整个消息的传递过程,形成一个完整

3、的序列 层次编号 格式:层次编号:消息 方案表示了方法间的包含关系 注: 顺序图已经表现出消息执行顺序,编号不是必须的 协作图必须编号 顺序图编号便于与协作图互相转换,Chd.Wang,E-Mail:C,6,顺序编号的顺序图示例,提示 Order类的dispath ()方法,作用是根据供应商户的不同将一个订单分拆到多个送货单中,Chd.Wang,E-Mail:C,7,层次编号的顺序图示例,提示 Order类的dispath ()方法,作用是根据供应商户的不同将一个订单分拆到多个送货单中,Chd.Wang,E-Mail:C,8,消息类型,调用(call),调用某个对象的操作 格式:“对象名.成员

4、方法” 符号:实线箭头线 返回(return),被调用对象向调用者返回一个值 符号:虚线箭头线,标明返回值 发送(send),向某个对象发送一个信号 发送和调用的区别 发送是异步机制 调用是同步机制 创建(create)和销毁(destroy) 利用构造方法创建对象,对象一创建,生命线就开始 销毁是对象生命终止,用较大的叉形符号表示,Chd.Wang,E-Mail:C,9,顺序图中的循环和分支,对象行为有循环和分支两种方式 顺序图为了表示这两种行为,引入以下概念 交互片段(UML 2.0) 一个交互片段可以包含多个区域 每个交互片段都有一个操作符 区域 每个区域拥有一个监护条件和一个复合语句

5、操作符 操作符决定了交互片段的执行方式 表示分支的操作符:多条件(alt)、单条件(opt) 表示循环的操作符:loop,Chd.Wang,E-Mail:C,10,顺序图中的循环和分支,交互片段示意 若peddeleryid不存在,则执行区域1 (复合语句1:先创建它,然后添加);若存在,执行区域2(复合语句2 :直接添加) 存在条件分支,则使用“区域分隔线”分解出多个区域,并为每个区域设置一个监护条件 具体示例 参见前面的图 也可以用opt条件表达 注:交互片段是UML2.0提出的新概念,Chd.Wang,E-Mail:C,11,顺序图中的循环和分支,其它操作符 loop:表示片段的多次执行

6、,由循环次数和监护条件说明 loop(1,n),loop(10) loop for each Item assert、consider、ignore assert表示执行过程中,唯一的有效行为 consider包含一个子片段和一个消息类型列表,只有列表中的消息类型可以出现在子片段中;其它类型可以出现,但是交互会忽略它们 ignore也包含一个子片段和一个消息类型列表,列表中的消息类型可以出现在子片段中,但交互会忽略它们,Chd.Wang,E-Mail:C,12,顺序图中的循环和分支,其它操作符 break 定义含有监护条件的片段,若条件为“真”执行子片段,而不执行子片段后面的其它交互;若条件为

7、“假”,那么就按正常流程执行 critical critical表示子片段是“临界区域”,区域中生命线上的事件序列不能和其他区域中的任何其他事件交错 通常表示一个原子性的连续操作,例如事务性操作,Chd.Wang,E-Mail:C,13,顺序图中的循环和分支,其它操作符 par 表示并发执行的若干个子片段,子片段中的单个元素可以以任何可能的顺序相互操作(除非采用critical禁止) ref 用于在一个交互图中引用其他的交互图,Chd.Wang,E-Mail:C,14,顺序图中的循环和分支,UML1.0表示电子商务网站中“将订单生成送货单”用例的顺序图 注: 交互片段是UML2.0提出的新概念

8、 在UML1.0中用迭代标记和监护条件来表示,Chd.Wang,E-Mail:C,15,顺序图中的循环和分支,用例“将订单生成送货单”顺序图的含义 根据order对象中各个产品所属的供应商,把产品拆分成多个deliverorder对象,每个deliverorder对象都是与一个特定供应商相关联,由每个供应商进行送货 信息流程 1. 在dispatchForm(分发窗体)中,对已支付Order实例(对象aOrder)分发时,就调用其dispatch()方法aOrder.dispatch() ; 2. Order实例(对象aOrder)的dispatch()方法,依次调用包含的所有OrderIte

9、m对象的getPeddleryId()方法,获取供应商ID(PeddleryId)oneOrderItem.getPeddleryId() ; lastOrderItem.getPeddleryId() ;,Chd.Wang,E-Mail:C,16,顺序图中的循环和分支,用例“将订单生成送货单”顺序图的含义 根据order对象中各个产品所属的供应商,把产品拆分成多个deliverorder对象,每个deliverorder对象都是与一个特定供应商相关联,由每个供应商进行送货 信息流程 3. 每一个OrderItem对象都通过其对应Product对象的getPeddleryId()方法获取供应商

10、ID (PeddleryId)oneProduct.getPeddleryId() ; lastProduct.getPeddleryId() ; 4. 当Order实例(对象aOrder) 得到返回PeddleryId后,判断是否已经有相对应的DeliverOrder对象, 存在,将Product对象添加到DeliverOrder对象 不存在,创建一个新的DeliverOrder对象,并添加Product对象,Chd.Wang,E-Mail:C,17,顺序图示例,饮料自动销售系统 正常场景 顾客从钱币口投入钱币,然后选择想要的饮料 钱币到达钱币记录仪,记录仪更新存储 记录仪通知分配器分发饮料

11、 异常场景 1)饮料已售完 2)饮料没有售完,但机器没有合适的零钱,Chd.Wang,E-Mail:C,18,顺序图示例,正常场景,Chd.Wang,E-Mail:C,19,顺序图示例,异常场景1,Chd.Wang,E-Mail:C,20,顺序图示例,异常场景2,Chd.Wang,E-Mail:C,21,协作图,也称通信图 描述对象之间的消息交互,强调对象在交互中承担角色 语义上与顺序图是完全等价的,可以相互转换 协作图的组成元素 对象 消息 链接 示例,Chd.Wang,E-Mail:C,22,协作图,作用 描述、强调交互发生时,每个对象承担的职责 显示对象相互协作时充当的角色 强调交互的时

12、间和序列,选择顺序图建模 强调交互的上下文相关,选择协作图建模 阐明对象之间交互的角色,以实现特定用例或用例中特定部分的行为,便于确定类的职责和接口,Chd.Wang,E-Mail:C,23,协作图的表示,对象 对象的概念与顺序图相同 协作图无法表示对象创建和撤销,对象在图中位置任意 链 表示对象之间的语义关系,是关联的一个实例 消息 消息类型与顺序图相同 消息必须编号,目的是强调交互的时间顺序 编号方法与顺序图相同 顺序编号 层次编号,Chd.Wang,E-Mail:C,24,协作图的表示,迭代标记和监护条件 迭代标记 格式:*迭代表达式 表示循环,迭代表达式说明循环规则 注:UML2.0的

13、顺序图以交互片段替代迭代标记,但在协作图中,仍然使用迭代标记 监护条件 格式:条件表达式 表示分支,条件表达式值为true时,消息发送 使用限制:通常只列出主要监护条件,否则影响协作图阅读,Chd.Wang,E-Mail:C,25,协作图示例,用例“将订单生成送货单”协作图 用例“注册课程”协作图,Chd.Wang,E-Mail:C,26,协作图示例,用例“图书管理员登录系统”协作图信息流程 1. 角色Librarian向Login发送User Login信息,要求登录系统 2. 登录界面Login向Maintenance发送input Maintenance信息,执行维护 3. 登录界面Lo

14、gin向Query发送input Query消息,执行查询 4. 登录界面Login向Operation发送input Operation信息,执行输入,Chd.Wang,E-Mail:C,27,绘制交互图,步骤 1)找出交互对象及其关系(仅对于协作图而言) 2)确定对象之间交互的消息格式和流程 用同步调用、异步消息、返回消息来表示 3)利用交互片段或迭代标志、监护条件表示循环和分支 4)通过一些构造型来完善整个交互图 注: RUP方法中,以用例为材料来构造交互图 候选对象来自用例描述 交互消息取自事件流 分析模型中的交互图是对用例功能的实现,Chd.Wang,E-Mail:C,28,绘制交互

15、图,用例“新增书籍信息”描述与事件流,Chd.Wang,E-Mail:C,29,绘制交互图,寻找分析类 分析阶段寻找3种分析类(边界类、控制类和实体类) 1)寻找边界对象:以参与者“图书管理员”为线索 图书管理员向系统发出“新增书籍信息”请求 主窗口、“新增书籍信息”按钮 系统要求选择新增书籍是计算机类还是非计算机类 “书籍类别”列表框 选择类别后,根据书号规则自动生成书号,管理员输入信息,并提交 “新书信息录入”窗口、“提交”按钮 由“参与者和边界对象”绘制初步的分析图,Chd.Wang,E-Mail:C,30,绘制交互图,寻找分析类 分析阶段寻找3种分析类(边界类、控制类和实体类) 1)寻

16、找边界对象:以参与者“图书管理员”为线索,Chd.Wang,E-Mail:C,31,绘制交互图,寻找分析类 分析阶段寻找3种分析类(边界类、控制类和实体类) 2)寻找控制对象和实体对象 实体对象来源于领域中的类图,描述业务领域的名词和名词短语 书籍、计算机书籍、非计算机书籍、书籍列表 控制对象来源于事件流 按钮事件处理器、书名重复性检查、创建书籍、加入书籍列表、获得书籍类别、生成书号 基于所有对象,绘制完整的分析图,Chd.Wang,E-Mail:C,32,绘制交互图,寻找分析类 分析阶段寻找3种分析类(边界类、控制类和实体类) 2)寻找控制对象和实体对象,Chd.Wang,E-Mail:C,

17、33,绘制交互图,基于分析图,构建交互模型 步骤 自左至右,依次将参与者、边界对象、实体对象放在顶部(分析阶段可以不考虑控制类) 根据事件流描述,结合分析图,得到消息流 绘制顺序图 绘制协作图(可以由顺序图自动转化),Chd.Wang,E-Mail:C,34,绘制交互图,顺序图,Chd.Wang,E-Mail:C,35,绘制交互图,协作图,Chd.Wang,E-Mail:C,36,顺序图与协作图的关系,都表示了对象之间的交互,语义上等价,但侧重点不同 顺序图描述了对象交互的时间顺序,但没有明确地表达对象之间的关系,也没有表明对象在交互中承担的角色 协作图描述了交互中对象承担角色(关系),但对象

18、在交互中的时间顺序必须靠消息的顺序号获得 顺序图可以表示出对象的激活状态和去激活状态,也可以表示出对象的创建和销毁的相对时间;协作图则没有这些功能,Chd.Wang,E-Mail:C,37,习题 9.1,参考答案 (a)顺序图(b)协作图比较 交互简单,没有太大的区别; 若有区别也许是:协作图中,transfer对象到account对象之间,链接表达的消息传递更加明确,Chd.Wang,E-Mail:C,38,习题 9.2,参考答案 P150图9.7顺序图,Chd.Wang,E-Mail:C,39,习题 9.3,参考答案 P154图9.14协作图,Chd.Wang,E-Mail:C,40,习题

19、 9.4,参考答案 P155图9.17协作图 本题情况下,协作图似乎是清楚的,图中的组合链接表示返回的是行集元素;序列图不显示链接,这些信息是看不见的,Chd.Wang,E-Mail:C,41,习题 9.5,参考答案 P252图14.22观察者设计模式 顺序图,通过交互的主体与观察员之间的递归调用,使消息次序更清晰; 协作图,明确的链接和消息的编号,也具有较好的可理解性。,Chd.Wang,E-Mail:C,42,习题 9.6,(a),Chd.Wang,E-Mail:C,43,习题 9.6,(b),Chd.Wang,E-Mail:C,44,习题 9.6,(c),Chd.Wang,E-Mail:C,45,习题 9.6,(d),Chd.Wang,E-Mail:C,46,习题 9.7,Chd.Wang,E-Mail:C,47,习题 9.7,参考答案,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报