CN101894070A - 一种基于加权调整的新需求代码量量化评估方法及系统 - Google Patents

一种基于加权调整的新需求代码量量化评估方法及系统 Download PDF

Info

Publication number
CN101894070A
CN101894070A CN2010101990231A CN201010199023A CN101894070A CN 101894070 A CN101894070 A CN 101894070A CN 2010101990231 A CN2010101990231 A CN 2010101990231A CN 201010199023 A CN201010199023 A CN 201010199023A CN 101894070 A CN101894070 A CN 101894070A
Authority
CN
China
Prior art keywords
demand
code
new
feature extraction
size
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010101990231A
Other languages
English (en)
Inventor
王青
高健
李娟�
钟浩
杨达
李引
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN2010101990231A priority Critical patent/CN101894070A/zh
Publication of CN101894070A publication Critical patent/CN101894070A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于加权调整的新需求代码量量化评估方法及系统,该方法根据软件项目已有的N个需求进行特征提取;从中选取m个需求的特征提取数据,每个需求的特征提取数据RSi,设置软件项目的调整参数γ=1,计算需求RSi的代码量估算值ESi;求出估算值和真实值的比值ri,取调整参数γ的值为所有的比值γi的平均值;对该软件项目的新需求进行特征提取;每一新需求Rnewi与已有需求计算距离Dij;计算需求相互影响的权重Wij;根据公式计算新需求Rnewi的代码量估算值Ei。本发明的方法将新需求与软件项目已有需求计算相似度,使用全部已有需求的特征数据,能够准确的量化新需求将要产生的代码量。

Description

