序列图

合集下载

UML的序列性图

UML的序列性图

UML的序列性图UML的序列图(Sequence Diagram)是一种用于描述系统中对象之间交互的图表工具。

它被广泛应用于软件开发过程中的分析和设计阶段,为软件项目团队成员提供了一种可视化的方式来理解和设计系统中的各个部分之间的通信。

在本文中,我们将详细介绍UML的序列图及其相关概念。

序列图是一种非常直观的图表工具,用于呈现系统中对象之间的交互。

在序列图中,每个对象被表示为一个矩形,矩形中包含该对象的名称。

对象之间的交互被表示为消息,每个消息都有一个箭头指向接收者对象。

此外,每个消息都有一个标签,用于表示消息的类型(例如,方法调用、返回等)。

序列图还可以包括参与者(Actor),它们表示与系统进行交互的外部实体。

序列图可以帮助团队成员更好地理解系统的运行方式。

通过序列图,设计人员可以了解每个对象如何与其他对象进行交互,以及它们之间的顺序和时间限制。

由于序列图具有直观性和易于理解的特点,因此它被广泛应用于软件开发项目的不同阶段,包括需求分析、设计和测试。

下面我们将介绍序列图中的一些重要概念和使用技巧:1. 对象序列图中的对象通常表示系统中的类或组件。

每个对象都有一个名称和一组可用的操作。

通常情况下,对象在序列图中表示为一个垂直的矩形,矩形中包含对象的名称。

2. 消息序列图中的消息表示对象之间的通信。

每个消息都有一个发送方和一个接收方,通常由一条箭头表示。

消息还可以包括一个标签,用于表示消息类型(例如,方法调用、返回等)。

在序列图中,消息通常表示为从发送方对象到接收方对象的垂直线。

3. 虚线在序列图中,一些线可能会是虚线,而不是实线。

虚线通常用于表示控制流或条件语句。

例如,如果一个对象只有在接收到某个消息时才会执行操作,那么这个操作被表示为一个虚线箭头。

4. 垂直参考线序列图通常使用垂直参考线来表示时间线。

这使得您可以更清晰地了解系统中对象之间的顺序和时间限制。

垂直参考线应该垂直于序列图。

5. 生命周期序列图通常还包括一个对象的生命周期。

面向对象与UML 第五章 序列图和通信图

面向对象与UML 第五章 序列图和通信图

5.3 建立序列图
3. 添加消息
按发生的顺序在对象之间添加交互消息。
– 客户通过发送创建消息EntryDialogue打开登录对话 框
– 客户通过发送inputUserInfo消息向登录对话框中输 入用户信息
– 登录对话框通过发送sendUserInfo消息将用户信息发 往服务器
5.3 建立序列图
server:Server
database:DataBase
e n tryDi a l o g :En tryDi a l o g En tryDi a l o g ()
«create»
i n p u tUse rIn fo ()
sendUserInfo()
i n p u tUse rIn fo ()
5.3 建立序列图
1. 确定事件流
“用户登录”的异常流: 用户输入的信息与数据库中存储的信息不匹配,数据库 验证不通过,弹出错误信息。
5.3 建立序列图
2. 布置对象
基本流中的对象主要有客户(client)、数据库(database)、 服务器(server)、登录对话框(entryDialogue)、好友 列表(friendList)
– 服务器再把该用户信息发往数据库进行身份验证, 若合法,返回消息允许用户登录,同时服务器通过 向自身发送updateList消息更新在线用户列表
– 服务器通过创建消息FriendList创建该用户好友列表 – 通过消息getOfflineMessage向数据库请求其他好友向
该用户发送的离线
5.3 建立序列图
3. 添加消息
按发生的顺序在对象之间添加交互消息。
– 客户通过发送创建消息EntryDialogue打开登录对话框

UML顺序图介绍

UML顺序图介绍

介绍顺序图也称序列图,主要用来系统中的某个流程的详细步骤。

顺序图能够给出流程中一系列对象的交互顺序。

通过顺序图可以让我们更好的了解如何实现某个用例的方法。

我们知道用例图用来描述系统的功能需求。

而顺序图清晰的描述了某个用例也就是系统功能的的实现方法。

