UML序列图详解
UML的序列性图

UML的序列性图UML的序列图(Sequence Diagram)是一种用于描述系统中对象之间交互的图表工具。
它被广泛应用于软件开发过程中的分析和设计阶段,为软件项目团队成员提供了一种可视化的方式来理解和设计系统中的各个部分之间的通信。
在本文中,我们将详细介绍UML的序列图及其相关概念。
序列图是一种非常直观的图表工具,用于呈现系统中对象之间的交互。
在序列图中,每个对象被表示为一个矩形,矩形中包含该对象的名称。
对象之间的交互被表示为消息,每个消息都有一个箭头指向接收者对象。
此外,每个消息都有一个标签,用于表示消息的类型(例如,方法调用、返回等)。
序列图还可以包括参与者(Actor),它们表示与系统进行交互的外部实体。
序列图可以帮助团队成员更好地理解系统的运行方式。
通过序列图,设计人员可以了解每个对象如何与其他对象进行交互,以及它们之间的顺序和时间限制。
由于序列图具有直观性和易于理解的特点,因此它被广泛应用于软件开发项目的不同阶段,包括需求分析、设计和测试。
下面我们将介绍序列图中的一些重要概念和使用技巧:1. 对象序列图中的对象通常表示系统中的类或组件。
每个对象都有一个名称和一组可用的操作。
通常情况下,对象在序列图中表示为一个垂直的矩形,矩形中包含对象的名称。
2. 消息序列图中的消息表示对象之间的通信。
每个消息都有一个发送方和一个接收方,通常由一条箭头表示。
消息还可以包括一个标签,用于表示消息类型(例如,方法调用、返回等)。
在序列图中,消息通常表示为从发送方对象到接收方对象的垂直线。
3. 虚线在序列图中,一些线可能会是虚线,而不是实线。
虚线通常用于表示控制流或条件语句。
例如,如果一个对象只有在接收到某个消息时才会执行操作,那么这个操作被表示为一个虚线箭头。
4. 垂直参考线序列图通常使用垂直参考线来表示时间线。
这使得您可以更清晰地了解系统中对象之间的顺序和时间限制。
垂直参考线应该垂直于序列图。
5. 生命周期序列图通常还包括一个对象的生命周期。
UML科普文,一篇文章掌握14种UML图

UML科普⽂,⼀篇⽂章掌握14种UML图前⾔上⼀篇⽂章写了⼀篇建造者模式,其中有⼏个UML类图,有的读者反馈看不懂了,我们今天就来解决⼀哈。
什么是UML?UML是Unified Model Language的缩写,中⽂是统⼀建模语⾔,是由⼀整套图表组成的标准化建模语⾔。
为什么要⽤UML?通过使⽤UML使得在软件开发之前,对整个软件设计有更好的可读性,可理解性,从⽽降低开发风险。
同时,也能⽅便各个开发⼈员之间的交流。
UML提供了极富表达能⼒的建模语⾔,可以让软件开发过程中的不同⼈员分别得到⾃⼰感兴趣的信息。
Page-Jones 在《Fundamental Object-Oriented Design in UML》⼀书中总结了UML的主要⽬的,如下:1. 为⽤户提供现成的、有表现⼒的可视化建模语⾔,以便他们开发和交换有意义的模型。
2. 为核⼼概念提供可扩展性 (Extensibility) 和特殊化 (Specialization) 机制。
3. 独⽴于特定的编程语⾔和开发过程。
4. 为了解建模语⾔提供⼀个正式的基础。
5. ⿎励⾯向对象⼯具市场的发展。
6. ⽀持更⾼层次的开发概念,如协作,框架,模式和组件。
7. 整合最佳的⼯作⽅法 (Best Practices)。
UML图有哪些?UML图分为结构图和⾏为图。
结构图分为类图、轮廓图、组件图、组合结构图、对象图、部署图、包图。
⾏为图⼜分活动图、⽤例图、状态机图和交互图。
交互图⼜分为序列图、时序图、通讯图、交互概览图。
UML图概览什么是类图?【概念】类图是⼀切⾯向对象⽅法的核⼼建模⼯具。
类图描述了系统中对象的类型以及它们之间存在的各种静态关系。
【⽬的】⽤来表⽰类、接⼝以及它们之间的静态结构和关系。
在类图中,常见的有以下⼏种关系。
泛化(Generalization)【泛化关系】是⼀种继承关系,表⽰⼦类继承⽗类的所有特征和⾏为。
【箭头指向】带三⾓箭头的实线,箭头指向⽗类。
面向对象与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顺序图介绍

