Chapter-06-交互图(顺序图与协作图)教学课件

上传人:文**** 文档编号:240606996 上传时间:2024-04-24 格式:PPT 页数:48 大小:8.73MB
收藏 版权申诉 举报 下载
Chapter-06-交互图(顺序图与协作图)教学课件_第1页
第1页 / 共48页
Chapter-06-交互图(顺序图与协作图)教学课件_第2页
第2页 / 共48页
Chapter-06-交互图(顺序图与协作图)教学课件_第3页
第3页 / 共48页
资源描述:

《Chapter-06-交互图(顺序图与协作图)教学课件》由会员分享,可在线阅读,更多相关《Chapter-06-交互图(顺序图与协作图)教学课件(48页珍藏版)》请在装配图网上搜索。

1、说明说明n完整建模必须描述系统的两个方面完整建模必须描述系统的两个方面q静态模型:类图和对象图静态模型:类图和对象图n描述对象数据与链接描述对象数据与链接q动态模型:交互图动态模型:交互图n描述对象行为,也就是对象之间的消息传递描述对象行为,也就是对象之间的消息传递n交互图类型交互图类型q顺序图顺序图q协作图协作图q交互概述图交互概述图(UML 2.0)q定时图定时图(UML 2.0)顺序图顺序图n也称时序图也称时序图q常用于描述用例的实现常用于描述用例的实现q描述系统(用例)中对象间描述系统(用例)中对象间通过消息进行的交互通过消息进行的交互q强调消息交互在时间轴上的强调消息交互在时间轴上的

2、先后顺序先后顺序n顺序图的组成元素顺序图的组成元素q对象:对象:矩形矩形,符号与对象图相同符号与对象图相同q生命线:生命线:虚线虚线,表示对象生存期,表示对象生存期q控制焦点:控制焦点:矩形条矩形条,表示对象正在执行一些活动表示对象正在执行一些活动q消息:消息:箭头线箭头线,表示对象间消息通讯,表示对象间消息通讯顺序图的表示顺序图的表示二维布局二维布局n对象对象q顶端排列,表示交互开始时对象已经存在顶端排列,表示交互开始时对象已经存在q位置不在顶部,表示对象在交互过程中被创建位置不在顶部,表示对象在交互过程中被创建 q自左至右依次为参与者、边界、实体等对象类型自左至右依次为参与者、边界、实体等

3、对象类型n生命线生命线q垂直虚线,表示对象的存在时间垂直虚线,表示对象的存在时间q生命线是一个时间线,所用时间取决于交互持续的时间生命线是一个时间线,所用时间取决于交互持续的时间n控制焦点控制焦点q矩形条,表示对象处于激活状态(正在执行任务)矩形条,表示对象处于激活状态(正在执行任务)q虚线位置,表示对象处于空闲状态虚线位置,表示对象处于空闲状态顺序图的表示顺序图的表示二维布局二维布局n消息消息q描述对象之间的通信,包括消息名、消息参数等描述对象之间的通信,包括消息名、消息参数等n消息编号消息编号q顺序编号顺序编号n格式:格式:顺序号:消息顺序号:消息n整个消息的传递过程,形成一个完整的序列整

4、个消息的传递过程,形成一个完整的序列q层次编号层次编号n格式:格式:层次编号:消息层次编号:消息n方案表示了方法间的包含关系方案表示了方法间的包含关系q注:注:n顺序图已经表现出消息执行顺序,编号不是必须的顺序图已经表现出消息执行顺序,编号不是必须的n协作图必须编号协作图必须编号n顺序图编号便于与协作图互相转换顺序图编号便于与协作图互相转换顺序编号顺序编号的顺序图示例的顺序图示例n提示提示qOrder类的类的dispath()方法,作用方法,作用是根据供应是根据供应商户的不同商户的不同将一个订单将一个订单分拆到多个分拆到多个送货单中送货单中层次编号层次编号的顺序图示例的顺序图示例n提示提示qO