详解在顺序图中包含的元素:对象:用来标识流程中的详细步骤中的对象。

活动条:用来标识当前对象是活动的,如果想表示某个对象是活动的,那么必须使用一个虚线+活动图的形式来构建。

例如我们现在要标示一个简单的做公交车的刷卡流程:IC卡刷卡操作。

相关解释说明:公交卡,首先放在刷卡终端上,终端读取卡中的余额信息,然后刷卡终端与终端中的扣款程序对象交互,扣款程序根据读取的余额信息,与刷卡终端中的固定刷卡金额对比,如果当前IC卡的余额大雨刷卡终端的固定金额则,扣除金额,并且返回一个消息,提示刷卡成功的操作。

途中的实线表示调用被调用对象的方法,虚线表示当被调用对象执行成功后,返回的虚线上表示返回值的逻辑名称,这样可以提高了可读性。

在公交卡与活动条之间,应有一个虚线链接。

在上图中我们使用了活动条,活动条作为生命线的一部分。

我们并没有定义对象的创建和销毁,因此我们来看UML建模语言提供的描述对象的创建与销毁实例。

上图中的X符号的图标代表的时候对象的销毁。

创建对象通过new来创建,上图中,我用中文描述“创建对象”来完成对象的创建,那么在生命线下的的X符号代表销毁对象,从内存中移除对象。

当然这个对象的销毁对不同的开发语言有这不同的处理方式。

C++中的销毁对象,必须调用析构函数来销毁对象。

C#与JAVA语言中则只是说明当前需要销毁的对象没有被其他的对象引用,那么这类语言编译器提供垃圾回收器来完成回收。

注意:当某个对象引用了另外一个对象,该对象有责任销毁被引用对象并且必须显示销毁该被引用对象时,那么必须要显示的发送被引用对象销毁的通知消息。

白话文来说就是显示的调用被引用对象的销毁方法。

四种图

四种图

四种图(状态图、序列图、合作图和活动图)的运用状态图:State diagram活动图:Activity diagram以上二者属于行为图/动态图dynamic diagram序列图:Sequence diagram协作图(合作图):Collaboration diagram以上二者属于交互图interaction diagram这四个图均可用于系统的动态建模,但它们各自的侧重点不同,分别用于不同的目的。

首先,不要对系统中的每个类都画状态图。

尽管这样做很完美,但太浪费精力,其实你可能只关心某些类的行为。

正确的做法是:为帮助理解类而画它的状态图。

状态图描述跨越多个用例的单个对象的行为,而不适合描述多个对象间的行为合作。

为此,常将状态图与其它技术(如序列图、合作图和活动图)组合使用。

序列图和合作图适合描述单个用例中几个对象的行为。

其中序列图突出对象间交互的顺序,而合作图的布局方法能更清楚地表示出对象之间静态的连接关系。

当行为较为简单时,序列图和合作图是最好的选择。

但当行为比变复杂时,这两个图将失去其清晰度。

因此,如果想显示跨越多用例或多线程的复杂行为,可考虑使用活动图。

另外,顺序图和合作图仅适合描述对象之间的合作关系,而不适合对行为进行精确定义,如果想描述跨越多个用例的单个对象的行为,应当使用状态图。

---------------------------------------------------------------------------------------------------------------------------------UML提供图来描述系统的结构和行为。

在其中,类图用于描述系统的静态结构,状态图,协作图,活动图,序列图则用于描述系统的动态行为,描述系统在执行期间不同时间点是如何动态交互的。

在这四种图中可以大体分为两类:以描述系统状态转移为主的状态图和活动图,以描述系统系统对象通讯和交互为主的协作图和序列图。

UML 序列图(顺序图)和协作图

UML 序列图(顺序图)和协作图

UML图学习序列图(顺序图)和协作图分类:UML 2012-11-30 16:42 2528人阅读评论(19) 收藏举报在面向对象动态建模,用于建立行为的实体间行为交互的四种图:状态图(Stage Diagram),序列图(Sequence Diagram),协作图(Communication Diagram),活动图(Activity Diagram) ,其中,“顺序图”与“协作图”表述的是相似的消息。

