Write a Blog >>
ICSE 2020
Wed 24 June - Thu 16 July 2020
Fri 10 Jul 2020 08:37 - 08:45 at Goguryeo - I23-Code Artifact Analysis Chair(s): Benoit Baudry

In our journal first paper “Is static analysis able to identify unnecessary source code?”, we investigate a major software maintenance issue, especially for grown software systems: code that is not necessary anymore. Such unnecessary code wastes resources during development and maintenance, for example, when preparing code for migration or certification. In the literature, execution information from production environments is used to identify code that is not used anymore. However, it is often time-consuming to obtain representative data in this way. In the journal paper, we investigate to what extent a static analysis approach, which is based on code stability and code centrality, is able to identify unnecessary code and whether its recommendations are relevant in practice. Unnecessary code can but does not need to be dead code. So, technically we are not focussing on a reachability analysis but use heuristics to identify unnecessary code. The paper presents a strong evaluation of the approach, for which a study on 14 open-source and closed-source software systems is conducted. As there is no perfect oracle for unnecessary code, we compared recommendations for unnecessary code with historical cleanups, runtime usage data, and feedback from 25 developers of five software projects. Our study shows that recommendations generated from stability and centrality information point to unnecessary code that cannot be identified by dead code detectors. Developers confirmed that 34% of recommendations were indeed unnecessary and deleted 20% of the recommendations shortly after our interviews. Overall, our results suggest that static analysis can provide quick feedback on unnecessary code and is useful in practice.

Fri 10 Jul

Displayed time zone: (UTC) Coordinated Universal Time change

08:05 - 09:05
I23-Code Artifact AnalysisJournal First / Technical Papers at Goguryeo
Chair(s): Benoit Baudry KTH Royal Institute of Technology
08:05
12m
Talk
Conquering the Extensional Scalability Problem for Value-Flow Analysis FrameworksTechnical
Technical Papers
Qingkai Shi The Hong Kong University of Science and Technology, Rongxin Wu Department of Cyber Space Security, Xiamen University, Gang Fan Hong Kong University of Science and Technology, Charles Zhang The Hong Kong University of Science and Technology
08:17
12m
Talk
Pipelining Bottom-up Data Flow AnalysisTechnical
Technical Papers
Qingkai Shi The Hong Kong University of Science and Technology, Charles Zhang The Hong Kong University of Science and Technology
08:29
8m
Talk
An Empirical Validation of Oracle ImprovementJ1
Journal First
Gunel Jahangirova Università della Svizzera italiana, David Clark University College London, Mark Harman , Paolo Tonella Università della Svizzera italiana
08:37
8m
Talk
Is Static Analysis Able to Identify Unnecessary Source Code?J1
Journal First
Roman Haas CQSE GmbH, Rainer Niedermayr CQSE GmbH, Tobias Roehm CQSE GmbH, Sven Apel Saarland University
Pre-print
08:45
8m
Talk
Memory and Resource Leak Defects and Their Repairs in Java ProjectsJ1
Journal First
Mohammadreza Ghanavati Heidelberg University, Diego Costa Concordia University, Canada, Janos Seboek Heidelberg University, David Lo Singapore Management University, Artur Andrzejak Heidelberg University
08:53
8m
Talk
Towards Understanding and Detecting Fake Reviews in App StoresJ1
Journal First
Daniel Martens University of Hamburg, Walid Maalej University of Hamburg