[发明专利]结合代码演化信息构造代码坏味训练数据集的方法有效

专利信息
申请号: 201711365477.X 申请日: 2017-12-18
公开(公告)号: CN108108168B 公开(公告)日: 2021-02-02
发明(设计)人: 王逸君;周晓聪 申请(专利权)人: 中山大学
主分类号: G06F8/41 分类号: G06F8/41;G06N3/08;G06K9/62
代理公司: 广州粤高专利商标代理有限公司 44102 代理人: 林丽明
地址: 510275 广东*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 结合 代码 演化 信息 构造 训练 数据 方法
【说明书】:

发明涉及一种结合代码演化信息构造代码坏味训练数据集的方法,包括有以下步骤:A、从网络源代码仓库中获取一个软件的基线版本和基线版本之后的对照版本的源代码;B、对基线版本和对照版本的源代码实体进行检测,并提取基线版本中的变化坏味实体和无坏味实体,将变化坏味实体标注为具有坏味的实体,将无坏味实体标注为不具有坏味的实体;C、抽取数量与变化坏味实体数量相当的无坏味实体;D、计算变化坏味实体和无坏味实体在基线版本源代码中的度量特征;E、变化坏味实体和无坏味实体组成变化坏味训练数据集;F、利用遗传算法对变化坏味训练数据集内的实体的度量特征进行降维,降维后的变化坏味实体和无坏味实体组成代码坏味训练数据集。

技术领域

本发明涉及代码坏味检测技术领域,更具体地,涉及一种结合代码演化信息构造代码坏味训练数据集的方法。

背景技术

代码坏味自动检测是目前软件工程研究的热点问题之一,其中一类重要的方法是基于机器学习算法构建模型对代码是否存在坏味进行分类,影响这类方法准确性的关键之一是用于构建机器学习算法模型的训练数据集。目前这类方法都是使用多个开源软件项目,通过人工审查项目源代码或使用自动工具(例如iPlasma,inFusion,PMD等)标注项目的实体(类/方法)是否含有代码坏味,将这些开源软件项目的实体及其是否有坏味的标注作为有监督机器学习算法的训练数据集,得到有坏味实体的特征训练模型,然后进行代码坏味的自动检测。

近年来,代码坏味自动检测的研究取得了一定的成果。Maiga等学者于2012年提出的一种支持向量机的方法检测软件源代码中的坏味,通过一个给定的训练集,可以学习如何识别类似的坏味。这种方法的特点是不依赖于大量的反模式知识,通过采用增量的支持向量机和程序员的反馈来提高精度。但是用于支持向量机算法训练的数据集依然需要根据坏味的定义和上下文,人工进行标注。Palomba等学者于2013年提出的一种名为HIST(Historical Information for Smell deTection)的方法,他们通过分析从版本管理工具中提取出的历史修改信息采用启发式算法检测坏味,这种方法要求待检测的程序需要有版本管理工具提供修改信息,同时由于版本管理工具只提供文件级别的变化,依然需要人工标注文件内部各个类、方法、属性的变化,最后对于坏味实体的判断需要人工的参与。Sahin等学者于2014年将获取坏味检测规则的方法定义为一个双层优化问题,上层是基于遗传算法生成的检测规则,而下层是典型的坏味实体,只有下层的最优选择才会成为上层优化的候选方案。这种方法的检测依据仍然是程序度量值,通过上层的遗传算法总结规律,但是下层的典型坏味数据集仍然需要人工标注,其数量有限,并且不能保证覆盖各种坏味情况。ShizheFu等学者于2015年采用关联分析的方法结合演化信息识别坏味,这种方法首先从版本管理工具中提取目标系统的变化信息,然后进行预处理构造变化数据集,接下来采用频繁项算法,比如Apriori或FP增长算法对变化数据集进行挖掘,输出不同代码实体的耦合情况,最后根据不同的坏味在文献中的定义,定义启发式算法,将关联规则和结构信息结合起来自动寻找坏味。这种方法和HIST比较相似,仍然需要手工的干预,并且结合了演化数据来检测坏味。Lucas等学者于2015年研究了决策树算法在识别坏味方面的有效性,他们基于Ptidej团队的数据集,通过决策树算法生成模型进行预测,结果表明决策树算法能够有效的学习坏味检测的规则,但是这种方法的准确率依然取决于标注的可信度。

综上可知,现有的标注方法通常是基于人工或者工具,但都存在局限性。通过人工审查项目源代码标注坏味依赖审查者的主观经验,且难以对大规模的项目源代码进行人工审查;使用自动工具标注坏味则依赖工具本身的准确度,但自动工具本身的准确度难以保证,甚至不同的自动工具对同一个实体是否有坏味的检测结果也不尽相同。这些问题使得要得到大规模可信的训练数据集变得很困难,所以有必要加以改进。

发明内容

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201711365477.X/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top