序列图(Sequence Diagram)强调的消息时间顺序的交互图,描述类系统中类与类之间的交互,它将这些交互建模成消息互换,换句话说,顺序图描述了类与类之间之间相互交换以完成期望行为的消息。

顺序图的特点是清晰,一个设计很好地顺序图从左到右、从上到下可以很好地表示出系统数据的流向,为接下来的系统设计做好铺垫。

协作图(Collaboration Diagram /Communication Diagram,也叫合作图)是一种交互图(interaction diagram),强调的是发送和接收消息的对象之间的组织结构。

一个协作图显示了一系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。

对象通常是命名或匿名的类的实例,也可以代表其他事物的实例,例如协作、组件和节点。

使用协作图来说明系统的动态情况。

1、序列图(顺序图)的知识点概要:点此看大图2、协作图知识点概要:点此看大图3:顺序图(1)先从图书馆借/还书角度了解顺序图从顺序图的流程中,清晰到了解程序的过程,十分清晰明了(2)从地铁购票的活动中来看顺序图根据机房收费系统来画的部分顺序图(3):一般用户角度查询信息。

(4):操作员注册新的学生账号(5)管理员的基本系统数据的的设定4、协作图(1)结合刚才的图书馆借/还书的过程。

根据序号可以发生的先后顺序(2)从地铁购票的角度来学习协作图(3)结合机房收费系统角度画的协作图一般用户查询信息:(4)操作员注册卡(5)管理员修改基本数据5、协作图与顺序图的区别和联系协作图和顺序图都表示出了对象间的交互作用,但是它们侧重点不同顺序图清楚地表示了交互作用中的时间顺序(强调时间),但没有明确表示对象间的关系。

顺序图(SequenceDiagram)

顺序图(SequenceDiagram)

顺序图(SequenceDiagram)
顺序图(Sequence Diagram):
是⼀种强调对象间消息传递次序的交互图,⼜称为时序图或序列图。

描述了在⼀个⽤例或操作的执⾏过程中对象如何通过消息相互交互,说明了消息如何在对象之间被发送和接收以及发送的顺序。

组成:
交互⽚段(Interaction Fragment):
⼀个复杂的顺序图可以划分为⼏个⼩块,每⼀个⼩块称为⼀个交互⽚段,由⼀个⼤⽅框包围。

常⽤的操作符包括:
1) alt:多条路径,条件为真时执⾏。

2) opt:任选,仅当条件为真时执⾏。

3) par:并⾏,每⼀⽚段都并发执⾏。

4) loop:循环,⽚段可多次执⾏。

消息:
1)调⽤消息(Call Message): 在顺序图中有的消息对应于激活,表⽰它将会激活⼀个对象。

2)发送消息(Send Message): 如果消息没有对应激活框,表⽰它不是⼀个调⽤消息,不会引发其他对象的活动。

3)⾃⾝消息(Self Call Message): 如果对象的⼀个⽅法调⽤了⾃⼰的另⼀个⽅法时,消息是由对象发送给⾃⾝。

4)创建/销毁消息(Create/Destroy Message): 创建消息⽤于使⽤new关键字创建另⼀个对象,⽽销毁消息⽤于调⽤对象的销毁⽅法将⼀个对象从内存中销毁。

在下⼀节我们讨论⼀下状态图。

[UNL课件] 第7章 序列图