介绍顺序图也称序列图,主要用来系统中的某个流程的详细步骤。
顺序图能够给出流程中一系列对象的交互顺序。
通过顺序图可以让我们更好的了解如何实现某个用例的方法。
我们知道用例图用来描述系统的功能需求。
而顺序图清晰的描述了某个用例也就是系统功能的的实现方法。
详解在顺序图中包含的元素:对象:用来标识流程中的详细步骤中的对象。
活动条:用来标识当前对象是活动的,如果想表示某个对象是活动的,那么必须使用一个虚线+活动图的形式来构建。
例如我们现在要标示一个简单的做公交车的刷卡流程:IC卡刷卡操作。
相关解释说明:公交卡,首先放在刷卡终端上,终端读取卡中的余额信息,然后刷卡终端与终端中的扣款程序对象交互,扣款程序根据读取的余额信息,与刷卡终端中的固定刷卡金额对比,如果当前IC卡的余额大雨刷卡终端的固定金额则,扣除金额,并且返回一个消息,提示刷卡成功的操作。
途中的实线表示调用被调用对象的方法,虚线表示当被调用对象执行成功后,返回的虚线上表示返回值的逻辑名称,这样可以提高了可读性。
在公交卡与活动条之间,应有一个虚线链接。
在上图中我们使用了活动条,活动条作为生命线的一部分。
我们并没有定义对象的创建和销毁,因此我们来看UML建模语言提供的描述对象的创建与销毁实例。
上图中的X符号的图标代表的时候对象的销毁。
创建对象通过new来创建,上图中,我用中文描述“创建对象”来完成对象的创建,那么在生命线下的的X符号代表销毁对象,从内存中移除对象。
当然这个对象的销毁对不同的开发语言有这不同的处理方式。
C++中的销毁对象,必须调用析构函数来销毁对象。
C#与JAVA语言中则只是说明当前需要销毁的对象没有被其他的对象引用,那么这类语言编译器提供垃圾回收器来完成回收。
注意:当某个对象引用了另外一个对象,该对象有责任销毁被引用对象并且必须显示销毁该被引用对象时,那么必须要显示的发送被引用对象销毁的通知消息。
白话文来说就是显示的调用被引用对象的销毁方法。
UML之顺序图

UML之顺序图⼀定义顺序图是将交互关系表⽰为⼀个⼆维图。
纵向是时间轴(⽣命线),时间沿竖线向下延伸。
横向轴代表了在协作中各独⽴对象的类元⾓⾊。
类元⾓⾊⽤⽣命线表⽰。
当对象存在时,⾓⾊⽤⼀条虚线表⽰,当对象的过程处于激活状态时,⽣命线是⼀个双道线;⼆顺序图的要素活动者,对象、⽣命线、控制焦点、消息活动者:活动的发起⼈活着活动的承受者。
对象:活动中交互的实体,三种表⽰如下:⽣命线:描述对象的⽣存周期,对象下⽅的虚线就是⽣命线,如上图。
控制焦点:指活动者或对象执⾏状态的时间段:消息:消息⽤于描述对象间交互的⽅式和内容:1.同步消息:⼀个对象向另⼀个对象发出同步消息后,将处于阻塞状态,⼀直等到另⼀个对象的回应。
2.异步消息:⼀个对象向另⼀个对象发出异步消息后,这个对象可以进⾏其他的操作,不需要等到另⼀个对象的响应。
3.返回消息:同步消息的返回消息4.⾃关联消息:⽤来描述对象内部函数的互相调⽤。
1.条件判断:⽤于描述代码中if…else…这种结构标记为“alt” 例如:2.可选:是⼀种特殊的“条件判断”,它只是⼀个if,没有else if或else 可选的标记为:opt 例如:3.循环:是指代码中的for、while之类的语句块。
循环的标记为:loop例如:下图中[m,n]是指⾄少执⾏m次,最多执⾏n次4.同步:⽤于描述多线程的情况。
同步的标记是:par 例如:顺序图的引⽤:在⼀个顺序图中,可以引⽤另⼀个顺序图,其引⽤⽅式类似于复合⽚段,标签为:ref 例如:三:画顺序图的步骤1. 确定交互的范围2. 确定参与交互的活动者与对象3. 确定活动者、对象的⽣存周期4. 确定交互中产⽣的消息5. 细化消息的内容四:酒店预订的⼀个⽤例(寻找酒店)代码实例:五:⽤例图、活动图、时序图之间的关系六:类图与时序图之间的关系类图描述系统的静态结构,时序图描述系统的动态⾏为。
若出现了⼀个新的消息(不是类中的操作),则需要为类添加⼀个新的操作。
UML序列图总结

