知识点学习(顺序图和协作图)_第1页
知识点学习(顺序图和协作图)_第2页
知识点学习(顺序图和协作图)_第3页
知识点学习(顺序图和协作图)_第4页
知识点学习(顺序图和协作图)_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1顺序图2通信图3绘制交互图4顺序图与通信图的关系知识点学习(顺序图和协作图)知识点:交互图描述系统中,对象之间通过消息进行通讯的图就是交互图。交互图包含4种类型,它们是顺序图、通讯图、定时图、交互概述图。1顺序图1.1顺序图的概念1.顺序图顺序图也称为时序图,它描述了系统中,对象间通过消息进行的交互,它强调了消息在时间轴上的先后顺序。图1是自动车锁系统中,实现“锁车”用例的顺序图。2.顺序图的作用顺序图常用来描述用例的实现,它表明了由哪些对象,通过消息相互协作来实现用例的功能,在顺序图中,标识了消息发生交互的先后顺序。图1顺序图。1顺序图3.顺序图的组成元素顺序图中的元素包括对象、生命线、控制焦点、消息。消息表示了对象间的通讯,生命线表示了对象的生存期,控制焦点表示对象正在执行一些活动。1.2顺序图的表示UML中,表示一个顺序图,主要是标识系统中的对象、对象的生命线、对象的控制焦点、对象间交互的消息。如图2所示。1.顺序图的布局结构顺序图采用二维的布局结构,在顶端,从左到右,把对象排列在顺序图的顶部,一般说来,首先排列参与者对象,其次是边界对象,然后是实体对象,对象用矩形框表示;虚线是生命线;生命线上的矩形是对象的控制焦点;从对象往下延伸的生命线表示了时间轴的正方向。在图2中,参与者对象是车主,边界对象是车钥匙,实体对象是汽车,这三个对象在平面图的顶部,从左向右依此排列。1顺序图生命线消息控制焦点对象图2顺序图1顺序图2.对象:顺序图中对象的符号和对象图中对象所用的符号一样。将对象置于顺序图的顶部意味着在交互开始的时候对象就已经存在了,如果对象的位置不在顶部,那么表示对象是在交互的过程中被创建的。3.生命线生命线是一条垂直的虚线,表示顺序图中的对象在一段时间内的存在。每个对象的底部中心的位置都带有生命线。生命线是一个时间线,所用的时间取决于交互持续的时间。4.控制焦点在对象的生命线上,包含一个矩形,表示对象处于激活状态,处于激活状态的对象正在执行某个任务。对象在完成自己的工作后,被去激活,对象就处于空闲状态。1顺序图5.消息消息用来描述对象之间所进行的通信,它包括消息名、消息参数。消息分为五种:调用、返回、发送、创建和销毁。在UML中,消息使用箭头来表示,箭头的类型表示了消息的类型。几种消息类型的表示法,如图3所示。消息编号:按消息产生的先后顺序,给消息编号,有两种编号方案,一种是顺序编号,另一种是嵌套编号.图3消息表示法1顺序图(1).顺序编号:整个消息的传递过程就形成了一个完整的序列,因此通过在每个消息的前面加上一个用冒号隔开的顺序号(按照消息的先后顺序,从1开始对消息编号)来表示其顺序。在第3章,我们为一个电子商务网站构建了对象模型(类图)。现在,我们建立一个顺序图,以实现用例”将订单生成送货单”的功能,如图7-4所示,Order类有一个dispath()成员方法,其作用是根据供应商户的不同将一个订单分拆到多个送货单中。图4将订单生成送货单1顺序图在图4中,最顶上的一排矩形框(它的表示法和对象图中的对象是一致的)表示的就是顺序图中的对象。前两个对象都是有名称的对象,它们的名称分别是dispatchFrom和aOrder。而后面三个则是匿名对象,分别表示OrderItem,Product和DeliverOrder的实例。(2).嵌套编号:UML标准中定义了“嵌套编号方案”,对于图4而言,如果采用嵌套编号方案,则应该改为如图5所示。图5的嵌套编号方案表示了方法间的包含关系。由于顺序图本身已经充分表现出消息执行的顺序,因此在UML模型中并没有要求对消息进行编号。只是要求在通信图中,对消息进行了编号。但在Rose等建模工具中,为了能够自动实现顺序图与通信图的转换,在顺序图中也默认采取“嵌套编号方案。1顺序图在图5中,我们把属于同一个对象发送和接受的消息放在同一层进行编号.如对象dispatchForm的发送和接受消息放在第一层编号,它们是:1、2;把对象aOrder发送和接受的消息放在第二层编号,它们是1.1、1,2、1,3、1,4;匿名对象:OrderItem的发送和接受消息放在第三层编号,它们是:1.1.1、1.1.2图5嵌套编号1顺序图1.4绘制顺序图下面以饮料自动销售系统为例,看我们是怎样绘制顺序图的.下面对“买饮料”的3种场景进行建模,对每一个场景,我们绘制其对应的顺序图.(1).买饮料的正常场景下面是买到饮料的一般事件流:1顺序图1、顾客从机器的前端钱币口投入钱币,然后选择想要的饮料;2、钱币到达钱币记录仪,记录仪更新自己的存储;3、记录仪通知分配器分发饮料到机器前端;下面是买到饮料的场景对应的顺序图,如图6所示.(2).

饮料“已售完”的场景图6买到饮料的场景图7饮料已售完的场景1顺序图(3).机器没有合适的零钱顾客买饮料时,机器没有合适的零钱“找不开”的场景.(4).

