资源预览内容
第1页 / 共39页
第2页 / 共39页
第3页 / 共39页
第4页 / 共39页
第5页 / 共39页
第6页 / 共39页
第7页 / 共39页
第8页 / 共39页
第9页 / 共39页
第10页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第四章 顺序图和协作图,4.1 交互图概述,交互图(interaction diagram)是用来描述对象之间以及对象与参与者之间的动态协作关系以及协作过程中行为次序的图形文档。 通常用来描述一个用例的行为,显示该用例中所涉及的对象和这些对象之间的消息传递情况 目的:帮助分析人员对照检查每个用例中所描述的用户需求 交互图包括顺序图(sequence diagram)和协作图(collaboration diagram)两种形式 顺序图着重描述对象按时间顺序的消息交换 协作图着重描述系统成分如何协同工作,4.2 顺序图,顺序图描述对象之间的动态交互关系,着重体现对象间消息传递的时间顺序。展现了在一个特殊的用例场景中系统外部参与者发起的事件、事件的顺序以及各个系统之间的交互事件等,顺序图的基本元素 对象:对象、对象的生命线、激活的对象和对象的删除。 生命线 控制焦点 消息:调用消息、异步消息、返回消息。 条件、注释体和注释连接。,顺序图用二维表来表示交互,纵向是时间轴,横向是参与的角色以及它们交换的消息。 角色的生命周期表现为生命线,一条垂直的线,在激活的时间段里是双线,在状态保持的时间里是虚线。 消息表示为从一条生命线出发到另一条生命线的有向线,从上而下,表示消息的时间顺序。 激活是过程的执行,包括它等待嵌套过程执行的时间。在顺序图中它用部分替换生命线的双道线表示。,对象的命名方式:,对象名:类名,:类名,对象名,生命线在顺序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间 控制焦点是顺序图中表示时间段的符号,在这个时间段内,对象将执行相应的操作,4.3 顺序图中的消息,消息是对象间的单向通信,从发送者到接受者的携带信息的控制流。消息可能带有值参。 UML:调用消息、异步消息、返回消息 Rose:阻止消息、超时消息,调用消息(procedure call) 调用消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息接收者放弃或返回控制 调用消息的接收者必须是一个被动对象,异步消息(asynchronous) 异步消息的发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接收者返回消息或控制,返回消息(return) 返回消息表示从过程调用返回,如果是从过程调用返回,则返回消息不用画出。对于非过程调用,如果有返回消息,必须明确表示出来,阻止消息和超时消息 阻止消息是指消息发送者发出消息给接收者,如果接收者无法立即接收消息,则发送者放弃这个消息 超时消息是指消息发送者发出消息给接收者并按指定时间等待,如果接收者在指定时间内无法接收消息,则发送者放弃这个消息,自调用(self call),UML标记,ROSE标记,:System,enterItem(UPC,quanlity),endSale(),makePayment(amount),出纳员,Caller,Operator,Callee,时间轴,顺序图,生命线,激活,状态保持,角色,顺序图的可视化图符,消息的格式,格式: 序号条件表达式返回值:=消息名(参数列表) 例: 2:display(x,y) 简单消息 1.3.1:p:find() 带返回值的嵌套消息 x0 4:invert(x,color) 条件消息 3.1 *:update() 循环消息 A3,b4/c2:copy(a,b) 线程同步,从Login use case开始,我们如何登录进一个系统? 输入用户名 输入密码 按回车键, 或者点击那可以发送登陆请求的按钮 如果用户名错或者密码错,系统将拒绝登录并保留原页面 如果用户名和密码都正确,系统进入下一个正确页面,因此,一个系统用户在这一use case处将处理三个对象,它们中的两个是 GUI。 对象: 登录页面 (GUI) 系统数据库 下一页面 (GUI),例:一次学生注册,4.4 建立顺序图的步骤,确定交互过程的上下文 识别参与交互过程的对象 为每个对象设置生命线,即确定哪些对象存在于整个交互过程中,哪些对象在交互过程中被创建和撤销 从引发这个交互过程的初始消息开始,在生命线之间自顶向下依次画出随后的各个消息 如果需要表示消息的嵌套,或/和表示消息发生时的时间点,则采用控制焦点。 如果需要说明时间约束,则在消息旁边加上约束说明 如果需要,可以为每个消息附上前置条件和后置条件,试用顺序图描述下列情形,当用户在自己的计算机上向网络打印机发出一个打印任务时,他的计算机便向打印机服务器发送一条打印命令,譬如print(file)。打印机服务器如果发现网络打印机处于空闲状态,则向打印机发送打印命令命令print(file);否则向打印队列发送一条保存命令store(file)。,实例:存款,4.5 协作图,协作图是用于描述系统的行为是如何由系统的成分协作实现的图,描述系统对象(或活动者)如何共同协作完成用例 强调的是参与交互的对象的协作和组织 顺序图和协作图可以相互转换 协作图中包括的建模元素有对象、消息、链等,多重对象,多重对象:由多个对象组成的对象集合,用多个方框重叠表示,往往是同类的对象 如果消息发送给多个对象,则用多重对象表示 在顺序图中仍然显示单对象的图标,主动对象,主动对象:一组属性和一组方法的封装体,其中至少有一个方法不需要接受消息就能主动执行,即主动对象可以在不接受外部消息的情况下自己开始一个控制流,消息执行顺序的编号方案 协作图中最常用的消息执行顺序的编号方案有两种:,顺序法:用简单编号方案,从1开始,由小到大,顺序排列。 层次法:用小数点制编号方案,此时常常要求表示系统号、子系统号和模块号。UML使用了小数点方案。,对象的创建与销毁,在协作图中表示创建和销毁一个对象采用标有版型create的创建消息和标有版型destroy的销毁消息,同步消息和异步消息,协作图中的同步消息和异步消息含义与顺序图中的相同,表现形式也相同,多对象,多对象用于表示访问全组对象的操作和信号,用两堆叠一起的矩形框表示 运行每一个对象的操作需要两个消息:一个是对多对象的重复调用,找出对每一个对象的链接,另一个是使用该链接发送对每一个对象的消息 多对象的应用可以方便的体现面向对象的多态性原则 多对象应用中的特殊情况:广播消息,广播消息:是把系统中的全部对象作为它的目标对象的消息。广播消息一般是异步消息,广播消息的发送者不等待返回消息。系统中的所有对象都会收到广播消息,但是并不是系统中的全部对象都对它做出响应,自调用与回调,自调用是指一个对象调用自己 回调:当一个对象发送一个异步消息调用另一个对象时,指定的事件类型发生或所要求的操作已完成时,消息接受对象立即发送一个异步消息给原调用者,通知所关注的事件已经出现或操作已完成,同时返回一些必要的参数和信息,激励原消息发送对象进行相应的后续动作,这就是回调机制,4.7 顺序图和协作图的比较,顺序图强调的是消息的时间顺序,协作图强调的是参与交互的对象的组织 顺序图中有生命线和控制焦点,协作图中没有。协作图中有路径,消息必须带序号,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号