ABSTRACT
Build systems describe how source code is translated into deliverables. Developers use build management tools like Maven to specify their build systems. Past work has shown that while Maven provides invaluable features (e.g., incremental building), it introduces an overhead on software development. Indeed, Maven build systems require maintenance. However, Maven build systems follow the build lifecycle, which is comprised of validate, compile, test, packaging, install, and deploy phases. Little is known about how build maintenance activity is dispersed among these lifecycle phases. To bridge this gap, in this paper, we analyze the dispersion of build maintenance activity across build lifecycle phases. Through analysis of 1,181 GitHub repositories that use Maven, we find that: (1) the compile phase accounts for 24% more of the build maintenance activity than the other phases; and (2) while the compile phase generates a consistent amount of maintenance activity over time, the other phases tend to generate peaks and valleys of maintenance activity. Software teams that use Maven should plan for these shifts in the characteristics of build maintenance activity.
- B. Adams, K. D. Schutter, H. Tromp, and W. D. Meuter. The Evolution of the Linux Build System. Electronic Communications of the ECEASST, 8, 2008.Google Scholar
- L. A. Belady and M. M. Lehman. A model of large program development. IBM Systems Journal, 15(3):225--252, 1976. Google ScholarDigital Library
- R. Dyer, H. A. Nguyen, H. Rajan, and T. N. Nguyen. Boa: A Language and Infrastructure for Analyzing Ultra-Large-Scale Software Repositories. In Proc. of the 35th Int'l Conf. on Software Engineering (ICSE), pages 422--431, 2013. Google ScholarDigital Library
- L. Hochstein and Y. Jiao. The cost of the build tax in scientific software. In Proc. of the 5th International Symposium on Empirical Software Engineering and Measurement (ESEM), pages 384--387, 2011. Google ScholarDigital Library
- S. McIntosh, B. Adams, and A. E. Hassan. The evolution of Java build systems. Empirical Software Engineering, 17(4-5):578--608, August 2012. Google ScholarDigital Library
- S. McIntosh, B. Adams, T. H. D. Nguyen, Y. Kamei, and A. E. Hassan. An Empirical Study of Build Maintenance Effort. In Proc. of the 33rd Int'l Conf. on Software Engineering (ICSE), pages 141--150, 2011. Google ScholarDigital Library
- S. McIntosh, M. Nagappan, B. Adams, A. Mockus, and A. E. Hassan. A Large-Scale Empirical Study of the Relationship between Build Technology and Build Maintenance. Empirical Software Engineering, 20(6): 1587--1633, 2015. Google ScholarDigital Library
Comments