一种基于加权调整的新需求代码量量化评估方法及系统
技术领域
本发明属于计算机软件开发技术领域,涉及一种新需求产生代码量的量化评估方法及其系统。
背景技术
Standish Group于1995年对8000个项目进行分析,结果表明31%的项目在完成之前被迫取消,52.7%的项目曾陷入困境,只有16.2%的项目取得成功。在2004年,Standish Group又对13522个软件项目进行调查,结果表明18%的项目失败,53%的项目遭到质疑,仅有29%的项目是成功的。软件项目经常以失败告终,其中一个重要原因是需求经常处于演化之中。现有的研究表明,软件项目中需求的演化非常频繁,并且在很大程度上决定了软件项目的成败。
软件项目的开发人员通常希望在需求获取阶段确定所有的需求,并且在整个软件开发过程中需求都不发生变化。然而,软件开发的实践表明,需求的演化存在于整个软件开发的生命周期。Ebert等人展示了一个实际的软件项目的演化过程,结果表明该项目在仅仅2年内就有多于30%的需求发生了变化(参考文献:“C.Ebert,″Understanding the Product Life Cycle:Four Key Requirements Engineering Techniques″.IEEE Software,May/Jun,2006,23(3):19-25”)。而对不断变化的需求进行管理是一件十分困难的事情。
当需求发生演化时,需要对演化带来的影响进行评价和分析,以便采取相应的处理措施。精确的估算方法将有利于上层决策者对于软件演化做出准确的分析和决策,从而保证软件项目顺利完成。然而,正如Knethen所指出,现有研究中缺乏准确的方法来估算需求演化的影响(参考文献:“A.Knethen,″Change-Oriented Requirements Traceability:Support for Evolutionof Embedded Systems″.18th IEEE International Conference on Software Maintenance(ICSM′02),2002:0482”)。Yan的研究也认为目前缺乏对于需求演化产生的影响量化分析的方法(参考文献:“Y.Yan,S.Li,X.Liu.″Quantitative Analysis for Requirements Evolution’s Ripple-Effect″.2009 International Asia Conference on Informatics in Control,Automation and Robotics,2009”)。
需求演化分为增加新需求、修改需求和删除需求三种演化方式。修改和删除两种演化方式是针对软件项目已有的需求进行的操作,上述方法可以较好地适用于这两种演化方式。而增加新需求则是对软件项目增加一条新需求,以完成一个新添加的功能。要满足新需求一般需要向已完成的软件代码中添加一定量的新代码。由于新需求所需的代码尚未实现,无法利用上述方法对新需求所需的代码规模进行估算。
新需求的增加是需求演化的一种形式。由于缺乏新需求与已有需求或代码间的直接联系,因而对于新需求的代码规模的估算十分困难。
现有的需求演化影响分析方法中,能够预测代码变更量的方法比较少。已有方法主要分为两类,一类是根据代码中的调用关系进行估算;一类是根据需求间的依赖关系进行估算。
(1)根据代码调用关系的估算需求演化代码影响量的方法(参考文献:“Franck Xia,Praveen Srikanth.″A Change Impact Dependency Measure for Predicting the Maintainability ofSource Code,″.compsac,vol.2,28th Annual International Computer Software and ApplicationsConference-Workshops and Fast Abstracts-(COMPSAC′04),2004:22-23”):当一个需求发生变化的时候,由于受到这个变化导致代码中某部分直接受到影响,影响根据代码的调用与被调用关系扩散,并且随着调用层次的增加,受到的影响逐渐变小。对受到影响的代码量进行求和,作为需求影响值。
(2)根据需求依赖关系的估算需求演化代码影响量的方法(参考文献:“杨鹤标,张继敏,朱玉全.一种需求变更影响的评估算法.计算机工程,2006,32(23):82-84”):根据需求依赖关系,建立由需求依赖树形成的森林。当依赖源需求发生变化,会对依赖目标需求产生影响,影响通过依赖关系从源需求向目标需求传递。对受到影响的需求对应的工作量求和,作为需求的影响值。
以上两类方法在估算影响时,都需要首先确定演化的需求所对应的代码,而对于增加的新需求,则不能够将新需求与已有代码建立有效的关联关系,所以无法准确估算新需求将要产生的代码量。
发明内容
鉴于量化新需求代码规模的重要性以及现有方法的局限性,本发明通过基于加权调整的新需求代码规模的估算方法(the Estimation Method for the Code size of New Requirementsusing Weight,EMCNR-W)对代码变更量进行量化分析,并实现了基于EMCNR-W方法的自动化评估系统。即本发明的目的之一在于提供一种基于加权调整的新需求代码规模的评估方法其能够估算新需求将要产生的代码量,从而当软件项目增加新需求的时候,能够有效的帮助项目管理者降低软件项目失败的风险;本发明的另一目的为提供一种自动化评估系统。
为了实现本发明的第一目的,本发明采用的技术方案为:
一种新需求产生代码量的量化评估方法,其步骤包括:
1)根据设定的需求特征对数据库中某软件项目已有的N个需求进行特征提取;
2)选取该项目中m个需求的特征提取数据(RS1,RS2,RSi,...,RSm)作为训练数据,其中0<m<N;
3)将m个需求中每个需求的特征提取数据RSi分别与除该需求外的已有需求的特征提取数据计算距离,并计算相应的影响权重Wij,设置软件项目的调整参数γ=1,计算需求RSi的代码量估算值ESi
4)求出比值
Figure BSA00000165560900031
其中,i=1...m,LSi为实际代码量;取调整参数γ的值为所有的比值γi的平均值;
5)根据设定的需求特征对该软件项目的新需求进行特征提取;
6)利用1)和5)的特征提取数据对每一新需求Rnewi与该N个已有需求计算距离Dij
7)根据新需求Rnewi与N个已有需求之间的距离Dij计算需求相互影响的权重Wij
8)根据公式计算新需求Rnewi的代码量估算值Ei,其中Wij为已有需求Rj对新需求Rnewi的影响权重,Lj为已有需求Rj的实际代码量。
所述设定的需求特征包括需求描述质量、需求内容质量、需求文本长度、需求依赖密度、开发团队综合能力。
进一步,将特征提取的需求特征值映射到一个相同的取值区间。
所述特征提取数据保存为XML格式。
所述计算距离采用了欧式距离法,或者使用向量内积法、向量余弦系数法、Dice系数法、Jaccard系数法。
所述需求之间的距离Dij与需求相互影响的权重Wij之间成反比。
进一步,需求影响权重Wij与需求间距离Dij的三次方成反比。
所述步骤7)软件项目已有的N个需求对于新需求Rnewi的影响权重之和为1,即
为了实现本发明的另一目的,采用的技术方案是:
一种基于加权调整的新需求代码规模的估算系统,其包括特征提取模块、影响权重计算模块、调整参数γ训练模块、代码量预测模块;
所述特征提取模块,用于根据设定的需求特征对软件项目的每个需求进行特征提取;
所述需求影响权重计算模块,用于提供所需的权重计算算法,对输入的需求数据进行影响权重的计算;
所述调整参数γ训练模块,用于根据特征提取的数据,调用需求影响权重计算法模块的接口,训练调整参数γ,获得估算公式;
所述代码量预测模块,用于根据新需求和已有需求的特征提取后的数据,调用影响权重计算模块的接口并利用所述估算公式,预测每一新需求将要产生的代码量。
上述系统还包括测试验证模块,对代码量预测模块估算出来的新需求代码量与实际代码量进行比较,验证估算方法的有效性。
与现有技术相比,本发明的优点和技术效果如下:
(1)本发明的方法将新需求与软件项目已有需求计算相似度,使用全部已有需求的特征数据,能够准确的量化新需求将要产生的代码量。
(2)本发明根据EMCNR-W方法实现的估算系统,在用户输入根据需求特征提取的数据后,能够自动化的预测新需求将要产生的代码量,并且能够直观显示估算结果。
附图说明
图1为本发明的EMCNR-W方法执行示意图;
图2为本发明的EMCNR-W方法训练调整参数γ并获得估算公式的流程图;
图3为本发明的EMCNR-W方法预测新需求的代码量流程图;
图4为本发明的自动化评估系统流程图;
具体实施方式
下面结合附图和具体实施方式对本发明进行详细的介绍。
如图1所示为本发明方法的执行示意图,本发明的EMCNR-W方法是一种针对新需求与已有需求进行相似性比较,来估算新需求的代码量的方法,能够准确的量化新需求将要产生的代码量。
对于一个已开发了n条需求(R1,R2,...,Rn)的软件项目,要对软件项目中增加的一个新需求Rnewi将要产生的代码量Lnewi进行估算,可以直接使用需求之间的距离作为需求的相似性,与Rnewi越接近的Rj对Lnewi的影响越大,与Rnewi越疏远的Rj对Lnewi的影响越小。为了表示影响的大小关系,给每一个需求Rj对于新需求Rnewi的影响加上一个权重Wij。并且,设 ∑ j = 1 n W ij = 1 .
如图2所示为训练调整参数γ并获得估算公式的流程图,训练调整参数γ,获得估算公式包括以下步骤:
1)对已有的N个需求进行特征提取:选择需求描述质量、需求内容质量、需求文本长度、需求依赖密度、开发团队综合能力作为需求特征。进一步的,将特征提取的需求特征值映射到一个相同的取值区间;每个需求的特征提取数据保存为XML格式,格式如下:
XML格式表
±<xml>
  ±<req name=″R1″>
     <attr id=″1″>6</attr>
     <attr id=″2″>8</attr>
     <attr id=″3″>5</attr>
     <attr id=″4″>10</attr>
     <attr id=″5″>6</attr>
     <code>808</code>
   </req>