5、rder类的类的dispath()方法,作用方法,作用是根据供应是根据供应商户的不同商户的不同将一个订单将一个订单分拆到多个分拆到多个送货单中送货单中消息类型消息类型n调用调用(call),调用某个对象的操作调用某个对象的操作q格式:格式:“对象名对象名.成员方法成员方法”q符号:实线箭头线符号:实线箭头线n返回返回(return),被调用对象向调用者返回一个值被调用对象向调用者返回一个值q符号:虚线箭头线,标明返回值符号:虚线箭头线,标明返回值n发送发送(send),向某个对象发送一个信号向某个对象发送一个信号q发送和调用的区别发送和调用的区别n发送是异步机制发送是异步机制n调用是同步机制调

6、用是同步机制n创建创建(create)和销毁和销毁(destroy)q利用构造方法创建对象,对象一创建,生命线就开始利用构造方法创建对象,对象一创建,生命线就开始q销毁是对象生命终止,用较大的叉形符号表示销毁是对象生命终止,用较大的叉形符号表示顺序图中的循环和分支顺序图中的循环和分支n对象行为有循环和分支两种方式对象行为有循环和分支两种方式n顺序图为了表示这两种行为,引入以下概念顺序图为了表示这两种行为,引入以下概念q交互片段交互片段(UML 2.0)n一个交互片段可以包含多个区域一个交互片段可以包含多个区域n每个交互片段都有一个操作符每个交互片段都有一个操作符q区域区域n每个区域拥有一个监护

7、条件和一个复合语句每个区域拥有一个监护条件和一个复合语句q操作符操作符n操作符决定了交互片段的执行方式操作符决定了交互片段的执行方式n表示分支的操作符:多条件表示分支的操作符:多条件(alt)、单条件、单条件(opt)n表示循环的操作符:表示循环的操作符:loop顺序图中的循环和分支顺序图中的循环和分支n交互片段示意交互片段示意q若若peddeleryid不存在,则执行区域不存在,则执行区域1(复合语句复合语句1:先创建它,然后添:先创建它,然后添加加);若存在,执行区域;若存在,执行区域2(复合语句复合语句2:直接添加:直接添加)q存在条件分支,则使用存在条件分支,则使用“区域分隔线区域分隔

8、线”分解出多个区域,分解出多个区域,并为每个区域设置一个监护条件并为每个区域设置一个监护条件n具体示例具体示例q参见前面的图参见前面的图q也可以用也可以用opt条件表达条件表达q注:交互片段是注:交互片段是UML2.0提出的新概念提出的新概念顺序图中的循环和分支顺序图中的循环和分支n其它操作符其它操作符qloop:表示片段的多次执行,表示片段的多次执行,由循环次数和监护条件说明由循环次数和监护条件说明nloop(1,n),loop(10)nloop for each Itemqassert、consider、ignorenassert表示执行过程中,唯一的有效行为表示执行过程中,唯一的有效行为

9、nconsider包含一个子片段和一个消息类型列表,只包含一个子片段和一个消息类型列表,只有列表中的消息类型可以出现在子片段中;其它类型有列表中的消息类型可以出现在子片段中;其它类型可以出现,但是交互会忽略它们可以出现,但是交互会忽略它们nignore也包含一个子片段和一个消息类型列表,列也包含一个子片段和一个消息类型列表,列表中的消息类型可以出现在子片段中,但交互会忽略表中的消息类型可以出现在子片段中,但交互会忽略它们它们顺序图中的循环和分支顺序图中的循环和分支n其它操作符其它操作符qbreakn定义含有监护条件的片段,若条定义含有监护条件的片段,若条件为件为“真真”执行子片段,而不执行执行

10、子片段,而不执行子片段后面的其它交互;若条件子片段后面的其它交互;若条件为为“假假”,那么就按正常流程执行,那么就按正常流程执行qcriticalncritical表示子片段是表示子片段是“临界临界区域区域”,区域中生命线上的,区域中生命线上的事件序列不能和其他区域事件序列不能和其他区域中的任何其他事件交错中的任何其他事件交错n通常表示一个原子性的连通常表示一个原子性的连续操作,例如事务性操作续操作,例如事务性操作顺序图中的循环和分支顺序图中的循环和分支n其它操作符其它操作符qparn表示并发执行的若干个子表示并发执行的若干个子片段,子片段中的单个元片段,子片段中的单个元素可以以任何可能的顺序

