未来工作:
- 明确了未来研究方向:
- 从实证研究当中,去寻找有效特征,用来预测SATD注释到底是会被Self-Fixed,还是会被其他人修复;
- 本质上来说,这属于一个分类问题,其中正类就是Self-Fix,负类则为他人修复;
- 输入:包含代码片段以及SATD注释;
- 输出:对Self-Fix情况的判断,也就是验证是否是Self-Fixed;
- 重要特征是基于SATD注释,以注释为基础,去辅助分类预测,进而丰富信息维度,提升模型性能;
-
《Does it matter who pays
back Technical Debt? An empirical study of self-fixed TD》IST
- 关注其如何收集数据;
- 开源数据集是何种情况;
- 从哪些角度进行分析;
- 模仿其中的实证研究、统计分析等做法,找到存在显著性差异的特征数据;
- 再依据差异的现象和特征,进一步提取特征、量化特征;
- 然后把这些特征放到ML模型当中去进行训练、优化;
-
《An Exploratory Study on Self-Fixed Software
Vulnerabilities in OSS Projects》SANER
- 试着找出Vulnerabilities与SATD的共性;
- 将其与Self-Fix的工作联系起来;
-
关于Code-t5,RNN等文本分类的机器学习模型:
- 需要重点关注这些模型的基本思想、用途、操作过程、优势与区别、原因与动机等方面;
- 要是有必要的话,再去深入了解它们底层公式的实现情况;
- 可以到教学网站去拷贝代码,先跑通代码;
- 针对自己面临的问题去进行相应的改进;
SATD数据集采集
- 目前的方法获取SATD:
- satdbailiff自动提取;
- 写程序分析一下git diff的输出,从里面提取satd;
- 当前计划:
- 先用satd baililif提取项目信息;
- 将提取出的commit hash找到对应的提交者;
- 对比移除与引入的提交者是否同一个人;
SATD分类工作
-
人工审查GPT分类对错;
- 手动打分,有与GPT不同结果则标红;
- 统计不同结果个数;