±<req name=″R2″>
     <attr id=″1″>4</attr>
     <attr id=″2″>4</attr>
     <attr id=″3″>3</attr>
     <attr id=″4″>1</attr>
     <attr id=″5″>8</attr>
     <code>409</code>
   </req>
±<req name=″R3″>
±<req name=″R4″>
±<req name=″R5″>
±<req name=″R6″>
±<req name=″R7″>
±<req name=″R8″>
±<req name=″R9″>
±<req name=″R10″type=″new″>
     <attr id=″1″>6</attr>
     <attr id=″2″>5</attr>
     <attr id=″3″>3</attr>
     <attr id=″4″>2</attr>
     <attr id=″5″>6</attr>
     <code>461</code>
   </req>
 ±<req name=″R11″type=″new″>
</xml>
格式说明如下:
(1)<req name=″R1″>...</req>为一个编号为R1的已有需求的全部数据。需求编号是一个字符串,与需求一一对应,不可重复。其中包含有<attr id=″1″>6</attr>和<code>808</code>两种标签;
(2)<attr id=″1″>6</attr>为编号为1的需求特征,其特征值为6。需求特征编号不可重复,并且为连续编号的正整数,需求特征编号与需求特征一一对应。一个需求可以有多个需求的特征,每个特征的特征值为数值型字符串;
(3)<code>808</code>说明需求对应的代码量为808。一个需求只能有一个代码量,并且代码量为数值型字符串;
(4)<req name=″R10″type=″new″>...</req>为一个编号为R10的新需求的全部数据。req标签中的属性type=″new″,说明此需求为新需求。新需求可以包含的数据同已有需求相同,包含多个需求特征以及一个可选的需求代码量。如果新需求中包含代码量,则可以将方法估算值与该代码量进行误差分析;如果不包含,则仅进行估算。
2)选择该软件项目中的m(0<m<N)个需求(RS1,RS2,...,RSi,...,RSm)作为训练数据,以获得调整参数γ;
3)设置调整参数γ=1,对选择的训练数据中的每一个需求RSi分别与除该需求外的已有需求的特征提取数据计算相似度,并计算相应的影响权重,最后计算该需求RSi的实际代码量LSi与其代码量估算值ESi的比值
Figure BSA00000165560900071
4)将
Figure BSA00000165560900072
作为针对当前软件项目的调整系数。
5)得到估算公式 E i = &gamma; &CenterDot; C i = &gamma; &CenterDot; &Sum; j = 1 n ( W ij &CenterDot; L j ) .
如图3所示,为本发明方法的流程图,包括新需求特征提取的步骤、计算已有需求Rj对新需求Rnewi的影响权重Wij的步骤、计算新需求Rnewi的代码量参考值
Figure BSA00000165560900074
德步骤、使用估算公式计算新需求Rnewi代码量估算值的步骤。
以下详细进行说明,本发明提出的EMCNR-W方法可以分为两大步骤:第一步骤,训练调整参数γ,获得估算公式;第二步骤,估算新需求将要产生的代码量。
(一)训练调整参数γ,获得估算公式;
REIA-W方法提出一个估算新需求Rnewi将要产生的代码量的方法,并给出估算公式
Figure BSA00000165560900081
其中,
Figure BSA00000165560900082
为新需求Rnewi代码量参考值,而γ为调整参数。γ是根据估算的软件项目而定制的调整参数,使得估算公式更加准确的应用于某一个软件项目。Wij为已有需求Rj对新需求Rnewi的影响权重;Lj为已有需求Rj的代码量。训练调整参数γ的步骤主要有以下四步:
(1)已有需求的特征提取;
因为最终的目的是为了量化新需求将要产生的代码量,所以在进行需求特征提取的时候,只选择与需求对应代码量相关联的需求特征。最终选择的特征是需求描述质量、需求内容质量、需求文本长度、需求依赖密度、开发团队综合能力作为需求特征。在此,不使用通常的文本相似度计算时所用到的文本特征(特征词),主要的原因是同一个软件的需求的描述比较相似,因而文本特征对于不同需求的区分度不够,如果掺入文本特征将会对于需求固有的特征造成一定的影响。
在进行需求特征提取时,为了保证每个需求特征在相似度计算的效果的有效性,应将每个需求特征值映射到一个相同的取值区间中,比如[0,10],其中0表示“非常差/非常短/非常弱”,10表示“非常好/非常长/非常强”。
对于一个软件项目的已有的N个需求进行特征提取,并生成需求特征提取后的XML格式的数据文件,如XML格式表所示。
(2)选择训练调整参数的训练数据;
数据选择时,应该去除掉比较明显的不合理数据,以避免对于估算方法的影响,使得估算公式尽量的准确。不合理数据包括:软件项目开发过程中,工作量极大和极小的需求,或者工作量明显偏离当时估算值的。最终,选择该软件项目中的m(0<m<N)个需求(RS1,RS2,...,RSi,...,RSm)作为训练数据。
(3)γi的计算;
设置调整参数γ取值为1,将选择的训练数据(m个需求)中的每一个需求RSi作为新需求,将另外N-1个已有的需求作为软件项目已有需求,使用
Figure BSA00000165560900083
计算需求RSi的代码量估算值ESi,又根据需求RSi的实际代码量LSi,从而计算
Figure BSA00000165560900084
(4)计算调整参数γ;
为了使得估算公式更加的准确,对m个γi取均值,将
Figure BSA00000165560900091
作为针对当前软件项目的调整参数,并带入估算公式用于当前软件项目的新需求估算。
(二)估算新需求将要产生的代码量;
(1)新需求的特征提取;
选择与步骤(一)(1)中相同的需求特征以相同的标准对新需求进行需求特征的提取,并生成相同格式的数据。
(2)计算需求距离Dij
计算每一个新需求Rnewi与已有需求Rj之间的距离Dij。此步骤中的计算距离算法,使用上一步中需求特征提取的数据,并且使用与(一)(3)中相同的计算距离的方法。距离Dij越小表示Rnewi与Rj越相似,Dij越大表示Rnewi与Rj越相异;
(3)对于新需求Rnewi,每一个软件已开发的需求Rj都对Rnewi的代码量有一定的影响,设需求Rnewi受Rj的影响的权重为Wij。由于并且Dij越小Wij越大,Dij越大Wij越小。当历史数据较为密集的时候,数据间的距离Dij普遍偏小,而此时可能导致Wij的值差异较小,因而可能对估算方法准确性造成一定的影响。为了避免这个问题,将Dij进行3此方运算,以扩大数据间的距离,即,认为权重Wij与Dij的3次方成反比。计算Wij的公式推理过程如下:
计算需求相互影响的权重Wij
根据公式(3)给出的
Figure BSA00000165560900093
方法,使用Dij计算相应Wij
(4)估算新需求的代码量;
按照EMCNR-W估算公式,新需求Rnewi的代码量估算值Ei为:
E i = &gamma; &CenterDot; C i = &gamma; &CenterDot; &Sum; j = 1 n ( W ij &CenterDot; L j )
其中,γ为(一)中获得的调整参数;Wij为已有需求Rj对新需求Rnewi的影响权重;Lj为已有需求Rj的代码量。
如图4所示,为本发明自动化评估系统流程图。
以下结合实例对操作各部分进行具体说明。实例为办公自动化软件项目OfficeAutomation,该软件项目自2002年开始开发并不断维护升级,主要应用于实验室内部人员的工作记录。该软件项目共有11个大的功能模块(具体功能及描述参照表1中需求对应模块一栏的11个功能模块),按照这11个大的功能模块,对应将需求归类为11个大类的功能需求并编号为R1,R2,R3,...,R11,每大类的功能需求Ri的实现一个对应的功能模块,i的取值范围是1到11。
实验的主要过程如下:启动分析系统对数据进行特征提取;选择需求数据文件,可以直接输入调整参数γ,并调用估算算法函数,计算出评估结果,但是为了得到更精确的代码量数据,需要对训练集数据进行训练以获得调整参数γ;然后使用估算公式进行预测。
(1)历史经验数据与测试数据的划分
选择这11个功能需求中的R1至R9作为历史经验数据,而将需求R10和R11作为测试数据。即把需求R1至R9作为当前软件项目已经开发完成的需求,而将R10和R11视作新需求,使用EMCNR-W方法分别估算两个新需求将要产生的代码量,并将估算代码量与实际代码量作比较,以验证估算方法的有效性。
(2)需求特征提取
此步骤中,需要完成对于全部需求的特征提取工作,包括已有需求与新需求。
在选取需求特征时,使用需求描述质量、需求内容质量、需求描述的文本长度、需求依赖密度、开发团队综合能力作为需求特征。进行需求特征提取,并将每个需求特征值映射到[0,10]区间中,其中0表示“非常差/非常短/非常弱”,10表示“非常好/非常长/非常强”。需求特征值以及需求对应代码量统计结果如表1:
表1需求特征值以及需求对应代码量统计结果
Figure BSA00000165560900111
经过需求特征提取后的需求数据,需要保存为XML格式表所示的格式,以供下一步计算使用。
(3)训练调整参数γ
按照训练调整参数γ过程的描述,首先需要从软件以开发需求中选择一部分需求作为训练数据。为了能够获得相对准确的调整参数γ,去除掉历史需求数据(R1至R9)中代码量最小的需求R4和最大的需求R8,而将需求R1、R2、R3、R5、R6、R7和R9作为训练调整参数γ的训练数据使用。
分别将训练数据中的每一个需求Ri视为新需求,将其余的8个软件已开发的需求作为历史经验数据,利用估算方法对需求Ri的代码量估算值Ei进行计算,然后计算需求Ri的实际值Li与代码量估算值Ei的比值γi,最后计算软件项目的调整参数γ。
设置调整参数γ=1,根据EMCNR-W估算方法,使用公式
Figure BSA00000165560900112
分别对训练数据中的每一个需求Ri的代码量估算值Ei进行计算,并计算需求Ri的实际值Li与代码量估算值Ei的比值γi。分析结果如表2:
表2分析结果
需求编号   需求代码量估算值E   需求代码量实际值L 比值γ
  1   895   808   0.903
  2   417   409   0.981
  3   983   980   0.997
  5   966   987   1.022
  6   980   983   1.003
  7   180   279   1.550
  9   980   874   0.892
