当前位置:主页 > 科技论文 > 软件论文 >

函数级别结构化克隆与语义克隆的检测

发布时间:2024-02-03 21:18
  在软件开发阶段,开发人员为了缩短开发时间、减少开发成本,经常会通过复制粘贴已有代码来进行软件开发任务。一般地,这种开发方式被称为代码克隆,所使用的重复代码被称为克隆代码。虽然代码克隆可以有效地降低软件开发的成本,但它可能会对整体软件的质量带来潜在的威胁,并显著增加维护成本。因此,为了保证软件质量,有必要对软件进行代码克隆检测。维护人员可以对检测到的克隆代码进行重构,以此来减少软件中的克隆代码。为了缓解克隆所造成的软件质量缺陷,现有的研究已经提出了许多用于代码克隆检测的自动化技术和工具。在现阶段的研究成果中,大部分研究所提出的检测技术主要是基于粗粒度的,并主要在前两类克隆中有较好的表现。然而,结构化克隆和语义克隆对软件质量影响较大,且无论在开发中和维护中都较难检测。并且,考虑到函数是组成系统的有意义的最小代码单元,本文尝试在函数级别上分别对结构化克隆和语义克隆进行检测,主要取得了以下研究成果:(1)为了在函数级别有效地检测软件中的结构化克隆代码,本文提出了函数级别的代码克隆检测方法,该方法利用结构相似性来测量函数级别中代码片段的相似性。该方法首先通过使用定义的节点类型而不是原始节点表示来...

【文章页数】:72 页

【学位级别】:硕士

【文章目录】:
摘要
Abstract
1 绪论
    1.1 研究背景与意义
    1.2 代码克隆相关概念及其定义
    1.3 代码克隆产生的原因
    1.4 代码克隆对软件质量的影响
        1.4.1 代码克隆的优点
        1.4.2 代码克隆的缺点
    1.5 代码克隆检测的基本流程
        1.5.1 预处理过程
        1.5.2 源码转化
        1.5.3 匹配检测
        1.5.4 克隆代码样式表示
        1.5.5 后续处理/过滤
        1.5.6 聚类
    1.6 本文主要研究思路
    1.7 本文的主要研究贡献和章节安排
2 相关工作
    2.1 基于文本的检测方法
    2.2 基于token的检测方法
    2.3 基于树的检测方法
    2.4 基于图的检测方法
    2.5 基于度量的检测方法
    2.6 基于混合的检测方法
3 混合方式检测结构化函数级别代码克隆
    3.1 引言
    3.2 背景和动机
        3.2.1 抽象语法树(AST)
        3.2.2 Smith waterman算法
    3.3 基于函数的代码克隆检测框架
        3.3.1 构造增强型的AST
        3.3.2 Smith Waterman算法计算相似度得分
        3.3.3 代码克隆检测
    3.4 实验设置
        3.4.1 实验平台
        3.4.2 实验数据集
        3.4.3 评估指标
        3.4.4 评估方法
    3.5 实验结果
        3.5.1 参数影响
        3.5.2 算法比较
        3.5.3 跨项目代码克隆检测
    3.6 验证威胁
    3.7 小结
4 语义克隆检测
    4.1 引言
    4.2 背景和动机
        4.2.1 相关研究
        4.2.2 paragraph2vec
    4.3 语义克隆检测方法(SCDPV)
        4.3.1 获取代码中间表示
        4.3.2 获得函数代码段向量
        4.3.3 语义克隆检测
    4.4 实验设置
        4.4.1 实验平台
        4.4.2 实验数据
        4.4.3 评估指标
    4.5 实验评估
        4.5.1 SCDPV性能评估
        4.5.2 SCDPV语义克隆检测性能评估
    4.6 验证威胁
    4.7 小结
结论
参考文献
攻读硕士学位期间发表学术论文情况
致谢



本文编号:3894698

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3894698.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户9270e***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com