智慧教育学院研究生高宇翔在国际软件工程顶会ICSE分会MSR上发表论文并作报告

文章作者:           发布时间: 2022-05-26           浏览次数: 448


近日,智慧教育学院(计算机科学与技术学院)祝义教授指导其2020级硕士生高宇翔在国际软件工程顶会ICSE分会“Mining Software Repositories” CCF-C类)上发表文章“Evaluating local explanation methods on source code-based defect prediction models”,并于520日在线上大会上作报告。


近年来,软件缺陷预测同时被研究人员和开发人员广泛关注。有工作指出,可解释的缺陷预测模型(Explainable Defect Prediction Models)更能容易被工业界所接受。作为解释机器学习模型的方法之一,局部解释技术被广泛应用于软件工程领域,尤其是软件缺陷预测这一问题。然而,大部分将局部解释应用于软件缺陷预测的工作都是基于传统特征。虽然已有少量工作将其直接应用于基于源代码的缺陷预测模型(例如预测缺陷所在行),但是其有效性尚未知晓。也有工作指出,直接针对基于源代码的缺陷预测模型作局部解释很难反映真实情况。如果局部解释方法不够有效,那么据此得到的结论也会不可靠。因此,文章评估了局部解释方法LIMEWord Omission在基于源代码的软件缺陷预测模型上的有效性。

文章首先介绍了基于源代码的缺陷预测的一般流程,然后将自然语言处理领域的局部解释方法LIMEWord Omission引入到软件工程领域,并在代码标记序列的层面上解释两种不同类型的基于源代码的缺陷预测模型:词频模型和深度学习模型。在引入自然语言处理领域的评估方法局部保真性解释准确度的基础上,对LIMEWord Omission在软件缺陷预测这一具体任务上的有效性进行了评估。

文章在3个基于源代码的缺陷预测模型和3个开源Java项目上进行实验。实验结果显示:(1)目前被广泛应用的LIMEWord Omission在词频模型的缺陷预测模型上能够取得较好的性能,然而在深度学习模型上局部保真性并不理想;(2)用于解释的特征的数目,即局部解释方法里的参数K严重影响了局部解释方法的有效性,一般来说随着K的增大得到的解释越有效,然而过大的K可能会导致整个代码标记序列的所有特征都作为解释,这可能会导致得到的解释缺乏意义;(3)和自然语言处理领域不同,软件工程领域的代码及其转化后的序列长度分布差异大,对于较长的代码,LIMEWord Omission可能很难找到所有导致机器学习模型预测行为的特征。

基于上述结论,本文为局部解释方法在基于源代码的缺陷预测这一应用场景上,提出了如下的建议:(1LIMEWord Omission可以直接被应用于词频模型的缺陷预测模型,然而应当谨慎地将它们应用于使用深度学习方法基于源代码构建的缺陷预测模型;(2)参数K应当被仔细地调优,以获得更有效、更有意义的解释。



作者简介

高宇翔:江苏师范大学智慧教育学院(计算机科学与技术学院)2020级电子信息(计算机技术)硕士研究生;

祝义:江苏师范大学智慧教育学院(计算机科学与技术学院)教授,江苏省“333”中青年科学技术带头人,CCF-华为胡杨林基金获得者,江苏省一流本科专业建设点软件工程专业负责人,江苏省软件工程实践教育中心主任,软件工程学科带头人,美国波士顿大学、弗吉尼亚大学访问学者。主要从事研究方向为软件可靠性、智能化软件、自适应学习等。近年来,主持国家自然科学基金面上项目1项,主持省部级项目6项,主持市厅级项目3项。担任《TSE》《SPE》《计算机学报》等期刊审稿专家。在《SPE》《IJSEKE》《JIT》《软件学报》《计算机研究与发展》等核心学术刊物发表论文50余篇,其中SCI/EI检索40余篇,获软件著作权15项,受理国家发明专利4项。