Build Predictor: More Accurate Missed Dependency Prediction in Build Configuration Files
Authors:
- Bo ZhouBZBo Zhou
- Xin XiaXXXin Xia
- David LoDLDavid Lo
- Xinyu WangXWXinyu Wang
- 1 July 2014
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 53-58
Abstract
Software build system (e.g., Make) plays an important role in compiling human-readable source code into an executable program. One feature of build system such as make-based system is that it would use a build configuration file (e.g., Make file) to record the dependencies among different target and source code files. However, sometimes important dependencies would be missed in a build configuration file, which would cause additional debugging effort to fix it. In this paper, we propose a novel algorithm named Build Predictor to mine the missed dependncies. We first analyze dependencies in a build configuration file (e.g., Make file), and establish a dependency graph which captures various dependencies in the build configuration file. Next, considering that a build configuration file is constructed based on the source code dependency relationship, we establish a code dependency graph (code graph). Build Predictor is a composite model, which combines both dependency graph and code graph, to achieve a high prediction performance. We collected 7 build configuration files from various open source projects, which are Zlib, putty, vim, Apache Portable Runtime (APR), memcached, nginx, and Tengine, to evaluate the effectiveness of our algorithm. The experiment results show that compared with the state-of-the-art link prediction algorithms used by Xia et al., our Build Predictor achieves the best performance in predicting the missed dependencies.Keywords
This publication has 19 references indexed in Scilit:
- Automated library recommendation2013
- Build system issues in multilanguage software2012
- An empirical study of build system migrations in practice: Case studies on KDE and the Linux kernel2012
- Build code analysis with symbolic evaluation2012
- Identifying Linux bug fixing patches2012
- An empirical study of build maintenance effort2011
- Link prediction in complex networks: A surveyPhysica A: Statistical Mechanics and its Applications, 2011
- Link Prediction via Matrix Factorization2011
- Predicting missing links via local informationThe European Physical Journal B, 2009
- Automated severity assessment of software defect reports2008