协作图及其应用_第1页
协作图及其应用_第2页
协作图及其应用_第3页
协作图及其应用_第4页
协作图及其应用_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、协作图及其应用 协作图强调发送和接受消息的对象之间的结构组织的交互图,显示对象、对象之间的链接以及对象之间的消息,还可以显示当前模型中的简单类实例和类实体实例。 1从订单生成订货单的协作图。协作图,它描述了系统中,对象间通过消息进行的交互,强调了对象在交互行为中承担的角色。下图就是一个典型的协作图。2协作图和时序图之间的语义是等价的,只是他们的关注点有所不同而已,可以很容易的完成从时序图到通信图的转换,在Rose中这个转换还可以自动完成。从协作图中不难发现,对象和消息都与时序图中的对象和消息一样,在这幅图上除了“对象”之间的链(连接线)之外,所有的元素在时序图中都已经标识过。3协作图的作用协作

2、图常用来描述业务或软件系统中,每个对象在交互发生时承担的角色,即强调了交互发生时,每个对象承担的职责。使用协作图可以显示对象相互协作时充当的角色。如果需要强调时间和序列,最好选择顺序图建模;如果需要强调上下文相关,最好选择协作图建模。协作图用于显示对象之间如何进行交互,以实现特定用例或用例中特定部分的行为。设计员使用协作图和顺序图确定并阐明对象的角色,这些对象执行用例的特定事件流。这些图提供的信息主要用来确定类的职责和接口。43 协作图3.1 协作图包含的元素 对象 链(连接器) 消息 5协作图的表示UML中,表示一个协作图,主要是标识系统中的对象、对象间交互的消息、对象间的链。如图所示,是系

3、统管理员添加书籍的协作图。第一个消息(Additem()表示,管理员要求维护窗口添加书籍;第二个消息(find(String)表示,维护窗口要求:Title对象根据书名获得书的目录;第三个消息(update()表示修改书目下书的数量。协作图61.对象:协作图与时序图中的对象的概念是一样,只不过在协作图中,无法表示对象的创建和撤销,所以对于对象在图中的位置没有限制。 2.链:表示对象之间的语义关系,链是关联的一个实例。协作图中链的符号和对象图中链所用的符号是一样的,即一条连接两个对象的实线。 3.消息协作图中的消息类型与时序图中的相同,只不过为了说明交互过程中消息的时间顺序,需要给消息添加顺序号

4、。顺序号是在消息的前面加一个整数。每个消息都必须有唯一的顺序号。4.消息编号:消息的编号有两种,一种是无层次编号(按顺序编号),它简单直观;另一种是嵌套的编号,它更易于表示消息的包含关系.5.迭代标记和监护条件7(1). 迭代标记迭代标记用*号表示,表示循环,通常还有迭代表达式,用来说明循环规则。虽然在UML2.0中顺序图已不采用迭代标记(用交互片段代替迭代标记的功能),但在协作图中使用迭代标记。迭代是通过在顺序编号前加上一个迭代符“*”和一个可选的迭代表达式来表示。对于迭代表达式,UML没有强制规定什么语法,因此可以使用任何可读的、有意义的表达式来表示。常用的迭代表达式如表所示。常用迭代表达

5、式迭代表达式语义i:=1.n迭代n次I=1.10I迭代10次while(表达式)表达式为true时才进行迭代until(表达式)迭代到表达式为true时,才停止迭代for each(对象集合)在对象集合上迭代8(2). 监护条件监护条件通常是用来表示分支的,也就是表示“如果条件为true,才发送消息”的语义,在UML中,监护条件是以“【条件表达式】”的格式表示的。现在来看一下它在交互图中的应用。例如,在图中,消息“1.3:create(prddleryid)”的前面就添加了一个监护条件【peddeleryid not exist】,它说明只有当peddeleryid不存在时才调用create方

6、法来创建新的送货单。如果已经存在,那就不必创建,直接调用1.4方法,将订单项中的产品添加到相应的送货单即可。9在协作图中使用监护条件一定要有所限制,通常应只列出主要的监护条件,否则会影响其阅读。在图7-20中,coutse类实例c中还用到了构造型local,这是因为这个对象是由CourseList 的find方法创建的,是一个局部的对象。而在这张图中,共有五处使用了监护条件,它们的含义如表7-4所示.图7-20 注册课程10表7-4 监护条件语义监护表达式与消息语义解释s&c1.3register(s)当s和c都不是空对象时,才执行register方法(!s)&c1:studentNotFou

7、nd如果s是空对象,则说明没有指定的学生,返回studentNotFound消息s&(!c)1:courseNotFound如果c是空对象,则表示没有找到指定课程,返回courseNotFound消息(!s)&(!c)1:allNotFound如果s和c都是空对象,表示都没有找到,返回allNotFound消息s&c1:ok如果s和c都不是空对象,则返回ok,表示注册成功11协作图实例下图是图书管理员登录系统的协作图。协作图的阅读:1.由Librarian角色向Login发送UserLogin信息,要求登录系统;2.登录界面(Login)向Maintenance发送发送InputMainten

8、ance的信息,做一些维护工作;3.登录界面(Login)向Query角色发送inputQuery消息,做一些查询工作;4.登录界面(Login向Operation发送inputOperation信息,进行一些输入操作。123 协作图3.2 协作图的创建和删除 创建一个新协作图的步骤如下:1)单击Browse Collaboration Diagram。弹出Select Collaboration Diagram对话框; 2)在对话框左边选择预建立协作图的包,单击OK。弹出New Collaboration Diagram对话框; 3)在Title字段输入新框图的名字,单击diagram ty

9、pe中的Collaboration,单击OK按钮。 删除一个协作图的步骤如下:1)右键单击浏览器中的协作框图名;2)在快捷菜单中选择“Delete”。 133 协作图3.4 协作图工具箱13种常见工具可以定制144 顺序图和协作图共有的元素 4.1 对象 表示方法Object指明对象,Class定义Object的类型如果对象已经映射到类,用户便可以在Rose中选择性的显示对象名、类名可以用一个多实例图标表示类的多个实例154 顺序图和协作图共有的元素4.2 消息1)将消息加进顺序图单击工具箱中的 按钮;将鼠标从发送消息的对象或参与者的生命线拖动到接受消息的对象或参与者的生命线; 输入消息文本。