[UNL课件] 第7章 序列图
– 强调消息的时间顺序的交互图。
• 协作图(ration diagram)
– 强调发送和接收消息的对象的机构组织的交互图。
7.1 序列图的基本概念
– 序列图的用途
• 确认和丰富语境的逻辑表达; • 细化用例的表达;
• 描述类所分配职责及分配原因。
: SearchBookWindow : Borrower 1: 查找图书 2: 根据条件查找图书 3: 返回图书信息 4: 显示图书信息 : Book
• 示例1:使用序列图描述网络通信的过程。
– 过程描述如下:
• 发送者和接收者是通信双方。 • 发送者通过发送一个启动事务的包来与接收者建立 连接。接收者成功的读取此包,并回复确认信息。 • 发送者收到确认信息后,会传输一个文件开始的包 ,这个包也被接收者确认。 • 完成3次确认后,文件数据进行传输。 • 传输完成后通信结束。
• 销毁一个对象并回收占用资源。对象可以销毁自己。 • 销毁对象时,在其生命线上画“ X ”。
7.3 序列图的高级概念
• 2、顺序图中的结构化控制
– 序列型消息
条件、 循环、并发
– 使用控制操作符进行结构化控制。
7.3 序列图的高级概念
– 1)可选
• 标签:opt • 说明:
– 如果进入操作符的时候监护条件成立,那么该控制操 作符的主体就会得到执行。
2: 创建取款界面 ( ) 3: 显示取款界面 ( )
: 用户
1: 选择取款事务 ( )
4: 输入取款金额 ( ) 5: 账户余额校验 ( ) 6: 查询账户余额 ( ) 7: 返回账户余额 8: 修改账户余额 ( ) 9: 返回结果:取款成功 10: 提示取走现金,询问下一步业务 ( )

第七章 序列图

第七章 序列图

序列图的基本概念
2. 序列图在项目开发里的作用
序列图作为一种描述在给定语境中消息是如何在对象间传递的图 形化方式,在使用其进行建模时,主要可以将其用途分为以下三 个方面: (1)确认和丰富一个使用语境的逻辑表达。一个系统的使用情境就 是系统潜在的使用方式的描述,也就是它的名称所要描述的。一 个使用情境的逻辑可能是一个用例的一部分,或是一条控制流。 (2)细化用例的表达。我们前面已经提到,序列图的主要用途之一, 就是把用例表达的需求,转化为进一步、更加正式层次的精细表 达。用例常常被细化为一个或者更多的序列图。 (3)有效地描述如何分配各个类的职责以及各类具有相应职责的原 因。我们可以根据对象之间的交互关系来定义类的职责,各个类 之间的交互关系构成一个特定的用例。例如,“Customer对象向 Address对象请求其街道名称”指出Customer对象应该具有“知 道其街道名”这个职责。
序列图中的项目相关概念
2. 分支与从属流
在UML中,存在两种方式可以来修改序列图中消息的 控制流,分别是:分支和从属流。 分支是指的是从同一点发出多个消息的并指向不同的 对象,根据条件是否互斥,可以有条件和并行两种结 构。由于序列图只表示某一个活动按照时间顺序的经 历过程,所以在Rational Rose 2003中,对序列图的分 支画法没有明显的支持。 从属流指的是从同一点发出多个消息指向同一个对象 的不同生命线。从属流在Rational Rose 2003中不支持, 因为添加从属流以后会明显增加序列图的复杂度。
确定序列对象确定序列对象建模序列图的下一步是从左到右布置在该工作流程中所有的参与者和对象同时也包含要添加消息的对象所有的参与者和对象同时也包含要添加消息的对象??建模序列图的下一步是从左到右布置在该工作流程中生命线

时序图(序列图)

时序图(序列图)

时序图(序列图)⼀、什么是时序图?时序图(Sequence Diagram),亦称为序列图、循序图或顺序图,是⼀种UML交互图。

它通过描述对象之间发送消息的时间顺序显⽰多个对象之间的动态协作。

时序图是⼀个⼆维图,横轴表⽰对象,纵轴表⽰时间,消息在各对象之间横向传递,依照时间顺序纵向排列。

⼆、时序图的作⽤是什么?1、展⽰对象之间交互的顺序。

将交互⾏为建模为消息传递,通过描述消息是如何在对象间发送和接收的来动态展⽰对象之间的交互;2、相对于其他UML图,时序图更强调交互的时间顺序;3、可以直观的描述并发进程。

三、组成元素有哪些?1. ⾓⾊(Actor)系统⾓⾊,可以是⼈、机器、其他系统、⼦系统;在时序图中⽤表⽰。

2. 对象(Object)(1)对象的三种命名⽅式第⼀种⽅式包括对象名和类名,例如:直播课时:课时,在时序图中,⽤“对象:类”表⽰;第⼆种⽅式只显⽰类名,即表⽰它是⼀个匿名对象,例如: :课程;在时序图中,⽤“:类”表⽰;第三种⽅式只显⽰对象名不显⽰类名,例如:讲师;在时序图中,⽤“对象”表⽰。

