第7章 序列图课件_第1页
第7章 序列图课件_第2页
第7章 序列图课件_第3页
第7章 序列图课件_第4页
第7章 序列图课件_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

第7章序列图学习内容序列图的基本概念序列图的组成序列图中的项目相关概念创建序列图创建序列图案例分析序列图的基本概念1.序列图的定义在UML的表示中,序列图将交互关系表示为一个二维图。其中,纵向是时间轴,时间沿竖线向下延伸。横向代表了在协作中各独立对象的角色。角色使用生命线进行表示,当对象存在时,生命线用一条虚线表示,此时对象不处于激活状态,当对象的过程处于激活状态时,生命线是一个双道线。序列图中的消息使用从一个对象的生命线到另一个对象生命线的箭头表示,箭头以时间顺序在图中从上到下排列。序列图的基本概念2.序列图在项目开发里的作用序列图作为一种描述在给定语境中消息是如何在对象间传递的图形化方式,在使用其进行建模时,主要可以将其用途分为以下三个方面:1.确认和丰富一个使用语境的逻辑表达。一个系统的使用情境就是系统潜在的使用方式的描述,也就是它的名称所要描述的。一个使用情境的逻辑可能是一个用例的一部分,或是一条控制流。2.细化用例的表达。序列图的主要用途之一,就是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。3.有效地描述如何分配各个类的职责以及各类具有相应职责的原因。我们可以根据对象之间的交互关系来定义类的职责,各个类之间的交互关系构成一个特定的用例。序列图的组成1.对象序列图中的对象可以是系统的参与者或者任何有效的系统对象。对象的表示形式也和对象图中的对象的表示方式一样,使用包围名称的矩形框来标记,所显示的对象及其类的名称带有下划线,二者用冒号隔开,使用“对象名:类名”的形式,对象的下部有一条被成为“生命线”的垂直虚线。序列图的组成2.生命线生命线(Lifeline)是一条垂直的虚线,用来表示序列图中的对象在一段时间内的存在。每个对象的底部中心的位置都带有生命线。生命线是一个时间线,从序列图的顶部一直延伸到底部,所用时间取决于交互持续的时间,也就是说生命线表现了对象存在的时段。对象与生命线结合在一起称为对象的生命线。对象存在的时段包括对象在拥有控制线程时或被动对象在控制线程通过时存在。当对象在拥有控制线程时,对象被激活,作为线程的根。序列图的组成3.激活序列图可以描述对象的激活(Activation),激活是对象操作的执行,它表示一个对象直接地或通过从属操作完成操作的过程。它对执行的持续时间和执行与其调用者之间的控制关系进行建模。激活在序列图中用一个细长的矩形框表示,它的顶端与激活时间对齐而底端与完成时间对齐。被执行的操作根椐不同风格表示成一个附在激活符号旁或在左边空白处的文字标号。序列图的组成4.消息消息(Messages)是从一个对象(发送者)向另一个或几个其他对象(接收者)发送信号,或由一个对象(发送者或调用者)调用另一个对象(接收者)的操作。它可以有不同的实现方式,比如过程调用、活动线程间的内部通讯、事件的发生等。序列图中的项目相关概念1.创建与销毁对象创建一个对象指的是发送者发送一个实例化消息后实例化对象的结果。销毁对象指的是将对象销毁并回收其拥有的资源,它通常是一个明确的动作,也可以是其它动作、约束或垃圾回收机制的结果。在序列图中,创建对象操作的执行使用消息的箭头表示,箭头指向被创建对象的框。在序列图中,对象被销毁是使用在对象的生命线上画大×表示,在销毁新创建的对象,或者序列图中的任何其他对象时,都可以使用。它的位置是在导致对象被销毁的信息上,或者在对象自我终结的地方。序列图中的项目相关概念2.分支与从属流在UML中,存在两种方式可以来修改序列图中消息的控制流,分别是:分支和从属流。分支是指的是从同一点发出多个消息的并指向不同的对象,根据条件是否互斥,可以有条件和并行两种结构。由于序列图只表示某一个活动按照时间顺序的经历过程,所以在RationalRose2003中,对序列图的分支画法没有明显的支持。从属流指的是从同一点发出多个消息指向同一个对象的不同生命线。从属流在RationalRose2003中不支持,因为添加从属流以后会明显增加序列图的复杂度。创建序列图1.创建对象创建一个新的类图,可以通过以下方式进行。1.右键单击浏览器中的UseCaseView(用例视图)、LogicalView(逻辑视图)或者位于这两种视图下的包。2.在弹出的菜单中,选中“New”(新建)下的“SequenceDiagram”(序列图)选项。3.输入新的序列名称。4.双击打开浏览器中的序列图。创建序列图2.创建生命线当对象被创建后,生命线便存在。当对象被激活后,生命线的一部分虚线变成细长的矩形框。在RationalRose2003中,是否将虚线变成矩形框是可选的,我们可以通过菜单栏设置是否显示对象生命线被激活时的矩形框。设置是否显示对象生命线被激活的矩形框步骤为:在菜单栏中选择“Tools”(工具)下的“Options”(选项)选项,在弹出的对话框中选择“Diagram”(图)选项卡,选择或取消“Focusofcontrol”选项。创建序列图3.创建消息在序列图中添加对象与对象之间的简单消息的步骤如下:1.选择序列图的图形编辑工具栏中的图标,或者选择菜单栏“Tools”(工具)中“Create”(新建)下的“ObjectMessage”选项,此时的光标变为“↑”符号。2.单击需要发送消息的对象。3.将消息的线段拖动到接收消息的对象中。4.在线段中输入消息的文本内容。5.双击消息的线段,弹出设置消息规范的对话框,在弹出的对话框中,在“General”选项卡中可以设置消息的名称等属性,消息的名称也可以是消息接收对象的一个执行操作,我们在名称的下列菜单中选择一个或从新创建一个即可,我们称之为消息的绑定操作。6.如果需要设置消息的同步信息,也就是说设置消息成为简单消息、同步消息、异步消息、返回消息、过程调用、阻止消息和超时消息等,可以在“Detail”选项卡中进行设置,还可以设置以消息的频率。创建序列图4.创建对象与销毁对象由于创建对象操作也是消息的一种,我们仍然可以通过发送消息的方式创建对象。在序列图的图形表示中,和其它对象不一样的是,其它对象通常位于图的顶部,被创建的对象通常位于图的中间部位。创建序列图销毁对象表示对象生命线的结束,在对象生命线中使用一个“X”来进行标识。给对象生命线中添加销毁标记的步骤如下:1.在序列图的图形编辑工具栏中选择按钮,此时的光标变为“+”符号。2.单击欲销毁对象的生命线,此时该标记在对象生命线中标识。该对象生命线自销毁标记以下的部分消失。创建序列图案例分析1.需求分析具体描述聊天系统客户端用户添加好友用例的工作流程如下:(1)用户在客户端主界面上单击新增好友按钮,客户端主界面响应单击操作,调用actionPerformed方法,创建新增好友的界面。(2)用户在新增好友界面上输入待添加好友的编号,此处可以单击查找按钮查找用户信息,也可以单击新增按钮添加好友,此时用户单击新增按钮,调用新增好友界面类中的actionPerformed方法响应用户单击操作。(3)新增好友界面类调用客户端主类中的sendAddFriend方法,准备将要添加的好友信息发往服务器端,此时一方面Client类通过Socket与服务器端的侦听端口建立连接,服务器端Server类创建相应的工作线程对象Worke,Worker类调用receive方法准备接收客户端发送的Message消息对象;另一方面,Client类调用addFriend方法准备发送新增好友消息,最后通过send方法,将准备好的新增好友消息Message对象调用writeObject方法发往服务器端,同时调用receive方法接收来自服务器端工作线程类的返回消息。创建序列图案例分析(4)服务器端的工作线程类Work通过receive方法收到客户端发来的新增好友消息对象Message,通过chatProtocol方法解析消息对象,并调用addFriend方法实现新增好友的操作。(5)服务器端的工作线程类Work在addFriend方法中,调用服务器主类Server的addFriend方法在当前用户的好友列表UserInfo中更新好友的信息。(6)服务器端主类Server调用saveUserDB方法将好友信息保存到文件中,并将控制权返回给服务器端的工作线程类。(7)服务器端的工作线程类Work调用sendMessage方法将返回结果消息调用writeObject方法发往客户端,

温馨提示

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

评论

0/150

提交评论