软件测试之怎么做需求分析[3]

发表于:2009-08-04来源:作者:点击数: 标签:软件测试需求
软件 测试 之怎么做 需求分析 [3] 软件需求管理 关键字:需求分析 方法 用例在需求分析中的使用 多年来,分析者总是利用情节或经历来描述用户和软件系统的交互方式,从而获取需求(McGraw and Harbison 1997)。Ivar Jacobson(1992)把这种看法系统地阐述成用例(
软件测试之怎么做需求分析[3]  软件需求管理

关键字:需求分析 方法

  用例在需求分析中的使用

  多年来,分析者总是利用情节或经历来描述用户和软件系统的交互方式,从而获取需求(McGraw and Harbison 1997)。Ivar Jacobson(1992)把这种看法系统地阐述成用例(用例)的方法进行需求获取和建模。虽然用例来源于面向对象开发环境,但是它也能应用在具有许多开发方法的项目中,因为用户并不关心你是怎样开发你的软件。而最重要的,用例的观点和思维过程带给需求开发的改变比起是否画正式的用例图显得更为重要。注意用户要利用系统做什么远远强于询问用户希望系统为他们做什么这一传统方法。 用例的重要功能是用画用例图的功能来鉴别和划分系统功能。它把系统分成角色(actor)和用例(用例)。角色(actor)表示系统用户能扮演的角色(role)。这些用户可能是人,可能是其他的计算机一些硬件或者甚至是其它软件系统,唯一的标准是它们必须要在被划分进用例的系统部分以外。它们必须能刺激系统部分并接收返回。用例描述了当角色给系统特定的刺激时系统的活动。这些活动被文本描述。它描述了触发用例的刺激的本质,输入和输出到其他活动者,和转换输入到输出的活动。用例文本通常也描述每一个活动在特殊的活动线时可能的错误和系统应采取的补救措施。 这样说可能会非常复杂,其实一个用例描述了系统和一个角色(actor)的交互顺序。用例被定义成系统执行的一系列动作,动作执行的结果能被指定角色察觉到。用例可以:

  用例捕获某些用户可见的需求,实现一个具体的用户目标。

  用例由角色激活,并提供确切的值给角色。

  用例可大可小,但它必须是对一个具体的用户目标实现的完整描述。在UML中,用例表示为一个椭圆。

  角色是指用户在系统中所扮演的角色。其图形化的表示是一个小人。在某些组织中很可能有许多角色实例(例如有很多个销售员),但就该系统而言,他们均起着同一种作用,扮演着相同的角色,所以用一个角色表示。一个用户也可以扮演多种角色。例如,一个高级营销人员既可以是贸易经理,也可以是普通的营销人员;一个营销人员也可以是售货员。在处理角色时,应考虑其作用,而不是人或工作名称,这一点是很重要的。

  我们使用不带箭头的线段将角色与用例连接到一起,表示两者之间交换信息,称之为通信联系。角色触发用例,并与用例进行信息交换。单个角色可与多个用例联系;反过来,一个用例可与多个角色联系。对同一个用例而言,不同角色有着不同的作用:他们可以从用例中取值,也可以参与到用例中。需要注意的是角色在用例图中是用类似人的图形来表示,尽管执行的,但角色未必是人。例如,角色也可以是一个外界系统,该外界系统可能需要从当前系统中获取信息,与当前系统有进行交互。

  一个用例可能包括完成某项任务的许多逻辑相关任务和交互顺序。因此,一个用例是相关的用法说明的集合,并且一个说明(scenario)是用例的实例。这种关系就像是类和对象的关系。在用例中,一个说明被视为事件的普通过程(normal course),也叫作主过程,基本过程,普通流,或“满意之路” (happy path)。在描述普通过程时列出执行者和系统之间相互交互或对话的顺序。当这种交互结束时,执行者也达到了预期的目的。

  在用例中的其它说明可以描述为可选过程(alternative coruse)。可选过程也可促进成功地完成任务,但它们代表了任务的细节或用于完成任务的途径的变化部分。在交互序列中,普通过程可以在一些决策点上分解成可选过程,然后再重新汇成一个普通过程。

  角色类和角色实例

  软件产品最终是给一些用户来使用的,而用户之间的差异是非常大的。造成差异的原因包括了对计算机的认知程度的不同,使用习惯的不同,在软件目标组织中所处的地位不同,地理位置不同,业务熟练程度不同。

  不同的用户都有自己一系列的功能需求和非功能需求。对电脑熟练程度不同的人可能就会有不同的要求,熟练程度低的用户可能希望有一个友好的界面,熟练程度高的用户可能更希望有快捷键或宏的操作以提高工作效率。考虑到用户的差异性,将用户分类并研究用户类的行为特征是非常有必要的。所以在做具体的需求之前,先将用户分局行为和特点进行分类,对于研究、收集用户的需求是非常有帮助的。

  

原文转自:http://www.ltesting.net