《UML交互图.ppt》由会员分享,可在线阅读,更多相关《UML交互图.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、UML交互图交互图交互与交互图交互与交互图如何阅读交互图如何阅读交互图如何绘制交互图如何绘制交互图交互图应用说明交互图应用说明定时图定时图本章小结本章小结交互与交互图交互与交互图如何阅读交互图如何阅读交互图如何绘制交互图如何绘制交互图交互图应用说明交互图应用说明定时图定时图本章小结本章小结一次交互就是指在特定语境中,为了实现某一个目标,一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为而在一组对象之间进行交换的一组消息所表示的行为 顺序图顺序图:顺序图是一种强调:顺序图是一种强调消息时间顺序消息时间顺序的交互图,为的交互图,为读者提供了控制流随着时间
2、推移的清晰的可视化轨迹读者提供了控制流随着时间推移的清晰的可视化轨迹 通信图通信图:UML 2.0中的通信图实际上就是中的通信图实际上就是UML 1中的协中的协作图,它强调的是作图,它强调的是参加交互的对象的组织参加交互的对象的组织,为读者提供,为读者提供了在协作对象结构组织的语境中观察控制流的一个清晰了在协作对象结构组织的语境中观察控制流的一个清晰的可视化轨迹的可视化轨迹 定时图定时图:采用了一种带数字刻度的时间轴来精确地描述:采用了一种带数字刻度的时间轴来精确地描述消息的顺序消息的顺序交互概述图交互概述图:是交互图和活动图的混合物:是交互图和活动图的混合物 交互与交互图交互与交互图如何阅读
3、交互图如何阅读交互图如何绘制交互图如何绘制交互图交互图应用说明交互图应用说明定时图定时图本章小结本章小结对象与角色:最顶上一排矩形框。在交互图中,参与交对象与角色:最顶上一排矩形框。在交互图中,参与交互的对象既可以是具体的事物,又可以是原型化的事物。互的对象既可以是具体的事物,又可以是原型化的事物。作为具体的事物,一个对象代作为具体的事物,一个对象代表现实世界中的某个东西。例如,表现实世界中的某个东西。例如,aOrder作为类作为类Order的一个实例,可以代表一个的一个实例,可以代表一个特定的订单;而如果作为一个原型化的事特定的订单;而如果作为一个原型化的事件,则件,则aOrder可以代表类
4、可以代表类Order的任何一的任何一个实例。个实例。生命线与控制焦点:每个对象都有自己的生命线与控制焦点:每个对象都有自己的生命线,对象生命线是一条垂直的虚线,生命线,对象生命线是一条垂直的虚线,用来表示一个对象在一段时间内存在。用来表示一个对象在一段时间内存在。*1010消息的语法消息的语法: 序号序号警戒条件警戒条件*重复次数重复次数 attribute:= name(argument-list) 其其中:中:attribute是生命线的属性(对象名),用以存储返回值。是生命线的属性(对象名),用以存储返回值。name是消息名(信号或操作名)。是消息名(信号或操作名)。argument-l
5、ist是一个参数值的表,每个参数值可有下列形式之一:是一个参数值的表,每个参数值可有下列形式之一:argument-valueparameter-name=argument-value警戒条件警戒条件:选择项,为一选择项,为一布尔条件表达式布尔条件表达式,满足条件时才能发送消息。,满足条件时才能发送消息。缺省时,表示无条件发送。缺省时,表示无条件发送。*重复次数重复次数:选择项,表示消息重复发送的次数。缺省,表示只发送一:选择项,表示消息重复发送的次数。缺省,表示只发送一次。l 对象可以在交互过程中产生l 对象可以在交互过程中销毁DeleteCustomer()NewCustomer(Data
6、)Customer(Data):CustomerWindow:Customer消息:用来描述对象之间所进行的通信的,该信息带有消息:用来描述对象之间所进行的通信的,该信息带有对将要发生的活动的期望。当传送一个消息时,它所引对将要发生的活动的期望。当传送一个消息时,它所引起的动作是一个通过对计算过程的抽象而得到的可执行起的动作是一个通过对计算过程的抽象而得到的可执行语句。语句。消息分为五种:调用、返回、发送、创建和销毁消息分为五种:调用、返回、发送、创建和销毁调用:表示调用某个对象一个操作调用:表示调用某个对象一个操作 *1313序号:序号:表示消息在对象间交互的时间顺序号。表示消息在对象间交互
7、的时间顺序号。 序号在合作图中必不可少,在顺序图中可省略。序号在合作图中必不可少,在顺序图中可省略。按消息产生的先后顺序,给消息编号按消息产生的先后顺序,给消息编号有两种编号方案,一种是有两种编号方案,一种是顺序编号顺序编号,另一种是,另一种是嵌套编号嵌套编号121.11.22.12.1.12.1.22.2嵌套编号嵌套编号*1414顺序编号顺序编号循环与分支循环与分支循环与分支循环与分支 UML1.0的循环和分支表示法的循环和分支表示法在在dispatchForm(分发窗体)中,对于某个已支付的(分发窗体)中,对于某个已支付的Order进行分发时,就会调用该订单(一个进行分发时,就会调用该订单
8、(一个Order类的类的实例对象实例对象aOrder)的)的dispatch()方法方法dispatch()方法将逐个调用该方法将逐个调用该Order对应的所有对应的所有OrderItem对象的对象的getPeddleryId()方法还获取供应商方法还获取供应商ID(PeddleryId),而),而OrderItem对象则是通过其所对应对象则是通过其所对应的的Product对象来的对象来的getPeddleryId()方法来获取供应商方法来获取供应商ID当当Order的实例对象的实例对象aOrder得到返回的得到返回的PeddleryId后,后,根据该值判断是否已经有相对应的根据该值判断是否已
9、经有相对应的DeliverOrder对象,对象,如果没有就创建它(调用如果没有就创建它(调用create(PeddleryId)),然后再),然后再将对应的将对应的Product添加到这个添加到这个DeliverOrder对象中。否则对象中。否则就直接添加到相应的就直接添加到相应的DeliverOrder对象中对象中交互片断操作符交互片断操作符assert是用来表示内容所描述的行为是是用来表示内容所描述的行为是执行过程中那个时刻唯一的有效行为。如果执行到这个执行过程中那个时刻唯一的有效行为。如果执行到这个片断的前面,则说明片断的前面,则说明该片断就一定会发生。该片断就一定会发生。它通常和它通常
10、和ignore或或consider一起使用,以一起使用,以断言某种特定种类的断言某种特定种类的消息行为消息行为 交互片断操作符交互片断操作符break和循环语句的和循环语句的break有点类似,通有点类似,通常常break用来定义一个含有监护条件的子片断。如果监用来定义一个含有监护条件的子片断。如果监护条件为护条件为“真真”则执行子则执行子片断,而且不执行包含片断,而且不执行包含子片断的图中其它交互子片断的图中其它交互将不会执行;如果监护将不会执行;如果监护条件为条件为“假假”,那么执行,那么执行将正常地继续进行将正常地继续进行 表示该子片断是表示该子片断是“临界区域临界区域”,在临界区域中生
11、命线上,在临界区域中生命线上的事件序列不能够和其它区域中的任何其他事件交错。的事件序列不能够和其它区域中的任何其他事件交错。通常用来表示一个通常用来表示一个原子性的连续操作原子性的连续操作,例如事务性操作,例如事务性操作 用来表示用来表示“并行并行”的,也就是用来表示的,也就是用来表示两个或多个并发两个或多个并发执行的子片断执行的子片断,并行子片断中单个元素的执行次序可以,并行子片断中单个元素的执行次序可以以任何可能的顺序相互操作以任何可能的顺序相互操作 par在一个交互图中,我们可以引用其它的交互图,其表示在一个交互图中,我们可以引用其它的交互图,其表示的方法是用一个矩形,加上的方法是用一个
12、矩形,加上ref操作符,并写明引用的交操作符,并写明引用的交互图名称即可互图名称即可 图表示法图表示法类图class对象图object包图package用例图use case顺序图sd通信图comm定时图timing活动图activity交互概观图intover状态机图statemachine构件图component部署图deployment链链:连接器,是用来表示对象之间的语义连接,一般而:连接器,是用来表示对象之间的语义连接,一般而言,链是关联的一个实例(包括言,链是关联的一个实例(包括association、self、global、local等)。不过在等)。不过在UML 2中中已经开始
13、弱化它们的使用,因此除非必要,无需过多地已经开始弱化它们的使用,因此除非必要,无需过多地考虑它们考虑它们消息编号消息编号:消息的编号有两种,一种是无层次编号,它:消息的编号有两种,一种是无层次编号,它简单直观;另一种是嵌套的编号,它更易于表示消息的简单直观;另一种是嵌套的编号,它更易于表示消息的包含关系包含关系迭代标记迭代标记:用:用*号表示,表示循环,通常还有迭代表达号表示,表示循环,通常还有迭代表达式,用来说明循环规则式,用来说明循环规则监护条件监护条件:通常是用来表示分支的,也就是表示:通常是用来表示分支的,也就是表示“如果如果条件为条件为true,才发送消息,才发送消息” 在通信图中使
14、用监护条件一定要有所限制,通常应只列在通信图中使用监护条件一定要有所限制,通常应只列出主要的监护条件,否则会影响其阅读。如果需要,尽出主要的监护条件,否则会影响其阅读。如果需要,尽可能还是通过顺序图来表示可能还是通过顺序图来表示 交互与交互图交互与交互图如何阅读交互图如何阅读交互图如何绘制交互图如何绘制交互图交互图应用说明交互图应用说明定时图定时图本章小结本章小结首先根据自己的喜好和实际的表现需要来选择顺序图或首先根据自己的喜好和实际的表现需要来选择顺序图或通信图。不过由于它们在语义上是等价的,因此可以绘通信图。不过由于它们在语义上是等价的,因此可以绘制出一种,再通过建模工具来自动转换成另一种
15、图制出一种,再通过建模工具来自动转换成另一种图 分析模型中的交互图彻重于分析类的职责分配和交互流分析模型中的交互图彻重于分析类的职责分配和交互流程,而设计模型中的交互图则彻重于设计类的引入和实程,而设计模型中的交互图则彻重于设计类的引入和实际方法的调用与流程控制际方法的调用与流程控制 先确定参与交互的对象、对象之间的关系(通信图),先确定参与交互的对象、对象之间的关系(通信图),然后确定对象间的消息交互流程(用同步调用、异步消然后确定对象间的消息交互流程(用同步调用、异步消息、返回消息表示),并利用交互片断(顺序图)或迭息、返回消息表示),并利用交互片断(顺序图)或迭代标记及监护条件来表示循环
16、和分支结构代标记及监护条件来表示循环和分支结构Robustness分析不是分析不是UML模型的一部分,它是一个强大模型的一部分,它是一个强大的草图工具,是介于分析和设计之间的一种有效工具的草图工具,是介于分析和设计之间的一种有效工具在在Robustness分析中,将应用边界类、控制类和实体类分析中,将应用边界类、控制类和实体类从一个用例中抽取三类对象的方法:从一个用例中抽取三类对象的方法: 图书管理员向系统发出图书管理员向系统发出“新增书籍信息新增书籍信息”请求请求主窗主窗口、口、“新增书籍信息新增书籍信息”按钮按钮系统要求图书管理员选择要新增的书籍是计算机类还是系统要求图书管理员选择要新增的
17、书籍是计算机类还是非计算机类非计算机类书籍类别列表框。书籍类别列表框。图书管理员做出选择图书管理员做出选择后,显示相应界面,后,显示相应界面,让图书管理员输入信让图书管理员输入信息,并自动根据书号息,并自动根据书号规则生成书号规则生成书号“新书信息录入新书信息录入”窗口窗口及辅助的及辅助的“提交提交”按钮按钮根据事件流中的步骤根据事件流中的步骤5,以及扩展路径的描述,就可以,以及扩展路径的描述,就可以在原图上增加相应的控制对象,得到更进一步的在原图上增加相应的控制对象,得到更进一步的Robustness分析图分析图 新添两个逻辑:一是基本事件流中的步骤新添两个逻辑:一是基本事件流中的步骤2、3
18、要求根据要求根据用户选择的类别,自动获得书号;二是当书名重复性检用户选择的类别,自动获得书号;二是当书名重复性检查没有通过(有重名),则应返回要求其重输查没有通过(有重名),则应返回要求其重输 交互与交互图交互与交互图如何阅读交互图如何阅读交互图如何绘制交互图如何绘制交互图交互图应用说明交互图应用说明定时图定时图本章小结本章小结工作方法:针对用例图中的每个用例,并结合领域模型工作方法:针对用例图中的每个用例,并结合领域模型中的类,寻找分析类,并通过中的类,寻找分析类,并通过Robustness分析来理清业分析来理清业务逻辑流程,再用交互模型将其确定下来务逻辑流程,再用交互模型将其确定下来 注意
19、:主要关注于区分出边界对象、实体对象和控制对注意:主要关注于区分出边界对象、实体对象和控制对象,暂时不要考虑其具体的实现类象,暂时不要考虑其具体的实现类 说明:对于较复杂的用例,可以按上述的流程逐渐地进说明:对于较复杂的用例,可以按上述的流程逐渐地进行分析、设计、实施;但对于比较简单的用例而言,也行分析、设计、实施;但对于比较简单的用例而言,也是可以直接从用例描述中导出设计阶段交互模型是可以直接从用例描述中导出设计阶段交互模型 引入基础类引入基础类:包括基础框架、程序库等:包括基础框架、程序库等质量评审质量评审:- 低耦合:耦合性是指两个类之间的连接强度低耦合:耦合性是指两个类之间的连接强度-
20、 高内聚:内聚性是指一个类的属性与方法高度集成高内聚:内聚性是指一个类的属性与方法高度集成- 效率:解决方案的执行效率是否满足系统的需求效率:解决方案的执行效率是否满足系统的需求- 完整性:是指在任何环境下都可以重复使用完整性:是指在任何环境下都可以重复使用- 简单性:类越简单,出错的可能性越小,系统的灵活简单性:类越简单,出错的可能性越小,系统的灵活 性和可维护性也越好性和可维护性也越好 优化类设计优化类设计:设计模式与重构:设计模式与重构在分析模型的基础上引入基础类、优化类设计之后,必在分析模型的基础上引入基础类、优化类设计之后,必然会获得新的类模型(设计模型),因此就可能需要基然会获得新
21、的类模型(设计模型),因此就可能需要基于新引入的于新引入的“设计类设计类”来更新交互模型,以获得与实际来更新交互模型,以获得与实际代码相吻合的模型代码相吻合的模型给出一个能表达其目的的名称;通过修改元素的布局,给出一个能表达其目的的名称;通过修改元素的布局,尽量避免交叉线的存在;可以通过注解和颜色作为可视尽量避免交叉线的存在;可以通过注解和颜色作为可视化提示,以突出图形中的重要特性;尽量少用分支,对化提示,以突出图形中的重要特性;尽量少用分支,对于分支很多的场景,可以考虑用活动图来补充于分支很多的场景,可以考虑用活动图来补充 交互与交互图交互与交互图如何阅读交互图如何阅读交互图如何绘制交互图如
22、何绘制交互图交互图应用说明交互图应用说明定时图定时图本章小结本章小结坐标轴交换了位置,改为从左到右来表示时间的推移坐标轴交换了位置,改为从左到右来表示时间的推移用生命线的用生命线的“凹下凸起凹下凸起”来表示状态的变化,每个水平来表示状态的变化,每个水平位置代表一种不同的状态,状态的顺序可以有意义、也位置代表一种不同的状态,状态的顺序可以有意义、也可以没有意义可以没有意义生命线可以跟在一根生命线可以跟在一根线后面,在这根线上线后面,在这根线上显示些不同的状态值显示些不同的状态值可显示一个度量时间可显示一个度量时间值的标尺,用刻度表值的标尺,用刻度表示时间间隔示时间间隔交互与交互图交互与交互图如何
23、阅读交互图如何阅读交互图如何绘制交互图如何绘制交互图交互图应用说明交互图应用说明定时图定时图本章小结本章小结首先介绍了交互的概念,并延伸出首先介绍了交互的概念,并延伸出UML中的中的4种交互图种交互图以为以为“从订单生成送货单从订单生成送货单”场景绘制的顺序图为例,介场景绘制的顺序图为例,介绍了对象与角色、生命线与控制焦点、消息、顺序编号、绍了对象与角色、生命线与控制焦点、消息、顺序编号、循环与分支、交互片断操作符等基本概念循环与分支、交互片断操作符等基本概念 以等价的通信图为例,介绍了通信图的基本概念以等价的通信图为例,介绍了通信图的基本概念演示了如何采用演示了如何采用Robustness分析法,从一个用例的事件分析法,从一个用例的事件流描述中导出相应的交互模型流描述中导出相应的交互模型 讨论了交互模型的实际应用讨论了交互模型的实际应用介绍了定时图的基本特点介绍了定时图的基本特点
限制150内