最终,取调整参数γ的值为全部训练数据对应的比值γi的平均值:
&gamma; = 1 m &Sum; i = 1 m &gamma; i = 1 7 ( 0.903 + 0.981 + 0.997 + 1.022 + 1.003 + 1.550 + 0.892 ) = 1.050
(4)估算新需求代码量
将测试集数据中的需求R10和R11作为新需求,使用相应的估算方法,利用全部历史经验数据,对两个新需求的代码量进行估算。在进行估算的过程中,为了避免两个新需求之间的相互影响,分别对需求R10和R11进行估算。
将需求R1至R9作为历史经验数据,使用EMCNR-W方法对需求R10和R11的代码量估算值E10和E11进行估算。使用估算公式
Figure BSA00000165560900122
其中调整参数γ使用步骤(3)中训练的得到的值1.050。估算结果如表3:
表3需求R10和R11估算结果分析
  需求编号   代码量参考值C   需求代码量估算值E  需求代码量实际值L   误差(ΔLOC)   误差(Δ)
  10   476   499   461   38   8.38%
  11   1482   1555   1797   242   13.44%
上表分析结果中,需求R10和R11对应代码量的实际值取自步骤(2)中进行需求特征提取及代码量统计过程中获得的。
误差的统计方式为:REIA-DM方法对需求R的代码量的估算值为E,而需求R实际对应的代码量为L,则:
(a)误差代码行ΔLOC为:ΔLOC=|L-E|
(b)误差百分比Δ为: &Delta; % = &Delta; LOC L = | L - E L |
综上,本发明所提出的基于加权调整的新需求代码规模的估算方法是通过有效的利用软件项目的历史数据,最终得出新需求代码量的估算值。本发明提供的基于加权调整的新需求代码规模的估算系统可以全自动的完成新需求代码量的预测的过程,也可以根据用户的需求进行手动进行数据的调整。
以上对本发明所述的基于加权调整的新需求代码规模的估算方法及其系统进行了详细的说明,但显然本发明的具体实现形式并不局限于此。对于本技术领域的一般技术人员来说,在不背离本发明所述方法的精神和权利要求范围的情况下对它进行的各种显而易见的改变都在本发明的保护范围之内。

