软件工程缺陷分析关键技术研究

来源 :浙江大学 | 被引量 : 0次 | 上传用户:qiaolei8214122
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着现代计算机软件的高速发展,软件缺陷(bugs)越来越成为影响软件开发效率和质量的关键因素。软件缺陷分析是一种重要的软件维护行为。如何尽早发现并修复软件缺陷成为软件工程领域的一个研究热点。软件缺陷预测技术预测新生成代码单元存在缺陷的概率,帮助开发人员及早发现缺陷。缺陷报告管理技术可将提交到缺陷追踪系统的缺陷,定位到源代码中需要变更的代码单元,帮助开发者尽快修复缺陷。虽然目前已有许多研究关注于软件缺陷分析技术,但依然面临一些困难和挑战:1)现有的缺陷预测技术不能很好的解决跨项目缺陷预测问题;2)软件漏洞预测难度较大,现有的技术性能不理想;3)现有的缺陷报告定位技术无法分析源代码和缺陷报告之间的深层次的语义关联,从而拉低了缺陷报告定位的准确度;4)重复或类似的缺陷很多,但关于开发者频繁遇见的软件缺陷信息无从获得。针对以上所诉困难和挑战,本文重点研究了缺陷预测、漏洞预测、缺陷报告定位和软件频繁缺陷挖掘等缺陷分析关键技术,提出了一系列自动化技术,旨在为软件开发者提供高性能自动化工具,优化软件缺陷发现、定位和修复过程。本文的主要工作和贡献如下:1.针对跨项目软件缺陷预测这个挑战,本文实证研究了七种机器学习领域的集成学习算法在跨项目缺陷预测中的性能:average voting(Ave),Max,BaggingJ48,BaggingNaive,BoostingJ48,BoostingNaive和Random Forest(RF),并和当前性能较好的CODEP方法和Zimmermann等人提出的LR方法进行了对比。结果显示Max和BaggingJ48算法性能较其他方法要好。2.软件漏洞是一类会影响软件安全性的软件缺陷。本文提出新的自动化算法VULPREDICTOR来预测软件系统中可能存在漏洞的文件,该算法结合了软件度量特征和文本特征构建了一个集成分类模型。实验结果显示,VULPREDICTOR的性能比Walden等人提出的算法性能要好,优于VULPREDICTOR自身的6个基础分类器。同时,VULPREDICTOR的性能优于之前实证研究中发现的性能较好的两个集成分类算法Max和BaggingJ48。与时下先进的因式分解机算法(Factorization Machine,以下简称FM)对比时,结果显示两种算法在漏洞预测问题上的性能表现差不多。3.提出一个多抽象层次的缺陷报告定位方法MULAB,提取源代码和缺陷报告中的文本信息,并用多个主题模型表示成多个抽象层次,然后计算缺陷报告和代码单元之间的相似度,本文用不同的数据融合方法衍生出MULAB的12个变体。实验结果表明12个变体中COMBMNZ-DEF方法的性能最佳,并且COMBMNZ-DEF的性能大幅度优于Scanniello等人提出的当前较先进的方法PR。4.提出软件频繁缺陷(frequently encountered bugs,以下统称FEBugs)这个概念,并提出名为RFEB的算法,它可以分析Stack Overflow上海量的与软件缺陷相关的问答信息,使用迭代查询优化技术挖掘出特定领域的前N个FEBugs。本文在10个领域上评估了RFEB的性能,结果显示RFEB的性能在10个领域都优于Stack Overflow默认的搜索引擎。
其他文献
介绍了云南电力集团依托信息化科技手段,以科技创新推动管理创新和服务创新,促进企业效率与效益提升,建设新一代营销管理服务体系,即云南电力客户服务技术支持系统的情况.
广州军区所属医院应用中医药救治战伤积累若干经验,包括对火器伤引起的眼球内出血,弹挫性脉络膜视网膜炎,胸部穿透伤所致的血气胸、肺出血,感染性伤口、褥疮,灼性神经痛、幻
肥乡县屯庄村高先生饲养一只德牧犬,雄性,10个月,体重21千克。因精神萎靡、厌食、呕吐不止、便血。主人于2014年7月3日来我院救治,经临床观察、实验室检验(血常规、粪检)和X光片。
<正>这是一场席卷全国的扫黑除害风暴。这是一项听取民意、荡污涤垢的民心工程。这是一幅广大民警奋勇争先、人民群众支持参与的人民战争画卷。"打四黑除四害"专项行动,伴随
用阻性电流仪测量氧化锌避雷器的阻性电流和全电流时,高压引线与泄漏电流取样接地线之间的距离对测量结果有很大的影响.根据对其电场的分析,要得到正确的测量结果,引线之间的
对220kV旁路(断路器及母线)在新设备投产以及在处理由断路器紧急缺陷和异常时的一些用法作了分析和总结.这些方法在云南电网的运行中得到了广泛运用,供电网运行人员、管理者