中文

如何通过融入软件工程知识改进AI工具:基于TimeLIME缺陷消减工具的实验

软件工程 2020-03-17 v1

摘要

AI算法在软件工程(SE)研究与实践中的使用日益频繁。此类算法通常利用SE领域之外的数据进行委托与认证。我们能否假定这类算法可“开箱即用”(即无需修改)?换言之,SE问题是否存在特殊特征,暗示一种不同且更优的AI工具使用方式?为回答这些问题,本文报道了关于TimeLIME的实验,其为KDD'16中LIME解释算法的一个变体。LIME可提供关于如何更改静态代码属性以减少下一软件版本中缺陷数的建议。该版LIME使用内部加权工具来决定建议中包含/排除哪些属性。TimeLIME利用以下SE知识改进了该加权方案:软件以版本形式发布;对软件而言不切实际的变更是那些在先前版本中从未被更改过的内容;因此最好使用可行的变更,即在先前版本中有先例的变更。通过将建议限制为仅频繁更改的属性,TimeLIME可生成(a)对缺陷成因的显著更优解释,以及(b)关于如何修复缺陷代码的更好建议。除这些关于缺陷消减与TimeLIME的具体结果外,本文更普遍的观点是:我们的社区在未经SE知识应用前,应更审慎地使用开箱即用的AI工具。如本文所示,应用该知识未必复杂。此外,一旦应用该SE知识,可带来显著更优的系统。

关键词

引用

@article{arxiv.2003.06887,
  title  = {How to Improve AI Tools (by Adding in SE Knowledge): Experiments with the TimeLIME Defect Reduction Tool},
  author = {Kewen Peng and Tim Menzies},
  journal= {arXiv preprint arXiv:2003.06887},
  year   = {2020}
}

备注

11 pages, 7 figures, submitted to FSE