Claims (10)

1.一种基于加权调整的新需求代码量量化评估方法,其步骤包括:
1)根据设定的需求特征对数据库中某软件项目已有的N个需求进行特征提取;
2)选取该项目中m个需求的特征提取数据(RS1,RS2,RSi,...,RSm)作为训练数据,其中0<m<N;
3)将m个需求中每个需求的特征提取数据RSi分别与除该需求外的已有需求的特征提取数据计算距离,并计算相应的影响权重Wij,设置软件项目的调整参数γ=1,计算需求RSi的代码量估算值ESi
4)求出比值
Figure FSA00000165560800011
其中,i=1...m,LSi为实际代码量;取调整参数γ的值为所有的比值γi的平均值;
5)根据设定的需求特征对该软件项目的新需求进行特征提取;
6)利用1)和5)的特征提取数据对每一新需求Rnewi与该N个已有需求计算距离Dij
7)根据新需求Rnewi与N个已有需求之间的距离Dij计算需求相互影响的权重Wij
8)根据公式
Figure FSA00000165560800012
计算新需求Rnewi的代码量估算值Ei,其中Wij为已有需求Rj对新需求Rnewi的影响权重,Lj为已有需求Rj的实际代码量。
2.如权利要求1所述的方法,其特征在于,所述设定的需求特征包括需求描述质量、需求内容质量、需求文本长度、需求依赖密度、开发团队综合能力。
3.如权利要求1所述的方法,其特征在于,将特征提取的需求特征值映射到一个相同的取值区间。
4.如权利要求1或3所述的方法,其特征在于,所述特征提取数据保存为XML格式。
5.如权利要求3所述的方法,其特征在于,所述计算距离采用了欧式距离法,或者使用向量内积法或者向量余弦系数法或者Dice系数法或者Jaccard系数法。
6.如权利要求1所述的方法,其特征在于,所述需求之间的距离Dij与需求相互影响的权重Wij之间成反比。
7.如权利要求6所述的方法,其特征在于,需求影响权重Wij与需求间距离Dij的三次方成反比。
8.如权利要求1所述的方法,其特征在于,所述步骤7)软件项目已有的N个需求对于新需求Rnewi的影响权重之和为1,即
Figure FSA00000165560800021
9.一种基于加权调整的新需求代码量量化评估系统,其包括特征提取模块、影响权重计算模块、调整参数γ训练模块、代码量预测模块;
所述特征提取模块,用于根据设定的需求特征对软件项目的每个需求进行特征提取;
所述需求影响权重计算模块,用于提供所需的权重计算算法,对输入的需求数据进行影响权重的计算;
所述调整参数γ训练模块,用于根据特征提取的数据,调用需求影响权重计算法模块的接口,训练调整参数γ,获得估算公式;
所述代码量预测模块,用于根据新需求和已有需求的特征提取后的数据,调用影响权重计算模块的接口并利用所述估算公式,预测每一新需求将要产生的代码量。
10.如权利要求9所述的系统,其特征在于,还包括测试验证模块,对代码量预测模块估算出来的新需求代码量与实际代码量进行比较,验证估算方法的有效性。
CN2010101990231A 2010-06-04 2010-06-04 一种基于加权调整的新需求代码量量化评估方法及系统 Pending CN101894070A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010101990231A CN101894070A (zh) 2010-06-04 2010-06-04 一种基于加权调整的新需求代码量量化评估方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101990231A CN101894070A (zh) 2010-06-04 2010-06-04 一种基于加权调整的新需求代码量量化评估方法及系统

