




已阅读5页,还剩61页未读, 继续免费阅读
(计算机应用技术专业论文)需求变更影响评估算法研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江嚣大学硕上研究生毕业论文 摘要 随着计算机技术的快速发展和应用深入,软件项目的规模和复杂程度也随之 增加。业务变化、用户需求改变、功能修正等都会对软件项目进度控制、成本核 算、开发周期等方面产生巨大的影响。在软件生命周期中需求变更是不可避免的, 如何评估需求变更对软件开发过程的影响是业界关注的热点。 需求变更影响评估越来越受到国内外的重视与研究,目前变更影响评估的主 要方法是借助需求跟踪链或矩阵来确定需求变更给设计、编码等软件产品元素带 来的影响,由于需求之间复杂的依赖关系所导致影响蔓延的现象,增加了影响评 估不确定性与难度。现有的评估方法所得出的结果尚不能包含依赖因素所带来的 影响。变更总是不可避免的,因而如何评估因依赖关系存在而扩大的影响范围变 得尤为重要。 针对需求变更影响评估存在着不确定性高、时效性差等问题。本文首先对需 求依赖关系进行了分析与归纳,给出需求依赖关系范式,通过创建依赖关系处理 模型确定变更影响评估范围。为了度量需求之间影响程度,引入依赖因子概念, 对需求影响进行了量化。最终设计了需求变更影响评估算法,以依赖因子、需求 状态为参量,给出定量分析的结果。本文研究的主要内容为: 1 、对需求依赖关系作了分析与归纳,提出需求依赖关系范式,通过依赖关 系处理模型来规范化依赖关系。 2 、为度量需求之间的影响程度,提出依赖因子概念,给出依赖因子计算方 法,籍此对需求影响进行了量化。 3 、提出需求变更影响评估算法,从不同层面对变更影响进行评估。 4 、设计了需求变更影响评估系统的原型。 关键词:软件工程,需求变更,影响评估,评估算法 江苏= 学硕十研究生毕业论文 a b s t r a c t w i t ht h er a p i dd e v e l o p m e n ta n dt h ea p p l i c a t i o no fc o m p u t e rt e c h n o l o g y , t h e c o m p l e x i t ya n ds c a l eo fs o f t w a r ep r o j e c ta r ei n c r e a s i n g l ye n h a n c e d t h ec h a n g eo f b u s i n e s s ,u s e rr e q u i r e m e n t s ,f u n c t i o n ,e t c ,h a st r e m e n d o u si m p a c to ns u c ha s p e c t sa s p r o j e c ts c h e d u l e ,c o s ta c c o u n t i n g ,d e v e l o p m e n tc y c l e ,e t c ,t h ec h a n g eo fr e q u i r e m e n t si s i n e v i t a b l ei nt h el i f ec y c l eo f s o f t w a r e e v a l u a t i n gt h ei m p a c to fc h a n g i n gs o f t w a r er e q u i r e m e n t si si n c r e a s i n g l yv a l u e d a n db e c o m i n gar e s e a r c hf i e l d a tp r e s e n tt h em a i nm e t h o di st oi d e n t i f ys o f t w a r e w o r ke l e m e n t so nt h a tt h ec h a n g eo fr e q u i r e m e n t sh a sa ne f f e c tt h r o u g ht h e t r a c e a b i l i t yl i n ko fr e q u i r e m e n t s b u tt h ec o m p l e xd e p e n d e n c yr e l a t i o no f r e q u i r e m e n t s w i l ll e a dt ot h ep r o p a g a t i o no fi m p a c t ,w h i c ha d d st ot h ed i f f i c u l t ya n du n c e r t a i n t yo f e v a l u a t i n gi m p a c t t h e s ei m p a c tc a u s e db yd e p e n d e n c yf a c t o ri sn o te v a l u a t e du s i n g t h ep r e s e n tm e t h o d s t h ec h a n g ei sa l w a y su n a v o i d a b l e h e n c e ,e v a l u a t i n gt h ei m p a c t o f p r o p a g a t i o nc a u s e db yd e p e n d e n c yf a c t o ri sv e r yi m p o r t a n t a i m i n gt ot h e s ep r o b l e m ss u c ha sh i g hu n c e r t a i n t y , t i m ec o n s u m i n g ,e t c ,w h i c h e x i s ti ne v a l u a t i n gt h ei m p a c to fc h a n g i n gs o f t w a r er e q u i r e m e n t s a tf i r s t ,t h i sp a p e r a n a l y z e s a n ds u m s u pt h ed e p e n d e n c yr e l a t i o no fr e q u i r e m e n t s ,p r e s e n t st h e d e p e n d e n c yn o r m a lf o r m ,a n d m a k es u r et h es c o p eo fc h a n g ei m p a c t i no r d e rt o q u a n t i f y t h ed e g r e eo ft h ei m p a c tb e t w e e nr e q u i r e m e n t s ,t h ed e p e n d e n c yg e n ei s i n t r o d u c e d a tl a s t ,t h ea r i t h m e t i co fe v a l u a t i n gt h ei m p a c to fc h a n g i n gr e q u i r e m e n t s i sd e s i g n e d ,a n dt h er e s u l t so fq u a n t i t a t i v ea n a l y s i si sg o tb yt h ep a r a m e t e ro f d e p e n d e n c eg e n ea n dr e q u i r e m e n ts t a t e t h ee m p h a s e so f o u rr e s e a r c hi n c l u d e s : 1 a n a l y s ea n ds u mu pt h ed e p e n d e n c yr e l a t i o n so fr e q u i r e m e n t s ,i n t r o d u c et h e n o r m a lf o r mo fr e q u i r e m e n td e p e n d e n c y ,a n dn o r m a l i z ed e p e n d e n c er e l a t i o n s u s i n gt h ep r o c e s sm o d e lo f d e p e n d e n c yr e l a t i o n s 2 i n t r o d u c et h ec o n c e p to fd e p e n d e n c yf a c t o rt oq u a n t i f yt h ed e g r e eo fi m p a c t b e t w e e nr e q u i r e m e n t s ,a n dp r e s e n tt h em e t h o do fc o m p u t i n gd e p e n d e n c yg e n e 3d e s i g nt h ea l g o r i t h mf o re v a l u a t i n gt h ei m p a c to fc h a n g i n gr e q u i r e m e n t s ,w h i c h e v a l u a t e st h ei m p a c to fc h a n g i n gr e q u i r e m e n t sf r o md i f f e r e n ta s p e c t s 4d e s i g nt h es y s t e mp r o t o t y p eo f e v a l u a t i n gt h ei m p a c to f c h a n g i n gr e q u i r e m e n t s k e yw o r d s :s o f t w a r ee n g i n e e r i n g ,r e q u i r e m e n t sc h a n g e ,i m p a c te v a l u a t i o n , e v a l u a t i o na l g o r i t h m 江苏大学钡十研究生毕业论文 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保 留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借 阅。本人授权江苏大学可以将本学位论文的全部内容或部分内容编入有关数据库 进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 本学位论文属于 保密口,在 年解密后适用本授权书。 不保密囫。 学位论文作者签名:男彬华 加以年6 月7 日 指导教师签名 肋铹膨 删年6 月7 目 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究工作所取得的成果。除文中已经注明引用的内容以 外,本论文不包含任何其他个人或集体已经发表或撰写过的作品 成果。对本文的研究做出重要贡献的个人和集体,均已在文中以 明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:马据华 日期:渺年参月 7 日 江苏大学硕士研究生毕业论文 1 1 研究背景 第一章绪论 随着计算机技术的飞速发展和应用深入,政府、教育、企业和各行各业对软 件产品应用范围提出了更高的要求,软件项目的规模和复杂程度也随之增加,投 资也越来越高,同时软件项目延时、预算超支、管理混乱、成功率不高等现象也 时常出现。 从美国于1 9 9 5 年开始的一项调查结果说明需求工程在软件项目中的重要性 1 1 。在这项调查中,他们对全国范围内的8 0 0 0 个软件项目进行跟踪调查,结果 表明,有l 3 的项目没能完成,而在完成的2 3 的项目中,又有l 2 的项目没有 成功实旋。他们仔细分析失败的原因后发现,与需求工程相关的原因占了4 5 , 而其中缺乏最终用户的参与以及不完整的需求又是两大首要原因,各占1 3 f l 1 2 。 近年来,需求工程作为软件工程的一个重要组成部分,是软件生命周期的第 一个阶段,越来越受到人们的重视。需求开发人员力图借助场景、原型、面谈等 需求获取方法在软件项目初期次或分阶段完成所有明确的、无歧义的、完整的 需求,来降低软件项目中上述现象的出现。 然而,在实际中人们发现软件需求无法在项目开发初期一次性获取所有明确 的、不变的需求。随着软件项目进展,因用户对需求更加清晰、业务的变化、功 能修正等原因,在软件生命周期中发生需求变更是无法回避的f 2 j 。作为需求工程 中一部分的需求管理中有相应需求变更控制,需求变更影响评估作为需求变更控 制的一个重要组成部分,对软件项目进度控制、成本核算,开发周期等方面有着 直接的影响,有助于降低项目的风险1 3 , 4 j 。 但是随着软件项目越来越复杂、庞大,所要管理的需求越来越多,目前需求 变更影响评估也暴露出了一些问题,如不确定性高、时效性差等。针对这些问题, 国内外展开了相关的研究( 本文研究现状将作论述) ,但需求变更影响评估的研究 没有对需求工程其他部分的研究那么深入。 、 本文所做的研究就是在这样的背景下结合目前需求管理、变更影响评估的 研究现状,对需求变更影响评估展开研究。 江苏大学硕士研究生毕业论文 1 2 国内外研究现状与动态 用户需求改变、业务的变化等因素都使得需求变更在软件生命周期中是无法 回避的,需求变更控制中变更影响评估在确保软件项目按时、高质量的完成发挥 着重要作用,有助于降低软件项目的风险,越来越受到国内外的重视与研究。 目前,有许多商业化的需求管理工具,如r e q u i s i t e p r o 、d o o r s l 5 l 等,都在 不同程度上支持需求变更控制,通过提供需求相关的一些信息为软件项目中需求 变更控制委员会的变更影响评估提供支持,目前国内外对需求变更影响评估的研 究领域主要包括以下几方面: l 、需求变更影响评估方法。现有的变更影响评估方法1 6 i 主要是借助需求跟 踪链或矩阵来评估需求变更给设计、编码、测试用例等软件产品元素造成的影响。 但是需求之间存在复杂的依赖关系,使得需求变更极易产生影响蔓延的现象,给 影响评估带来了难度与不确定性。现有的评估方法所得出的结果尚不能包含依赖 因素所带来的影响,变更总是不可避免的,因而如何评估因依赖关系存在而扩大 的影响范围变得尤为重要。 2 、需求变更影响程度。研究如何用模糊处理方法确定需求变更给软件产品 元素带来的影响【7j ,但是仍没有考虑到需求变更产生的影响蔓延,这是影响评估 的关键所在。 3 、需求变更度量。主要对变更频率、原因和分布的度量方法进行研究与探 讨【8 州,通过对变更频率、原因和分布的分析与统计,分析产生需求变更的问题 所在,采取有效的纠正预防措施,提高和改善需求管理方法的i b 的。需求变更度 量在软件项目中发挥着一定的积极作用,然而,事实证明软件生命周期中需求变 更总是不可避免的,须积极面对需求变更。 需求变更控制委员会进行变更影响评估时,在收集需求跟踪信息及需求相关 的信息通常比较费时,导致了时效性较差的问题,影响了软件项目的进度。在中、 小型软件项目也常出现不设立需求变更控制评估委员会的现象,增加了需求变更 给软件项目带来的风险。 需求依赖关系给需求变更影响评估造成了难度,也是变更影响评估的基础。 本文在对需求依赖关系分析、归纳的基础上,提出需求变更影响评估算法,并对 需求变更影响评估系统原型进行了设计。 2 江苏大学硕士研究生毕业论文 1 3 本论文研究内容 本文在广泛阅读国内外关于软件项目、需求管理、需求变更影响评估等相关 文献后,综合分析了需求变更、变更影响评估的研究现状,在此基础上对需求变 更影响评估展开研究,主要研究内容包括以下几个方面: 1 需求变更及变更影响评估的研究,结合目前国内外需求变更管理的研究领 域、研究现状,分析了现有的变更影响评估方法,指出变更影响评估方法的不足 及难点。 2 需求依赖关系的研究,针对需求依赖关系是确定需求变更影响范围的关键 所在,也是变更影响评估难点。本文对依赖关系进行了分析与归纳提出需求依 赖关系范式,创建依赖关系处理模型来规范化依赖关系。 3 为度量需求变更时存在依赖关系的需求之间的影响程度,提出依赖因子概 念,给出依赖因子计算方法,对需求之间的影响进行了量化。 4 提出需求变更影响评估算法,从不同层面对变更影响进行评估。 5 设计了需求变更影响评估系统的原型,详细阐述了系统各组成部分,并对 变更影响评估结果作了初步的分析。 1 4 本论文结构概要 论文共分七章,主要内容概要如下: 第一章介绍课题的研究背景和研究意义,概述了需求变更影响评估在软件 项目中重要意义。同时分析和提出本文的主要研究工作。 第二章重点介绍了需求变更与软件项目关系、变更产生原因与影响、需求 变更的控制、影响评估等相关知识,分析比较了现有几种商业需求管理工具,指 出了现有变更影响评估方法的难点。 第三章对需求跟踪作了介绍,阐述需求跟踪在需求变更控制与变更影响评 估的作用。 第四章分析了需求依赖关系,给出需求依赖关系的定义、类型、性质及依 赖因子的定义、量化处理、计算,提出需求依赖关系范式,创建依赖关系处理模 型。 第五章对需求变更影响评估算法进行了详细描述。 第六章设计了需求变更影响评估系统原型,并对各个组成部分进行了阐述。 第七章对全文进行憩结,、f 指出进一步需要开展的工作。 江苏大学硕十研究生毕业论文 2 1 需求工程 2 。1 。1 需求定义 第二章相关知识概述 r a t i o n a l ”i 把需求定义为“正在构建的系统必须符合的条件或具备的功能”。 电气和电子工程师学会使用的定义与此类似。著名的需求工程设计师 m e r l i nd o r f m a n 和r i c h a r dh t h a y e r t l o l 提出了一个包容而且更为精练的定义,它特 指软件方面,但不仅仅限于软件,他们将需求可定义为:用户解决某一问题或 达到某一目标所需的软件功能,系统为了满足合同、规约、标准或其他正式实行 的文档丽必须满足或具备的软件功能。 综合各种文献,可将软件需求定义为:通过计算机编程在问题领域中施加的 效果,定义软件所要解决的问题,而不是描述软件如何解决它。 软件需求包括三个不同层次f l l j :业务需求、用户需求和功能需求( 也包括 非功能性需求) ,其中各组成部分之间的关系,如图2 1 所示。 业务需求反映了组织机构 或客户对系统、产品高层次的 目标要求,它们在项目视图与 范围文档中予以说明。 用户需求是从用户角度来 描述软件产品必须要完成的 功能和非功能性需求,这在使 用实例( u s ec a s e ) 文档或方案 脚本说明中予以说明。 功能需求定义了开发人员 图2 - i 软件需求中各层次的关系 必须实现的软件功能,软件应该执行的活动,包括输入、执行过程、与用户或者 其他软硬件的交互以及输出,使得用户能完成他们的任务,从而满足业务需求。 功能需求出现在用户需求、业务需求之中。 4 江苏大学硕士研究生毕业论文 非功能性需求是系统所要获得的与功能无关的特征,包括用户界面、可移植 性、性能、可操作性等需求,例如,每秒所处理的业务数据或系统对用户事件的 响应时间等都是非功能性需求。 2 1 2 需求管理 所有与需求直接相关的活动通称为需求工程( i2 1 。需求工程的活动可分为两 大类,一类需于需求开发;另一类属于需求管理。需求工程的结构如图2 2 所示。 图2 - 2 需求t 程结构图 ( 1 ) 需求获取。积极的与用户进行交流,记录、分析和修改用户对目标系 统的需求,并提炼出解决问题的用户需求文档,常见的需求获取技术有背景资料 阅读、面谈、调查表、用例和场景,联合分析会议等。 ( 2 ) 需求分析。需求分析的目的是对各种需求信息进行分析并抽象描述, 为目标系统建立个概念模型,软件开发人员应分析用户提供的需求信息,区分 业务需求、功能需求、非功能性需求和质量属性等,并且弄清每项需求的必要性。 ( 3 ) 需求定义。需求定义的目标是根据需求调查和需求分析的结果,进一 步定义准确无误的产品需求,产生需求规格说明书。软件系统设计人员将依 据需求规格说明书开展系统设计工作。 江苏大学项上研究生毕业论文 ( 4 ) 需求验证。需求验证是指开发方和用户共同对需求规格说明书进行评 审,常见的需求验证技术包括原型法,用例和场景检验、文档复审、功能测试等 ”1 , 经双方对需求达成共识后作出书面承诺。 由于需求是证在构建的系统必须符合的事务,而且符合某些需求决定了项目 的成功或失败,因此找出需求是什么,将它们记下来,进行组织,并在发生变化时对 它们进行追踪,这些活动都是有意义的。 需求管理需要“建立并维护在软件工程中同客户达成的契约”,对已经达成 共识的需求进行管理是需求管理关注的问题,支持系统的需求演化 1 4 1 。它是对 系统需求进行引入、组织和记录系统需求的系统化方案,以及一个使客户与项目 团队对不断变更的系统需求达成并保持一致的过程,方便更好地控制分配的需 求,为软件工程和管理建立基线,同时保证软件计划、产品和管理活动能与分配 的需求保持一致n5 1 。需求管理由需求跟踪、需求变更控制、版本控制、需求复 用四部分组成。 版本控制是通过对需求变更过程的有效管理,详细记录发生需求变更的需求 文档版本的日期,发生变更的原因,变更发生的控制记录,更新后文档的版本号 等。并使得项组每个成员能够及时获得需求文档的最新版本。 需求复用是通过有效的需求管理,实现为需求开发过程提供可复用的需求文 档,提高需求开发的工作效率和质量。 需求变更控制、需求跟踪分别在本章和第三章介绍。 2 1 3c m m 中需求管理 c m m ( t h ec a p a b i l i g ym a t u r i t ym o d e l ) 是能力成熟度模型的缩写【1 6 1 ,这个 模型是在w a t t sh u m p h r e y 倡导的概念框架的基础上建立起来,由s e i ( s o f t w a r e e n g i n e e r i n gi n s t i t u e ) 美国卡内基梅隆大学软件工程研究院于1 9 8 7 年提出的一种 软件生产和质量保证的模式。 c m m 中的需求是一个活动的实体,处于软件系统开发的最核心。整个c m m 的指导方针是,所有活动、规划、改进和软件产品都根据分配给软件的需求一致 地进行必要的开发和修改。并且c m m 进一步指出,需求应该被管理和控制。 在c m m 2 级别中需求管理是首要关键过程领域( k e yp r o c e s sd o m a i n ) ,是软 件开发中活动不可或缺的组成部分。c m m 把需求管理过程区域总结为:需求管 理的目的是客户以及客户需求的软件团队之间建立共同的理解。即是在客户和软 6 江苏大学硕士研究生毕业论文 件项目人员之间建立一个共识,形成软件工程所必需的管理基线,从而对需求实 旌有效的控制。在软件开发过程中,所有活动计划、同程安排、交付工件都直接 或问接地和需求保持一致。c m m 建议至少要掌握三个方面的信息:软件需求的 变更内容和累计变更次数,待决定的、被建议的、被批准的以及融入基线的软件 需求变更的个数统计信息。 c m m 中重心是根据已定义和建挡案的标准实际来管理软件活动。它的k p a 包括机构过程关注、机构定义过程定义、培训程序集成软件管理、软件产品工程、 组间协调和同行复审。软件产品工程明确指出:“软件需求的获取、维护、归档 和校验有依赖于系统化的分析,这种分析要一项目所定义的软件开发流程为根 据”【l7 1 。c m m 给出了几点针对性的指导建议:变更需要经过提请、分析并且在 合适的条件下被整合:需求变更得到批准并加以整合以后,相应的工件和活动才 能变更:在变更发生之前确定该变更所带来的影响,团队之间要针对变更进行必 要的沟通和协商,所有变更在软件生命周期中始终被跟踪 1 8 l 。 需求管理在c m m 中是作为软件开发的重要过程来描述,同时还提供了具 体的管理方法和步骤,尤其在c m m 中从二级开始需求管理均是作为软件开发的 核心过程来对待,为软件开发的顺利进行提供有利的保证。 2 1 4 需求管理对需求文挡的要求 通过需求开发阶段后得到需求的文档质量高低、详细程度等方面对需求管理 的影响很大,高质量、具体的需求有利于需求管理效率提高和软件项目成功,需 求开发结果应明确需求的类型及需求之问的关系,明确需求应有属性,根据其标 识、优先级别、重要性、类型、可行性等划分需求。 标识:能够唯一地识别每个需求,相当于关系数据模型中主键,可用编号、 名签等来表示,用它来反映需求跟踪、需求之间的关系等,不同需求可以通过标 识加一区分。 优先级:用户和需求开发人员应确定每个需求的优先级,不同需求在软件项 目是不同的,可用简单数字或高、中、低、无等词目来指明每个需求的优先级, 例如,在软件系统中主要功能性需求通常优先级比较高,优先被实现,当一个需 求被其它很多需求所依赖时,其优先级别相对比较高。, 重要性:用户和需求开发人员应根据实际情况确定每个需求重要性,可用数 字、词吕等知以标识,例如在屯子两务系统中,安奎性需求可以说至关重要,其 江苏大学硕 :研究生毕业论文 重要性高过般的功能性需求。 可行性:结合和考虑领域行业的情况、目前技术等方面,软件项目组成员应 确定每个需求的可行性,例如,某些行业对系统安全性要求相当高,有时限于当 时加密、通信等计算机技术,可能无法完全满足定义的需求,因而对其可行性分 析很有必要。 类型:应按照用户需求、业务需求、功能性和非功能性来对每一个需求加以 区分,这样有利于管理。 2 2 需求变更 国内外对需求开发相关问题有较多的研究0 9 - 2 1 】,对需求变更研究较小,然而 作为需求管理的一个极其重要组成部分,需求变更对整个软件项目的进度、成本 等方面产生了巨大的影响。本节从需求变更与软件项目关系,需求变更的原因、 影响和需求变更控制、影响评估等方面进行介绍。分析现有需求变更影响评估的 不足与难点。 2 2 1 需求变更与软件项目成败 美国专门从事跟踪i t 项目成功或失败的权威机构s t a n d i s hg r o u p 在它每年 的c h a o sr e p o r t 2 2 1 报告中给出了i t 项目相关调查数据结果。根据1 9 9 9 年 s t a n d i s hg r o u p 对当年美国项目的统计数字表明,只有2 6 的项目是真正成功的, 2 8 的项目是彻底失败的( 即中途夭折的项目) ,介于两者之间是完成了的、但 “受到质疑的”项目占4 6 ,这些项目被定义为存在费用超支、超出工期的项目。 这些存在问题的或是失败的项目带来的直接损失是9 7 0 亿美元,占了美国当年全 部的i t 投资( 2 5 5 0 亿美元,1 7 5 万个项目左右) 的近4 0 ,而由于这些项目所 带来的间接损失是无法估量的。 s t a n d i s hg r o u p2 0 0 3 年公布的调查数据中,在被调查的1 3 5 万个项目中,绝 对成功的项目比例大大低于5 0 ,仅为3 4 。彻底失败的项目为1 5 。受到质 疑的项目占所有i t 项目的5 1 。通过对s t a n d i s hg r o u p 自1 9 9 4 年以来发布的一 系列项目调查数据进行了汇总,可以看到三个现象: 1 项目的成功率在提高、失败率在下降。这显示出随着时间的推移,被调查 企业项目管理能力在上升。例如从1 9 9 4 年和2 0 0 4 年的数据看,取消项目的比例 从3 1 下降到2 3 ;超期项目从1 8 9 下降到4 5 :超预算项目从2 2 2 下降到 江苏人学碗上研究生毕业论文 6 3 。 2 从总体上看,目前项目的成功率仍低至3 4 。 3 有疑问项目的比例保持基本不变,而且占据了被调查项目总数的一半左 右。 另外,从历年的s t a n d i s hg r o u p 报告分析看,导致项目失败的最重要原因与 需求有关,其中提到最多的导致项目失败的原因就是“变更用户需求”1 2 3 。项 目s t a n d i s hg r o u p 的c h a o s 报告进步证实了与成功项目最密切的因素是良 好的需求管理,也就是项目的范围管理,特别是管理好项目的变更。 b c u r t i s 的研究也表明需求变更是软件开发中的三个重要问题之一【2 4 1 ,这些 数据引证r o b e r tg l a s s 在其著作 的评述:“需求无疑是 在软件项目前期造成麻烦的一个最大原因,大量实际证明,项目失败时,需求问 题常常是其中的核心问题”。 2 2 2 需求变更指导思想 需求变更是软件产业面临的难题,也是无法回避的问题。需求变更给软件带 来的影响程度与应用系统的规模成正比。现在缺乏的是将需求变更对软件产生的 各方面影响的处理方式,以及那些能将相关问题的风险降低到最低的方法、工具 和途径,因此如果缺乏有效的处理机制来应对软件项目中的需求变更问题,那么 许多软件项目开发者难以对成本、进度等方面进行控制。随着人们对需求变更研 究的不断深入,其指导思想也发生了变化。 最初,需求变更被看作影响软件开发的消极因素,人们期望在需求开发阶段 借助各种需求获取方法、有效沟通技巧、强大的计算机辅助工具等获取准确、详 尽的软件需求。通常认为只要需求开发阶段的工作详尽,需求就可以被全部的获 取,需求变更的出现就往往被当作需求开发工作的失败,因此,在这一时期软 件开发者往往在开发工作展开之前,将需求“冻结”。这样做法虽然能从一定程 度上避免随意需求变更对软件开发工作产生的影响,但是却无法适应快速变化的 实际需要,引发了软件开发者与客户之间矛盾,降低了市场竞争力,这种指导思 想的缺陷包括: ( 1 ) 将所有的需求变更都被视为妨碍软件开发的消极因素,势必会对那些有 利的需求变更视而不见,如叻能增强缺陷修正等,往往导致有积极影响的需求 变更被忽略。 江苏夫学硕士研究生毕业论文 ( 2 ) 采用需求“冻结”方法,这种暂时处理的方法所付出的代价可能会超过 其它的处理方法,当重新实旄需求变更时,软件产品大部分工作已经完成,付出 的代价往往比提出“冻结”时高出许多。 实际表明,需求“冻结”方法也不是应对需求变更明智的做法,软件开发者 需要重新对需求变更的审视,采取更加积极主动的态度来应对这在实践中无法 避免的难题。目前一种较有效的做法是在软件项目中设立变更控制委员会( c c b ) 由c c b 对各种变更进行统一的处理,而且也只有c c b 对需求变更有权处理。 c c b 的工作是审核所提交的每个需求变更,分析需求变更所带来的影响和相应 的风险,依据有关章程对变更进行决策,将需求变更纳入到软件开发过程中。 2 2 3 需求变更的原因 在整个软件生命周期中,需求变更是无法回避的,而且部分需求是必要的、 合理的,需求发生变更的原因主要有以下几方面; ( 1 ) 需求开发中的固有难题 如果能够通过需求开发获取完整、无歧义、一致的需求,则在软件开发各个 过程中将软件人员、技术、方法等进行有机的融合,就能按照客户的要求如期、 顺利地提交软件产品。 然而实际的情况却并非如此,在软件项目生命周期中,需求变更始终存在。 究其原因,一方面是软件需求开发由软件工程师来完成,通常不是领域专家,让 他们理解应用领域的全部细节比较团难,与用户交流的不通畅。另一方面,现有 需求分析方法并不能捕获到所有完整的、准确的、一致的需求,形式化方法是基 于数学的规格说明语言口扪。虽然能准确定义软件需求,在早期发现需求中隐含 的不一致性、不完整性,但是很抽象通常很难被用户和软件开发所人员所领悟 和掌握。 ( 2 ) 随着软件项目的进展,用户对需求有了更加清晰、深入的认识,需要对 前期提出的需求进行必要的变更处理。 ( 3 ) 新技术层出不穷,使得在开发软件过程中不断采用更加新颖、方便、 实用的技术,方便开发人员工作的同时,在客观上也促成了需求变更的可能。 ( 4 ) 业务发生了变化,最初的需求已经不能够适应实际的业务需要。进行 需求变更来保持软件的应用价值。 ( 5 ) 一部分软件项目人员往往对建议的软件变更成本或其他衍生结果不能 1 0 江苏大学硕十研究生毕业论文 提供准确的评估。“变更是免费的”这种误解是造成变更在软件项目范围中蔓延 一个重要原因,人们往往只有知道需求变更带来的影响才能做出理智的选择。 ( 6 ) 信息技术发展迅猛,软件项目的市场竞争也f 1 趋激烈,软件项目人员 往往考虑开发进度、利润率、市场占有率等重要因素而对前期的需求开发工作被 压缩,没有对需求工作做得很细,需求管理过程也缺乏严格保证,导致后期的需 求变更频频繁发生,会产生恶性循环,如图2 3 所示。 图2 - 3 软件项目恶性循环 2 2 。4 需求变更产生的影响 从需求工程结构图中可得知,需求变更控制仅是需求工程中一个组成部分, 然而需求变更在软件开发过程中所产生的影响却是远远超过了它所处的位置,究 其原因可从以下几个方面来解释: ( 1 ) 一般来讲,提出需求变更的动机是好的,都希望软件产品更加符合用 户的需求或业务变化。但是对项目开发人员而言,需求变更对整个软件项目意味 着风险,需求变更很可能造成软件开发人员已完成工作的部分废除甚至是全部推 倒重来,因此从资金、进度、人员、时间上产生难以预测的风险。 ( 2 ) 普遍存在的需求之间依赖关系使得需求变更容易引发“影响蔓延”, 同时需求所处的状态与影响程度有着很大的关系,因而需要对需求变更作出快 速、准确的影响评估、控制等。把需求变更控制在一定范围很有必要,否则开发 小组为此付出较大的代价,更有甚着,因此失去对相当复杂的大型软件项目控制。 ( 3 ) 如果不能较好地评估需求变更带来潜在的影响,势必引发软件项目组 成员与客户之间的矛盾,影响到两者的协作关系,为软件项目的前景蒙上阴影。 江苏大学硕士研究生毕业论文 2 2 5 需求变更控制及管理工具 1 需求变更控制定义 需求变更控制作为需求管理重要的一部分,是研究如何在软件项目中对需求 变更进行合理控制的过程,该过程包括需求变更的申请,评估变更带来的潜在风 险,防止因需求变更引发软件项目的失控,同时对需求变更的实施过程进行监督 1 2 6 1 。 在软件开发过程中出现了需求的变更,如果忽视了对它的控制,没有针对需 求变更造成的影响及时采取有效的措施,可能导致开发出的软件产品不符号变更 了的需求,导致得到的产品并不是用户所需要的产品这样的严重后果。 在图2 - 4 中,反映了受控需求变更与不受控需求变更的差别,上面部分反映 了未受控的情况:根据需求文档r d i ,得到系统实现r d l ,此时出现的需求变更 直接作用于系统实现r d i ,对其作了适当调整后得到了系统实现r d 2 。这种调整 难于保证系统实现r d 2 和变更需求后一致。图中下面部分的处理可避免这问题 的发生。其做法是在系统实现r d i 形成过程中出现的需求变更,应使其修改需求 文档r d i ,从而得到需求文档r d 2 ,同时吸收系统实现r d l 的可用部分得到系统 实现。 未受控的需求 引起和系统实现 的不一致 ( 9 受控的需求 使需求和实现 一致 圈2 - 4 需求变更受控与否对比 需求变更之所以变得难以管理,不仅是因为一个变更了的需求意味着要花费 1 2 江苏大学硕士研究生毕业论文 多少的工作量柬实现某一个新特性,而是因为对某个需求的变更往往影响到其他 需求。 2 需求变更管理工具 随着需求管理在软件项目中扮演着越来越重要的角色,出现一批优秀商业化 的需求管理工具,如r a t i o n a lr e q u i s t e p r o 、d o o r s 等,需求管理工具为软件生命 周期中需求变更控制提供了较好的支持,需求变更管理工具大致可分为三类:需 求管理工具、变更管理工具、配置管理工具,如图2 5 所示。 夺需求管理工具完成软件项目中需求的、圮录、检索、定制、存储、关联、 交流等工作,对变更控制、需求跟踪、需求复用、版本控制等提供不同 程度支持: 夺变更管理工具就是管理项目开发过程中产生的变更,通过完善的变更控 制规则、制定有效的工作流程、设置合理的用户权限来确保变更得以规 范,使项目朝着预定的方向进展2 ”。 冷配置管理工具则满足团队协作开发的需要,使得并行开发的工作效率得 到提高,记录并维护软件开发过程中所产生的庞大且不断变化的信息 集。 需求获取 i 需求分析 h 。_ 。 】,- 一 需求定义 需求验证 需求规格说明 书 版本控制 变更控制 需求跟踪 需求复用 图2 - 5 支持需求变更的工具 配置管理工具 变更管理工具 需求管理工具 需求管理的目的是在用户和软件开发人员之间建立对需求的共同理解,需求 管理工具虽然不能自动完成软件需求丌发的工作,但是它对软件需求进行了管理 工作,需求管理与软件项目的成本、进度以及交付给用户的软件产品质量有着密 切的关系1 2 8 1 ,未来的需求管理工具正向着分布式、协同、与工作流相结合,适 应软件体系结构等方向发展。表2 1 对常见的需求管理工具进行了对比分析。 从表中可看出,需求管理工具0 :鄙通过跟踪技术对需求变更控制提供不同 江苏大学碗十研究生毕业论文 程度的支持。 表2 i 常见需求管理工具比较表 工具名称 r e q u i s i t e p r o d o o r r s d r a g o n f l y c a l i b e r r m 内建变更建 不支持支持不支持 支持 议系统 存储文档数据库数据库 数据库 从文档中导较差较好很好一般 入需求到数 据库 需求之间的较好地支持支持提供需求跟支持 关联建立踪矩阵 需求基线支持提供电子签支持支持 名 其它工具的 可以和和w o r d 结合 与b u t t e r f l y提供对常用 集成r a t i o n a l 系歹i j不紧密完美集成,对工具软件的 产品很好的w o r d 提供集成 集,和w o r d支持 结合紧密 需求跟踪支持支持支持支持 变更扩散提 支持支持支持 支持 不 2 2 6 需求变更控制流程 软件本身所固有的复杂性使得软件生命周期中面临不确定的变更因素,这些 变更因素随时会被引发,因而如何有效、合理地处理需求变更,合理避免可能的 变更,保证软件项目按期、高质量的完成。尽量采纳最合适的变更,把变更可能 产生的风险控制到最小。如图2 6 所示,现有需求变更控制流程的一般为: 用户、需求分析人员、软件开发者等相关人员提出需求变更申请。 变更控制委员会全面评估需求变更对整个软件项目产生的影响,影响评 估是需求变更控制流程中极为重要的一步,主要对软件项目进度、成本、工作量、 系统稳定性等方面造成的影响进行评估,并把影响评估的结果提交软件项目负责 人来进行审批,有时也由变更控制委员会来审批。 审批。般需要软件项目负责人和用户共同承担需求变更带来的审批工 4 江苏大学硕士研究生毕业论文 作。 修改需求文档。通过审批的变更申请,变更申请人从需求管理员处获得 需要修改的当前使用的需求文档版本,同时参照需求跟踪矩阵找到受需求变更影 响的设计、代码和测试用例等软件产品元素,并通知相关的相关人员。 重新进行需求确认。要重新组织对需求的评审和确认工作,将通过需求 评审和确认的需求文档纳入需求管理,并把需求变更的相关信息告知有关人员。 变更结束。软件项目负责人根据需求变更影响评估结果,进行相关工作 协调。 变更影响评估 上 审批 上 修改需求文档 上 重新进行需求确认 上 变更结束 图2 - 6 需求变更控制流程 2 。2 7 需求变更影响评估 需求变更影响评估是变更控制流程中关键一步,目前大部分软件项目都设立 变更控制委员会来对需求变更进行影响评估,因重视不够、人力不足、意识淡薄 等原因,在相当一部分中、小软件项目中没有设立变更控制委员会,软件项目负 责人往往凭主观、经验等来评估变更造成的影响,增加了软件项目的风险。 变更控制委员会是从需求变更对软件项目进度、成本、工作量、系统稳定性、 其它需求等方面造成的影响进行评估,通常采用下面类似的模板来提交起影响评 估的结果p ,如2 7 图所示。 1 5 莩 江苏大学硕士研究生毕业论文 图2 - 7 影响评估模板 变更控制委员会对需求变更产生的影响进行评估的机制在确保软件项目按 期、高质量的完成中发挥着重要作用,但是存在以下不足与难点: ( 1 ) 需求变更控制委员会大部分不是软件开发人员无法很清楚地了解需求 状态及相关信息,增加需求变更影响评估不确定性,有时不能做出较合理的决策, 增加了软件项目风险。 ( 2 ) 伴随着现代化社会的高速发展,软件开发进度要求也越来越高变更量 之多、变更频率之快,需求变更控制委员会往往要花费数天甚至更长的时间才能 得到评估结果,影响了软件项目的进度。 ( 3 ) 需求之间存在的依赖关系给变更影响评估带来了难度,也是确定需求变 更影响范围的关键所在。c c b 采用的主要评估方法是借助需求跟踪链或矩阵来 确定需求变更给设计、编码等软件产品元素带来的影响,评估的结果尚不能包含 依赖因素所带来的影响,而软件系统中需求之间复杂的依赖关系,使得某需求变 更极易对其它需求造成影响,导致影响的蔓延现象。如图2 8 所示,当需求r - 发生变更后,依赖关系的存在使得变更影响产生了传递,r 2 、r 3 、r 4 、r 5 、心 会受到不同程度的影响,需求间依赖关系给变更影响评估增加了难度。 变 图2 - 8 需求变更影响蔓延 1 6 江苏人学硕上研究生毕业论文 2 3 本章小结 本章结合需求工程结构依次介绍了需求定义、需求开发、需求管理等相关知 识,重点对需求变更的原因与影响、变更控制、需求管理工具、变更影响评估等 方面进行了分析。需求之间的依赖关系使得需求变更极易产生影响的蔓延,给影 响评估带来难度,而现有的评估方法尚不能包含依赖因素所带来的影响。因此, 变更影响评估须考虑依赖因素所造成的影响。本章的内容为下一步的研究作铺 垫。 江南大学硕士研究生毕业论文 3 1 需求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 瑞金市消防安全培训课件
- 农业碳汇项目碳排放权交易市场政策环境与市场发展动态研究
- 恩施美化工程方案(3篇)
- 东莞废水环保工程方案(3篇)
- 店面水电改造工程方案(3篇)
- 农业碳汇产品认证与市场推广策略报告
- 电厂工程大件运输方案(3篇)
- 农业现代化背景下的数字化转型路径与模式研究2025
- 球团车间安全知识培训课件
- 广西佛子矿业有限公司石材加工一厂年产30万吨级废石(矿山固废)综合再生利用项目环评报告
- 2025至2030中国污水处理设备行业商业模式及发展前景与投资报告
- 2025年烟草生产专用设备制造行业研究报告及未来行业发展趋势预测
- 2025至2030中国核反应堆建造行业发展趋势分析与未来投资战略咨询研究报告
- 2025江苏连云港市海州区第二批招聘社区工作者97人考试参考试题及答案解析
- 2025-2026学年粤教花城版(2024)初中音乐七年级上册教学计划及进度表
- DZ∕T 0215-2020 矿产地质勘查规范 煤(正式版)
- 肾脏肿瘤影像学诊断策略
- 仓库定期检查表范例仓库管理工作检查项目与评分标准
- 化疗前的准备和评估
- 显微外科设备器械及显微外科基本技术培训教材培训课件
- GB/T 13871.1-2022密封元件为弹性体材料的旋转轴唇形密封圈第1部分:尺寸和公差
评论
0/150
提交评论