




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 顺序图和协作图,本章重点: 1.顺序图和协作图的定义 2.顺序图和协作图的区别 3.顺序图和协作图的建模步骤 4.几种消息的定义及区别,本章难点: 1.在实际的建模中哪里该使用顺序图,哪里该使用协作图? 2.消息的识别,4.1 交互图概述,它通常用来描述一个用例的行为,显示该用例中所涉及的对象和这些对象之间消息传递情况。,交互图包括顺序图(Sequence diagram)和协作图(Collaboration diagram)两种形式。,定义:交互图(interaction diagram)是用来描述对象之间以及对象与参与者之间的动态协作关系和协作过程中行为次序的图形文档。,顺序图着重
2、描述对象按照时间顺序的消息交换,并且把用例行为分配给类。 协作图着重描述系统成分如何协同工作,强调对象间的结构关系。,交互图可以帮助分析人员对照检查每个用例中所描述的用户需求,如这些需求是否已经落实到能够完成这些功能的类中去实现,提醒分析人员去补充遗漏的类和方法。,交互图和类图可以相互补充。类图对类的描述比较充分,但对对象之间的消息交互情况的表达不够详细,而交互图不考虑系统中的所有类和对象,但可以表示系统中某几个对象之间的交互。,需要说明的是,交互图描述对象之间的消息发送关系,而不是类之间的关系。在交互图中一般不会包括系统中的所有类的对象,但同一个类可以有多个对象出现在交互图中。,顺序图和协作
3、图从不同的角度表达了系统中的交互和系统的行为,它们之间可以互相转化。,4.2 顺序图(Sequence diagram),1定义:Rumbaugh对顺序图的定义是,顺序图是显示对象之间交互的图,这些对象是按时间顺序排列的。,特别地,顺序图中显示的是参与交互的对象及对象之间消息交互的顺序。,顺序图中包括的建模元素有:对象(参与者实例也是对象)、生命线(lifeline)、激活(Activation)、消息(Message)等。,2、对象,顺序图中对象的符号和对象图中对象所用的符号一样。 将对象置于顺序的顶部意味着在交互开始的时候对象就已经存在了,如果对象的位置不在顶部,那么表示对象是在交互的过程
4、中被创建的。,对象的命名方式:顺序图中对象的命名方式有3种(协作图中也一样。,第一种命名方式包括对象名和类名; 第二种只显示类名,即表示这是一个匿名对象; 第三种只显示对象名而不显示类名,即不关心这个对象属于哪个类。,图4.1 顺序图中对象的命名方式,3、 生命线,生命线是一条垂直的虚线,表示顺序图中的对象在一段时间内的存在。每个对象的底部中心的位置都带有生命线。 生命线是一个时间线,从顺序图的顶部一直延伸到底部,所用的时间取决于交互持续的时间。 对象与生命线结合在一起称为对象的生命线,对象的生命线包含矩形的对象图标以及图标下面的生命线。,对象的生命线:,4、激活,激活表示该对象被占用以完成某
5、个任务,去激活指的则是对象处于空闲状态、在等待消息。 激活是顺序图中表示时间段的符号,在这个时间段内,对象将执行相应的操作。 在UML中,为了表示对象是激活的,可以将该对象的生命线拓宽成为矩形。其中的矩形称为激活条或控制期,对象就是在激活条的顶部被激活的,对象在完成自己的工作后被去激活。,激活条,5、消息,消息定义的是对象之间某种形式的通信,它可以激发某个操作、唤起信号或导致目标对象的创建或撤销。 消息是两个对象之间的单路通信,从发送方到接收方的控制信息流。 消息可以用于在对象间传递参数。 消息可以是信号,也可以是调用。 在UML中,消息使用箭头来表示,箭头的类型表示了消息的类型。,4.3 顺
6、序图中的消息,4.3.1 调用消息(procedure call)/同步消息(synchronous),消息是顺序图中的一个重要概念。,调用消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息接收者放弃或返回控制。即指示在消息完成之前,以及该消息发送的任何消息完成之前,工作流被中断。,调用消息用实线和实心箭头表示。,图4.3 调用消息,另外调用消息必有一个配对的返回消息,为了图的简洁和清晰,与调用消息配对的返回消息可以不用画出。,一般地,调用消息的接收者必须是一个被动对象,即它是一个需要通过消息驱动才能执行其动作的对象。,4.3.2 异步消息(asynchronous),异步消息的发送
7、者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接收者返回消息和控制。,异步消息的发送者和消息的接收者并发工作。 异步消息使用实线和开口箭头表示。 异步消息的接收者必须是一个主动对象,即它是一个不需要通过消息驱动就能执行其动作的对象。,图4.4 异步消息,4.3.3 返回消息(return),如果是从过程调用返回,则返回消息是隐含的,所以返回消息可以不用画出来。对于非过程调用,如果有返回消息,则必须明确表示出来。返回消息在UML中用虚线和开口箭头表示。,返回消息表示控制流返回到调用对象。,4.3.4 阻止消息(balking message)和超时消息(time-out mess
8、age),阻止消息是指消息的发送者发送消息给消息的接收者,如果接收者无法立即接收消息,则发送者放弃这个消息。阻止消息时ROSE扩充的消息类型。ROSE中用折回箭头表示。,4.3.5超时消息是指消息的发送者发送消息给消息的接收者并按指定的时间等待,如果接收者无法在指定的时间内接收消息,则发送者放弃这个消息。,另外还有两种消息:返身消息(自返消息)和简单消息。 返身消息(Reflexive Message)指消息的发送者发送消息给自身。 简单消息(Flat/Simple Message)指不考虑同步或异步的问题的一种消息。因为有时我们不需要关心是同步还是异步的,有时候甚至不知道。尤其在高层分析时,
9、有时没有必要指定一个消息是同步还是异步的。,4.4 建立顺序图的步骤,在分析和设计过程中,建立顺序图并没有一个标准的步骤,下面给出的步骤只是指导性的原则:,确定交互过程的上下文(context),即工作流。 识别参与交互过程的对象,即从左到右布置对象。 为每个对象设置生命线,即确定哪些对象存在于整个交互过程中,哪些对象在交互过程中被创建和撤消。 从引发这个交互过程的初始消息开始,在生命线之间自顶向下依次画出随后的各个消息,即添加消息和条件以便创造每一个工作流。 如果需要表示消息的嵌套,和/或表示消息发生时时间点,则采用控制焦点。 如果需要说明时间约束,则在消息旁边加上约束说明。 如果需要,可以
10、为每个消息附上前置条件和后置条件。,4.5 协作图,1定义:协作图用来建模对象或者参与者之间的交互,用来描述这些对象或者参与者之间是如何进行通信的。即协作图用于描述系统行为是如何由系统的成分协作实现的图,协作图中包括的建模元素有对象(包括参与者实例、多对象)、消息、链等。,协作图可以看作是类图和顺序图的交集。要想创建一个系统,这些类的实例(对象)需要彼此通信和交互。换句话说,它们需要协作。,2多对象:在协作图中,多对象指的是由多个对象组成的对象集合,一般这些对象是属于同一个类的。当需要把消息同时发送给多个对象而不是单个对象的时候,就要使用多对象这个概念,在协作图中,多对象用多个方框的重叠表示,
11、如图4.8所示。,3 、 消息,协作图中的消息类型与顺序图中的相同,只不过为了说明交互过程中消息的时间顺序,需要给消息添加顺序号。 顺序号是消息的一个数字前缀,是一个整数,由1开始递增,每个消息都必须由唯一的顺序号。,4、链,协作图中链的符号和对象图中链所用的符号是一样的,即一条连接两个类角色的实线。 为了说明一个对象如何与另一个对象连接,可以在链的末路上附上一个路径构造型。,4.6 建立协作图的步骤,在分析和设计过程中,建立协作图并没有一个标准的步骤,下面给出的步骤只是指导性的原则:,确定交互过程的上下文(context),即工作流。 识别参与交互过程的对象。 如果需要,为每个对象设置初始特
12、性。 确定对象之间的链(Link),以及沿着链的消息。 从引发这个交互过程的初始消息开始,将随后的每个消息附到相应的链上。 如果需要说明时间约束,则在消息旁边加上约束说明。 如果需要,可以为每个消息附上前置条件和后置条件。,4.7 顺序图和协作图的比较,顺序图和协作图都属于交互图,都用于描述系统中对象之间的动态关系。两者可以相互转换,但两者强调的重点不同。顺序图强调的是消息的时间顺序,而协作图强调的是参与交互的对象的组织。,两个图中所使用的建模元素,两者也各有特点。顺序图中有对象生命线和控制焦点,协作图中没有;协作图中有路径,并且协作图中的消息必须要有消息顺序号,但顺序图中没有路径,也可以没有
13、消息顺序号。,和协作图相比,顺序图在表示算法、对象的生命期、具有多线程特征的对象等方面相对来说更容易一些,但在表示并发控制流方面会困难一些。,顺序图和协作图在语义上是等价的,两者之间可以相互转换,但两者并不能完全相互代替。顺序图可以表示某些协作图无法表示的信息,同样,协作图也可以表示某些顺序图无法表示的信息。,例如,在顺序图中不能表示对象与对象之间的链,对于多对象和主动对象也不能直接显示出来,在协作图中则可以表示;协作图不能表示生命线的分叉,在顺序图中则可以表示。,4.8 工具支持4.9 常见问题分析,如何在顺序图中表示消息的循环发送? 如何在顺序图中表示消息的条件发送? 如何在顺序图中表示时
14、间约束? 如何在顺序图中表示方法的递归? 顺序图中的对象如何确定?顺序图和类图是否同时生成并交互修改? 如果对象具有多态性,发送对象不可能事先知道目标对象属于哪个类,因此在交互图中如何确定目标对象所属的类? 如何在交互图中表示广播消息? 如何在协作图中表示创建一个对象?,4.10 小结,顺序图和协作图都属于交互图,是UML中的动态建模机制。 顺序图强调的是消息的时间顺序,而协作图强调的是参加交互的对象的组织。 顺序图中包括的建模元素有对象、生命线、控制焦点、消息等;协作图中包括的建模元素有对象、消息链等。 交互图中的消息分为调用消息、异步消息、返回消息和阻止消息和超时消息等,另外还有返身消息(自返消息)和简单消息。 建立顺序图和协作图没有标准的步骤,只有一些指导性原则。,习题:,交互图有哪
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国脂肪烃树脂行业市场发展趋势与前景展望战略研究报告
- 2025年荧光灯灯具支架项目可行性研究报告
- 2025-2030中国肉干行业市场发展趋势与前景展望战略研究报告
- 2025年花生磨酱机项目可行性研究报告
- 2025-2030中国耐腐蚀胶带行业市场发展趋势与前景展望战略研究报告
- 2025年节日贺卡项目可行性研究报告
- 2025年船舶零件项目可行性研究报告
- 2025年自动栈板打包机项目可行性研究报告
- 2025-2030中国精密不锈钢管行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国管拖车行业市场发展趋势与前景展望战略研究报告
- GB 16246-1996车间空气中硫酸二甲酯卫生标准
- 驱动桥毕业设计
- 2023机关公文写作与处理PPT模板
- 基坑支护、降水及土方开挖专项施工方案
- 幼儿数字1-100字帖练习
- 细胞生物学-7细胞信号转导课件
- 搅拌站安全培训试卷
- 茶叶市场营销讲义
- 走进中国传统节日 详细版课件
- 乙肝两对半ppt课件
- 锅炉空气预热器拆除安装方案
评论
0/150
提交评论