论文标题

如何改善AI工具(通过添加SE知识):使用时间段缺陷工具进行实验

How to Improve AI Tools (by Adding in SE Knowledge): Experiments with the TimeLIME Defect Reduction Tool

论文作者

Peng, Kewen, Menzies, Tim

论文摘要

在SE研究和实践中,AI算法的频率增加了。这种算法通常使用来自SE域外的数据进行调试和认证。我们可以假设这种算法可以使用“现成”(即没有修改)?要说另一种方式,是否有SE问题的特殊功能暗示使用AI工具的不同,更好的方法? 为了回答这些问题,本文报告了Quilime的实验,这是KDD'16的Lime解释算法的一种变体。石灰可以提供有关如何更改静态代码属性的建议,以减少下一个软件版本中的缺陷数量。该版本的石灰使用了内部加权工具来决定在这些建议中包含/排除的属性。使用以下SE知识来改进加权方案:软件发行;对软件的令人难以置信的更改是在先前的发行中从未改变的。因此,最好使用合理的更改,即在先前版本中具有一些先例的变化。通过将建议限制在经常更改的属性中,时间段可以产生(a)〜对导致缺陷的原因更好地解释,以及(b)〜关于如何修复错误代码的更好的建议。 除了减少缺陷和时间时的这些具体结果外,本文更一般的观点是,我们的社区在使用现成的AI工具时应更加谨慎,而无需先应用SE知识。如下所示,应用这些知识可能不是一个复杂的问题。此外,一旦应用了SE知识,这将导致更大的系统。

AI algorithms are being used with increased frequency in SE research and practice. Such algorithms are usually commissioned and certified using data from outside the SE domain. Can we assume that such algorithms can be used ''off-the-shelf'' (i.e. with no modifications)? To say that another way, are there special features of SE problems that suggest a different and better way to use AI tools? To answer these questions, this paper reports experiments with TimeLIME, a variant of the LIME explanation algorithm from KDD'16. LIME can offer recommendations on how to change static code attributes in order to reduce the number of defects in the next software release. That version of LIME used an internal weighting tool to decide what attributes to include/exclude in those recommendations. TimeLIME improves on that weighting scheme using the following SE knowledge: software comes in releases; an implausible change to software is something that has never been changed in prior releases; so it is better to use plausible changes, i.e. changes with some precedent in the prior releases. By restricting recommendations to just the frequently changed attributes, TimeLIME can produce (a)~dramatically better explanations of what causes defects and (b)~much better recommendations on how to fix buggy code. Apart from these specific results about defect reduction and TimeLIME, the more general point of this paper is that our community should be more careful about using off-the-shelf AI tools, without first applying SE knowledge. As shown here, it may not be a complex matter to apply that knowledge. Further, once that SE knowledge is applied, this can result in dramatically better systems.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源