11、素可以以任何可能的顺序相互操作(除非采用相互操作(除非采用critical禁止)禁止)qrefn用于在一个交互图中引用其他的交互图用于在一个交互图中引用其他的交互图顺序图中的循环和分支顺序图中的循环和分支nUML1.0表示表示电子商务网电子商务网站中站中“将订单将订单生成送货单生成送货单”用例的顺序图用例的顺序图n注:注:q交互片段是交互片段是UML2.0提提出的新概念出的新概念q在在UML1.0中用中用迭代标记迭代标记和和监护条件监护条件来表示来表示顺序图中的循环和分支顺序图中的循环和分支n用例用例“将订单生成送货单将订单生成送货单”顺序图的含义顺序图的含义q根据根据order对象中各个产品

12、所属的供应商,把产品拆分对象中各个产品所属的供应商,把产品拆分成多个成多个deliverorder对象,每个对象,每个deliverorder对象都是对象都是与一个特定供应商相关联,由每个供应商进行送货与一个特定供应商相关联,由每个供应商进行送货q信息流程信息流程n1.在在dispatchForm(分发窗体分发窗体)中,对已支付中,对已支付Order实例实例(对象对象aOrder)分发时,就调用其分发时,就调用其dispatch()方法方法aOrder.dispatch();n2.Order实例实例(对象对象aOrder)的的dispatch()方法,依次方法,依次调用包含的所有调用包含的所有

13、OrderItem对象的对象的getPeddleryId()方法,获取供应商方法,获取供应商ID(PeddleryId)oneOrderItem.getPeddleryId();lastOrderItem.getPeddleryId();顺序图中的循环和分支顺序图中的循环和分支n用例用例“将订单生成送货单将订单生成送货单”顺序图的含义顺序图的含义q根据根据order对象中各个产品所属的供应商,把产品拆分对象中各个产品所属的供应商,把产品拆分成多个成多个deliverorder对象,每个对象,每个deliverorder对象都是对象都是与一个特定供应商相关联,由每个供应商进行送货与一个特定供应商

14、相关联,由每个供应商进行送货q信息流程信息流程n3.每一个每一个OrderItem对象都通过其对应对象都通过其对应Product对象对象的的getPeddleryId()方法获取供应商方法获取供应商ID(PeddleryId)oneProduct.getPeddleryId();lastProduct.getPeddleryId();n4.当当Order实例实例(对象对象aOrder)得到返回得到返回PeddleryId后,判断是否已经有相对应的后,判断是否已经有相对应的DeliverOrder对象,对象,q存在,将存在,将Product对象添加到对象添加到DeliverOrder对象对象q不

15、存在,创建一个新的不存在,创建一个新的DeliverOrder对象对象,并添并添加加Product对象对象顺序图示例顺序图示例n饮料自动销售系统饮料自动销售系统q正常场景正常场景n顾客从钱币口投入钱币,然后选择想要的饮料顾客从钱币口投入钱币,然后选择想要的饮料n钱币到达钱币记录仪,记录仪更新存储钱币到达钱币记录仪,记录仪更新存储n记录仪通知分配器分发饮料记录仪通知分配器分发饮料q异常场景异常场景n1)饮料已售完)饮料已售完n2)饮料没有售完,但机器没有合适的零钱)饮料没有售完,但机器没有合适的零钱顺序图示例顺序图示例n正常场景正常场景顺序图示例顺序图示例n异常场景异常场景1顺序图示例顺序图示例

16、n异常场景异常场景2协作图协作图n也称通信图也称通信图q描述对象之间的消息交互,强调对象在交互中承担角色描述对象之间的消息交互,强调对象在交互中承担角色q语义上与顺序图是完全等价的,可以相互转换语义上与顺序图是完全等价的,可以相互转换n协作图的组成元素协作图的组成元素q对象对象q消息消息q链接链接n示例示例协作图协作图n作用作用q描述、强调交互发生时,每个对象承担的职责描述、强调交互发生时,每个对象承担的职责q显示对象相互协作时充当的角色显示对象相互协作时充当的角色n强调交互的强调交互的时间和序列时间和序列,选择,选择顺序图顺序图建模建模n强调交互的强调交互的上下文相关上下文相关,选择,选择协

