序列图

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

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

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

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]

3.循环:

循环组合碎片表面非常类似选择项组合碎片。你画一个框架,在框架的 namebox 中放置文本“loop”。在框架的内容区中,一个生命线的顶部,循环约束被放置在左上角。然后循环的消息序列被放在框架内容区的其余部分中。在一个循环中,除了标准的布尔测试外,一个约束能测试二个特定的条件式。特定的约束条件式是写作“minint = [the number]”(例如,“minint = 1”)的最小循环次数,或写作“maxint = [the number]”(例如,“maxint = 5”)的最大循环次数。通过最小循环检验,循环必须运行至少指定次数,而循环执行次数不能达到约束指定的最大循环次数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549546.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NoSQLBooster for MongoDB默认显示100条数据

顶部Options设置——Modify Default Code Templates——Modify Default Limit Size, 即可修改显示条数。 转载于:https://www.cnblogs.com/zjx1/p/11491338.html

项目总结(采用领域驱动开发方式)

最近在做一个项目。采用J2EE作为开发平台,通过领域驱动开发(DDD)的方式进行开发。首先说一下系统总体架构。系统分为表现层,业务层(业务层分为应用层和领域层),持久层,其中表现层用Struts MVC框架&#xff…

MS SQL Server 2008 简体中文正式版下载地址(附序列号)

Microsoft SQL Server 2008 Enterprise Evaluation:开发人员试用体验http://www.microsoft.com/downloads/details.aspx?FamilyId6B10C7C1-4F97-42C4-9362-58D4D088CD38&displaylangzh-cn Microsoft SQL Server 2008 Enterprise Evaluation:IT 专业…

小型网络的组建及排错

今天施工 给公司组建了一小型网络 以下是此次施工的拓扑图具体的实施方法不再啰嗦,在此要声明配线架只是起到了方便管理的作用,实施过程中也可以不用到配线架。 房间1又通过一HUB共享上网,房间2有两个客户端,直接连接到2924交换机…

大道五目Flash英文版(Renju Problems)程序分析之禁手判断