UML序列图总结序列图主要用于展示对象之间交互的顺序。
序列图将交互关系表示为一个二维图。
纵向是时间轴,时间沿竖线向下延伸。
横向轴代表了在协作中各独立对象的类元角色。
类元角色用生命线表示。
当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。
消息用从一个对象的生命线到另一个对象生命线的箭头表示。
箭头以时间顺序在图中从上到下排列。
序列图中涉及的元素:1.生命线:生命线名称可带下划线。
当使用下划线时,意味着序列图中的生命线代表一个类的特定实体。
2.同步消息发送人在它继续之前,将等待同步消息响应3.异步消息在发送方继续之前,无需等待响应的消息4.注释5.约束约束的符号很简单;格式是: [Boolean Test]6.组合片段组合片段用来解决交互执行的条件及方式。
它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。
常用的组合片段有:a.抉择(Alt)抉择用来指明在两个或更多的消息序列之间的互斥的选择,相当于经典的if..else..。
抉择在任何场合下只发生一个序列。
可以在每个片段中设置一个临界来指示该片段可以运行的条件。
else的临界指示其他任何临界都不为True 时应运行的片段。
如果所有临界都为False 并且没有else,则不执行任何片段。
b.选项(Opt)包含一个可能发生或不发生的序列c.循环(Loop)片段重复一定次数。
可以在临界中指示片段重复的条件。
d.并行(Par)下表列出了常用的组合片段:。
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、协作图与顺序图的区别和联系协作图和顺序图都表示出了对象间的交互作用,但是它们侧重点不同顺序图清楚地表示了交互作用中的时间顺序(强调时间),但没有明确表示对象间的关系。
UML中数据流图,用例图,类图,对象图,角色图,活动图,序列图详细讲述保存供参考