带有临时对象的顺序图图8,该顺序图表示了发送消息2后,创建一个临时对象c,其生命线的尾部的叉号,表示销毁对象c.

图9零钱“找不开”的场景.图8带有临时对象的顺序图2通信图2.1通信图的概念1.通信图:通信图也称为协作图,它描述了系统中,对象间通过消息进行的交互,强调了对象在交互行为中承担的角色。图10是一个典型的通信图。通信图和顺序图之间的语义是等价的,只是他们的关注点有所不同而已,可以很容易的完成从顺序图到通信图的转换,在Rose中这个转换还可以自动完成。图10所示的通信图就是在Rose中通过对图5进行自动转换所产生的结果。从图10中不难发现,对象和消息都与图5中的对象和消息一样,在这幅图上除了“对象”之间的链(连接线)之外,所有的元素在交互图中都已经标识过。7.2通信图图10从订单生成订货单的通信图。2通信图1.通信图的作用通信图常用来描述业务或软件系统中,每个对象在交互发生时承担的角色,即强调了交互发生时,每个对象承担的职责。使用协作图可以显示对象相互协作时充当的角色。如果需要强调时间和序列,最好选择顺序图建模;如果需要强调上下文相关,最好选择协作图建模。协作图用于显示对象之间如何进行交互,以实现特定用例或用例中特定部分的行为。设计员使用协作图和顺序图确定并阐明对象的角色,这些对象执行用例的特定事件流。这些图提供的信息主要用来确定类的职责和接口。2.通信图的组成元素通信图的组成元素包括对象、消息、链(连接器)。消息表示了对象间的通信,对象通过链连接在一起。2通信图2.2通信图的表示UML中,表示一个通信图,主要是标识系统中的对象、对象间交互的消息、对象间的链。如图11所示,是系统管理员添加书籍的协作图。第一个消息(Additem())表示,管理员要求维护窗口添加书籍;第二个消息(find(String))表示,维护窗口要求:Title对象根据书名获得书的目录;第三个消息(update())表示修改书目下书的数量。图11通信图2通信图1.对象:通信图与顺序图中的对象的概念是一样,只不过在通信图中,无法表示对象的创建和撤销,所以对于对象在图中的位置没有限制。2.链:表示对象之间的语义关系,链是关联的一个实例。通信图中链的符号和对象图中链所用的符号是一样的,即一条连接两个对象的实线。

3.消息通信图中的消息类型与时序图中的相同,只不过为了说明交互过程中消息的时间顺序,需要给消息添加顺序号。顺序号是在消息的前面加一个整数。每个消息都必须有唯一的顺序号。4.消息编号:消息的编号有两种,一种是无层次编号(按顺序编号),它简单直观;另一种是嵌套的编号,它更易于表示消息的包含关系.5.迭代标记和监护条件2通信图(1).迭代标记迭代标记用*号表示,表示循环,通常还有迭代表达式,用来说明循环规则。虽然在UML2.0中顺序图已不采用迭代标记(用交互片段代替迭代标记的功能),但在通信图中仍然使用迭代标记。迭代是通过在顺序编号前加上一个迭代符“*”和一个可选的迭代表达式来表示。对于迭代表达式,UML没有强制规定什么语法,因此可以使用任何可读的、有意义的表达式来表示。常用的迭代表达式如表1所示。表1常用迭代表达式迭代表达式语义[i:=1..n]迭代n次[I=1..10]I迭代10次[while(表达式)]表达式为true时才进行迭代[until(表达式)]迭代到表达识为true时,才停止迭代[foreach(对象集合)]在对象集合上迭代2通信图(2).监护条件监护条件通常是用来表示分支的,也就是表示“如果条件为true,发送消息”的语义,在UML中,监护条件是以“【条件表达式】”的格式表示的2通信图2.3

表示循环和分支通信图中,用迭代表示循环,用监护条件表示分支。下面分别讲述迭代标记和监护条件。监护条件通常是用来表示分支的,也就是表示“如果条件为true,就发送消息”的语义,在UML中,监护条件是以“【条件表达式】”的格式表示的。现在来看一下它在交互图中的应用。例如,在图10中,消息“1.3:create(prddleryid)”的前面就添加了一个监护条件【peddleryidnotexist】,它说明只有当peddleryid不存在时,才调用create方法来创建新的送货单。如果已经存在,那就不必创建,直接调用1.4方法,将订单项中的产品添加到相应的送货单即可。2通信图在通信图中使用监护条件一定要有所限制,通常应只列出主要的监护条件,否则会影响其阅读。在图12中,coutse类实例c中还用到了构造型《local》,这是因为这个对象是由CourseList的find方法创建的,是一个局部的对象。而在这张图中,共有五处使用了监护条件,它们的含义如表2所示.图12注册课程2通信图表2监护条件语义监护表达式与消息语义解释[s&c]1.3register(s)当s和c都不是空对象时,才执行register方法[(!s)&c]1:studentNotFound如果s是空对象,则说明没有指定的学生,返回studentNotFound消息[s&(!c)]1:courseNotFound如果c是空对象,则表示没有找到指定课程,返回courseNotFound消息[(!s)&(!c)]1:allNotFound如果s和c都是空对象,表示都没有找到,返回allNotFound消息[s&c]1:ok如果s和c都不是空对象,则返回ok,表示注册成功1、借阅者用例图2、系统管理员用例图3、图书馆工作人员用例图类图几个边界类的说明:给出“添加图书”和“删除图书

温馨提示

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

评论

0/150

提交评论