《统一建模语言(UML)》第4章顺序图与协作图_第1页
《统一建模语言(UML)》第4章顺序图与协作图_第2页
《统一建模语言(UML)》第4章顺序图与协作图_第3页
《统一建模语言(UML)》第4章顺序图与协作图_第4页
《统一建模语言(UML)》第4章顺序图与协作图_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、统一建模语言(UML),第4章 顺序图与协作图,4.1 交互图概述,Interaction diagram,是描述对象之间的关系和对象之间的信息传递的图; 通常用来描述一个用例的行为,实现一个用例,完成对系统的动态行为建模; 包含两种: 顺序图(或时序图,sequence diagram) 协作图(collaboration diagram),顺序图 面向时间描述对象交互的图 协作图 对象间消息的结构化视图,4.2 顺序图,按照时间顺序显式对象之间交互的图,4.2.1 顺序图的组成,活动者(actor)或者 对象(object) 生命线(lifeline) 激活(activation)/ 控制

2、焦点(focus of control) 消息(message),4.2.2 活动者或对象,活动者和对象按照从左到右的顺序排列 一般最多两个活动者,他们分列两端。启动这个用例的活动者往往排在最左边;接收消息的活动者则排在最右端; 对象从左到右按照重要性排列或按照消息先后顺序排列。,4.2.2 活动者或对象,对象的命名方式有三种: 包括对象名和类名 类名(匿名对象) 对象名(不关心类),4.2.3 生命线,生命线(Lifeline): 每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时间内的存在 垂直的虚线 如果对象生命期结束,则用注销符号表示 对象默认的位置在图顶部,表示对象在交互之

3、前已经存在 如果是在交互过程中由另外的对象所创建,则位于图的中间某处。,4.2.4 激活期,激活期(activation)/控制焦点(focus of control) 对象在一段时间内获得了焦点,也称激活期 对象执行某个动作的时期 空心矩形条 激活期的长短意味着对象执行某个动作的时间有多长,可以通过约束10ms来限制执行时间的长短。,4.2.5 消息,面向对象方法中,消息是对象间交互信息的主要方式。 结构化程序设计中,模块间传递信息的方式主要是过程(或函数)调用。 对象A向对象B发送消息,可以简单地理解为对象A调用对象B的一个操作(operation)。,4.2.5 消息,顺序图中,尽力保持

4、消息的顺序是从左到右排列的。 一个顺序图的消息流开始于左上方,消息2的位置比消息1低,这意味着消息2的顺序比消息1要迟。因为西方的阅读习惯是从左到右。 顺序图中消息编号可显示,也可不显示。协作图中必须显示。,4.2.5 消息,UML三种消息: 调用(Procedure Call) 异步(Asynchronous) 返回(Return) Rose扩充: 阻止(Balking) 超时(Time-out),4.2.5 消息,UML三种消息: 调用(Procedure Call) 发送者把消息发送后,等待直到接收者返回控制,可以表示同步; 实心箭头符号,4.2.5 消息,UML三种消息: 异步(Asy

5、nchronous) 消息发送后,发送者继续操作,不等待,常用于并发;,4.2.5 消息,UML三种消息: 返回(Return) 表示消息的返回。消息上方放置返回值 同步消息的返回可以画出(如果想明确表达返回值),也可以不画出,直接隐含。 异步消息可以有返回,也可以没有。(可以响应异步消息,也可以不响应该异步消息。) 如果顺序图上显示有编号,则返回消息的编号和当初发送消息的编号完全一样。 虚线箭头表示,和依赖关系不要混淆,4.2.5 消息,自调用(Self Call) 某对象自己调用自己的操作 UML标记 (嵌套的矩形条) Rose标记,4.2.5 消息,Rose新增消息 阻止(Balking

6、) 接收者如果无法立即接收消息,则发送者放弃该消息 超时(Time-out) 如果接收者无法在指定的时间内接收消息,则发送者放弃该消息 Q:这两种消息可以看做是同步or异步消息?,4.2.5 消息,格式 前缀守卫条件顺序表达式返回值:=消息名(参数列表) 例: 2: display () 简单消息 1.3.1: p:=find() 带返回值的嵌套消息 x0 4: invert(x, color) 条件消息 3.1 *x = 1.10 : update() 循环消息 a3,b4/c2: copy(a,b) 线程同步 1.1a, 1.1b/1.2: continue() 带前缀消息,在发送线程c的

