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

03/15/2020
by   Kewen Peng, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/12/2020

Defect Reduction Planning (using TimeLIME)

Software comes in releases. An implausible change to software is somethi...
research
12/09/2019

Is AI different for SE?

What AI tools are needed for SE? Ideally, we should have simple rules th...
research
08/03/2021

The application of artificial intelligence in software engineering: a review challenging conventional wisdom

The field of artificial intelligence (AI) is witnessing a recent upsurge...
research
04/28/2023

AI Safety Subproblems for Software Engineering Researchers

In this 4-page manuscript we discuss the problem of long-term AI Safety ...
research
04/23/2020

Love, Joy, Anger, Sadness, Fear, and Surprise: SE Needs Special Kinds of AI: A Case Study on Text Mining and SE

Do you like your code? What kind of code makes developers happiest? What...
research
02/03/2023

Less, but Stronger: On the Value of Strong Heuristics in Semi-supervised Learning for Software Analytics

In many domains, there are many examples and far fewer labels for those ...
research
10/21/2022

Navigating the challenges in creating complex data systems: a development philosophy

In this perspective, we argue that despite the democratization of powerf...

Please sign up or login with your details

Forgot password? Click here to reset