【摘 要】
:
随着软件系统的规模不断增大,为了节约开发成本,缩短开发周期,程序员经常进行代码的复制粘贴。开发过程中克隆代码的使用的确获得了一些益处,但其造成的危害不容忽视,比如bug
论文部分内容阅读
随着软件系统的规模不断增大,为了节约开发成本,缩短开发周期,程序员经常进行代码的复制粘贴。开发过程中克隆代码的使用的确获得了一些益处,但其造成的危害不容忽视,比如bug的传递性,增加程序复杂性等等。因此,克隆代码的检测显得尤为必要,一方面可以定位克隆代码以便于分析可能隐含的bug,另一方面也能够为代码的重构奠定基础。功能等价的克隆代码属于第四类克隆代码,与其他三种不同的是,功能等价类型克隆代码在文本上的相似度很低,甚至完全不一样。本文提出了IOM-Behavior算法用以检测方法级别的功能等价克隆代码。算法首先利用反射机制从源代码中获取类方法。再将方法的参数个数及类型、返回类型作为第一个过滤器,把具有相同输入和输出的方法分为一类,从而筛选出初步候选克隆组,在此过程中,有针对性的将方法分为四种类型,并对不同类型的方法提出相对应的检测方式;而后,又计算出候选克隆组中方法的度量值,并将其作为二次过滤器,提出将度量指标相似比不低于50%而不是完全相等作为判定方法等价的标准,进而得到最终的候选克隆组。最后,借助分层随机抽样构造测试集,进行输入输出的随机测试,继而获取功能等价的克隆方法组。此外,本文使用Java语言实现了对方法级功能等价克隆代码进行检测的IOM-Behavior算法。运用该算法程序,结合手工构造测试用例集对实际项目中的Java源码进行检测,实验结果表明,算法程序检测出方法级的功能等价克隆代码的正确率不低于66%,证明了本文提出的算法合理有效,不失为一种检测功能等价克隆代码的新见解,也为实际应用中分析并解决因克隆代码带来的bug等问题提供了参考。
其他文献
随着城市建设的迅猛发展,道路发展也更加迅速,交通工具也逐年递增,随之而来的城市道路交通噪声也成为一个不可忽视的问题。本文以排水沥青路面为研究对象,排水沥青路面又称为多孔沥青路面,其大空隙结构使雨水可以深入路面并横向排除,从而改善路面抗滑,对于改善城市的水平衡具有积极的意义。同时,排水沥青路面具有降噪的作用。但是纵观国内外对排水沥青路面的研究,重点在其排水性能上,对降噪性能的研究较少,且对排水沥青路
目前,大跨度钢筋混凝土拱桥因其造型美观,施工简便,承载能力强而受到广泛欢迎。拱桥作为受压为主的结构,其在施工及使用过程中的稳定性一直是国内外学者和桥梁设计人员重点关
在互联网应用与生态日益复杂的环境下,开发者通过混搭(Mashup)应用的相关技术,通过组合各种类型的服务与数据,以快速有效的方法将应用推向市场。因其高效、灵活、敏捷的优势,
山城重庆的隧道工程施工常以爆破开挖为主,爆破产生的震动效应会对周围建筑物产生一定的影响。因此防止隧道爆破对建筑物产生损伤,已成为当前隧道工程一项重要课题。本论文以
随着互联网应用的普及,网络上的数据高速增长,特别是多媒体技术的发展,人们在互联网上需要接触到的图像信息越来越多,用户迫切需要从海量图像中迅速搜索到所需目标,尤其是在
近年来,随着新型材料、MEMS技术和飞行控制等技术的发展,微小型多旋翼无人机得到了迅速发展。多旋翼无人机具有结构简单、控制灵活和垂直起降等特点,同时凭借其良好的机动性
作为不利用活动部件可直接实现热能和电能相互转换的功能材料,热电材料已成为新能源材料的研究热点,SrTiO3基热电材料在热电材料中具有巨大的应用前景,而纳米结构的引入是改
大气颗粒物一直是全球大多数城市的首要大气污染物,对人体具有很强的致癌性和危害性。城市绿化树种作为滞留大气颗粒物的主要载体,在减少颗粒物污染方面起着重要作用,能有效
基于模型的GUI测试方法(MBGT)可自动化生成测试用例,提高测试效率。大多数MBGT方法的模型都是固定不变的,测试过程中,相应的GUI模型只能以既定不变的角度模拟和考察GUI,在MBG
本文考虑齐次和非齐次体积约束的非局部扩散问题,系统地研究了一维、二维非齐次体积约束的非局部扩散问题的有限元方法,为了数值计算中程序代码的表述,我们给出了剖分单元及