Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2897695.2897703acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

On the maintenance complexity of makefiles

Published: 14 May 2016 Publication History

Abstract

Build systems, the tools responsible for compiling, testing, and packaging software systems, play a vital role in the software development process. It is therefore important that they be maintained and kept up-to-date, which has been shown to be required for up to 27% of source code changes. Make, one such build tool, uses a declarative language based on Makefiles to specify the build and thus is not amenable to traditional complexity metrics. Because of this, most research into the complexity of Makefiles has focused on simple measures such as the number of lines, targets, or dependencies. In this paper, we take a different approach and observe that a large component of software maintenance is about understanding. Since the understanding task is dominated by following links and searching for related parts, we propose a new complexity metric based on the number of indirections (i.e. instances of features that require the reader to look somewhere else). We present an empirical study of the indirection complexity of a set of almost 20,000 Makefiles from more than 150 open source projects.

References

[1]
CMake FAQ, http://www.cmake.org/wiki/cmake_faq.
[2]
GNU make, www.gnu.org/software/make/manual/make.html.
[3]
Adams, B., De Schutter, K., Tromp, H., and De Meuter, W. The evolution of the linux build system. Electronic Comm. EASST 8, 0 (Oct. 2008).
[4]
Adams, B., Tromp, H., De Schutter, K., and De Meuter, W. Design recovery and maintenance of build systems. In IEEE Intl. Conf. on Software Maint. (2007), pp. 114--123.
[5]
Ahn, Y., Suh, J., Kim, S., and Kim, H. The software maintenance project effort estimation model based on function points. J. Software Maintenance and Evolution: Research and Practice 15, 2 (2003), 71--85.
[6]
Albrecht, A. J. Measuring application development productivity. In Joint SHARE/GUIDE/IBM Application Devel. Sympos. (1979), pp. 83--92.
[7]
Apache Software Foundation. Apache ant, http://ant.apache.org, 2000.
[8]
Cordy, J. R. The TXL source transformation language. Sci. Comput. Program. 61, 3 (Aug. 2006), 190--210.
[9]
Cubranic, D., Murphy, G. C., Singer, J., and Booth, K. S. Hipikat: A project memory for software development. IEEE Trans. Software Eng. 31, 6 (2005), 446--465.
[10]
Feldman, S. I. Make - a program for maintaining computer programs. Software: Practice and Experience 9, 4 (1979), 255--265.
[11]
Halstead, M. H. Elements of Software Science. Elsevier Science Inc., 1977.
[12]
Iio, K., Furuyama, T., and Arai, Y. Experimental analysis of the cognitive processes of program maintainers during software maintenance. In IEEE Intl. Conf. on Software Maint. (1997), pp. 242--249.
[13]
Kersten, M., and Murphy, G. C. Mylar: a degree-of-interest model for ides. In 4th Intl. Conf. on Aspect-Oriented Software Devel. (2005), pp. 159--168.
[14]
Ko, A. J., Myers, B. A., Coblenz, M. J., and Aung, H. H. An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks. IEEE Trans. Software Eng. 32, 12 (2006), 971--987.
[15]
Martin, D., Cordy, J., Adams, B., and Antoniol, G. Make it simple - an empirical analysis of gnu make feature use in open source projects. In IEEE 23rd Intl. Conf. on Program Compreh. (May 2015), pp. 207--217.
[16]
McCabe, T. A complexity measure. IEEE Trans. Software Eng. SE-2, 4 (Dec 1976), 308--320.
[17]
McIntosh, S., Adams, B., and Hassan, A. The evolution of ANT build systems. In 7th IEEE Working Conf. on Mining Software Repositories (2010), pp. 42--51.
[18]
McIntosh, S., Adams, B., Nguyen, T. H., Kamei, Y., and Hassan, A. E. An empirical study of build maintenance effort. In 33rd Intl. Conf. on Software Eng. (2011), ACM, pp. 141--150.
[19]
Miller, P. Recursive make considered harmful. Australian UNIX and Open Systems User Group Newsletter 19, 1 (1997), 14--25.
[20]
Singer, J. Practices of software maintenance. In IEEE Intl. Conf. on Software Maint. (1998), pp. 139--145.
[21]
Singer, J., Lethbridge, T. C., Vinson, N. G., and Anquetil, N. An examination of software engineering work practices. In IBM Centre for Advanced Studies Intl. Conf. on Computer Science and Software Eng. (1997), p. 21.
[22]
Soh, Z., Khomh, F., Gueheneuc, Y.-G., and Antoniol, G. Towards understanding how developers spend their effort during maintenance activities. In 20th Working Conf. on Reverse Eng. (2013), pp. 152--161.
[23]
Tamrawi, A., Nguyen, H. A., Nguyen, H. V., and Nguyen, T. Build code analysis with symbolic evaluation. In 34th Intl. Conf. on Software Eng. (2012), pp. 650--660.
[24]
Tasktop Technologies Inc. Mylyn, http://www.tasktop.com/mylyn, 2007.

Cited By

View all
  • (2019)Analysis of Open Source Operating System Evolution: A Perspective from Package Dependency Network MotifSymmetry10.3390/sym1103029811:3(298)Online publication date: 27-Feb-2019
  • (2017)Four languages and lots of macros: analyzing autotools build systemsACM SIGPLAN Notices10.1145/3170492.313605152:12(176-186)Online publication date: 23-Oct-2017
  • (2017)Four languages and lots of macros: analyzing autotools build systemsProceedings of the 16th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3136040.3136051(176-186)Online publication date: 23-Oct-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
WETSoM '16: Proceedings of the 7th International Workshop on Emerging Trends in Software Metrics
May 2016
76 pages
ISBN:9781450341776
DOI:10.1145/2897695
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 May 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. build systems
  2. software maintenance
  3. software metrics

Qualifiers

  • Research-article

Funding Sources

  • NSERC

Conference

ICSE '16
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)2
Reflects downloads up to 18 Aug 2024

Other Metrics

Citations

Cited By

View all
  • (2019)Analysis of Open Source Operating System Evolution: A Perspective from Package Dependency Network MotifSymmetry10.3390/sym1103029811:3(298)Online publication date: 27-Feb-2019
  • (2017)Four languages and lots of macros: analyzing autotools build systemsACM SIGPLAN Notices10.1145/3170492.313605152:12(176-186)Online publication date: 23-Oct-2017
  • (2017)Four languages and lots of macros: analyzing autotools build systemsProceedings of the 16th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3136040.3136051(176-186)Online publication date: 23-Oct-2017
  • (2016)Non-recursive make considered harmful: build systems at scaleACM SIGPLAN Notices10.1145/3241625.297601151:12(170-181)Online publication date: 8-Sep-2016
  • (2016)Non-recursive make considered harmful: build systems at scaleProceedings of the 9th International Symposium on Haskell10.1145/2976002.2976011(170-181)Online publication date: 8-Sep-2016

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media