【摘 要】
:
在软件工程领域,学者们对代码克隆检测技术的研究从来未停止过。代码克隆检测的目的是为了找出软件系统中存在的克隆,通过分析克隆对软件质量的影响来利用有益克隆,同时对软件质量造成威胁的有害克隆进行规避或重构,从而提升软件系统的质量,提高软件人员的开发效率并减少软件维护成本。到目前为止,在克隆检测领域不同方法和技术的积累,主流检测技术分为基于代码语法结构的检测和非语法结构检测。基于非语法结构检测又分为基于
【基金项目】
:
软件代码质量分析与重构科研课题中的子项目;
论文部分内容阅读
在软件工程领域,学者们对代码克隆检测技术的研究从来未停止过。代码克隆检测的目的是为了找出软件系统中存在的克隆,通过分析克隆对软件质量的影响来利用有益克隆,同时对软件质量造成威胁的有害克隆进行规避或重构,从而提升软件系统的质量,提高软件人员的开发效率并减少软件维护成本。到目前为止,在克隆检测领域不同方法和技术的积累,主流检测技术分为基于代码语法结构的检测和非语法结构检测。基于非语法结构检测又分为基于文本检测,基于令牌检测和基于代码度量值检测等,这类方法的优点是检测速度快,然而由于未考虑代码结构之间的相似性,这类技术普遍对高级别克隆代码检测的效果不甚理想。反之,基于语法结构检测的技术由于将代码处理为解析树或程序依赖图等,它们将代码之间的结构信息用于最后的检测过程,因此对高级别克隆代码表现出更好的检测效果,但与此同时,基于语法结构检测的技术存在最大的问题是检测效率低下,这是因为将代码转换为树结构或图结构,以及在这些结构上使用到的匹配算法开销比较大,鉴于此,这类技术的应用同样受到了很大的限制。近年来,随着深度学习技术不断提高代码的表达能力,并提高了代码克隆检测的技术水平,这些方法通常需要从抽象语法树向二叉树的转换来合并代码的语法信息,而这样会造成信息损失和额外开销。此外,这些方法使用术语项嵌入技术,而这往往需要大量的训练数据集。为了解决传统检测技术存在的问题,以及近来基于深度学习克隆检测方法的不足之处,本文介绍了一种基于树嵌入技术来进行代码克隆检测,我们的方法首先运用树嵌入技术以获得代码抽象语法树中每个中间层的节点向量,该节点向量捕获了语法树的结构信息。然后,我们使用轻量级方法从相关节点向量中合成一个树向量。最后,通过计算树向量之间的欧几里得距离,以确定代码克隆。在我们称为TECCD的工具中的应用,使用Big Clone Bench(BCB)和6个其他规模的开源Java项目进行评估。结果表明,我们的方法具有良好的精度和召回率,并优于现有的方法。
其他文献
随着当前互联网环境中各类社交媒体的快速发展,人们在互联网上留下了海量的电子足迹信息,这些信息包含了人们的社会言论、社会关系、社会行为等丰富数据。这些数据为我们构建用户画像,分析社会关系提供了重要的数据支持。社会关系是人类社会的重要组成部分,社会关系分析是社会网络研究的重要基础。传统的社会关系分析研究多倾向于关系的方向、强度和类型,缺乏丰富的语义内涵,因此这些方法所构建的关系画像存在局限性,难以支撑
在信息检索中,最近的研究表明,信息检索系统的平均有效性的提高可能会降低信息检索系统在多个主题的得分的稳定性,这个现象表明有效性和稳定性两者之间存在一个折中。另外,一些风险指标被提出来度量系统的风险,但是这些评价指标是与前面所提到的有效性评价指标是分开定义的。综上所述,目前信息检索评价领域主要存在三个问题:(1)系统的有效性和稳定性尚未在一个统一的框架中进行系统的评估;(2)在这个框架下,这个统一的
目前关于人脸面部表情的研究主要是对静态人脸图片直接分析识别,这种方法往往在实验室环境下的人脸数据集上表现不错,却难以适用于含有有损人脸的野外复杂环境下的人脸数据集,比如低分和有部分遮挡等人脸图片。本文旨在通过人脸修复模型对有损人脸进行修复生成,然后利用人脸面部表情识别模型对修复后的人脸进行面部表情动作单元识别分析。本文主要解决的问题是保证修复生成后的人脸图片的人脸面部表情动作与真实的人脸面部表情动
校园暴力和欺凌已经成为严重影响青少年健康成长的问题之一。目前的预防措施主要依靠个人主动揭发或者学校监督。到目前为止,还没有一个有效的解决方案能够自动检测出暴力欺凌事件。检测暴力欺凌事件的本质就是人体行为识别。目前,人体行为识别在教育、医疗、商业和军事领域已经有广泛的应用。而且,人体行为识别在计算机视觉、可穿戴传感器和基于环境传感器技术方面都有一定的研究。但是,这些技术都有一些设备,场景的限制,无法
三维钻孔可视化是钻孔设计中的重要方面,旨在更形象的展示钻孔的内部结构,方便用户的设计,具有一定的现实意义。本文对三维空间展示相关理论进行了研究,并对系统需求与系统的主要开发技术进行了深入的分析。确定以MVC开发模式为基础,采用Beego框架以及Mongo DB数据库,结合HTML5、Web GL和Java Script等前端可视化技术实现系统功能设计与界面设计。系统划分为计划钻孔展示、实际钻孔展示
知识图谱在描述现实世界中的各种实体和关系方面具有良好的表现形式,它是人工智能领域的一项关键技术,研究热度随着人工智能的发展而不断提高。作为描述大规模知识图谱的标准数据格式资源描述框架RDF,伴随着知识图谱的兴起,也广泛应用在各个领域,与我们生活息息相关。例如,用于帮助搜索引擎找到更符合用户需求的答案、用于优化对一个事物的具体描述。RDF数据的广泛使用导致其数据日益庞大,亟需一个高效的数据管理系统进
世界上有数以万计的聋哑人,如果手语能够通过识别技术转化为语音,将极大地促进聋哑人与正常人之间的交流。为了实现手语领域的人机交互,需要设计出一个可以识别多个身体部位的动作系统。本文研究了基于Wi-Fi信道状态信息(Channel State Information,CSI)的手语识别问题,利用商业Wi-Fi设备实现了一个名为WiSign的原型,实现了单词级别和句子级别的手语识别,并在真实的室内环境中
管线铺设是地浸矿山井场设计中的一个重要环节,开发基于Web GL的井场管线铺设系统能够在三维场景下辅助技术人员进行管线铺设,为管理者的决策提供数据支持,具有一定的实用价值。本文首先对国内外井场管线铺设系统的发展现状进行了分析,研究了相关理论与技术。通过需求分析将系统划分成了地表模建模、地表交线铺设、井场管网规划、管线数据统计等模块。为实现地表建模模块,提出了一种改进的距离反比插值算法,首先使用K均
自然语言处理技术已被广泛应用于很多领域,其中也包含对电影剧本的分析。近年来看电影成为人们常见的休闲娱乐方式,人们总是希望在看电影之前更多的了解电影内容,判断是否有自己感兴趣的片段,并且希望可以快速的定位到该片段。但目前常用的视频播放软件并不能满足人们这样的需求,不能进行片段的索引,在对片段进行定位的时候人们只能手动的快进或后退拉动进度条,有时候可能会错过自己想看的内容。因此,为了能让用户在比较短的
肿瘤转移是其高死亡率的关键。越来越多的学者开始关注肿瘤转移的研究,并在这一领域取得了令人满意的成果。乳腺癌是女性最常见的恶性肿瘤。它的高死亡率,主要是由于转移和复发造成的。侵袭性和非侵袭性乳腺癌患者需要不同的治疗方法,因此迫切需要预测工具来指导临床决策,以避免非侵袭性乳腺癌的过度治疗和侵袭性病例的治疗不足。测序时代的到来允许在分子水平上研究肿瘤转移,这对于了解肿瘤转移的分子机制、识别诊断标志物和治