无监督缺陷模块序列预测模型:一个工作量感知评价.docVIP

无监督缺陷模块序列预测模型:一个工作量感知评价.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
无监督缺陷模块序列预测模型:一个工作量感知评价.doc

无监督缺陷模块序列预测模型:一个工作量感知评价   摘要:无监督的缺陷模块序列预测模型不需要历史缺陷信息,能够将模块按照包含缺陷的可能性从大到小排序。在得到这种潜在缺陷模块序列之后,人们可根据现有资源情况从该序列中选取排在前面的模块进行审查、测试。为探明这种缺陷模块序列预测模型的实用价值和影响因素,在代表性的无监督学习方法KMeans和XMeans的基础上,提出一种簇间/簇内排序方法,通过联合使用簇间排序和簇内排序得到潜在缺陷模块序列,然后采用工作量感知的评价指标对序列的预测性能进行评价。在多个开源系统上的实验结果表明,在特定的簇间/簇内排序方法下,这种预测模型显著高于随机猜测模型,因此具有实用价值。   关键词:软件缺陷;工作量感知;软件模块;预测模型   中图分类号:TP301 文献标识码:A 文章编号2013)009003503   基金项目:国家自然科学基金项目   作者简介:赵东晓(1981-),男,南京大学计算机科学技术系硕士研究生,研究方向为软件度量。   0引言   软件缺陷的产生不可避免,但软件缺陷的存在会给人类带来灾难[1]。信息社会的到来,使得软件需求量不断增大,软件开发者在软件测试上花费的代价越来越大。无监督的软件缺陷预测建模过程简单,成为近几年的研究热点。   目前已有大量的无监督软件缺陷预测研究,这些模型大都用于分类,简单地将待预测样本分为有缺陷类和无缺陷类,不能提供软件模块的缺陷倾向性序列,不利于软件缺陷的审查和验证。同时,这些模型大多采用基于混淆矩阵的评价指标,没有考虑使用这些模型指导代码检测和审查时的工作量与预测结果的关系,无法保证应用这些模型时的成本效益。这些问题的存在,使得这些预测模型的应用受到很大的限制,因此有必要针对这些不足寻找一种更合理的预测模型。   与已有研究不同的是,本文提出一种基于聚类的软件缺陷序列预测模型,并采用工作量敏感的评价指标对该模型进行评价。我们的做法是,首先选用KMeans和XMeans算法对待预测样本进行聚类,然后对聚类后的类簇进行第一次排序确定类簇的缺陷倾向递减序列,对类簇内样本进行第二次排序确定缺陷密度递减序列,将经过两步排序后的样本序列作为软件缺陷倾向预测序列。最后结合软件工业实际,考虑了代码审查或检测时的成本效益,采用了CE(Cost Effectiveness)指标对模型性能进行评价。   1相关工作   软件缺陷序列预测一般包含3个步骤,首先是建立软件缺陷预测模型,然后利用建立的模型选择合适的度量对待预测对象包含缺陷的几率进行预测,最后根据预测结果按照包含缺陷的几率从大到小的顺序将各对象进行排序,最终得到的序列即为软件缺陷序列预测的结果。在这3个步骤中,缺陷序列预测模型的建立和缺陷序列预测模型性能的评价是软件缺陷序列预测中最重要的步骤。   无监督缺陷预测模型普遍采用无监督学习方法进行建模。Catal等提出了一种基于XMeans算法的缺陷预测模型[2]。他们的实验结果表明,该算法对不包含噪音的数据具有很好的性能。然而,在存在噪音的数据上,该算法会导致不合理的聚类。Bishnu等[3]利用基于四叉树的KMeans聚类算法对缺陷预测进行了研究,他们首先利用四叉树算法来确定KMeans聚类时的类簇中心点,然后利用KMeans算法对数据进行聚类,最后将这种结合后的算法应用到软件缺陷预测领域。他们的实验结果表明,该算法在大多数情况下能够降低缺陷预测的错误率。文献[4]提出了一种基于模糊聚类非负矩阵分解的缺陷预测方法,该方法解决了最近邻算法处理多属性缺陷数据时性能偏低的问题,克服了非负矩阵分解时易陷入局部最优的不足,提高了不平衡软件缺陷数据的预测精度。文献[5]提出了一种谱聚类与混沌免疫相结合的软件缺陷预测方法,用混沌免疫聚类算法替换谱聚类中的KMeans算法。他们的研究表明,这种结合的算法可以促进软件缺陷数据预测精度的提高。   这些预测模型采用了基于混淆矩阵的评价指标,只考虑模块是否包含缺陷,忽略了模块规模的不同,这与代码审查或测试阶段不同规模模块对工作量的要求不同的事实不符。因此,Arisholm等提出应该使用一种“基于代码行的Alberg图”的评价方法来评价潜在预测模型的性能[6],同时,他们指出应该用CE指标作为模型性能的评价指标。   2无监督缺陷模块序列预测模型   2.1基于聚类的缺陷模块序列预测   基于聚类的缺陷序列预测算法可以采用如下步骤:①数据预处理,备份模型评价相关度量;②设置聚类算法为KMeans或XMeans,进行聚类运算,得到聚类结果;③进行类簇间排序;④进行类簇内部排序;⑤将经过两步排序后的序列作为缺陷预测序列,评价该序列的预测性能。   2.2基于簇类排序

文档评论(0)

guan_son + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档