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 JulDisplayed 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 12mTalk | 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 12mTalk | 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 8mTalk | 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 8mTalk | 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 8mTalk | 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 8mTalk | Towards Understanding and Detecting Fake Reviews in App StoresJ1 Journal First |