一个人不应该依附在其他人身上,一个人应该首先自力更生。你应该自己能够独立,能够安顿你自己,那你就不会害怕了。你爱你自己的话,别人不能不爱你吧。
用例建模指南(转载)
上一篇 /
下一篇 2007-08-08 09:04:54
/ 个人分类:测试用例
4M2c nyNr0原文51Testing软件测试网`6fh5@4gO/q P 51Testing软件测试网
L R9Tjk用例建模指南51Testing软件测试网L7R:p[t1?3HSdME 51Testing软件测试网Dn6R+b-h.so*l |
作者:傅纯一 选自: IBM51Testing软件测试网 @8?8`:?.U*y
T
S
|
用例(Use Case)是一种描述系统需求的方法,使用用例的方法来描述系统需求的过程就是用例建模。用例方法最早是由Iva Jackboson博士提出的,后来被综合到UML规范之中,成为一种标准化的需求表述体系。用例的使用在RUP中被推崇备至,整个RUP流程都被称作是"用例驱动"(Use-Case Driven)的,各种类型的开发活动包括项目管理、分析设计、测试、实现等都是以系统用例为主要输入工件,用例模型奠定了整个系统软件开发的基础。 51Testing软件测试网;f1fN~ k-Mc1. 什么是用例? K5J9G^nu(v[8}
e0在介始用例方法之前,我们首先来看一下传统的需求表述方式-"软件需求规约"(Software Requirement Specification)。传统的软件需求规约基本上采用的是功能分解的方式来描述系统功能,在这种表述方式中,系统功能被分解到各个系统功能模块中,我们通过描述细分的系统模块的功能来达到描述整个系统功能的目的。 fb1m!w`*Up6xY0+[ W ]'LM]hP0采用这种方法来描述系统需求,非常容易混淆需求和设计的界限,这样的表述实际上已经包含了部分的设计在内。由此常常导致这样的迷惑:系统需求应该详细到何种程度?一个极端就是需求可以详细到概要设计,因为这样的需求表述既包含了外部需求也包含了内部设计。在有些公司的开发流程中,这种需求被称为"内部需求",而对应于用户的原始要求则被称之为"外部需求"。 &W1tA#nj
?Y!snK051Testing软件测试网4KG|'t
PYo(F]S功能分解方法的另一个缺点是这种方法分割了各项系统功能的应用环境,从各项功能项入手,你很难了解到这些功能项是如何相互关联来实现一个完成的系统服务的。所以在传统的SRS文档中,我们往往需要另外一些章节来描述系统的整体结构及各部分之间的相互关联,这些内容使得SRS需求更象是一个设计文档。 !s7MF.\#LX051Testing软件测试网#GqJA'N*q?u1.1 参与者和用例51Testing软件测试网TLw^'lOi*O8|v 从用户的角度来看,他们并不想了解系统的内部结构和设计,他们所关心的是系统所能提供的服务,也就是被开发出来的系统将是如何被使用的,这就用例方法的基本思想。用例模型主要由以下模型元素构成:
Tf9w/by*^9~3r0- 参与者(Actor)51Testing软件测试网9yu$r U7c&X
参与者是指存在于被定义系统外部并与该系统发生交互的人或其他系统,他们代表的是系统的使用者或使用环境。 - 用例(Use Case)51Testing软件测试网Mn6Hk&^2_.c
用例用于表示系统所提供的服务,它定义了系统是如何被参与者所使用的,它描述的是参与者为了使用系统所提供的某一完整功能而与系统之间发生的一段对话。 - 通讯关联(Communication Association)
MO$vzH
o-FS"w0通讯关联用于表示参与者和用例之间的对应关系,它表示参与者使用了系统中的哪些服务(用例),或者说系统所提供的服务(用例)是被哪些参与者所使用的。 51Testing软件测试网$ubJ#J9Z.C\s这大三种模型元素在UML中的表述如下图所示。 "v,z-s0VY{ d1RJ04Ft3|]v0 &a#m[9OE0 }K6m2a6b!x8}YR0nj5CzpV
Ee5J0以银行自动提款机(ATM)为例,它的主要功能可以由下面的用例图来表示。ATM的主要使用者是银行客户,客户主要使用自动提款机来进行银行帐户的查询、提款和转帐交易。51Testing软件测试网%oo EF5Y 51Testing软件测试网J7]I!i*R vW Hhi-o#`A!nD051Testing软件测试网u,}n6t9k#u
8w:U JItk.o2KG!@2C0通讯关联表示的是参与者和用例之间的关系,箭头表示在这一关系中哪一方是对话的主动发起者,箭头所指方是对话的被动接受者;如果你不想强调对话中的主动与被动关系,可以使用不带箭头的关联实线。在参与者和用例之间的信息流不是由通讯关联来表示的,该信息流是缺省存在的(用例本身描述的就是参与者和系统之间的对话),并且信息流向是双向的,它与通讯关联箭头所指的方向亳无关系。 )oum\J*B-?"g051Testing软件测试网*F,Q@"Z"Py X-U)a1.2 用例的内容 fy&|i:@2O#F%ZT?0用例图使我们对系统的功能有了一个整体的认知,我们可以知道有哪些参与者会与系统发生交互,每一个参与者需要系统为它提供什么样的服务。用例描述的是参与者与系统之间的对话,但是这个对话的细节并没有在用例图中表述出来,针对每一个用例我们可以用事件流来描述这一对话的细节内容。如在ATM系统中的"提款"用例可以用事件流表述如下: |
|