(2)命名⽅式的选择三种命名⽅式均可,哪种最容易让阅读该时序图的⼈理解,就选择哪种。

(3)对象的排列顺序对象的左右顺序并不重要,但是为了作图清晰整洁,通常应遵循以下两个原则:把交互频繁的对象尽可能的靠拢;2.把初始化整个交互活动的对象放置在最左端。

3. ⽣命线(Lifeline)在时序图中表⽰为从对象图标向下延伸的⼀条虚线,表⽰对象存在的时间。

4. 控制焦点(Focus of Control)⼜称为激活期,表⽰时间段的符号,在这个时间段内对象将执⾏相应的操作。

它可以被理解成C语⾔语义中⼀对花括号{ }中的内容;⽤⼩矩形表⽰。

5. 消息(Message)消息⼀般分为同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message)。

Rational Rose顺序图(序列图)的建模步骤

Rational Rose顺序图(序列图)的建模步骤

序列图的建模步骤1.创建和删除序列图1.1 创建序列图新建一个序列图的方式有两种:1.1.1 在逻辑视图中增加序列图1)一般情况下,序列图属于系统的逻辑模型,因此可以使用“Logical View”的右键菜单——〉“New”——〉“Sequence Diagram”,如下图所示:然后输入序列图的名称,如下图所示:接着双击新增的序列图名称,开始输入序列图,如下图所示:1.1.2 在用例视图中增加序列图序列图主要是用于对用例的描述,在此种目的下新增序列图的方式也是有两种:2.1)直接在“Use Case View”下的相应用例上通过右键菜单——〉“New”——〉“Sequence Diagram”菜单项新建一个序列图,如下图所示:输入序列图的名称,如下图所示:输入完序列图的名称后,双击此序列图的名称开始输入序列图的内容。

2.2)在用例图中使用用例的属性窗口来新增序列图。

如下图所示,在用例“浏览课件”的“Specification”属性窗口中的“Diagrams”项目下,通过右键菜单——〉“Insert Sequence Diagram”,输入序列图的名称,如下图所示:双击此序列图名称,进入序列图的编辑界面。

1.2 删除序列图不管是在逻辑视图(Logical View)还是在用例视图(Use Case View),删除序列图的方式都是一样的。

都是选中需要删除的序列图,右键菜单——〉“Delete”,即可直接删除,如下图所示。

注意,在Rational Rose2003环境下,所有的删除操作都是没有提示的。

1.3 修改序列图的名称不管是在逻辑视图(Logical View)还是在用例视图(Use Case View),修改序列图名称的方式都是一样的。

都是选中需要修改名称的序列图,右键菜单——〉“Rename”,如下图所示:2.增加和删除对象2.1 增加对象在序列图中,增加对象的方式主要有两种:2.1.1 使用原有的模型元素作为序列图的对象使用拖放的方式把原有的模型元素作为序列图的对象,如下图所示:注意:可以被拖放的模型元素有参与者(Actor)和类(Class)这两种模型元素。

UML 序列图 Sequence Diagram

UML 序列图 Sequence Diagram

A、Sequence Diagram(序列图)描述对象如何交互的。

并将重点放在消息序列上,描述消息如何在对象之间发送和接收的。

序列图有两个坐标轴:纵坐标显示时间,横坐标显示对象。

序列图横坐标上是和序列有关的对象,每个对象表示方法是写有对象名或类名的矩形,纵向的虚线表示对象在序列中执行的情况(发送和接收消息,对象的活动)。

对象之间的通信用水平的消息线来表示。

B、序列图的模型元素B.1、Actor(参与者)在序列图中Actor用于描述用户的角色。

用户发起事件流。

B.2、Lifeline(参与者)在互动时LifeLine是一个特别的参与者,它代表一个不同的连接元素。

它是一个实例。

B.3、Boundary(边界)Boundary用于为系统边界建模。

通常表示一个用户屏幕。

它是MVC模式(Model-View-Controller)中的View。

B.4、Control(控制)Control用于为一个控制实体建模。