10、 164 顺序图和协作图共有的元素4.2 消息2)将反身消息加进顺序图单击工具箱中的 按钮;单击收发消息的对象生命线; 输入消息名。 174 顺序图和协作图共有的元素4.2 消息3)将消息加进协作图单击工具箱中的 按钮; 单击框图中对象间的链接; 输入消息名。4)删除消息选择要删除的消息; 选择Eddit Delete from Model或按Ctrl+D。注意:在协作图中消息删除后,链接仍然存在于模型中 184 顺序图和协作图共有的元素4.3 消息编号 Rose中默认顺序图中不显示消息编号,协作图显示消息编号。顺序图中,消息根据对象生命线从上往下从1开始进行编号;协作图中,消息根据建立的顺序

11、从1开始进行编号。删除消息时,Rose自动将其余消息重新编号。 194 顺序图和协作图共有的元素4.3 消息编号 打开或关闭消息编号:选择Tools Options; 选择Diagram标签; 复选或取消Collaboration Numbering 或者Sequence Numbering。 204 顺序图和协作图共有的元素4.4 为消息分配操作要给消息分配操作: 双击框图中的消息图标; 从弹出的列表中选择一个操作。或者单击 定义一个新操作。改变消息指定的操作: 双击框图中的消息; 在消息规范窗口“Name”字段列表框中选择新的操作名 。 215 对象规范与应用5.1 对象规范1)映射类(C

12、lass)在Class下拉列表框中选择类名; 或者,将浏览器中的类拖动到框图中的对象上。2)对象持续性(Persistence) Persistent:对象保存到数据库或者其他形式的永久存储体中 Static:对象保存在内存中直到程序中止Transient:对象只在短时间内保存在内存中 3)多实例(Multiple instances) 选中该复选框之后,协作图中的对象图标将显示为多实例图标。但在顺序图中,对象图标仍然是单个对象的图标。 22消息规范与应用6.1 消息规范1)General标签Name:消息名Documentation:对消息的附加说明23消息规范与应用6.1 消息规范2)De

