书签 分享 收藏 举报 版权申诉 / 87
上传文档赚钱

类型第五章顺序图和协作图课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3404397
  • 上传时间:2022-08-28
  • 格式:PPT
  • 页数:87
  • 大小:2.73MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第五章顺序图和协作图课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第五 顺序 和协 作图 课件
    资源描述:

    1、1/336第5章 交互图东北大学信息科学与工程学院东北大学信息科学与工程学院 杨雷杨雷2开发流程开发流程-动态建模动态建模3交互图(interaction diagram)在对软件密集型(software-intensive)系统建模时,如何对它的动态方面动态方面建模?怎样才能可视化一个运行的系统?交互图交互图(interaction diagram)是一种详细表示对象之间以及对象与系统外部的参与者(actor)之间动态联系的图形文档。交互图有两种形式,即顺序图顺序图(sequence diagram)和协作图协作图(collaboration diagram)。4 交互图交互图是用来描述对象

    2、之间的动态协作关系以及协作过程中的行为次序,它常常用来描述一个用例的行为,显示该用例中所涉及的对象和这些对象之间的消息传递情况。一般一个use case需要一个或多个顺序图或协作图,除非特别简单的use case.顺序图顺序图和协作图协作图从不同的角度表达了系统中的交互和系统的行为,它们之间可以相互转化。顺序图顺序图着重描述对象按照时间顺序的消息交换,协作图协作图着重描述系统成分如何协同工作。交互图说明:5交互图的用途 帮助分析员对照检查每个use case 中描述的用户需求,是否已经落实到一些能够完成这些功能的类中去实现。提醒分析员去补充遗漏的类或服务。用例模型驱动交互图的开发,交互图驱动类

    3、模型的开发,从而构成了一条从需求到实现的清晰路径。和类图类图相互补充类图对对象之间的消息(交互情况)表达不够详细;交互图表示少数几个对象之间的交互。6主要内容 顺序图顺序图 交互图交互图 7顺序(Sequence)图 定义:也称时序图,顺序图中显示的是参与交互的对象及对象之间消息交互的顺序。顺序图强调的是消息交互的时间顺序。8说明:顺序图顺序图是一个二维图形。在顺序图中水平方向为对象维,沿水平方向排列参与交互的对象;竖向方向为时间维,沿垂直向下方向按时间递增顺序列出各对象所发出和接收的消息。水平轴上的对象间的相互顺序并不重要。9顺序图例子顺序图例子:ActorForm ObjectData O

    4、bjectOpen formEnter informationSave InformationCreatePopulate with informationSave10Sequence图中的组成元素 顺序图中的一些主要元素:Object(对象,包括actor实例)Lifeline(生命线)Focus of control(控制焦点)和activation(激活期)Message(消息)11Object sequence图和collaboration图描述的是对象对象之间的消息发送关系,而不是类之间的关系。最顶上一排矩形框。在交互图中,参与交互的对象既可以是具体的事物,又可以是原型化的事物。作为

    5、具体的事物,一个对象代表现实世界中的某个东西。例如,aOrder作为类Order的一个实例,可以代表一个特定的订单;而如果作为一个原型化的事件,则aOrder可以代表类Order的任何一实例。12Object 交互图中的对象的常见命名方式:只显示类名显示对象名和类名只显示对象名13对象的创建和销毁对象的创建和销毁 如果对象位于顺序图的顶部,说明在交互开始之前该对象已经存在了。如果对象是在交互的过程中创建的,那么它应当位于图的中间部分。对象在创建消息发生之后才能存在,对象的生命线也是在创建消息之后才存在的。14创建对象的两种表示方法:创建对象的两种表示方法:15对象撤销对象撤销 如果要撤销一个对

    6、象,只要在其生命线终止点放置一个“X”符号即可,该点通常是对删除或取消消息的回应。16lifeline(生命线)生命线生命线表示对象存在的时间,在顺序图中生命线表示为从对象图标向下延伸的一条虚线。生命线是一条垂直的虚线,表示顺序图中的对象在一段时间内的存在。每个对象的底部中心的位置都带有生命线。生命线是一个时间线,从顺序图的顶部一直延伸到底部,所用的时间取决于交互持续的时间。17 对象与生命线结合在一起称为对象的生命线,对象的生命线包含矩形的对象图标以及图标下面的生命线18控制焦点(Focus of control)控制焦点控制焦点:顺序图中表示时间段的符号,它是一个瘦高的矩形,表示对象执行一

    7、个动作所经历的时间段,既可以直接执行,也可以是通过下级过程执行。矩形的顶部表示动作的开始,底部表示动作的结束(由一个返回消息来标记)。图例:focus of control19控制焦点的嵌套 控制焦点可以通过将一个控制焦点放在它的父控制焦点的右边来表示控制焦点的嵌套(其嵌套深度可以任意)。嵌套的控制焦点可以由循环、自身操作调用或从另一个对象的回调所引起,它可以更精确地说明消息的开始和结束位置。图例:20说明:activation(激活期)表示对象执行一个动作的期间,也即对象激活的时间段。控制焦点控制焦点和激活期激活期是同一个概念。21消息(message)顺序图的主要内容是消息。把消息表示为从

    8、一条生命线到另一条生命线的箭线,箭头指向接受者。消息定义的是对象之间某种形式的通信,它可以激发某个操作、唤起信号或导致目标对象的创建或撤销。消息是两个对象之间的单路通信,从发送方到接收方的控制信息流。消息可以用于在对象间传递参数。在UML中,消息使用箭头来表示,箭头的类型表示了消息的类型。22消息的类型 消息的类型:在UML 1.4以上版本的规范说明中消息分调用消息,异步消息,返回消息调用消息,异步消息,返回消息三种。其它消息类型:如阻止(balking)消息,超时(time-out)消息等为UML核心的扩充。23 调用消息调用消息(Procedure call)。调用消息的发送者把控制传递给

    9、消息的接收者,然后停止活动,等待消息接收者放弃或返回控制。调用消息也可以用来表示同步的意义。说明:1.调用消息的接收者必须是一个被动对象(passive object),即它是一个需要通过消息驱动才能执行动作的对象。2.一般调用消息必有一个配对的返回消息,为了图的清晰可不画出返回消息。例:调用消息的表示符号。24 异步消息异步消息(asynchronous)。异步消息的发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接收者返回消息或控制。例:异步消息的表示符号。UML 1.4/1.5中的异步消息UML 1.3中的异步消息25 返回消息返回消息(return)。从过程调用返回。

    10、例:返回消息的表示符号。如果是从过程调用返回,则返回消息是隐含包括的,所以返回消息可省略。对于非过程调用,如果有返回消息,必须明确表示出来。26 阻止阻止(balking)消息消息。消息发送者发出消息给接收者,如果接收者无法立即接收消息,则发送者放弃这个消息。例:阻止消息的表示符号。27 超时超时(time-out)消息消息。消息发送者发出消息给接收者并等待指定时间,如果接收者无法在指定时间内接收消息,则发送者放弃这个消息。例:超时消息的表示符号。28顺序图中的消息顺序图中的消息 消息的语法格式 predecessor guard-condition sequence-expression r

    11、eturn-value:=message-name(argument-list)predecessor 必须先发生的消息的列表 格式:sequence-number,/guard-condition 警戒条件:条件满足时才能发送该消息 格式:boolean-expression294.3 顺序图中的消息顺序图中的消息 sequence-expression 消息顺序表达式。用句点“.”分隔,以冒号结束“:”。格式:sequence-term,:每个sequence-term的语法格式为:integer|name recurrence 消息的顺序号用整数表示。通常以消息1作为一个消息序列中的第一

    12、个消息,消息1.1是在处理消息1时的第一个需要处理的嵌套消息,通过编号描述了消息的执行顺序号和嵌套层次。例:1,1.1,1.2,1.2.1,1.2.230 其中integer表示消息序号,name表示并发的控制线程,例:如果两个消息为3.1a,3.1b,则表示这两个消息在激活期3.1内是并发的。recurrence表示消息是条件发送或循环发送,格式如下:*iteration-clause 循环发送 condition-clause 条件发送例:*i:=1.n x y说明:1.如果循环发送的消息是并发的,可用符号*|表示。2.UML中并没有规定循环子句,条件子句的格式31 return-valu

    13、e:将赋值为消息的返回值的名字列表,如果消息没有返回值,则return-value部分被省略。message-name:消息名 argument-list:消息的参数列表32例:一些消息的例子2:display(x,y)简单消息条件消息x 0 4:invert(x,color)3.1*:update()循环消息1.3.1:p:=find(specs)消息带返回值A3,B4/C2:copy(a,b)线程间同步33在交互图中使用的一些概念在交互图中使用的一些概念object条件创建对象返回消息循环34顺序图的结构化控制顺序图的结构化控制 序列性的消息能很好的说明单一的线性的序列,但是通常需要展示条

    14、件和循环。有时候要展示多个序列的并发执行。在顺序图中用结构化控制操作符能展示这种高层控制。控制操作符表示为顺序图上的一个矩形区域,其左上角有一个写在小五边形内的文字标签,用来表明控制操作符的类型。35条件执行条件执行-Alt 表示多条件的分支结构(选择结构)虚线分隔区域,每一个区域设置一个监护条件,代表一个分支36可选执行可选执行(Opt)表示满足条件则执行分支结构37循环循环(loop)38并行执行(并行执行(Par)用来表示“并行”的,也就是用来表示两个或多个并发执行的子片段,并行子片段中单个元素的执行次序可以以任何可能的顺序相互操作39建立sequence图的步骤1.确定交互过程的上下文

    15、(context);2.识别参与交互过程的对象;3.为每个对象设置生命线,即确定哪些对象存在于整个交互过程中,哪些对象在交互过程中被创建和撤销;4.从引发这个交互过程的初始消息开始,在生命线之间从顶到下依次画出随后的各个消息;5.如果需要表示消息的嵌套,或/和表示消息发生时的时间点,则采用FOC;6.如果需要说明时间约束,则在消息旁边加上约束说明;7.如果需要,可以为每个消息附上前置和后置条件。40分析级分析级-用来概要描述交互场景用来概要描述交互场景41设计级设计级 类PaymentController必须实现哪些方法 如图类Account必须实现哪些方法?例1.汽车自动上锁系统。车主使用遥

    16、控钥匙,按下“锁车”按钮,则汽车自动上锁,闪动一下车灯并发出一声蜂鸣,告诉车主车门已经上锁了。(1)请画出汽车自动上锁系统的类图。(2)请画汽车自动上锁系统的顺序图。汽车自动上锁系统的类图汽车自动上锁系统的类图请画出汽车自动上锁系统的顺序图请画出汽车自动上锁系统的顺序图例例 饮料销售机系统饮料销售机系统开始对饮料销售机建模开始对饮料销售机建模:前端的主要功能:(1)接受顾客的选购和现钞.(2)显示信息.(3)从记录仪接收找回的零钱并交给顾客.(4)返还现钞.(5)从分配器接收饮料.钱币记录仪:(1)从前端获取顾客输入信息.(2)更新现钞存储.(3)找零钱.分配器:(1)检查选购的饮料是否有货.

    17、(2)分发饮料.请画出请画出“买饮料买饮料”用例的最理想场景用例的最理想场景建模的顺序图建模的顺序图请画出请画出“买饮料买饮料”用例的用例的sold-out场场景建模的顺序图景建模的顺序图请画出请画出“买饮料买饮料”用例的零钱数量不用例的零钱数量不对情况下的顺序图对情况下的顺序图请画出请画出“买饮料买饮料”用例的没有使用合用例的没有使用合适的零钱找不开的情况下的顺序图适的零钱找不开的情况下的顺序图请画出请画出“买饮料买饮料”用例的完整的顺序用例的完整的顺序图图 用例:借书用例:借书参与者:管理员参与者:管理员,借阅者借阅者操作流:操作流:管理员进入图书借阅界面,用例开始。管理员进入图书借阅界面

    18、,用例开始。系统要求输入借阅者的借书证编码。系统要求输入借阅者的借书证编码。系统检验借书证编码系统检验借书证编码,如果正确如果正确,则显示借阅者的信息。则显示借阅者的信息。A1:借书证编码有错。:借书证编码有错。A2:如果该借阅者所借图书已经超期如果该借阅者所借图书已经超期,则提示则提示,本次拒借本次拒借.系统要求输入所借图书的条码。系统要求输入所借图书的条码。系统显示所借图书的信息。系统显示所借图书的信息。确认借书。确认借书。系统回到上一界面,等待处理下一借书。系统回到上一界面,等待处理下一借书。图书馆借书处理的顺序图图书馆借书处理的顺序图图书馆借书处理的顺序图 识别交互过程。识别交互过程。

    19、读者在借书时,先由管理员把借书证上的读者编号扫读者在借书时,先由管理员把借书证上的读者编号扫描给系统,系统检查这个读者的借书证合法信息描给系统,系统检查这个读者的借书证合法信息,如果如果不合法不合法,则系统给出提示则系统给出提示,如果正确系统返回读者的身份如果正确系统返回读者的身份信息,以及读者的借阅信息。信息,以及读者的借阅信息。如果读者借书数量没有超过借书的上限,则把要借书如果读者借书数量没有超过借书的上限,则把要借书的图书编号输入系统,系统登记借书信息,并返回借书的图书编号输入系统,系统登记借书信息,并返回借书成功信息,借书过程完成。成功信息,借书过程完成。图书馆借书处理的顺序图 识别参

    20、与交互过程的对象;识别参与交互过程的对象;绘制借书处理类图绘制借书处理类图图书馆借书处理的顺序图 为每一个对象设置生命线为每一个对象设置生命线,并确定对象的存在期限;并确定对象的存在期限;从引发交互的初始消息开始从引发交互的初始消息开始,在对象生命线上依次画出在对象生命线上依次画出交互的消息交互的消息 绘制顺序图绘制顺序图ATM自动取款机系统自动取款机系统 简要说明:客户可以从ATM机上取出自己帐目上的部分或者全部存款。前提条件:成功登录系统 主事件流:1.客户将卡插入ATM机,用例开始。2.ATM显示欢迎消息并提示客户输入密码。3.客户输入密码。4.ATM确认密码有效。如果无效则执行其他事件

    21、流A1。如果与主机联接有问题,则执行异常事件流E1。例.ATM自动取款机系统。请画出客户李明取20元钱的顺序图。5.ATM提供以下选项:存钱,取钱,查询。6.用户选择取钱选项。7.ATM提示输入所取金额。8.用户输入所取金额。9.ATM确定该帐户是否有足够的金额。如果余额不够,则执行A2,如果与主机联接有问题,则执行异常事件流E1。10.ATM从客户帐户中减去所取金额。11.ATM向客户提供要取的钱。12.ATM打印清单。13.ATM退出客户的卡,用例结束。扩展事件流A1:输入无效密码1.ATM告诉客户该密码错误。2.ATM退出客户的卡,用例结束。扩展事件流A2:余额不足1.ATM告诉客户该帐

    22、户余额不足。2.ATM退出客户的卡,用例结束。异常事件流E1:联接主机出现错误1.ATM告诉客户联接主机出现错误。2.ATM在错误日志记下错误。3.ATM退出客户的卡,用例结束。后置条件:ATM退出客户的卡。65主要内容 Sequence图图 Collaboration图图 66协作(Collaboration)图 协作图协作图是一种交互图,强调的是发送和接收消息的对象之间的组织结构。一个协作图显示了一系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。对象通常是命名或匿名的类的实例,也可以代表其他事物的实例,例如协作、组件和节点。使用协作图来说明系统的动态情况。67Collabora

    23、tion图中的组成元素 协作图中的一些主要元素:Object(包括actor实例,多对象,主动对象)MessageLink(链)68Object 合作图中对象的外观与顺序图中的一样。如果一个对象在消息的交互中被创建,则可在对象名称之后标以new。类似地,如果一个对象在交互期间被删除,则可在对象名称之后标以destroy。对象名对象名newnew对象名对象名 destroy 69协作图中的多对象(multiobject)多对象指的是由多个对象组成的对象集合,一般这些对象是属于同一个类的。当需要把消息同时发给多个对象而不是单个对象的时候,就要使用多对象这个概念.多对象图例:70主动对象 主动对象主

    24、动对象是一组属性和一组服务的封装体,其中至少有一个服务不需要接收消息就能主动执行(称作主动服务)。说明:除含有主动服务外,主动对象的其它方面与被动对象没有什么不同。目前并无商品化的OOPL能支持主动对象的概念,需要程序员在现有的语言条件下设法把它实现成一个主动成分。71主动对象的表示(1)UML中的表示:加粗的边框(2)Rose中的表示72协作图中的链(link)协作图中用链链(link)来连接对象,用于表示对象间的各种关系,而消息显示在链的旁边。链是association(关联关联)的instance(实例实例)一个链上可以有多个消息。链的两端不能有多重性多重性(multiplicity)标

    25、记。73消息 在对象之间的静态链接关系上可标注消息,消息类型有简单消息,同步消息和异步消息三种。用标号表示消息执行的顺序。消息定义的格式如下:消息类型标号 控制信息:返回值:=消息名 参数表 标号有种:顺序执行:按整数大小执行。,嵌套执行:标号中带小数点。1.1,1.2,1.3,并行执行:标号中带小写字母。1.1.1a,1.1.1b,。控制信息 条件控制信息如:重复控制信息如:1.n74建立collaboration图的步骤1.确定交互过程的上下文(context);2.识别参与交互过程的对象;3.如果需要,为每个对象设置初始特性;4.确定对象之间的链(link),以及沿着链的消息;5.从引发

    26、这个交互过程的初始消息开始,将随后的每个消息附到相应的链上;6.如果需要表示消息的嵌套,则用Dewey十进制表示法;7.如果需要说明时间约束,则在消息旁边加上约束说明;8.如果需要,可以为每个消息附上前置和后置条件。75协作图的例子协作图的例子协作图的例子协作图的例子:图书馆借书处理顺序图对应的协作图 78顺序图和协作图的比较顺序图和协作图的比较 共同点都用于描述系统中对象之间的动态关系可以相互转换 不同点强调重点不同(时间顺序/对象间关系)建模元素不同(生命线、控制焦点/路径、消息顺序号)顺序图用于表示方案,协作图多用于过程的详细设计。79常见问题分析 顺序图中消息的循环发送顺序图中消息的循

    27、环发送在消息名字前加循环条件例::C1:C2message1()*for all order linesmessage2()*i:=1.n80常见问题分析 如何在顺序图中表示消息的条件发送加警戒条件、加条件子句、文字说明、分成多个顺序图:C1:C2message1()if(condition=TRUE)then elsemessage2()81 顺序图中时间约束的表示顺序图中时间约束的表示用constraint(约束)来表示。例::C1:C2a()b()b-a2s常见问题分析82 顺序图中递归的表示顺序图中递归的表示利用嵌套的FOC表示例1.单个对象自身的递归。常见问题分析83.多个对象间相互

    28、递归调用的表示。常见问题分析84 如果对象具有多态性,发送对象不可能事先知道目标对象属于哪个类,因此在交互图中如何确定目标对象所属的类祖先类object1icondraw()常见问题分析85交互图中如何表示广播消息?答:可以用版型或约束broadcast来表示广播对象。发送对象把系统中的每一个对象都看作一个潜在的目标对象。如图所示:常见问题分析86 交互图是一步画成的吗?初始:关注客户关心的高级信息,消息暂时不映射操作,对象暂时不映射类 作用:让涉众了解系统逻辑流程精化:客户同意第一步流程后,小组加入更多的细节 作用:对客户作用不大,对开发、测试等人员有作用常见问题分析87总结 基本概念:交互图,顺序图,协作图,Lifeline(生命线),Focus of control(控制焦点),activation(激活期),消息的类型和语法格式,active object(主动对象),multiobject(多对象),Link(链)交互图的应用

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第五章顺序图和协作图课件.ppt
    链接地址:https://www.163wenku.com/p-3404397.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库