当前位置: 首页 > 专利查询>武汉大学专利>正文

一种整合主观和客观评估的需求优先级排序方法及系统技术方案

技术编号:12876304 阅读:117 留言:0更新日期:2016-02-17 12:32
一种整合主观和客观评估的需求优先级排序方法及系统,包括确定需求对与相对优先级的排序,得到已排序需求对;确定针对软件属性的需求重要性排序;进行需求主观重要性评估,利用机器学习得到需求初始优先级;进行需求客观影响力评估,包括根据业务流程图,构造需求依赖关系网络拓扑图,并在依赖关系网络拓扑图基础上计算需求影响力;根据调节因子,整合需求初始优先级和需求影响力,生成需求最终优先级。本发明专利技术通过构造软件属性树,简化针对单个软件属性的需求重要性信息收集过程,利用机器学习训练属性权重,为计算需求初始优先级提供支持;同时兼顾到需求之间依赖关系对需求优先级的影响,使评估结果更准确。

【技术实现步骤摘要】
一种整合主观和客观评估的需求优先级排序方法及系统
本专利技术涉及软件需求工程
,尤其涉及一种基于整合主观重要性评估和客观影响力评估的需求优先级排序方法及系统。
技术介绍
需求工程是当今软件工程中面临的一个关键问题,根据美国软件行业的一项调查显示,在8000多个项目中,有三分之一的项目没能完成,即使那些完成的项目,也有一半的项目没有成功实施。在导致这些项目失败的原因中,与需求相关的原因占到了45%。需求变更和估算不准确是导致软件开发失败的两个最主要的原因。因此,在信息系统的开发过程中,如何完整准确地获取客户需求,如何在现实的各种条件约束下,对待实现需求进行优先级排序,选择出最有价值的需求优先满足,是软件开发人员面临的一个非常困难而且关键的问题。在需求工程中,参与的涉众包括领域专家、客户、软件开发人员以及扮演其他角色的相关人员。这些涉众具有不同的知识背景、不同的关注点,对系统的利益诉求也不尽相同,对需求的重要程度认识也很难达成一致,导致需求的优先级评价受主观因素影响较大;其次,需求优先级评价往往先于系统设计和实现,缺少评价的客观指标体系,要求涉众对需求的实现成本进行准确预测存在较大困难;第三,需求之间往往存在千丝万缕的联系,割裂联系,仅比较各需求单元本身的重要程度,会带来较大误差。因此需求优先级排序一直是困扰需求工程师的关键问题之一。需求优先级排序是为了在软件开发人员和客户之间针对需求的效益成本最大化问题以及在没有更多可用资源情况下如何选择优先实现的需求而提出的一种解决方案。通过去除那些不必要的需求并且简化那些不必要的复杂部分达到快速开发软件的目的。目前,研究者提出了许多技术用于辅助需求优先级的确定。第一类是成本效益需求优先级评估法。这类方法通过建立每个需求的相对价值和相对费用,优先选择那些以最小的费用产生出最大产品价值的需求。但由于需求价值和费用估计困难,成本价值比估计容易产生误差;同时需求之间存在复杂的依赖关系,简单淘汰性价比较低的需求可能导致系统功能不完整或无法实现。第二类是需求优先级成对比较法AHP。这类方法通过将需求集合中所有的需求进行成对比较,而最终确定需求优先级。但当需求多于24个时,通过两两比较来计算就变得不合实际了。由此衍生出层次式需求优先级成对比较法等各种方法,能够较好地解决同层需求过多的问题,但随之而来的另一个问题是,面对大型系统需求繁多,过多的层次会导致深层次的需求优先级将大大低于浅层次的需求优先级而容易遭淘汰,但它们又往往是实现上层需求不可或缺的,从而导致方法失灵。第三类方法是功能质量展开法QFD,通过关系矩阵将需求映射到设计、生产属性上,从而确定需求重要度的方法。QFD方法关键在于构建质量屋,通过从需求的重要性、与竞争对手产品的需求比较、确定产品设计属性的改进方向、估计实现难度等方面计算需求重要度。该方法避免了使用比较矩阵进行逐对比较的繁琐过程,重点分析了设计属性之间的相互作用关系,却忽略了需求间的相互关系,只适合同层需求的重要性评估。第四类方法是基于依赖关联的需求优先级排序。这类方法首先需要定义需求之间存在的关系类型,然后根据定义通过成对比较确定需求间的关联,最后根据关联性强弱和关联边的多少确定优先级。该类方法由于也需要进行成对比较,当需求较多时,工作量仍然非常大;同时仅仅根据关联性强弱和关联边的多少确定优先级也缺乏对需求本身属性的考虑,容易使结果产生较大偏差。
技术实现思路
针对上述存在的技术问题,本专利技术的目的是提供一种整合主观影响力评估和客观重要性评估的需求优先级排序方法及系统,一方面,通过构造软件属性分解树,可以增强需求之间的可比性,从而提高优先级评价的可操作性和准确性;另一方面,利用机器学习算法生成需求主观影响力评估所需的需求初始优先级计算公式,提高软件属性权重分配的科学性,从而降低需求主观影响力评估的难度;再者,能够利用对需求间依赖关系的链路分析,并根据依赖的方向和强度自动计算需求影响力程度,弥补需求优先级主观评价可能受到涉众知识、经验局限而出现较大偏差的缺陷。为达到上述目的,本专利技术采用如下的技术方案:一种整合主观和客观评估的需求优先级排序方法,包括以下步骤:步骤1,确定需求对与相对优先级的排序,得到已排序需求对;设有需求对(a,b),包括需求a和b,相应的相对优先级定义如下,步骤2,确定针对软件属性的需求重要性排序,包括根据软件属性分解树,从其中选择关注的属性作为排序规则;按照已选择的排序规则,在每个排序规则下分别确定相应需求排序结果;步骤3,进行需求主观重要性评估,包括基于已排序需求对和已选排序规则下需求排序结果,利用机器学习技术训练出每个排序规则的权重,生成需求初始优先级计算公式;将所有已选排序规则下需求排序结果导入计算公式,计算出需求初始优先级;步骤4,进行需求客观影响力评估,包括根据业务流程图,构造需求依赖关系网络拓扑图,并在依赖关系网络拓扑图基础上,利用链路分析算法计算需求影响力;步骤5,需求优先级合成,包括根据用户相应的调节因子,整合需求初始优先级和需求影响力,生成需求最终优先级,实现如下,设有需求ri,将需求ri的初始优先级值IRP(ri)除以所有需求中最大的初始优先级值,得到归一化的需求ri的初始优先级值;将需求ri的影响力值PPR(ri)除以所有需求中最大的影响力值,即得到归一化的需求ri的影响力值,然后计算如下,需求ri最终优先级值=c·归一化的需求ri初始优先级值+(1-c)·归一化的需求ri影响力值其中,c为调节因子。而且,步骤3中,利用机器学习技术训练出每个排序规则的权重,实现方式如下,步骤a,给每个需求对赋予相同的权重,并将机器学习过程最大迭代次数设定为T,T值等于已选软件属性的数目,初始化t=1;步骤b,执行第t次迭代,包括计算出所有已选属性的效度值,挑选其中效度值最大的软件属性,并且只将该属性的权重设定为1/t其他的属性权重不变;所述效度值计算实现如下,对已选的某个软件属性,将该属性下需求排序结果,与某个需求对进行比较,并计算该需求对与该需求排序结果的匹配度如下,其中,fx(a)表示在软件属性x下需求a的排名,fx(b)表示在软件属性x下需求b的排名,设需求对集合为S;基于该属性对所有的需求对都经过匹配度计算之后,根据所有需求对的匹配度Px(a,b)计算该软件属性的效度值Vx如下,其中,每个需求对的权重w(a,b)初始化取值为1;步骤c,如果t<T,则调整需求对权重,将与针对该属性的需求排序结果匹配度最大的需求对的权重w(a,b)当前取值减半,并令t=t+1,返回步骤b,直到T次迭代完毕,得到每个属性相应的权重。而且,步骤4中,利用链路分析算法计算需求影响力,实现方式如下,设Win(ri->rj)表示依赖关系网络拓扑图中依赖关系边ri->rj的入链权重,计算如下,其中,Irj表示需求rj被其它需求所依赖的依赖程度值之和,S(ri)表示需求ri所依赖的所有需求的集合,集合S(ri)中任一需求记为rp;设Wout(ri->rj)表示依赖关系网络拓扑图中依赖关系边ri->rj的出链权重,计算如下,其中,Orj表示需求ri依赖于其他需求的依赖程度值之和;定义需求rj对ri的总影响力程度值为并使用B(本文档来自技高网
...
一种整合主观和客观评估的需求优先级排序方法及系统

【技术保护点】
一种整合主观和客观评估的需求优先级排序方法,其特征在于,包括以下步骤:步骤1,确定需求对与相对优先级的排序,得到已排序需求对;设有需求对(a,b),包括需求a和b,相应的相对优先级定义如下,步骤2,确定针对软件属性的需求重要性排序,包括根据软件属性分解树,从其中选择关注的属性作为排序规则;按照已选择的排序规则,在每个排序规则下分别确定相应需求排序结果;步骤3,进行需求主观重要性评估,包括基于已排序需求对和已选排序规则下需求排序结果,利用机器学习技术训练出每个排序规则的权重,生成需求初始优先级计算公式;将所有已选排序规则下需求排序结果导入计算公式,计算出需求初始优先级;步骤4,进行需求客观影响力评估,包括根据业务流程图,构造需求依赖关系网络拓扑图,并在依赖关系网络拓扑图基础上,利用链路分析算法计算需求影响力;步骤5,需求优先级合成,包括根据用户相应的调节因子,整合需求初始优先级和需求影响力,生成需求最终优先级,实现如下,设有需求ri,将需求ri的初始优先级值IRP(ri)除以所有需求中最大的初始优先级值,得到归一化的需求ri的初始优先级值;将需求ri的影响力值PPR(ri)除以所有需求中最大的影响力值,即得到归一化的需求ri的影响力值,然后计算如下,需求ri最终优先级值=c·归一化的需求ri初始优先级值+(1‑c)·归一化的需求ri影响力值其中,c为调节因子。...

【技术特征摘要】
1.一种整合主观和客观评估的需求优先级排序方法,其特征在于,包括以下步骤:步骤1,确定需求对与相对优先级的排序,得到已排序需求对;设有需求对(a,b),包括需求a和b,相应的相对优先级定义如下,步骤2,确定针对软件属性的需求重要性排序,包括根据软件属性分解树,从其中选择关注的属性作为排序规则;按照已选择的排序规则,在每个排序规则下分别确定相应需求排序结果;步骤3,进行需求主观重要性评估,包括基于已排序需求对和已选排序规则下需求排序结果,利用机器学习技术训练出每个排序规则的权重,生成需求初始优先级计算公式;将所有已选排序规则下需求排序结果导入计算公式,计算出需求初始优先级;步骤4,进行需求客观影响力评估,包括根据业务流程图,构造需求依赖关系网络拓扑图,并在依赖关系网络拓扑图基础上,利用链路分析算法计算需求影响力;步骤5,需求优先级合成,包括根据用户相应的调节因子,整合需求初始优先级和需求影响力,生成需求最终优先级,实现如下,设有需求ri,将需求ri的初始优先级值IRP(ri)除以所有需求中最大的初始优先级值,得到归一化的需求ri的初始优先级值;将需求ri的影响力值PPR(ri)除以所有需求中最大的影响力值,即得到归一化的需求ri的影响力值,然后计算如下,需求ri最终优先级值=c·归一化的需求ri初始优先级值+(1-c)·归一化的需求ri影响力值其中,c为调节因子。2.根据权利要求1所述整合主观和客观评估的需求优先级排序方法,其特征在于:步骤3中,利用机器学习技术训练出每个排序规则的权重,实现方式如下,步骤a,给每个需求对赋予相同的权重,并将机器学习过程最大迭代次数设定为T,T值等于已选软件属性的数目,初始化当前迭代次数t=1;步骤b,执行第t次迭代,包括计算出所有已选属性的效度值,挑选其中效度值最大的软件属性,并且只将该属性的权重设定为1/t,其他的属性权重不变;所述效度值计算实现如下,对已选的某个软件属性,将该属性下需求排序结果与某个需求对进行比较,并计算该需求对与该需求排序结果的匹配度如下,其中,fx(a)表示在软件属性x下需求a的排名,fx(b)表示在软件属性x下需求b的排名,设需求对集合为S;基于该属性对所有的需求对都经过匹配度计算之后,根据所有需求对的匹配度Px(a,b)计算该软件属性的效度值Vx如下,其中,每个需求对的权重w(a,b)初始化取值为1;步骤c,如果t<T,则调整需求对权重,将与针对该属性的需求排序结果匹配度最大的需求对的权重w(a,b)当前取值减半,并令t=t+1,返回步骤b,直到T次迭代完毕,得到每个属性相应的权重。3.根据权利要求1或2所述整合主观和客观评估的需求优先级排序方法,其特征在于:步骤4中,利用链路分析算法计算需求影响力,实现方式如下,设Win(ri->rj)表示依赖关系网络拓扑图中依赖关系边ri->rj的入链权重,计算如下,其中,表示需求rj被其它需求所依赖的依赖程度值之和,S(ri)表示需求ri所依赖的所有需求的集合,集合S(ri)中任一需求记为rp;设Wout(ri->rj)表示依赖关系网络拓扑图中依赖关系边ri->rj的出链权重,计算如下,其中,表示需求rj依赖于其他需求的依赖程度值之和,表示需求rp依赖于其他需求的依赖程度值之和;定义需求rj对ri的总影响力程度值为并使用B(rj)表示依赖于rj的需求的集合,迭代更新需求rj的总影响力值PPR(rj)如下,其中,d为阻尼系数。4.一种整合主观和客观评估的需求优先级排序系统,其特征在于,包括以下模块:需求对排...

【专利技术属性】
技术研发人员:邵飞彭蓉冯在文
申请(专利权)人:武汉大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1