首页> 中文学位 >Web应用中基于树的克隆代码检测方法的研究
【6h】

Web应用中基于树的克隆代码检测方法的研究

代理获取

目录

声明

摘要

插图索引

附表索引

第1章 绪论

1.1 课题背景与意义

1.2 相关研究现状

1.3 论文研究内容

1.4 论文组织结构

第2章 相关知识概述

2.1 克隆代码的相关概念

2.1.1 克隆代码的定义

2.1.2 克隆对和克隆类

2.2 克隆代码的分类

2.2.1 类型Ⅰ克隆

2.2.2 类型Ⅱ克隆

2.2.3 类型Ⅲ克隆

2.2.4 类型Ⅳ克隆

2.3 克隆代码检测一般步骤

2.4 相关定义

2.5 小结

第3章 基于树的克隆代码特征向量生成算法

3.1 系统概况

3.2 解析树和特征向量

3.2.1 解析树

3.2.2 特征向量

3.3 特征向量生成算法

3.3.1 解析树的生成

3.3.2 特征向量生成算法

3.3.3 特征向量合并算法

3.4 小结

第4章 基于随机kd森林的克隆代码检测

4.1 特征向量的降维和分组

4.1.1 降维

4.1.2 分组

4.2 基于随机kd森林的特征向量索引

4.3 基于随机kd森林的kNN算法

4.4 后处理

4.5 小结

第5章 系统评估和统计分析

5.1 实验环境

5.1.1 硬件环境

5.1.2 软件环境

5.2 系统测试

5.3 性能测试

5.3.1 性能分析

5.3.2 结果分析

5.4 Web应用中克隆代码的研究

5.4.1 克隆率

5.4.2 克隆分析

5.5 小结

结论

参考文献

附录A 攻读硕士学位期间所发表的学术论文目录

附录B 攻读硕士学位期间所参与的项目

致谢

展开▼

摘要

克隆代码又叫做代码克隆,往往是由开发人员的“拷贝-粘贴”行为导致的。在软件维护周期,开发过程中所引入的克隆代码会导致昂贵的维护费用。研究表明在传统软件中,克隆代码占到了软件源代码的13%-20%。随着Web技术的发展,越来越多的Web应用被开发并且在用户中流行。由于Web开发本身的一些特点,不管在新开发的还是稳定版本的Web应用中都存在克隆代码,相比于传统软件,克隆代码的比例甚至更加高。但是目前针对Web应用中克隆代码的检测研究较少,且大多数都是使用基于哈希值的方法来检测克隆代码。使用基于哈希值的方法意味着许多克隆代码会被漏掉,以及精度上的问题。
  本文在相关的研究基础上,总结各种检测方法的优缺点,构建并改进了基于树的克隆代码检测方案,并实现了基于树的克隆代码检测系统TCD(Tree-basedCloneDetection)。该方案中改进并使用特征向量代替子树,以降低子树匹配所带来的开销。通过对特征向量的分析,引入了降低特征向量的维度的方法,从而减少了高维向量所带来的计算开销。引入建立特征向量的随机kd森林的索引来高效地查找每个特征向量的最邻近特征向量以得到克隆代码,从而保证了检测克隆代码的高效性以及准确性。通过对14个最流行的Web应用进行克隆代码的检测,统计每个Web应用中的克隆率并统计和分析结果中各种类型的克隆代码分布的情况。并选取其中三个应用的三个不同版本,统计同一应用的不同版本中的克隆率。最后,在不同应用中也检测到了克隆代码。
  大量的实验表明,TCD在大多数情况下,能够高效地检测三种类型的克隆代码。并且相对于现有的克隆代码检测工具,TCD在速度上、精度以及检测的克隆代码数量上都有一定的优势。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号