场景与视点结合的需求获取方法及应用分析

时间:2022-09-30 02:41:21

场景与视点结合的需求获取方法及应用分析

摘要:需求获取是软件开发的一个重要环节。文章对现有的几种主流的需求获取方法进行了归纳分析,提出了一种将场景和视点结合的需求获取方法。利用该方法能够采集到系统的需求并将其描述清晰。通过一个实例验证了该方法的有效性。

关键词:场景;视点;需求获取;应用分析

中图分类号:TP3 文献标识码:A 文章编号:1006-8228(2011)09-39-02

0 引言

需求获取,属于软件工程中的重要内容,包括需求来源和获取需求的技术。需求获取是软件设计的第一阶段,其本质涉及软件设计人员如何与客户建立有效的沟通。在实际的软件开发过程中,软件开发者与领域用户之间的知识差异使得需求的获取变得困难。一方面,软件开发者由于不了解应用领域,只能被动地等待领域用户提供信息,并且难免对领域用户的描述产生错误的理解,因而得出不适当的需求模型,导致软件开发半途而废;另一方面,领域用户通常不知道如何按软件工程的要求去描述他们的需求,而且,他们一开始常对自己的需求仅有一个模糊的认识,如果没有任何提示和引导,不可能给出正确而且完整的需求描述。针对需求获取较为困难这一问题,本文首先介绍了几种主流的需求采集方法及目前国内的研究者根据实际遇到的问题而提出的解决方案,然后介绍一种将场景与视点相结合的需求获取方法。

1 常见的需求获取方法简介及研究现状

需求获取是通过对现有系统的观察以及业务进行分析,全面准确地理解并把握用户所要解决的问题和期望。现有需求获取方法主要是通过分析员与用户之间的交互,由分析员引导用户表达需求。根据引导的角度和方式等不同,可以分为面向目标、基于场景、面向视点和基于知识等几种不同的方法。

1.1面向目标的方法

面向目标的方法是一种通过对系统目标进行分解从而挖掘需求的方法。面向目标的方法是自上而下的,从总目标入手,然后对目标进行逐层分解,直至分解到最细粒度的目标,以目标数的方式来表达需求体系。

面向目标的需求获取方法关键在于目标的分解和精化,其结果通常是一个目标分析树。目标是指所期望达到的目的,是对现有或未来系统的意图作总体陛的陈述。目标具有层次性,可以分为战略性的、较为粗糙的高层目标和技术性的、较为精细的低层目标。高层目标需要分解、精化为低层目标,从而实现需求的逐步精化,并通过需求对高层目标的可追溯性建立起软件需求与业务目标的对应关系,形成一个形式化的、用AND-OR结构图表现的目标与子目标的关系图(树),以及一个关于目标与子目标链接类型的多视图。

1.2基于场景的方法

基于场景的需求获取方法,又称情景实例的分析方法,是基于对应用环境的某―特定情景的描述来阐述用户的需求。

基于场景的方法关键在于场景的抽取和描述,从而形成需求模型。场景是现实世界的实例,它可能用自然语言、图表或者其他媒介来表示。对于描述最终用户和系统之间某个交互类型有关的交互会话,场景是最终用户用来模拟实际交互的一种情景实例。从现实的实例出发,归结到形式化的表示,面向场景的方法最终将形成模型等需求模型。

a 面向视点的方法

面向视点的方法从涉众的角度出发做需求的获取,需求分析员从一组涉众获取各局部需求并将其进行整合。

从视点出发进行需求挖掘,关键在于视点的标注和从视点需要解决的问题中挖掘需求。视点是来源于特殊角度的系统需求信息的封装。系统的最终用户、管理者、组织内工作受到系统简介影响的其他人和购买系统的客户,都是系统需求的潜在来源,他们对系统应该提供的服务和提供服务的方式都有自己的视点。视点可能包含着一组需求,也包含视点视角的定义,需求源以及抽取需求的理由。

b 基于知识的方法

基于知识的需求获取方法试图利用历史项目中积累的经验或领域分析的结果,来帮助人们理解业务和获取需求。到目前为止,面向知识的方法仍未形成系统性的研究成果。比较典型的基于知识的方法包括:

