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