UML中数据流图,⽤例图,类图,对象图,⾓⾊图,活动图,序列图详细讲述保存供参考这个⽂章,是我在急需的情况下在园⼦⾥搜索到的,原创作者是:DO-websoftware,为了⾃⼰看⽅便,所以复制到我的空间,希望原创者不要介意哦~~~~很详细的介绍,对我的帮助很⼤,谢谢哦。
类图,对象图,⾓⾊图:⼀、UML中基本的图范畴:在 UML 2 中有⼆种基本的图范畴:结构图和⾏为图。
每个 UML 图都属于这⼆个图范畴。
结构图的⽬的是显⽰建模系统的静态结构。
它们包括类,组件和(或)对象图。
另⼀⽅⾯,⾏为图显⽰系统中的对象的动态⾏为,包括如对象的⽅法,协作和活动之类的内容。
⾏为图的实例是活动图,⽤例图和序列图。
⼆、UML中的类图:1.类图的表⽰:类的 UML 表⽰是⼀个长⽅形,垂直地分为三个区,如图 1 所⽰。
顶部区域显⽰类的名字。
中间的区域列出类的属性。
底部的区域列出类的操作。
在⼀个类图上画⼀个类元素时,你必须要有顶端的区域,下⾯的⼆个区域是可选择的(当图描述仅仅⽤于显⽰分类器间关系的⾼层细节时,下⾯的两个区域是不必要的)。
描述:顶部区域显⽰类的名字。
中间的区域列出类的属性。
底部的区域列出类的操作。
当在⼀个类图上画⼀个类元素时,你必须要有顶端的区域,下⾯的⼆个区域是可选择的(当图描述仅仅⽤于显⽰分类器间关系的⾼层细节时,下⾯的两个区域是不必要的)。
·类名:如果是抽象类,则采⽤斜体·类属性列表:name : attribute type 如 flightNumber : Integer,这是最常见的表达形式name : attribute type = default value 如 balance : Dollars = 0,这是带有默认值的表达形式·类⽅法列表:name(parameter list) : type of value returned注意:在业务类图中,属性类型通常与单位相符,这对于图的可能读者是有意义的(例如,分钟,美元,等等)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从用例中识别交互过程
识别参与交互过程的对象 为每一个对象设置生命线,并确定对象的存
在期限 从引发交互的初始消息开始,在对象生命线 上依次画出交互的消息; 如果需要,可以给消息增加时间约束,以及前 置条件和后置条件
用例:借书 参与者:管理员,借阅者 基本事件流: 1. 借阅者带着借书证和书来到柜台。 2. 管员输入借阅者的借书证编码。 3. 系统检查借阅者的合法性。 4. 系统显示借阅者的信息。 5. 系统检查借阅者的借阅信息。 6. 管员输入所借图书的条码。 7. 系统显示所借图书的信息,并登记图书。 管员重复6~7步,直到结束。 8. 系统登记借阅者的本次借阅信息,并显示。
超时消息指消息发送者发出消息给接收者, 并按指定时间等待,如果接收者无法在指定 时间内接收这个消息,则发送者放弃这个消 息。
超时消息
SourceObj 1: 2: 3: 4: 5: 6: 7:
TargetObj
Simple和Asynchronous(异步)同义
Synchronous (同步)和Procedure Call同 义
序列图的基本概念
Stylish templates can be a valuable aid to creative professionals.
概念
序列图(顺序图、时序图)是用于表现一个 交互,该交互是一个协作中的各类角色间的 一组消息的交换,但重于强调时间顺序。 交互(Interaction) 是指在具体语境中由为实现某个目标的一组 对象之间进行交互的一组消息所构成的行为
图示
图示
时序图中,消息的阅读顺序是严格自上而下的
使用序列图描述进行银行取款业务时,顾客
同银行业务员之间的交互过程
简单消息(包括反身消息)
同步消息 异步消息 返回消息(可选)
同步和异步的实例
同步:你叫我去吃饭, 我听到了就和你去吃 饭;如果没有听到, 你就不停的叫,直到 我告诉你听到了,才一起去吃饭。 异步:你叫我去吃饭,叫一声后自己就先去 吃饭,我听到后可能立即走,也可能等到有 空的时候去吃饭,也可能根本就没听到。
作用
序列图作为一种描述在给定语境中消息是如 何在对象间传递的图形化方式,在使用其进 行建模时,可以将其用途分为以下3个方面。 1确认和丰富一个使用语境的逻辑表达。 2细化用例的表达。 3有效地描述如何分配各个类的职责以及各 类具有相应职责的原因。
序列图的组成要素
Stylish templates can be a valuable aid to creative professionals.
识别参与交互的对象
借阅者、图书管理员 系统界面、业务处理程序、数据库
对图书管理系统中的还书用例进行细化,使用
序列图将还书的交互过程和交互细节展现出来。
要求:交互过程完整,逻辑合理、图例使用正
确,序列图粒度适中 ,注意消息类型的区分和 消息分支的情况
结论
以后你们请我吃饭的时候就要使用同 步模式,我请你们吃饭的时候就用异 步的模式,这样我可以省点钱。
① 调用消息( Procedure Call )
调用消息(也称为同步消息)的发送者把控 制传递给接收者,然后停止活动,直到消息 接收者放弃或返回控制。
调用消息
②异步消息( Asynchronous )
创建对象
创建一个对象指的是发送者发送一个实例化 消息后实例化对象的结果
销毁对象
销毁对象指的是将对象销毁并回收其拥有的 资源,它通常是一个明确的动作,也可以是 其他动作、约束或垃圾回收机制的结果。
图示
在UML中存在两种方式可以来修改序列图中 消息的控制流,分别是:分支和从属流。
分支
图示
. .
激活期
图示
概念
消息(Messages)是从一个对象(发送者) 向另一个或其他几个对象(接收者)发送信 号,或由一个对象(发送者或调用者)调用 另一个对象(接收者)的操作
对象之间的交互是通过互发消息来实现的。 一个对象可以请求(要求)另一个对象做 某件事件。 消息从源对象指向目标对象。消息一旦发 送便将控制从源对象转移到目标对象。
对象(Object)
生命线(Lifeline) 激活(Activation) 消息(Messages)
消息 对象
生命线
激活期
概念
序列图中的对象和对象图中的对象的 概念一样,都是类的实例。序列图中 的对象可以是系统的参与者或者任何 有效的系统对象
图示
图示
:类名
对象名:类名
1.对于上面的这个用例图,我们能不能从用 例图了解借书这个用例的具体的操作步骤和 流程? 2.在详细设计阶段,借书功能需要用MVC模式 实现,我们通常用什么方式来描述各个层次 之间的调用关系?
学习序列图的基本概念 学习序列图的组成要素
Stylish templates can be a valuable aid to creative professionals.
用例:借书 扩展事件流: 3a. 借阅者身份非法,则提示,本次拒借。 5a. 该借阅者所借图书中有超期的, 则提示, 本次拒借。
5b. 该借阅者所借图书数量超过了上限, 则 提示, 本次拒借。
识别交互过程
分析事件流,找到事件流中存在哪些对象之 间的交互? 可见的交互部分 借阅者与管理员的交互 管理员与系统界面 不可见的交互部分 系统界面同后台业务处理程序 业务处理程序与数据库
异步消息的发送者通过消息把信号传递给 接收者,然后继续自己活动,不等待接收者 返回消息或控制。
异步消息
③返回消息( Return )
返回消息表示从消息接受对象返回信
息。
返回消息
④阻止消息
阻止消息指消息发送者发出消息给接收者, 如果接收者无法立即接收这个消息,则发送 者放弃这个消息。
阻止消息
⑤超时消息
:对象名 匿名对象
对象的左右排列位置
对象的左右顺序并不重要,但是为了图面的 清晰整洁起见,通常应遵循以下两个原则: (1)把交互频繁的对象尽可能地靠拢 (2)把初始化整个交互活动的对象(有时是 一个参与者)放置在最左边
概念
生命线(Lifeline)是一条垂直的虚线, 用来表示序列图中的对象在一段时间 内的存在。
图示
图示
对象生命线
× 表示对象 的撤销
概念
序列图可以描述对象的激活,激活是 对象操作的执行,它表示一个对象直 接或通过从属操作完成操作的过程
激活期
当一个对象没有被激活时,该对象处于休 眠状态,什么事都不做,但它仍然存在, 等待新的消息来激活它。 当一条消息被传递给对象的时候,它会触 发该对象的某个行为,这时就说该对象被 激活了。 当一个对象处于激活期时,表明该对象正 在执行某个动作。
分支是指从同一点发出的多个消息并指向不 同的对象,根据条件是否互斥,可以有条件 和并行两种结构。 从属流 从属流指的是从同一点发出多个消息指向同 一个对象的不同生命线。
序列图构建实例
Stylish templates can be a valuable aid to creative 阻止(Balking)
接受者如果无法立即接收,则发送者放弃消息;
超时(Timeout):
如果接受者无法在指定时间内接收,则发送者 放弃消息。
判断下列交互的类型
a) 我和小明打了一通电话 b) 我给小明打电话没打通 c) 我给小明发了一封邮件 d) 我用QQ和小明聊天 e) 我让小明回宿舍帮我拿本书,我在楼底 下等他 f) 我把小明上次想找我借给他的书带给他 g) 编写一个类,调用集合对象Array的get方 法,系统提示找不到相关类的错误