现在界面已经完成了, 刚刚完成了禁手算法,把代码共享出来: Codeprivate function IsForbidden(x:int, y:int, board:Array):int { var index:int x*15y; // set this position(x,y) to black. …

Google Earth的十个常用技巧应用

2004年10月27日Google宣布收购了美国的一家卫星图像公司Keyhole公司,并于2005年6月推出了Google Earth系列软件。用户们可以通过下载一个Google Earth客户端软件,就可以免费浏览全球各地的高清晰度卫星图片。 Google卫星地图的横空出世,催生了…

[导入]判断学号前十位的年龄最大的女学生是否是汉族的

USE XSCJGOIF object_id(tempdb..#tmpTable) IS NOT NULLDROP TABLE #tmpTableSELECT TOP 10 *INTO #tmpTableFROM 学生基本信息表WHERE 性别 女GODECLARE zbs CHAR(10)SELECT zbs 族别 FROM #tmpTableWHERE 出生日期 (SELECT MIN(出生日期) FROM #tmpTable)IF zbs 汉族PRI…

TCP/IP协议端口大全

TCP/IP协议端口大全 应用层网关服务Internet 连接共享 (ICS)/Internet 连接防火墙 (ICF) 服务的这个子组件对允许网络协议通过防火墙并在 Internet 连接共享后面工作的插件提供支持。应用层网关 (ALG) 插件可以打开端口和更改嵌入在数据包内的数据(如端口和 IP 地址…

BENET上海分公司网络改造项目设计实施方案(S1项目实践)

BENET上海分公司网络改造项目设计实施方案 目录 目录- - 1 - 一、企业用户需求分析- - 2 - 1.1、项目概述-- - 2 - 1.2、系统需求概括-- - 3 - 1.3、项目建设的要求-- - 4 - 二、项目方案的整体设计与实施- - 5 - 2.1、网络系统的分析与设计-- - 5 - 2.2、系统及应用服务的分析…

java 的转义字符,在正则表达式中应用

点的转义:. > u002E 美元符号的转义:$ > u0024 乘方符号的转义:^ > u005E 左大括号的转义:{ > u007B 左方括号的转义:[ > u005B 左圆括号的转义:( > u0028 竖线的转义:…

Oracle 统计信息备份/表分析

众所周知,统计信息直接影响到Oracle优化器最后的执行计划,所以定期收集统计信息成为DBA一项常规的工作,但是,对于一些大表,比如数据量超过几千万条,表分析后却有可能会导致应用系统一些SQL执行计划变差,比如出现大量的全表扫,严重影响数据库性能.如果出现这种情况,一种方法是对…

Type mismatch: cannot convert from int to Object错误

第一, 需要装 jre1.5.0及以上的版本第二, 在eclipse的Window Preference Java里,Install JREs里设置你装的jre第三,在eclipse的Window Preference Java里,Compiler里设Compiler compliance level为5.0以上关键是第三步, 兼容级别转载于:https://blog.51cto.com/xu20cn/116852

IIS6.0应用程序池回收和工作进程【转:http://www.cnblogs.com/freshman0216/archive/2008/06/02/1212460.html】...

公司的一个网站程序长时间运行后,速度变慢,重新启动网站后速度明显变快,估计是网站程序占用的内存和CPU资源没能及时释放,才需要每隔一段时间重启网站释放资源。但手工重启总不能算解决问题的方法,怎样才能实现自动管理…

配置IPsec on GRE Tunnel with IOS Firewall and NAT

配置IPsec on GRE Tunnel with IOS Firewall and NAT<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />详细配置见附件

广播地址详谈!

一、问题的提出大家看到这个标题&#xff0c;一定会觉得非常简单&#xff0c;不错&#xff0c;对于高手们来说&#xff0c;这确实不值一提&#xff0c;但是&#xff0c;对于广大非高手的兄弟&#xff0c;还是有必要了解一下。以前&#xff0c;我对广播地址的认识也是模模糊糊&a…

SearchRequest用于与搜索文档、聚合、定制查询有关的任何操作

SearchRequest用于与搜索文档、聚合、定制查询有关的任何操作&#xff0c;还提供了在查询结果的基于上&#xff0c;对于匹配的关键词进行突出显示的方法。 1&#xff0c;首先创建搜索请求对象&#xff1a;SearchRequest searchRequest new SearchRequest(); 2&#xff0c;对搜…

截网页全屏图的方法-截网页全屏软件-Web2Pic Pro

抓取整个网页的最强工具:Web2Pic Pro http://www.pconline.com.cn/pcedu/tuijian/photo/snap/0507/acc/w2psetup.exe 使用方法你到下面的地址: http://www.pconline.com.cn/pcedu/tuijian/photo/snap/0507/675763.html 在上网过程中我们经常会抓取保存一些网页内容为图像格式…

ES Search API

Search API 搜索请求 SearchRequest用于与搜索文档、聚合、suggestions相关的任何操作&#xff0c;还提供了在结果文档上请求高亮的方法。 在最基本的表单中&#xff0c;我们可以向请求添加查询&#xff1a; SearchRequest searchRequest new SearchRequest(); SearchSourceB…

silverlight 跨域socket

http://msdn.microsoft.com/en-us/library/cc645032(VS.95).aspx一切都是临时的&#xff0c;beta2相对于beta1改了很多&#xff0c;不知道正式发布时是否还会改变。翻译的作用是备忘。Silverlight 2 beta 支持2种访问远程服务器的方式&#xff1a;System.Net命名空间中的WebCli…

OCP-052考试题库汇总(54)-CUUG内部解答版

USER1 grants SELECT and UPDATE privileges on USER1.EMP to USER2。 SYS executes this command&#xff1a; SQL> REVOKE SELECT ON user1.emp FROM user1; What will be the outcome? A)It will succeed and USER2 will be unable to perform SELECT on USER1.EMP B)It…