13、tail标签消息同步类型(Synchronization) 24消息规范与应用6.1 消息规范1)General标签Name:消息名Documentation:对消息的附加说明25消息规范与应用6.1 消息规范1)General标签Name:消息名Documentation:对消息的附加说明26消息规范与应用6.1 消息规范1)Detail标签消息频率(Frequency)消息频率可以让消息按规定的时间间隔发送不定期(Aperiodic):将消息设定为不定期发送的消息、只发送一次,或者不规则时间间隔发送 定期(Periodic) :将消息设定为定期发送的消息 277 消息编号 消息编号用来表示

14、一个消息的时间顺序,通过消息的顺序编号可以更清楚地看出各消息之间的时间顺序以及相互之间的关系。 在交互图中可以选择显示消息编号。在顺序图中,消息可以按两种方式编号: Top-Level(顶级编号)方式,如1、2、3;或者Hierarchical(等级编号)方式,如1.1、1.1.2、1.1.3。在协作图中,消息只能采用Top-Level 编号,但如果协作图是由顺序图转换而来,图中也可以使用Hierarchical 编号。 287 消息编号7.1 Top-Level 编号定义顶级编号。编号由1开始,后续消息的编号单调递增,消息编号只有一个单一的数字,没有数字子集。举例如用户设定了编号为1.,1.

15、1.,1.2.和1.2.1.的消息,在顶级编号时将被编号为1,2,3和4 一般用于对象和消息很少的顺序图中 要对消息进行顶级编号:单击Tools Options; 单击Diagram标签; 选中Sequence Numbering复选框。 297 消息编号7.2 Hierarchical编号定义即等级编号,Hierarchical 编号使用带小数点的号码,方便显示消息嵌套。举例如1表示第一个消息,1.1表示嵌套在消息中的第一个消息,1.2表示嵌套在消息中的第二个消息。注意:如果删除消息1,则嵌套在消息1中的其他消息也将同时被删除。 要对消息进行等级编号: 选择Tools Options; 单击

16、Diagram标签; 同时选中Sequence Numbering和Hierarchical Messages复选框。 307 消息编号7.2 Hierarchical编号318 协作图特有的要素链 8.1 链的定义链是关联的实例,当一个类与另一个类之间有关联时,这两个类的实例之间就有链,一个对象就能向另一个对象发送消息。所以链是对象间的发送消息的路径。要在协作图中增加消息,必须先建立对象之间的链接。链接一般建立在两个对象或者两个类实例之间,也可以建立反身链接。 328 协作图特有的要素链8.2 链的操作 创建链接:单击工具箱中的 按钮; 从一个对象拖动到另一个对象,创建链接。 创建反身链接单

17、击工具箱中的 按钮;单击发送消息的对象,建立反身链接。 338 协作图特有的要素链8.3 链的规范 1)General标签关联(Assoc):两个对象的类之间建立的关联 类关联 对象之间的链接348 协作图特有的要素链8.3 链的规范1)General标签可见性(Visibility):一个对象看到另一个对象的能力 选项含义Unspecified (Default) 不指定对象的可见性(默认值)Field 供应者对象可见。Parameters 供应者对象可见。供应者对象是客户对象操作中的一个参数。Local 供应者对象局部可见。供应者对象是客户对象操作中的一个局部变量。Global供应者对象全

18、局范围内可见。358 协作图特有的要素链8.3 链的规范2)Messages标签显示了当前链接上的消息信息 右图说明: 一个是正向的链消息(由客户发给供应者),一个是逆向的链消息(由供应者返回给客户);消息的编号分别为2和4;消息名分别为notify(keystroke)和update(keystroke),接收对象分别为OperatingSystem类的实例和GUI类的实例。 369 顺序图所特有的元素控制焦点 控制焦点(激活条)是顺序图所特有的元素。控制焦点是对象生命线上一个窄矩形,用于装饰对象生命线,表示对象执行一个动作所经历的时间长度。矩形的顶部表示动作的开始,底部表示动作的结束。上下移动控制焦点时,依附在其上的每个独立的消息线也将发生相应的移动。 379 顺序图所特有的元素控制焦点9.1 显示控制焦点显示或关闭控制焦点的方法:单击Tools Options; 单击Diagram标签; 选中“Focus of Control”左边的复选框,

温馨提示

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

评论

0/150

提交评论