UML序列图详解
- 格式:pptx
- 大小:566.07 KB
- 文档页数:46
UML的序列性图UML的序列图(Sequence Diagram)是一种用于描述系统中对象之间交互的图表工具。
它被广泛应用于软件开发过程中的分析和设计阶段,为软件项目团队成员提供了一种可视化的方式来理解和设计系统中的各个部分之间的通信。
在本文中,我们将详细介绍UML的序列图及其相关概念。
序列图是一种非常直观的图表工具,用于呈现系统中对象之间的交互。
在序列图中,每个对象被表示为一个矩形,矩形中包含该对象的名称。
对象之间的交互被表示为消息,每个消息都有一个箭头指向接收者对象。
此外,每个消息都有一个标签,用于表示消息的类型(例如,方法调用、返回等)。
序列图还可以包括参与者(Actor),它们表示与系统进行交互的外部实体。
序列图可以帮助团队成员更好地理解系统的运行方式。
通过序列图,设计人员可以了解每个对象如何与其他对象进行交互,以及它们之间的顺序和时间限制。
由于序列图具有直观性和易于理解的特点,因此它被广泛应用于软件开发项目的不同阶段,包括需求分析、设计和测试。
下面我们将介绍序列图中的一些重要概念和使用技巧:1. 对象序列图中的对象通常表示系统中的类或组件。
每个对象都有一个名称和一组可用的操作。
通常情况下,对象在序列图中表示为一个垂直的矩形,矩形中包含对象的名称。
2. 消息序列图中的消息表示对象之间的通信。
每个消息都有一个发送方和一个接收方,通常由一条箭头表示。
消息还可以包括一个标签,用于表示消息类型(例如,方法调用、返回等)。
在序列图中,消息通常表示为从发送方对象到接收方对象的垂直线。
3. 虚线在序列图中,一些线可能会是虚线,而不是实线。
虚线通常用于表示控制流或条件语句。
例如,如果一个对象只有在接收到某个消息时才会执行操作,那么这个操作被表示为一个虚线箭头。
4. 垂直参考线序列图通常使用垂直参考线来表示时间线。
这使得您可以更清晰地了解系统中对象之间的顺序和时间限制。
垂直参考线应该垂直于序列图。
5. 生命周期序列图通常还包括一个对象的生命周期。
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)【泛化关系】是⼀种继承关系,表⽰⼦类继承⽗类的所有特征和⾏为。
【箭头指向】带三⾓箭头的实线,箭头指向⽗类。
介绍顺序图也称序列图,主要用来系统中的某个流程的详细步骤。
顺序图能够给出流程中一系列对象的交互顺序。
通过顺序图可以让我们更好的了解如何实现某个用例的方法。
我们知道用例图用来描述系统的功能需求。
而顺序图清晰的描述了某个用例也就是系统功能的的实现方法。
详解在顺序图中包含的元素:对象:用来标识流程中的详细步骤中的对象。
活动条:用来标识当前对象是活动的,如果想表示某个对象是活动的,那么必须使用一个虚线+活动图的形式来构建。
例如我们现在要标示一个简单的做公交车的刷卡流程:IC卡刷卡操作。
相关解释说明:公交卡,首先放在刷卡终端上,终端读取卡中的余额信息,然后刷卡终端与终端中的扣款程序对象交互,扣款程序根据读取的余额信息,与刷卡终端中的固定刷卡金额对比,如果当前IC卡的余额大雨刷卡终端的固定金额则,扣除金额,并且返回一个消息,提示刷卡成功的操作。
途中的实线表示调用被调用对象的方法,虚线表示当被调用对象执行成功后,返回的虚线上表示返回值的逻辑名称,这样可以提高了可读性。
在公交卡与活动条之间,应有一个虚线链接。
在上图中我们使用了活动条,活动条作为生命线的一部分。
我们并没有定义对象的创建和销毁,因此我们来看UML建模语言提供的描述对象的创建与销毁实例。
上图中的X符号的图标代表的时候对象的销毁。
创建对象通过new来创建,上图中,我用中文描述“创建对象”来完成对象的创建,那么在生命线下的的X符号代表销毁对象,从内存中移除对象。
当然这个对象的销毁对不同的开发语言有这不同的处理方式。
C++中的销毁对象,必须调用析构函数来销毁对象。
C#与JAVA语言中则只是说明当前需要销毁的对象没有被其他的对象引用,那么这类语言编译器提供垃圾回收器来完成回收。
注意:当某个对象引用了另外一个对象,该对象有责任销毁被引用对象并且必须显示销毁该被引用对象时,那么必须要显示的发送被引用对象销毁的通知消息。
白话文来说就是显示的调用被引用对象的销毁方法。
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序列图总结序列图主要用于展示对象之间交互的顺序。
序列图将交互关系表示为一个二维图。
纵向是时间轴,时间沿竖线向下延伸。
横向轴代表了在协作中各独立对象的类元角色。
类元角色用生命线表示。
当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。
消息用从一个对象的生命线到另一个对象生命线的箭头表示。
箭头以时间顺序在图中从上到下排列。
序列图中涉及的元素:1.生命线:生命线名称可带下划线。
当使用下划线时,意味着序列图中的生命线代表一个类的特定实体。
2.同步消息发送人在它继续之前,将等待同步消息响应3.异步消息在发送方继续之前,无需等待响应的消息4.注释5.约束约束的符号很简单;格式是: [Boolean Test]6.组合片段组合片段用来解决交互执行的条件及方式。
它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。
常用的组合片段有:a.抉择(Alt)抉择用来指明在两个或更多的消息序列之间的互斥的选择,相当于经典的if..else..。
抉择在任何场合下只发生一个序列。
可以在每个片段中设置一个临界来指示该片段可以运行的条件。
else的临界指示其他任何临界都不为True 时应运行的片段。
如果所有临界都为False 并且没有else,则不执行任何片段。
b.选项(Opt)包含一个可能发生或不发生的序列c.循环(Loop)片段重复一定次数。
可以在临界中指示片段重复的条件。
d.并行(Par)下表列出了常用的组合片段:。
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中数据流图,⽤例图,类图,对象图,⾓⾊图,活动图,序列图详细讲述保存供参考这个⽂章,是我在急需的情况下在园⼦⾥搜索到的,原创作者是: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注意:在业务类图中,属性类型通常与单位相符,这对于图的可能读者是有意义的(例如,分钟,美元,等等)。
UML序列图详解(1)∙摘要:本文的重点是基础的UML图——序列图。
序列图是一个用来记录系统需求,和整理系统设计的好图。
序列图是如此好用的理由是,因为它按照交互发生的时间顺序,显示了系统中对象间的交互逻辑。
请注意,下面提供的例子正是以新的 UML 2 规范为基础。
∙标签:UML序列图∙Oracle帮您准确洞察各个物流环节本文的主要目的是继续把我们的重点放在基础UML图上;这个月,我们进一步了解序列图。
再次请注意,下面提供的例子正是以新的 UML 2 规范为基础。
图的目的序列图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互。
很象类图,开发者一般认为序列图只对他们有意义。
然而,一个组织的业务人员会发现,序列图显示不同的业务对象如何交互,对于交流当前业务如何进行很有用。
除记录组织的当前事件外,一个业务级的序列图能被当作一个需求文件使用,为实现一个未来系统传递需求。
在项目的需求阶段,分析师能通过提供一个更加正式层次的表达,把用例带入下一层次。
那种情况下,用例常常被细化为一个或者更多的序列图。
组织的技术人员能发现,序列图在记录一个未来系统的行为应该如何表现中,非常有用。
在设计阶段,架构师和开发者能使用图,挖掘出系统对象间的交互,这样充实整个系统设计。
序列图的主要用途之一,是把用例表达的需求,转化为进一步、更加正式层次的精细表达。
用例常常被细化为一个或者更多的序列图。
序列图除了在设计新系统方面的用途外,它们还能用来记录一个存在系统(称它为“遗产”)的对象现在如何交互。
当把这个系统移交给另一个人或组织时,这个文档很有用。
符号既然这是我基于 UML 2的 UML 图系列文章的第一篇,我们需要首先讨论对 UML 2 图符号的一个补充,即一个叫做框架的符号元件。
在 UML 2中,框架元件用于作为许多其他的图元件的一个基础,但是大多数人第一次接触框架元件的情况,是作为图的图形化边界。
当为图提供图形化边界时,一个框架元件为图的标签提供一致的位置。