17、作图协作图建模建模q阐明对象之间交互的角色,以实现特定用例或用例中特阐明对象之间交互的角色,以实现特定用例或用例中特定部分的行为,便于确定类的职责和接口定部分的行为,便于确定类的职责和接口协作图的表示协作图的表示n对象对象q对象的概念与顺序图相同对象的概念与顺序图相同q协作图无法表示对象创建和撤销,对象在图中位置任意协作图无法表示对象创建和撤销,对象在图中位置任意 n链链q表示对象之间的语义关系,是关联的一个实例表示对象之间的语义关系,是关联的一个实例n消息消息q消息类型与顺序图相同消息类型与顺序图相同q消息必须编号,目的是强调交互的时间顺序消息必须编号,目的是强调交互的时间顺序q编号方法与顺

18、序图相同编号方法与顺序图相同n顺序编号顺序编号n层次编号层次编号协作图的表示协作图的表示n迭代标记和监护条件迭代标记和监护条件q迭代标记迭代标记n格式:格式:*迭代表达式迭代表达式n表示循环,迭代表达式说明循环规则表示循环,迭代表达式说明循环规则n注:注:UML2.0的顺序图以交互片段替代迭代标记,但的顺序图以交互片段替代迭代标记,但在协作图中,仍然使用迭代标记在协作图中,仍然使用迭代标记q监护条件监护条件n格式:格式:条件表达式条件表达式n表示分支,条件表达式值为表示分支,条件表达式值为true时,消息发送时,消息发送n使用限制:通常只列出主要监护条件,否则影响协作使用限制:通常只列出主要监

19、护条件,否则影响协作图阅读图阅读协作图示例协作图示例n用例用例“将订单生成将订单生成送货单送货单”协作图协作图n用例用例“注册课程注册课程”协作图协作图协作图示例协作图示例n用例用例“图书管理员登录系统图书管理员登录系统”协作图协作图q信息流程信息流程n1.角色角色Librarian向向Login发送发送User Login信息,要求登录信息,要求登录系统系统n2.登录界面登录界面Login向向Maintenance发送发送input Maintenance信信息,执行维护息,执行维护n3.登录界面登录界面Login向向Query发送发送input Query消息消息,执行查询执行查询n4.登

20、录界面登录界面Login向向Operation发送发送input Operation信息,信息,执行输入执行输入绘制交互图绘制交互图n步骤步骤q1)找出交互对象及其关系(仅对于协作图而言)找出交互对象及其关系(仅对于协作图而言)q2)确定对象之间交互的消息格式和流程)确定对象之间交互的消息格式和流程n用同步调用、异步消息、返回消息来表示用同步调用、异步消息、返回消息来表示q3)利用交互片段或迭代标志、监护条件表示循环和分支)利用交互片段或迭代标志、监护条件表示循环和分支q4)通过一些构造型来完善整个交互图)通过一些构造型来完善整个交互图n注:注:qRUP方法中,以用例为材料来构造交互图方法中,

21、以用例为材料来构造交互图n候选对象候选对象来自来自用例描述用例描述n交互消息交互消息取自取自事件流事件流q分析模型中的交互图是对用例功能的实现分析模型中的交互图是对用例功能的实现绘制交互图绘制交互图n用例用例“新增书籍信息新增书籍信息”描述与事件流描述与事件流绘制交互图绘制交互图n寻找分析类寻找分析类q分析阶段寻找分析阶段寻找3种分析类种分析类(边界类、控制类和实体类边界类、控制类和实体类)q1)寻找边界对象)寻找边界对象:以参与者:以参与者“图书管理员图书管理员”为线索为线索n图书管理员向系统发出图书管理员向系统发出“新增书籍信息新增书籍信息”请求请求q主窗口、主窗口、“新增书籍信息新增书籍