它组织和安排其它活动和元素。

它是MVC模式(Model-View-Controller)中的Controller。

B.5、Entity(实体)Entity用于为存储或持久性机制建模。

它在系统中捕获信息和知识。

它是MVC模式(Model-View-Controller)中的Model。

B.6、Fragment(碎片)组合碎片表示为一块互动控制。

其相应的布尔条件是已知的相互作用的制约。

B.7、EndPoint(结束点)EndPoint表示序列中的丢失。

B.8、Diagram Gate(图片门)它是一个简单的图形化方式用于表明在互动碎片上的一个点可以流入或流出消息。

C、序列图的关系C.1、Message(消息)Message表明两个元素之间的信息流和控制流。

它可用在Timing图, Sequence图Communication图(不能用于Interaction Overview图)中用来表示系统行为。

若在两个类或实例化类之间,那操作的相关列表用于指定事件。

序列图——精选推荐

序列图——精选推荐

序列图(Sequence Diagram,又称为顺序图)。

序列图是一个用来记录系统需求,和整理系统设计的好图。

序列图是如此好用的理由是,因为它按照交互发生的时间顺序,显示了系统中对象间的交互逻辑。

图的目的序列图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互。

很象类图,开发者一般认为序列图只对他们有意义。

然而,一个组织的业务人员会发现,序列图显示不同的业务对象如何交互,对于交流当前业务如何进行很有用。

除记录组织的当前事件外,一个业务级的序列图能被当作一个需求文件使用,为实现一个未来系统传递需求。

在项目的需求阶段,分析师能通过提供一个更加正式层次的表达,把用例带入下一层次。

那种情况下,用例常常被细化为一个或者更多的序列图。

组织的技术人员能发现,序列图在记录一个未来系统的行为应该如何表现中,非常有用。

在设计阶段,架构师和开发者能使用图,挖掘出系统对象间的交互,这样充实整个系统设计。

序列图的主要用途之一,是把用例表达的需求,转化为进一步、更加正式层次的精细表达。

用例常常被细化为一个或者更多的序列图。

序列图除了在设计新系统方面的用途外,它们还能用来记录一个存在系统(称它为“遗产”)的对象现在如何交互。

当把这个系统移交给另一个人或组织时,这个文档很有用。

基础序列图的主要目的是定义事件序列,产生一些希望的输出。

重点不是消息本身,而是消息产生的顺序;不过,大多数序列图会表示一个系统的对象之间传递的什么消息,以及它们发生的顺序。

图按照水平和垂直的维度传递信息:垂直维度从上而下表示消息/调用发生的时间序列,而且水平维度从左到右表示消息发送到的对象实例。

生命线当画一个序列图的时候,放置生命线符号元件,横跨图的顶部。

生命线表示序列中,建模的角色或对象实例。

1 生命线画作一个方格,一条虚线从上而下,通过底部边界的中心(图3)。

生命线名字放置在方格里。

图3: 用于一个实体名为freshman的生命线的Student类的一个例子在如图3所示的例子中,生命线表示类Student的实体,它的实体名称是freshman。

序列图1):什么是序列图?序列图带来的好处?a):序列图主要用于按照交互

序列图1):什么是序列图?序列图带来的好处?a):序列图主要用于按照交互

序列图
1):什么是序列图?序列图带来的好处?
a):序列图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互.
b): 序列图除了在设计新系统方面的用途外,它们还能用来记录一个存在系统(称它为“遗产”)的对象现在如何交互。

当把这个系统移交给另一个人或组织时,这个文档很有用
2):序列图中的主要元素
a):框架:
b):生命线:放置生命线符号元件,横跨图的顶部。

生命线表示序列中的角色或对象实例
生命线画作一个方格,一条虚线从上而下, 生命线命名标准按照如下格式:
实体名 : 类名
当有划线时,意味着序列图中的生命线代表一个类的特定实体
如果生命线正在表现XXX类的一个匿名例图,生命线会是: “XXX”。

c):消息: 序列图的第一个消息总是从顶端开始,并且一般位于图的左边。

