Two papers accepted at ICSE 2020 Research Track

ISU Dept. of Computer Science authors have had two papers accepted at the research track of the 2020 International Conference on Software Engineering. According to http://www.icse-conferences.org, “ICSE, the International Conference on Software Engineering,® is the premier software engineering conference, providing a forum for researchers, practitioners and educators to present and discuss the most recent innovations, trends, experiences and concerns in the field of software engineering.” The research track is very competitive and only around 20% papers are usually accepted. The 2020 Conference will be held in Seoul, South Korea from May 23-29, 2020.

The first paper coauthored by Md Johirul Islam, Rangeet Pan, Giang Nguyen, and Hridesh Rajan entitled “Repairing Deep Neural Networks: Fix Patterns and Challenges” presents a comprehensive study of bug repair patterns for five DNN libraries. According to the paper’s abstract, ``Significant interest in applying Deep Neural Network (DNN) has fueled the need to support engineering of software that uses DNNs. Repairing software that uses DNNs is one such unmistakable SE need where automated tools could be very helpful; however, we do not fully understand challenges to repairing and patterns that are utilized when manually repairing them. What challenges should automated repair tools address? What are the repair patterns whose automation could help developers? Which repair patterns should be assigned a higher priority for automation? This work presents a comprehensive study of bug fix patterns to address these questions. We have studied 415 repairs from Stack Overflow and 555 repairs from Github for five popular deep learning libraries Caffe, Keras, Tensorflow, Theano, and Torch to understand challenges in repairs and bug repair patterns. Our key findings reveal that DNN bug fix patterns are distinctive compared to traditional bug fix patterns; the most common bug fix patterns are fixing data dimension and neural network connectivity; DNN bug fixes have the potential to introduce adversarial vulnerabilities; DNN bug fixes frequently introduce new bugs; and DNN bug localization, reuse of trained model, and coping with frequent releases are major challenges faced by developers when fixing bugs. We also contribute a benchmark of 667 DNN (bug, repair) instances.’’

The second paper coauthored by Ramanathan Ramu, Ganesha Upadhyaya, Hoan Nguyen, and Hridesh Rajan entitled "BCFA: Bespoke Control Flow Analysis for CFA at Scale," proposes bespoke control flow analysis (BCFA), a novel source code analysis technique for performing source code analysis over millions of control flow graphs. Accoding to the paper’s abstract, “Many data-driven software engineering tasks such as discovering programming patterns, mining API specifications, etc., perform source code analysis over control flow graphs (CFGs) at scale. Analyzing millions of CFGs can be expensive and performance of the analysis heavily depends on the underlying CFG traversal strategy. State-of-the-art analysis frameworks use a fixed traversal strategy. We argue that a single traversal strategy does not fit all kinds of analyses and CFGs and propose bespoke control flow analysis (BCFA). Given a control flow analysis (CFA) and a large number of CFGs, BCFA selects the most efficient traversal strategy for each CFG. BCFA extracts a set of properties of the CFA by analyzing the code of the CFA and combines it with properties of the CFG, such as branching factor and cyclicity, for selecting the optimal traversal strategy. We have implemented BCFA in Boa, and evaluated BCFA using a set of representative static analyses that mainly involve traversing CFGs and two large datasets containing 287 thousand and 162 million CFGs. Our results show that BCFA can speedup the large scale analyses by 1%-28%. Further, BCFA has low overheads; less than 0.2%, and low misprediction rate; less than 0.01%.’’

Congratulations to the authors!