`
cn_arthurs
  • 浏览: 327169 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

序列图

阅读更多

转载自:http://www.cnblogs.com/wangbin/archive/2009/05/31/1492644.html

 

 序列图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互。很象类图,开发者一般认为序列图只对他们有意义。然而,一个组织的业务人员会发现,序列图显示不同的业务对象如何交互,对于交流当前业务如何进行很有用。除记录组织的当前事件外,一个业务级的序列图能被当作一个需求文件使用,为实现一个未来系统传递需求。在项目的需求阶段,分析师能通过提供一个更加正式层次的表达,把用例带入下一层次。那种情况下,用例常常被细化为一个或者更多的序列图。

组织的技术人员能发现,序列图在记录一个未来系统的行为应该如何表现中,非常有用。在设计阶段,架构师和开发者能使用图,挖掘出系统对象间的交互,这样充实整个系统设计。

 序列图的主要用途之一,是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。序列图除了在设计新系统方面的用途外,它们还能用来记录一个存在系统(称它为“遗产”)的对象现在如何交互。当把这个系统移交给另一个人或组织时,这个文档很有用。

Java应用程序由许多类所构成,是Java实现面向对象应用程序的核心。类图主要描述Java应用程序中各种类之间的相互静态关系,如类的继承、抽象、接口以及各种关联。要利用UML设计Java应用程序,仅仅使用类图来描述这些静态关系,利用可视化工具,要实现Java应用程序的代码自动生成,是远远不够的。我们还必须描述各种类相互之间的协作关系、动态关系,如时间序列上的交互行为。其中UML序列图就是用来描述类与类之间的方法调用过程(或消息发送)是如何实现的。


一、UML中的新元素-框架:

在 UML 2中,框架元件用于作为许多其他的图元件的一个基础,但是大多数人第一次接触框架元件的情况,是作为图的图形化边界。当为图提供图形化边界时,一个框架元件为图的标签提供一致的位置。在 UML 图中框架元件是可选择的。



除了提供一个图形化边框之外,用于图中的框架元件也有描述交互的重要的功能, 例如序列图。在序列图上一个序列接收和发送消息(又称交互),能通过连接消息和框架元件边界,建立模型(如图 2 所见到)。




对于序列图,图的标签由文字“sd”开始。当使用一个框架元件封闭一个图时,图的标签需要按照以下的格式:图类型 图名称。

UML 规范给图类型提供特定的文本值。(举例来说,sd代表序列图,activity代表活动图,use case代表用例图)。


二、UML中的序列图:

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

在项目的需求阶段,分析师能通过提供一个更加正式层次的表达,把用例带入下一层次。那种情况下,用例常常被细化为一个或者更多的序列图。

序列图的主要用途之一,是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。序列图除了在设计新系统方面的用途外,它们还能用来记录一个存在系统(称它为“遗产”)的对象现在如何交互。

序列图的主要目的是定义事件序列,产生一些希望的输出。重点不是消息本身,而是消息产生的顺序;不过,大多数序列图会表示一个系统的对象之间传递的什么消息,以及它们发生的顺序。图按照水平和垂直的维度传递信息:垂直维度从上而下表示消息/调用发生的时间序列,而且水平维度从左到右表示消息发送到的对象实例。

1.生命线:

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



UML 的生命线命名标准按照如下格式: 实体名:类名

生命线名称带下划线。当使用下划线时,意味着序列图中的生命线代表一个类的特定实体,不是特定种类的实体(例如,角色)。序列图的实例名称有下划线,而角色名称没有。

一个生命线能用来表现一个匿名的或未命名的实体。当在一个序列图上,为一个未命名的实例建模时,生命线的名字采用和一个命名实例相同的模式;但是生命线名字的位置留下空白,而不是提供一个例图名字。
 

2.消息体:

为了显示一个对象(例如,生命线)传递一个消息给另外一个对象,你画一条线指向接收对象,包括一个实心箭头(如果是一个同步调用操作)或一个棍形箭头(如果是一个异步讯号)。消息/方法名字放置在带箭头的线上面。正在被传递给接收对象的消息,表示接收对象的类实现的一个操作/方法。



返回消息是可选择的;一个返回消息画作一个带开放箭头的虚线,向后指向来源的生命线,在这条虚线上面,你放置操作的返回值。为了要画一个调用本身的对象,如你平时所作的,画一条消息,但是不是连接它到另外的一个对象,而是你把消息连接回对象本身。





三、UML中的约束:




约束的符号很简单;格式是: 【Boolean Test】

四、UML中的新元素-组合碎片(变体方案、选择项、循环):

一个组合碎片用来把一套消息组合在一起,在一个序列图中显示条件分支。

1.变体:

变体用来指明在两个或更多的消息序列之间的、互斥的选择。一个变体的组合碎片元件使用框架来画。单词“alt”放置在框架的namebox里。然后较大的长方形分为 UML 2 所称的操作元。操作元被虚线分开。每个操作元有一个约束进行测试,而这个约束被放置在生命线顶端的操作元的左上部。如果操作元的约束等于“true”,然后那个操作元是要执行的操作元。


图 8作为一个变体的组合碎片如何阅读的例子,显示序列从顶部开始,即bank对象获取支票金额和帐户结余。此时,序列图中的变体组合碎片接管。因为约束“[balance >= amount]”,如果余额超过或等于金额,然后顺序进行bank对象传递 addDebitTransaction 和 storePhotoOfCheck 消息给account对象。然而,如果余额不是超过或等于金额,然后顺序的过程就是bank传递addInsuffientFundFee 和 noteReturnedCheck 消息给account对象,returnCheck 消息给它自身。因为“else”约束,当余额不大于或者等于金额时,第二个序列被调用。在变体的组合碎片中,不需要“else”约束;而如果一个操作元,在它上面没有一个明确的约束,那么将假定“else”约束。

2.选择项:

一个选择项用来为简单的“if then”表达式建模。(例如,如果架上的圈饼少于五个,那么另外做两打圈饼)。

选择项组合碎片符号与变体组合碎片类似,除了它只有一个操作元并且永不能有“else”约束以外(它就是如此,没有理由)。要画选择项组合,你画一个框架。文字“opt”是被放置在框架的 namebox 里的文本,在框架的内容区,选择项的约束被放置在生命线顶端上的左上角。 然后选择项的消息序列被放在框架的内容区的其余位置内。



注意:变体用于为if then else建模,选择项用于为if then建模,因为只有一个分支,所以不能出现[else]

分享到:
评论

相关推荐

    序列图合成工具

    序列图合成工具是一种高效的设计辅助软件,主要用于绘制和组合序列图。序列图是UML(统一建模语言)中的一种图形表示法,用于描述系统中对象间的交互过程,特别是时间顺序和消息传递。在软件设计、系统分析和项目...

    序列图合成器

    《序列图合成器:制作小游戏的关键工具》 在游戏开发领域,序列图(Sprite Sheet)是一种常见的优化资源加载和渲染效率的技术。序列图是将多张小图片整合到一张大图上的过程,它能减少游戏运行时的内存占用,提高...

    cgjoy-闪电序列图.rar

    在CG(计算机图形学)领域,闪电序列图是一种常见的特效元素,用于模拟逼真的闪电效果。"cgjoy-闪电序列图.rar"这个压缩包显然包含了用于创建闪电动画的一系列图像,可能是一个帧序列,每张图片代表动画中的一个时间...

    UML 序列图 UML 序列图

    "UML 序列图" UML 序列图是一种重要的建模工具,主要用于描述对象之间的交互行为。序列图能够展示对象之间的交互顺序,帮助开发者和业务人员更好地理解系统的行为。 序列图的主要用途之一,是把用例表达的需求,...

    UML序列图详解(UML序列图加于解释)

    UML 序列图详解 UML 序列图是一种常用的建模工具,用于描述对象之间的交互和顺序。它能够帮助开发者和业务人员更好地理解和交流系统的行为。 在 UML 序列图中,框架元件扮演着重要的角色,它可以作为图形化边界,...

    GhostCatTools序列图片合成拆分工具

    用户可以方便地选取精灵图中的某一个或多个图片序列,将其拆分成独立的图片文件,以便进行编辑或单独使用。 在标签“特效”方面,GhostCatTools的序列图片合成能力对于制作游戏内的粒子效果、动画特效等有着显著的...

    UML 网上购物序列图

    ### UML网上购物序列图详解 #### 一、实验背景及目的 本次实验旨在通过具体的网上购物场景,深入探讨和实践UML中的序列图和协作图。通过绘制这些图表,可以更好地理解系统的交互过程,以及不同类之间的关系,进而...

    火焰燃烧序列图

    火焰燃烧序列图是一种用于模拟和理解火的动态过程的可视化工具。在计算机图形学和物理模拟领域,这种序列图常被用来创建逼真的火动画,例如在电影、游戏或者科学可视化应用中。火焰燃烧序列图通常由一系列连续的图像...

    uml学习总结-类图、序列图

    ### UML学习总结—类图、序列图 #### UML简介 UML(Unified Modeling Language,统一建模语言)是一种标准化的图形表示方法,用于软件密集型系统的可视化、描述、构造以及文档化工作。UML提供了多种图表工具,能够...

    简单选课系统uml用例图、协作图、序列图

    本篇文章将深入探讨如何运用UML的用例图、协作图和序列图来构建一个简单的选课系统,旨在为初学者提供实用的参考。 一、用例图(Use Case Diagram) 用例图是UML中的重要组成部分,它展示了系统的主要参与者...

    ui播放序列图_序列图_unity_源码

    在Unity游戏开发中,UI(用户界面)的动画序列图是一种常见的设计元素,用于实现动态效果,如按钮点击、加载进度、角色状态变化等。序列图通常由一系列静态图像组成,按照特定顺序播放来形成连续的动画效果。本文将...

    UML网购系统序列图和协作图

    在UML(统一建模语言)中,序列图和协作图是两种重要的行为图,用于描述对象间的交互和协作。这两种图在系统设计和分析中起到关键作用,特别是在复杂的IT系统如网购系统中,它们有助于理解和梳理不同角色之间的动态...

    网上选课系统数据流图、E-R图、序列图汇总

    本文将详细解析该系统中的数据流图、E-R图及序列图,帮助读者深入理解系统设计与运作机制。 ### 数据流图 数据流图(Data Flow Diagram,简称DFD)是一种图形化工具,用于描绘信息在系统中的流动情况。网上选课...

    unity 相机截图+序列图导出插件

    总的来说,这个“Unity 相机截图+序列图导出插件”提高了Unity开发者的效率,使得截图和序列图的创建变得更加灵活和便捷。无论是用于游戏开发的内部工作流程,还是对外的展示和交流,都是一个非常实用的工具。

    序列图导出工具.rar

    《序列图导出工具在3D到2D转换中的应用详解》 在3D游戏开发过程中,有时我们需要将3D场景或角色转化为2D图像序列,例如制作动画、游戏过场或者实现某些特殊视觉效果。这通常涉及到序列图的生成与导出。"序列图导出...

    各种UML图:用例图、类图、序列图、状态图、活动图、组件图和部署图.zip

    `交互图之顺序图2.gif`和`交互图之顺序图.gif`可能是序列图的例子,强调了消息的顺序和同步控制。 4. **协作图 (Collaboration Diagram)**: 协作图与序列图类似,但更强调对象间的关系,如连接对象和角色。`交互...

    序列图转swf,flash动画制作

    序列图转SWF是一种在IT行业中常见的技术,主要用于将一系列静态的人物动作序列图组合成动态的SWF(ShockWave Flash)动画。Flash动画是互联网早期非常流行的一种多媒体内容形式,常用于网页设计、游戏开发以及教学...

    一种Flash加载大量序列图的方法

    本文将深入探讨“一种Flash加载大量序列图的方法”,主要关注如何有效地在AS3(ActionScript 3)环境下实现这一技术。 序列图,也称为帧序列,是由一系列连续的静态图像组成,它们按照特定顺序播放,以创建类似动画...

Global site tag (gtag.js) - Google Analytics