一种基于新增需求的代码变更量量化评估方法及其系统技术方案

技术编号:3962458 阅读:292 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于新增需求的代码变更量量化评估方法及其系统,属于计算机软件开发技术领域。本方法为:1)根据设定的需求特征对某软件项目已有的N个需求进行特征提取;2)选取该项目中m个需求的特征提取数据作为训练数据,计算该软件项目的调整系数γ;3)根据设定的需求特征对该软件项目的新增需求进行特征提取;4)利用1)和3)的特征提取数据对每一新增需求与该N个已有需求进行聚类;5)根据公式E=γ.C估算新增需求的代码量E。本系统包括特征提取模块、核心聚类算法计算模块、调整参数γ训练模块、代码量预测模块。与现有技术相比,本发明专利技术能够自动化的预测新增需求将要产生的代码量,并且能够直观显示估算结果。

【技术实现步骤摘要】

本专利技术涉及一种基于新增需求的代码变更量量化评估方法及其系统,属于计算机软件开发

技术介绍
软件代码量的大小对软件的开发进度以及软件应用前景有着重要影响,研究人员 通过控制软件代码量的大小满足了用户的不同需求(参考专利号ZL 03800635. 9,专利技术名 称“代码量控制装置和代码量控制方法”的技术文献)。同时软件代码量的大小与软件开发 过程的需求演化直接相关,需求演化是软件需求开发中最容易发生的,也是不可避免的问 题,需求演化会导致软件项目代码量的变化,如果没有得到恰当的处理,对软件的开发成本 和进度都会产生较大的影响,往往导致软件项目失败的主要原因是需求演化。当需求发生演化的时候,需要对演化带来的影响进行评价和分析,以便采取相应 的处理措施。量化的影响分析方法将有利于上层决策者对于软件演化做出准确的分析和决 策,从而保证软件项目顺利完成。软件项目的需求多为使用自然语言对软件功能的描述,而软件的代码量则是由编 程语言开发。当需求发生演化时,很难将自然语言描述的变化准确地定位到编程语言开发 的代码中。而当软件项目新增需求的时候,更加无法有效地估算新增需求将要产生的代码量。现有的需求演化影响分析方法中,能够预测代码变更量的方法比较少。已有方法 主要分为两类,一类是根据代码中的调用关系进行估算;一类是根据需求间的依赖关系进 行估算。根据代码调用关系的估算需求演化代码影响量的方法(参考文献“Franck Xia, PraveenSrikanth. “ A Change Impact Dependency Measure for Predicting the Maintainability of SourceCode, " . compsac, vol. 2,28th Annual International Computer Software and ApplicationsConference-fforkshops and Fast Abstracts-(COMPSAC' 04), 2004 22-23")当一个需求发生变化的时候,由于受到这个变 化导致代码中某部分直接受到影响,影响根据代码的调用与被调用关系扩散,并且随着调 用层次的增加,受到的影响逐渐变小。对受到影响的代码量进行求和,作为需求影响值。根据需求依赖关系的估算需求演化代码影响量的方法(参考文献“杨鹤标,张继 敏,朱玉全.一种需求变更影响的评估算法.计算机工程,2006,32 (23) :82_84”)根据 需求依赖关系,建立由需求依赖树形成的森林。当依赖源需求发生变化,会对依赖目标需求 产生影响,影响通过依赖关系从源需求向目标需求传递。对受到影响的需求对应的工作量 求和,作为需求的影响值。以上两类方法在估算影响时,都需要首先确定演化的需求所对应的代码,而对于 新增需求,则不能够将新增需求与已有代码建立有效的关联关系,所以无法准确估算新增 需求将要产生的代码量。
技术实现思路
鉴于量化需求演化影响的重要性以及现有方法的局限性,本专利技术通过基于数据 挖掘的需求演化影口向的量化分析方法(Requirement evolution impact analysis using data mining, REIA-DM)对代码变更量进行量化分析,并实现了基于REIA-DM方法的自动化 估算系统。即本专利技术的目的在于提供一种基于新增需求的代码变更量量化评估方法及其系 统,其能够估算新增需求将要产生的代码量,从而当软件项目新增需求的时候,能够有效的 帮助项目管理者降低软件项目失败的风险。本专利技术的技术方案为一种基于新增需求的代码变更量量化评估方法,其步骤为1)根据设定的需求特征对数据库中某软件项目已有的N个需求进行特征提取;2)选取该项目中m个需求的特征提取数据(RS1,Rs2,Rsi,Rs J作为训练数据, 其中0 < m < N ;3)将m个需求中每个需求的特征提取数据Rsi分别与除该需求外的已有需求的特 征提取数据进行聚类,并计算该需求Rsi的实际代码量与其所在簇的代码量参考值的比值 Y i ;其中,i = 1. · · m ;4)根据得到的比值Y i计算该软件项目的调整系数Y ;5)根据设定的需求特征对该软件项目的新增需求进行特征提取;6)利用1)和5)的特征提取数据对每一新增需求与该N个已有需求进行聚类;7)根据公式E= γ ·(估算新增需求的代码量E,其中C为新增需求所在簇中的 代码量参考值。进一步的,所述需求特征包括需求描述质量、需求内容质量、需求文本长度、需求 依赖密度、开发团队综合能力。进一步的,将特征提取的需求特征值映射到一相同的取值区间;每个需求的特征 提取数据的格式为需求编号代码量需求特征1 特征值1需求特征2 特征值2···。进一步的,根据每个需求的实际代码量筛选出所述训练数据。进一步的,所述代码量参考值为某需求所在簇中除去该需求以外其他需求对应 的代码量的平均值为该需求的代码量参考值。进一步的,所述根据得到的比值Y i计算该软件项目的调整系数Y的方法为首 先检查所得到的每个比值Yi是否符合设定要求,然后取符合设定要求的比值^平均值为 该软件项目的调整系数Y。进一步的,所述聚类算法为基于划分的k均值方法。一种基于新增需求的代码变更量量化评估系统,其包括特征提取模块、核心聚类 算法计算模块、调整参数Y训练模块、代码量预测模块;所述特征提取模块,用于根据设定的需求特征对软件项目的每个需求进行特征提 取;所述核心聚类算法计算模块,用于提供所需的聚类算法,对输入数据进行聚类计 算;所述调整参数Y训练模块,用于根据特征提取的数据,调用核心聚类算法模块的接口,训练调整参数Y,获得估算公式;所述代码量预测模块,用于根据新增需求和已有需求的特征提取后的数据,调用 核心聚类算法模块的接口并利用所述估算公式,预测每一新增需求将要产生的代码量。进一步的,所述系统还包括一测试验证模块,用于对所述代码量预测模块估算出 来的新增需求代码量与实际代码量进行比较,验证预测的有效性。进一步的,所述需求特征包括需求描述质量、需求内容质量、需求文本长度、需求 依赖密度、开发团队综合能力。本专利技术的REIA-DM是一种针对新增需求使用聚类的无监督学习方法,关于“聚 类的无监督学习方法”出自英文书籍(Jiawei Han, Micheline Kamber. Data Mining Concepts andTechniques, Second Edition. Morgan Kaufmann Publishers Inc.San Fransisco, CA, USA. 2001),或者对应的中文书籍(数据挖掘技术与概念(原书第2版)/ (加)韩家炜,堪博(Micheline Kamber)著;范明,孟小峰译。北京机械工业出版社, 2007. 3),不需要对软件的需求进行预先的分类而直接对新增需求与软件已有需求进行划 分的方法,使得聚为一个簇中的需求具有相似的属性。通过对新增需求所在簇中的元素来 进行分析,能够相对准确的量化新增需求将要产生的代码量。根据专利技术的目的,REIA-DM的具体流程为(一 )训练调整参数Y,获得估算公式(1)对已有的N个需求本文档来自技高网
...

【技术保护点】
一种基于新增需求的代码变更量量化评估方法,其步骤为:1)根据设定的需求特征对数据库中某软件项目已有的N个需求进行特征提取;2)选取该项目中m个需求的特征提取数据(R↓[S1],R↓[S2],R↓[Si],...,R↓[Sm])作为训练数据,其中0<m<N;3)将m个需求中每个需求的特征提取数据R↓[Si]分别与除该需求外的已有需求的特征提取数据进行聚类,并计算该需求R↓[Si]的实际代码量与其所在簇的代码量参考值的比值γ↓[i];其中,i=1...m;4)根据得到的比值γ↓[i]计算该软件项目的调整系数γ;5)根据设定的需求特征对该软件项目的新增需求进行特征提取;6)利用1)和5)的特征提取数据对每一新增需求与该N个已有需求进行聚类;7)根据公式E=γ.C估算新增需求的代码量E,其中C为新增需求所在簇中的代码量参考值。

【技术特征摘要】

【专利技术属性】
技术研发人员:王青高健李娟杨达李引
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:11[中国|北京]

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

1