然后继发的消息加入图中,稍微比前面的消息低些.
消息/方法名字放置在带箭头的线上面, 表示接收对象的类实现的一个操作/方法
返回消息是可选择的;一个返回消息画作一个带开放箭头的虚线,向后指向来源的生命线,在这条虚线上面,你放置操作的返回值
异步消息: 一个异步消息和一个同步的画法类似,但是消息画的线带一个棍形矛头
d):约束:(针对一条消息) 在一个序列图上画一个约束,你把约束元件放在约束的消息线上,消息名字之前
e):组合碎片
变体:alt
选择项:opt
循环:loop
跳转:break。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
序列图
学习内容



序列图的基本概念 序列图的组成 序列图中的项目相关概念 创建序列图 创建序列图案例分析
序列图的基本概念
1. 序列图的定义


在UML的表示中,序列图将交互关系表示为一 个二维图。其中,纵向是时间轴,时间沿竖线向 下延伸。横向代表了在协作中各独立对象的角色。 角色使用生命线进行表示,当对象存在时,生命 线用一条虚线表示,此时对象不处于激活状态, 当对象的过程处于激活状态时,生命线是一个双 道线。 序列图中的消息使用从一个对象的生命线到另一 个对象生命线的箭头表示,箭头以时间顺序在图 中从上到下排列。
创建序列图
3. 创建消息

在序列图中添加对象与对象之间的简单消息的步骤如下: 1. 选择序列图的图形编辑工具栏中的图标,或者选择菜单栏 “Tools”(工具)中“Create”(新建)下的“Object Message” 选项,此时的光标变为“↑”符号。 2. 单击需要发送消息的对象。 3. 将消息的线段拖动到接收消息的对象中。 4. 在线段中输入消息的文本内容。 5. 双击消息的线段,弹出设置消息规范的对话框,在弹出的对 话框中,在“General”选项卡中可以设置消息的名称等属性,消 息的名称也可以是消息接收对象的一个执行操作,我们在名称的 下列菜单中选择一个或从新创建一个即可,我们称之为消息的绑 定操作。 6. 如果需要设置消息的同步信息,也就是说设置消息成为简单 消息、同步消息、异步消息、返回消息、过程调用、阻止消息和 超时消息等,可以在“Detail”选项卡中进行设置,还可以设置以 消息的频率。
序列图的组成
4. 消息


消息(Messages)是从一个对象(发送者)向另一个或几个其他对 象(接收者)发送信号,或由一个对象(发送者或调用者)调用另一 个对象(接收者)的操作。 它可以有不同的实现方式,比如过程调用、活动线程间的内部通讯、 事件的发生等。
序列图中的项目相关概念
1. 创建与销毁对象
创建序列图
1. 创建对象

创建一个新的类图,可以通过以下方式进行。 1. 右键单击浏览器中的Use Case View(用例 视图)、Logical View(逻辑视图)或者位于这 两种视图下的包。 2. 在弹出的菜单中,选中“New”(新建)下的 “Sequence Diagram”(序列图)选项。 3. 输入新的序列名称。 4. 双击打开浏览器中的序列图。
2. 生命线



生命线(Lifeline)是一条垂直的虚线,用来表示序列图中的对象在一段时间 内的存在。 每个对象的底部中心的位置都带有生命线。生命线是一个时间线,从序列图 的顶部一直延伸到底部,所用时间取决于交互持续的时间,也就是说生命线 表现了对象存在的时段。 对象与生命线结合在一起称为对象的生命线。对象存在的时段包括对象在拥 有控制线程时或被动对象在控制线程通过时存在。当对象在拥有控制线程时, 对象被激活,作为线程的根。
创建序列图
2. 创建生命线



当对象被创建后,生命线便 存在。当对象被激活后,生 命线的一部分虚线变成细长 的矩形框。 在Rational Rose 2003中, 是否将虚线变成矩形框是可 选的,我们可以通过菜单栏 设置是否显示对象生命线被 激活时的矩形框。 设置是否显示对象生命线被 激活的矩形框步骤为:在菜 单栏中选择“Tools”(工具) 下的“Options”(选项)选 项,在弹出的对话框中选择 “Diagram”(图)选项卡, 选择或取消“Focus of control”选项。
序列图中的项目相关概念
2. 分支与从属流