Publications (1)

Publication Number Publication Date
CN101894070A true CN101894070A (zh) 2010-11-24

Family

ID=43103264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101990231A Pending CN101894070A (zh) 2010-06-04 2010-06-04 一种基于加权调整的新需求代码量量化评估方法及系统

Country Status (1)

Country Link
CN (1) CN101894070A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102147727A (zh) * 2011-04-02 2011-08-10 中国科学院软件研究所 一种新增软件项目的软件工作量预测方法
CN106649079A (zh) * 2015-11-03 2017-05-10 阿里巴巴集团控股有限公司 软件系统测试需求评估方法及装置
CN110245848A (zh) * 2019-05-31 2019-09-17 口碑(上海)信息技术有限公司 程序代码的风险评估方法和装置
CN110515626A (zh) * 2019-08-20 2019-11-29 Oppo广东移动通信有限公司 深度学习计算框架的代码编译方法及相关产品

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102147727A (zh) * 2011-04-02 2011-08-10 中国科学院软件研究所 一种新增软件项目的软件工作量预测方法
CN102147727B (zh) * 2011-04-02 2014-06-25 中国科学院软件研究所 一种新增软件项目的软件工作量预测方法
CN106649079A (zh) * 2015-11-03 2017-05-10 阿里巴巴集团控股有限公司 软件系统测试需求评估方法及装置
CN106649079B (zh) * 2015-11-03 2019-10-25 阿里巴巴集团控股有限公司 软件系统测试需求评估方法及装置
CN110245848A (zh) * 2019-05-31 2019-09-17 口碑(上海)信息技术有限公司 程序代码的风险评估方法和装置
CN110515626A (zh) * 2019-08-20 2019-11-29 Oppo广东移动通信有限公司 深度学习计算框架的代码编译方法及相关产品
CN110515626B (zh) * 2019-08-20 2023-04-18 Oppo广东移动通信有限公司 深度学习计算框架的代码编译方法及相关产品

