[发明专利]基于XGBoost的自承认技术债务多分类方法有效
| 申请号: | 202110081268.2 | 申请日: | 2021-01-21 |
| 公开(公告)号: | CN112748951B | 公开(公告)日: | 2022-04-22 |
| 发明(设计)人: | 陈信;俞东进;范旭麟;王琳 | 申请(专利权)人: | 杭州电子科技大学 |
| 主分类号: | G06F8/73 | 分类号: | G06F8/73;G06K9/62;G06F40/216;G06F16/903 |
| 代理公司: | 浙江千克知识产权代理有限公司 33246 | 代理人: | 周希良 |
| 地址: | 310018 浙江*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 xgboost 承认 技术 债务 分类 方法 | ||
本发明公开了一种基于XGBoost的自承认技术债务分类方法。该方法通过构建基于XGBoost的自承认技术债务分类器,可以有效对自承认技术债务进行分类。同时,该方法采用EDA方法中的随机交换和随机打乱策略进行数据增强,并使用类间距度量生成数据的质量,有效克服了样本不均衡问题。此外,该方法使用CHI进行特征提取,选择分数最高的前s(s的值为总的不同特征的个数的10%)个单词,加快模型训练的同时提高了模型的性能。通过本发明方法能够有效分类软件技术债务,降低软件维护的成本,对软件维护具有非常重要的意义。
技术领域
本发明涉及软件维护领域,尤其涉及一种基于XGBoost的自承认技术债务多分类方法。
背景技术
软件技术债务(Technical Debt,TD)是一种比喻,指的是软件开发者为了满足现实业务需求或预算、时间上的约束而采取的一些折中的软件开发方案后所产生的不规范的代码。研究显示技术债务会极大地降低软件质量,给软件维护带来诸多挑战。技术债务对软件影响主要包含三个方面,即可维护性、可演化性、可见性。首先,存在技术债务的代码本身可读性较差,很难被他人所理解,代码中可能存在代码异味,影响软件本身的扩展和增强,造成软件维护困难等问题。其次,技术债务降低了软件系统适应变化的能力,从而使得系统难以支撑功能的快速迭代和演化,其可用性、可扩展性、灵活性难以满足实际需求。再次,对于最终用户来说,技术债务会造成功能、设计和用户体验等方面的缺陷,导致用户无法顺利完成既定的业务流程,那么对于用户不可见的代码问题就升级为可见的质量问题;对于开发者来说,臃肿的技术架构、散落各处的业务逻辑造成产品无法快速响应需求变化,导致交付延期,最终难以理解的、不可见的架构问题就升级为可见的软件交付风险。
由于技术债务不可见且长期存在于项目中,技术债务检测和消除成为一个亟待解决的问题,引起研究者们的高度重视。随着研究的不断深入,研究者们发现有时开发者由于一些因素(如开发时间紧张、预算有限或商业利益等)会故意将不完整的、有缺陷的代码或解决方案引入项目,并记录在代码注释中,这一类技术债务被称为自承认技术债务(self-admitted technical debt,SATD)。已有研究将自承认技术债务被分为5类,分别是设计技术债务(design TD)、需求技术债务(implementation TD)、缺陷技术债务(defect TD)、测试技术债务(test TD)和文档技术债务(documentation TD),不同类别的技术债务可能需要不同的人员进行处理(例如测试技术债务需要测试人员来解决,缺陷技术债务需要开发者解决),正确地对技术债务进行分类,可以帮助开发团队提高工作效率。
当前,研究者主要聚焦在软件技术债务的检测方面,即通过对源代码或者代码注释进行分析,并设计自动化或者半自动化的方法识别软件中是否存在技术债务。然而,很少有研究关注自承认技术债务多分类问题。经验表明,不同类型的技术债务对软件开发带来不同的影响,比如设计债务常常意味着代码中存在大的问题,因此需要较高的代价进行维护。缺陷债务表明软件中可能存在缺陷或者崩溃,这种债务需要被及时移除。因此,识别不同类别的技术债务能够帮助开发者更好地理解软件中的技术债务,提高开发者对技术债务的修复效率。
发明内容
为了有效识别不同类型的技术债务,本发明提出了一种基于XGBoost的自承认技术债务多分类方法,可以有效地对技术债务进行分类。
本发明具体采用的技术方案如下:
步骤(1)从数据集中获取代码注释集合S=(S1,S2,…,Sn),n为所有类的代码注释数量,将其中每个样本表示成Si=id,comment,LB,i=1,2,…,n,其中id表示代码注释的编号,comment表示代码注释的文本信息,LB表示代码注释的标签,即技术债务的类型。
步骤(2)对每个样本Si中的comment进行预处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110081268.2/2.html,转载请声明来源钻瓜专利网。