在UML中,存在两种方式可以来修改序列图中消息的控制 流,分别是:分支和从属流。 分支是指的是从同一点发出多个消息的并指向不同的对象, 根据条件是否互斥,可以有条件和并行两种结构。由于序 列图只表示某一个活动按照时间顺序的经历过程,所以在 Rational Rose 2003中,对序列图的分支画法没有明显 的支持。 从属流指的是从同一点发出多个消息指向同一个对象的不 同生命线。从属流在Rational Rose 2003中不支持,因 为添加从属流以后会明显增加序列图的复杂度。
序列图的组成
3. 激活


序列图可以描述对象的激活(Activation),激活是对象操作的执行, 它表示一个对象直接地或通过从属操作完成操作的过程。它对执行的 持续时间和执行与其调用者之间的控制关系进行建模。 激活在序列图中用一个细长的矩形框表示,它的顶端与激活时间对齐 而底端与完成时间对齐。被执行的操作根椐不同风格表示成一个附在 激活符号旁或在左边空白处的文字标号。
创建序列图
4. 创建对象与销毁对象

由于创建对象操作也是消息的一种,我们仍然可 以通过发送消息的方式创建对象。在序列图的图 形表示中,和其它对象不一样的是,其它对象通 常位于图的顶部,被创建的对象通常位于图的中 间部位。
创建序列图

销毁对象表示对象生命线的结束,在对象生命线中使用一 个“X”来进行标识。给对象生命线中添加销毁标记的步骤 如下: 1. 在序列图的图形编辑工具栏中选择 按钮,此时的 光标变为“+”符号。 2. 单击欲销毁对象的生命线,此时该标记在对象生命线 中标识。该对象生命线自销毁标记以下的部分消失。



创建一个对象指的是发送者发送一个实例化消息后实例化对象的结果。 销毁对象指的是将对象销毁并回收其拥有的资源,它通常是一个明确的动作, 也可以是其它动作、约束或垃圾回收机制的结果。 在序列图中,创建对象操作的执行使用消息的箭头表示,箭头指向被创建对 象的框。 在序列图中,对象被销毁是使用在对象的生命线上画大×表示,在销毁新创 建的对象,或者序列图中的任何其他对象时,都可以使用。它的位置是在导 致对象被销毁的信息上,或者在对象自我终结的地方。
序列图的基本概念
2. 序列图在项目开发里的作用

序列图作为一种描述在给定语境中消息是如何在对象间传 递的图形化方式,在使用其进行建模时,主要可以将其用 途分为以下三个方面: 1. 确认和丰富一个使用语境的逻辑表达。一个系统的使 用情境就是系统潜在的使用方式的描述,也就是它的名称 所要描述的。一个使用情境的逻辑可能是一个用例的一部 分,或是一条控制流。 2. 细化用例的表达。序列图的主要用途之一,就是把用 例表达的需求,转化为进一步、更加正式层次的精细表达。 用例常常被细化为一个或者更多的序列图。 3. 有效地描述如何分配各个类的职责以及各类具有相应 职责的原因。我们可以根据对象之间的交互关系来定义类 的职责,各个类之间的交互关系构成一个特定的用例。
序列图的组成
1. 对象
• 序列图中的对象可以是系统的参与者或者任何有效的系统 对象。对象的表示形式也和对象图中的对象的表示方式一 样,使用包围名称的矩形框来标记,所显示的对象及其类 Байду номын сангаас名称带有下划线,二者用冒号隔开,使用“对象名 : 类名”的形式,对象的下部有一条被成为“生命线”的垂 直虚线。
序列图的组成
创建序列图案例分析
2. 确定序列对象

建模序列图的下一步是从左到右布置在该工作流程中所有 的参与者和对象,同时也包含要添加消息的对象生命线。
创建序列图案例分析
3. 创建完整的序列图
创建序列图案例分析
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方法发往客户端,并调用closeConn方法关闭 网络连接。 (8)客户端类Client通过recevice方法接收到来自服务器端的返回消息, 将其返回到新增好友界面通知用户,并调用closeNet方法关闭网络连 接。
相关文档
最新文档