7、第2个消息之前,必须先发送线程a的第3个消息和线程b的第4个消息,在发送消息1.2之前必须已经同时发送并发消息给线程a和b,前缀(predecessor) 语法:消息序列号,消息序列号, . / 前缀是一个用来同步线程或路径(path)的表达式 意思是在发送当前消息之前指定序列号的消息被处理(必须连续执行) 消息序列号之间用逗号隔开,用斜杠结束 例如 1.1a, 1.1b/1.2: continue() ,在发送消息1.2之前必须已经同时发送并发消息给线程a和b,守卫条件(guard-condition) 语法: 条件短语 条件短语通常用伪代码或真正的程序语言来表示,UML并不规定其语法 例如

8、,x0 4: invert(x, color),序列表达式 (sequence-expression) 语法 integer | name recurrence : integer为指定消息顺序的序列号,消息1是消息序列的开始消息消息,1.1是消息1的处理过程中的第一条嵌套的消息,消息1.2是消息1的处理过程中的第二条嵌套的消息,一个消息序列的例子如1, 1.1, 1.2, 1.2.1, 1.2.2, 1.3, 等。这样的序列号不仅能够表示消息的顺序而且还能表示消息的嵌套关系(当消息是异步消息时消息为嵌套的操作调用及返回) name表示并发控制线程,例如1.2a和1.2b为同时发送的并发消息,

9、recurrence表示一个条件或迭代的执行有两种选择 * 循环子句 循环子句(iteration-clause)用来指定一个循环(重复执行) 例如:一个包括循环的消息 1.1 *x = 1.10 : doSomething() 条件子句 条件子句一般用来表示分枝而不是用作守卫条件x0是两个可以用来分枝的条件子句这两个条件只能有一个为真因而只有一个分枝被执行(即发送与分枝有关的消息) 条件子句和循环子句都可以用伪代码或真正的编程语言来表示 序列表达式用冒号结束,返回值、消息名和参数表 返回值表示一个操作调用(即一个消息)的结果,4.2.6 Rose中的消息,Simple和Asynchronou

10、s都可表示异步,UML1.4之后的版本用Simple消息表示异步 Procedure Call 和Synchronous和都可表示同步,UML早期版本用“同步消息”这一术语,目前常用Procedure Call 消息表示同步 Return不变 新增balking和time-out消息,4.2.7 建立顺序图的步骤,确定交互的范围; 识别参与交互的对象和活动者; 设置对象生命线开始和结束; 设置消息; 细化消息;,4.2.8 案例:存款,分析级别的顺序图,粗略,双斜杠 忽略消息同步异步类别也无妨,Add title 新增书目和图书操作,4.2.9 练习,用户打印文件,计算机向打印服务器发送打印命令,打印机如果空闲,则直接打印,否则把打印文件存储在打印队列中。,4.2.9 练习,管理员通过课程管理器打印课程UML的信息 顺序图制作提示: 只关注核心对象 顺序图用于描述某个用例的部分交互细节,管理员通过课程管理器打印所有课程信息,4.3 协作图,描述系统对象(或活动者)如何共同协作实现用例; 强调的是参与交互的对象的组织; 一般,顺序图和交互图可以相互转换,Rose提供了转换工具。 先画顺序图,再转成协作图更容易,4.3.1 多对象,多对象是多个对象组成的集合,往往是同一个类的对象; 如果消息同时发给多个对象,则用多对象表示; 在顺序图中仍然显示为单对象一样的图标, ros

温馨提示

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

评论

0/150

提交评论