基于改进向量空间模型的克隆群映射方法
2016-07-19陈桌张丽萍王欢张久杰王春晖
计算机应用 2016年7期
陈桌 张丽萍 王欢 张久杰 王春晖



摘要:针对Type3克隆代码映射方法少且效率低等问题,提出了一种基于改进向量空间模型(VSM)的映射方法。该方法将改进的VSM引入到克隆代码分析中,从而得到一种可有效映射Type1、Type2以及Type3克隆代码的克隆群映射方法。首先,将克隆群文档预处理得到去除无用词的代码文档,同时提取克隆群文档的文件名、函数名等特征项;其次,提取并构建克隆群词频向量空间,利用余弦算法计算出克隆群相似度;然后,通过克隆群相似度和特征项的匹配构建克隆群映射,最终得到克隆群映射结果。对5款开源软件进行实验并人工验证,所提方法能在低时耗的前提下,保证查全率和查准率均不低于96.1%和97.1%。实验结果表明了所提方法的可行性,为后期软件演化分析提供数据支撑。
关键词:
克隆代码;克隆群映射;向量空间模型;特征项;词频
中图分类号: TP311.5 文献标志码:A
0引言
在软件开发和维护过程中,开发人员经常采用复制粘贴的方式修改代码,导致重复的代码片段出现,即克隆代码[1]。以前的研究[2]已经表明,一个软件系统中会有9%~15%的克隆代码,有时甚至高达50%以上,相同或相似的代码会增加软件的维护费用。例如,如果一个bug在代码片段中被检测出来,所有和它相似的片段都应该被调查,检查相同的错误,加强或调整这些代码。所以对系统版本中的克隆进行追踪非常有意义。
相邻版本间的克隆群映射是研究克隆代码演化[3]工作的关键步骤,克隆演化研究关注的是一段克隆代码在软件多个版本中的变化情况,而克隆群映射是整个演化过程的纽带。……
登录APP查看全文