22、信息”按钮按钮n系统要求选择新增书籍是计算机类还是非计算机类系统要求选择新增书籍是计算机类还是非计算机类q“书籍类别书籍类别”列表框列表框n选择类别后,根据书号规则自动生成书号,管理员输选择类别后,根据书号规则自动生成书号,管理员输入信息,并提交入信息,并提交q“新书信息录入新书信息录入”窗口、窗口、“提交提交”按钮按钮n由由“参与者和边界对象参与者和边界对象”绘制初步的绘制初步的分析图分析图绘制交互图绘制交互图n寻找分析类寻找分析类q分析阶段寻找分析阶段寻找3种分析类种分析类(边界类、控制类和实体类边界类、控制类和实体类)q1)寻找边界对象)寻找边界对象:以参与者:以参与者“图书管理员图书管

23、理员”为线索为线索绘制交互图绘制交互图n寻找分析类寻找分析类q分析阶段寻找分析阶段寻找3种分析类种分析类(边界类、控制类和实体类边界类、控制类和实体类)q2)寻找控制对象和实体对象)寻找控制对象和实体对象n实体对象来源于领域中的类图,描述业务领域的名词实体对象来源于领域中的类图,描述业务领域的名词和名词短语和名词短语q书籍、计算机书籍、非计算机书籍、书籍列表书籍、计算机书籍、非计算机书籍、书籍列表n控制对象来源于事件流控制对象来源于事件流q按钮事件处理器、书名重复性检查、创建书籍、按钮事件处理器、书名重复性检查、创建书籍、加入书籍列表、获得书籍类别、生成书号加入书籍列表、获得书籍类别、生成书号

24、n基于所有对象,绘制基于所有对象,绘制完整的分析图完整的分析图绘制交互图绘制交互图n寻找分析类寻找分析类q分析阶段寻找分析阶段寻找3种分析类种分析类(边界类、控制类和实体类边界类、控制类和实体类)q2)寻找控制对象和实体对象)寻找控制对象和实体对象绘制交互图绘制交互图n基于分析图,构建交互模型基于分析图,构建交互模型q步骤步骤n自左至右,依次将参与者、边界对象、实体对象放在自左至右,依次将参与者、边界对象、实体对象放在顶部(顶部(分析阶段可以不考虑控制类分析阶段可以不考虑控制类)n根据事件流描述,结合分析图,得到消息流根据事件流描述,结合分析图,得到消息流n绘制顺序图绘制顺序图n绘制协作图(可

25、以由顺序图自动转化)绘制协作图(可以由顺序图自动转化)绘制交互图绘制交互图n顺序图顺序图绘制交互图绘制交互图n协作图协作图顺序图与协作图的关系顺序图与协作图的关系n都表示了对象之间的交互,语义上等价,但侧重都表示了对象之间的交互,语义上等价,但侧重点不同点不同q顺序图描述了对象交互的时间顺序,但没有明确地表达顺序图描述了对象交互的时间顺序,但没有明确地表达对象之间的关系,也没有表明对象在交互中承担的角色对象之间的关系,也没有表明对象在交互中承担的角色q协作图描述了交互中对象承担角色协作图描述了交互中对象承担角色(关系关系),但对象在交,但对象在交互中的时间顺序必须靠消息的顺序号获得互中的时间顺

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

27、顺序图习题习题 9.3n参考答案参考答案qP154图图9.14协作图协作图习题习题 9.4n参考答案参考答案qP155图图9.17协作图协作图q本题情况下,协作本题情况下,协作图似乎是清楚的,图似乎是清楚的,图中的组合链接表示返回的是行集元素;序列图不显示图中的组合链接表示返回的是行集元素;序列图不显示链接,这些信息是看不见的链接,这些信息是看不见的习题习题 9.5n参考答案参考答案qP252图图14.22观观察者设计模式察者设计模式q顺序图,通过交顺序图,通过交互的主体与观察互的主体与观察员之间的递归调用,使消息次序更清晰;员之间的递归调用,使消息次序更清晰;q协作图,明确的链接和消息的编号,也具有较好的可理协作图,明确的链接和消息的编号,也具有较好的可理解性。解性。习题习题 9.6n(a)习题习题 9.6n(b)习题习题 9.6n(c)习题习题 9.6n(d)习题习题 9.7习题习题 9.7n参考答案参考答案谢谢!谢谢!4748

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!