[发明专利]一种基于微调和深度交互的代码味道检测方法在审
申请号: | 202011207766.9 | 申请日: | 2020-11-03 |
公开(公告)号: | CN112328478A | 公开(公告)日: | 2021-02-05 |
发明(设计)人: | 施重阳;任少君;赵舒鑫;江贺 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/04;G06N3/08 |
代理公司: | 北京正阳理工知识产权代理事务所(普通合伙) 11639 | 代理人: | 张利萍 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 微调 深度 交互 代码 味道 检测 方法 | ||
本发明涉及一种基于微调和深度交互的代码味道检测方法,属于计算机软件重构技术领域。本方法通过提取文本信息和结构化信息中的语义特征、数字化特征和交互特征,以及使用预训练和微调的训练方式,能够自动地提取代码中的特征信息,并将提取出的特征信息与检测结果自动匹配,在较小的检测时间下,能够保证检测结果具有较高的召回率和精确度。本方法除了加入已有代码度量中的结构化信息,还加入了源代码中的文本信息以及交互特征信息,利用文本信息中的上下文语义关系和本信息和度量值信息存在的三种交互特征信息对代码味道进行更深入的检测。
技术领域
本发明涉及一种基于微调和深度交互的代码味道检测方法,属于计算机软件重构技术领域。
背景技术
程序源代码的质量是现代软件工程中的关键问题之一。随着产品需求的不断变化,程序设计之初设计的代码框架需要不断调整,以实现功能的变化。随着时间的推移,程序会逐渐偏离原来的框架,从而使代码质量下降,产生代码味道。代码味道是弱点或设计缺陷的标志,可能导致软件系统在可读性、可维护性和可扩展性方面的问题。为了解决这个问题,人们提出了软件重构,通过重构软件的内部结构来提高软件的可维护性和可扩展性,而外部行为保持不变。多年来,开发过程中的实践和应用表明,代码重构在提高程序的可读性和可维护性方面起着重要作用。
软件重构的关键步骤之一是识别需要重构的代码片段。为了帮助开发人员确定在程序中何处重构,Fowler等人提出了代码味道的概念。代码味道意味着影响软件系统中软件质量的设计问题,Fowler等人总共引入了22种代码味道,包括Feature Envy,LongMethod以及God Class等。基于这一定义,研究人员提出了一系列自动或半自动的方法来检测代码味道。
近年来,研究人员提出了许多方法来检测软件代码味道。现有的检测方法主要是基于通用软件度量,例如LOC、NOA以及TCC等。不同的检测方法往往使用不同的度量和不同的阈值,检测结果往往差异很大。因此,人工构造最佳的启发式方法是非常具有挑战性的。为了避免人工设计规则,研究人员提出了传统的基于机器学习的代码味道检测方法,如SVM、J-48和朴素贝叶斯。这些方法能够额外的提供主观性,从而避免人们对代码味道的认识不同的问题,同时,这些方法能够自动地从代码度量中提取相应的特征完成对代码味道的识别。
然而,当同时检测两种或者更多种代码味道时,这些基于传统的机器学习的方法并没有很好地表现。
基于深度学习的技术已经广泛在各个被使用,例如自然语言处理、计算机视觉、推荐系统等。深度学习等技术的架构是基于多层神经网络的,其目的主要贡献在于可以对高维数据进行有效的建模。与基于传统的机器学习技术不同,深度学习技术提供了从低到高的多层次的数据抽象,并在深度特征提取上取得了更好的表现。目前,深度学习技术已经成功应用于代码味道检测当中。例如,刘辉等人提出了一种基于深度学习的方法来检测坏味代码,这种方法利用了文本信息和代码度量值,但是,其并没有考虑到文本信息和代码度量值的交互信息,也没有考虑到用合成的数据集并不能很好地预测真实生活中的坏味代码情况。
因此,如何克服现有技术的缺陷,寻找更为有效的检测方法,成为本领域的重要研究方向。
发明内容
本发明的目的是为了解决软件重构领域已有的代码味道检测方法存在真实数据集数量少以及没有考虑到交互信息等技术问题,创造性地提出一种基于微调和深度交互的代码味道检测方法。
本发明是通过以下技术方案实现的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011207766.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种农作物的开沟施肥机
- 下一篇:一种脑卒中患者的多功能护理装置