ASE2021

Explainable AI for Software Engineering

Chakkrit Kla Tantithamthavorn, Jirayus Jiarpakdee

被引用 66 次

摘要

Intelligence/Machine Learning techniques have been widely used in software engineering to improve developer productivity, the quality of software systems, and decision-making. However, such AI/ML models for software engineering are still impractical, not explainable, and not actionable. These concerns often hinder the adoption of AI/ML models in software engineering practices. In this article, we first highlight the need for explainable AI in software engineering. Then, we summarize three successful case studies on how explainable AI techniques can be used to address the aforementioned challenges by making software defect prediction models more practical, explainable, and actionable. AI FOR SOFTWARE ENGINEERING The success of software engineering projects largely depends on much complex decisionmaking [4] (e.g., Which tasks should a developer do first? Who should perform this task? Is a software system of high quality? Is a software system reliable and resilient enough to deploy?). However, the erroneous of these complex decisions is costly in terms of monetary and reputation. Today software development processes depend on a variety of development tools (e.g., issue tracking systems, version control systems, code review, continuous integration, continuous deployment, and Q&A website). Such tools generate large quantities of unstructured software artefacts at a high frequency (so-called Big Data) in many forms like issue reports, source code, test cases, code reviews, execution logs, app reviews, developer mailing lists, and discussion threads [4] . AI4SE (or Software Analytics) is a sub-field in software engineering that focuses on leveraging AI/ML and data analytics techniques to uncover interesting and actionable knowledge from the unprecedented amount of software data [7], [10]. Many software organisations (e.g., Microsoft, Facebook, and Google) currently use powerful AI/ML techniques to make data-driven engineering decisions and support software engineering tasks [1], [2], [11], [12], [14]. For example, IEEE Computer