(1)基于类比推理的领域模型重用;

(2)KAOS方法中的元模型驱动的需求获取;

(3)基于本体的需求自动获取方法。

基于知识的方法有助于通过历史经验数据对涉众进行启发,并通过各种基于知识的机制对这种启发的效果和效率提供保障。

例如文献以企业信息系统为研究对象,提出一种基于场景的协同式需求获取方法;文献则提出支持MDA的交互式需求获取方法及辅助工具,便于需求采集。本文则将主流需求获取方法中的场景法与视点法结合起来,用于较复杂信息系统中的需求获取。

2 场景与视点结合的需求获取方法介绍

如前所述,需求分析方法是指组织并指导需求阶段获取与分析需求过程的一系列方法、技术和规范,这是软件开发者长年失败和成功经验的理论性总结,从软件重用的思路来说,需求分析方法总结与重用的价值远比某些程序组件重用的价值高。因此,在开发软件系统之前,根据软件应用领域与目标系统的特点,有针对l生地选择需求分析方法则显得尤为重要。但是,没有任何一个放之四海皆可用的需求方法,现在开发复杂信息系统在需求阶段常出现的问题是:在没有分析本领域软件应用与开发特点、没有深入方法细节讨论就照搬现有的需求方法,导致在需求阶段常常出现获取方法不确定、描述方法不稳定、得到的需求规格说明质量不高等问题;也有很多软件开发组织在长期项目开发实践中,意识到需求分析方法的重要性,但却没有进行总结、抽象和提高,导致以往出现的问题反复重现。结合已有的需求采集方法,我们使用了基于场景和视点相结合的需求采集方法。即在描述场景时,将牵涉到的对象分门别类描述,从中抽象出不同的视点。具体的操作方式为:

(1)根据系统功能划分与使用对象抽象出具体的使用场景;

(2)使用规范的自然语言描述每个场景;

(3)将自然语言描述的场景转换为二维表格的方式描述;

(4)从二维表格中提取出不同对象的视点。

按照以上方法对需求进行采集时,能够将复杂的信息系统以业务流程为中心来获取和描述需求;以场景为描述业务流程的基本单位,相关用户更容易理解和配合需求分析人员刻画业务流程;通过将视点固定,并以获取活动和用户之间的关系,最后可以以带泳道的流程描述,内容表达清晰。而且,这种过程是迭代的和可进化的,符合复杂的信息系统需求阶段的特点,克服了结构化需求分析方法由于功能细分所分割出的功能模块会因人而异的缺点,也能够充分调动相关用户在软件开发过程中的积极性,有利于提高最终应用系统的正确性。

3 实验及分析

下面以书店业务系统中的需求为例加以说明本文中需求获取方法的有效性。根据本文方法的步骤,描述如下:

a 选取权限设计场景;

b 使用规范的自然语言描述该场景(部分)。

在获取不同部门角色的权限时,我们可以将书店系统中的部分权限操作信息提取出来:

(1)业务部门可以录入征订书目单、客户报订单,并可以查询库存表单;

(2)业务部门可以导入客户报订单;

供货商能够对付退单进行付退处理。

c 将自然语言描述的该场景转换为二维表格的方式描述,如表l所示。

d 从表1中提取出不同对象的视点。显然,表1中的每一列均为一类主体,每一行为一类操作对象,m行n列交叉处的值(假设为k)则表明第n类对象可以按照k方式操作m类对象,或者说对于第m类对象,第n类对象具有k操作权限。我们可以从表1中得到每个部门的操作权限及操作对象。

根据以上的方法,可以以较低的代价获取到书店业务系统中的准确需求,并以泳道图方式描述,易于与用户交互,从而为软件的设计阶段提供支持。

4 本文的创新点

需求获取在软件开发过程中具有重要的作用,影响着软件开发的后续环节。本文在对主流的需求获取方法进行介绍和分析之后,提出一种创新方法,将场景和视点结合的需求获取方法,能够采集到系统的正确需求且描述清晰,可使需求采集人员与用户之间的交互变得更容易。我们进一步的研究工作将是如何以较低代价抽取场景。

上一篇:基于单片机的防盗报警系统的设计 下一篇:Matlab在电力行业的应用