Similar Documents

Publication Publication Date Title
CN108108902B (zh) 一种风险事件告警方法和装置
EP3582150A1 (en) Method of knowledge transferring, information processing apparatus and storage medium
CN101902470B (zh) 一种基于表单特征的Web安全漏洞动态检测方法
Lam et al. The empirical likelihood approach to quantifying uncertainty in sample average approximation
CN110991875B (zh) 一种平台用户质量评估系统
CN108509979A (zh) 一种异常检测方法、服务器及计算机可读存储介质
CN101833501A (zh) 一种基于新增需求的代码变更量量化评估方法及其系统
CN112054943B (zh) 一种移动网络基站流量预测方法
CN104572449A (zh) 一种基于用例库的自动化测试方法
CN101894070A (zh) 一种基于加权调整的新需求代码量量化评估方法及系统
CN102609778A (zh) 一种电力通信网风险评估方法及装置
CN103226796A (zh) 面向全过程的在线教育服务质量评估方法
CN113627566A (zh) 一种网络诈骗的预警方法、装置和计算机设备
CN112101692B (zh) 移动互联网质差用户的识别方法及装置
CN108345731A (zh) 一种不完备信息条件下深井提升机关键部件耦合失效相关性建模方法
CN107623924A (zh) 一种验证影响关键质量指标kqi相关的关键性能指标kpi的方法和装置
CN110445939A (zh) 容量资源的预测方法及装置
CN107256445B (zh) 生产环境安全性的分析方法、装置和系统
CN110659199B (zh) 一种基于传递依赖的类集成测试序列生成方法
CN113159638B (zh) 一种智能变电站分层健康度指数评估方法及装置
CN106484913A (zh) 一种目标图片确定的方法以及服务器
CN116756522B (zh) 概率预报方法、装置、存储介质及电子设备
CN113850669A (zh) 用户分群方法、装置、计算机设备及计算机可读存储介质
CN108376300A (zh) 一种基于概率图模型的用户用电行为预测方法
Zhang et al. An improved composite hypothesis test for Markov models with applications in network anomaly detection

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20101124