欢迎来到天天文库
浏览记录
ID:13467896
大小:227.50 KB
页数:10页
时间:2018-07-22
《uml序列图编写规范》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、UML序列图编写规范一、序列图简介序列图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互。很象类图,开发者一般认为序列图只对他们有意义。然而,一个组织的业务人员会发现,序列图显示不同的业务对象如何交互,对于交流当前业务如何进行很有用。除记录组织的当前事件外,一个业务级的序列图能被当作一个需求文件使用,为实现一个未来系统传递需求。在项目的需求阶段,分析师能通过提供一个更加正式层次的表达,把用例带入下一层次。那种情况下,用例常常被细化为一个或者更多的序列图。组织的技术人员能发现,序列图在记录一个未来系统的行为应该如何表现中,非常有用。在设计
2、阶段,架构师和开发者能使用图,挖掘出系统对象间的交互,这样充实整个系统设计。序列图的主要用途之一,是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。序列图除了在设计新系统方面的用途外,它们还能用来记录一个存在系统(称它为“遗产”)的对象现在如何交互。当把这个系统移交给另一个人或组织时,这个文档很有用。二、序列图元素2.1框架在UML2中,框架元件用于作为许多其他的图元件的一个基础,但是大多数人第一次接触框架元件的情况,是作为图的图形化边界。当为图提供图形化边界时,一个框架元件为图的标签提供一致的位置
3、。在UML图中框架元件是可选择的;就如你能在图1和2中见到的,图的标签被放在左上角,在我将调用框架的“namebox”中,一种卷角长方形,而且实际的UML图在较大的封闭长方形内部定义。图1:空的UML2框架元件2.2图类型UML规范给图类型提供特定的文本值。(举例来说,sd代表序列图,activity代表活动图,usecase代表用例图)。2.3生命线画一个序列图的时候,放置生命线符号元件,横跨图的顶部。生命线表示序列中,建模的角色或对象实例。1生命线画作一个方格,一条虚线从上而下,通过底部边界的中心(图3)。生命线名字放置在方格里。图3:用于
4、一个实体名为freshman的生命线的Student类的一个例子2.4消息为了可读性,序列图的第一个消息总是从顶端开始,并且一般位于图的左边。然后继发的消息加入图中,稍微比前面的消息低些。为了显示一个对象(例如,生命线)传递一个消息给另外一个对象,你画一条线指向接收对象,包括一个实心箭头(如果是一个同步调用操作)或一个棍形箭头(如果是一个异步讯号)。消息/方法名字放置在带箭头的线上面。正在被传递给接收对象的消息,表示接收对象的类实现的一个操作/方法。在图4的例子中,analyst对象调用ReportingSystem类的一个实例的系统对象。an
5、alyst对象在调用系统对象的getAvailableReports方法。系统对象然后调用secSystem对象上的、包括参数userId的getSecurityClearance方法,secSystem的类的类型是SecuritySystem。2图4:一个在对象之间传递消息的实例2.5约束当为对象的交互建模时,有时候,必须满足一个条件,消息才会传递给对象。约束在UML图各处中,用于控制流。在这里,我将会讨论UML1.x及UML2.0两者的约束。在UML1.x中,一个约束只可能被分配到一个单一消息。UML1.x中,为了在一个序列图上画一个约束,
6、你把约束元件放在约束的消息线上,消息名字之前。图5显示序列图的一个片段,消息addStudent方法上有一个约束。图5:UML1.x序列图的一个片段,其中addStudent消息有一个约束在图5中,约束是文本“[pastDueBalance=0]”。通过这个消息上的约束,如果应收帐系统返回一个零点的逾期平衡,addStudent消息才将会被传递。约束的符号很简单;格式是:[BooleanTest]举例来说,[pastDueBalance=0]2.6组合碎片(变体方案,选择项,和循环)然而,在大多数的序列图中,UML1.x“in-line”约束不
7、足以处理一个建模序列的必需逻辑。这个功能缺失是UML1.x的一个问题。UML2已经通过去掉“in-line”约束,增加一个叫做组合碎片的符号元件,解决了这一个问题。一个组合碎片用来把一套消息组合在一起,在一个序列图中显示条件分支。UML2规范指明了组合碎片的11种交互类型。十一种中的三种将会在“基础”段落中介绍,另外两种类型将会在“超越基础”中介绍,而那剩余的六种我将会留在另一篇文章中介绍。(嗨,这是一篇文章而不是一本书。我希望你在一天中看完这部分!)2.7变体变体用来指明在两个或更多的消息序列之间的、互斥的选择。3变体支持经典的“ifthen
8、else”逻辑的建模(举例来说,如果我买三个,然后我得到我购买的20%折扣;否则我得到我购买的10%折扣)。就如你将会在图6中注意到的,一个变体的组合
此文档下载收益归作者所有