Skip to main content
Erschienen in: Empirical Software Engineering 4-5/2012

01.08.2012

The evolution of Java build systems

verfasst von: Shane McIntosh, Bram Adams, Ahmed E. Hassan

Erschienen in: Empirical Software Engineering | Ausgabe 4-5/2012

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Build systems are responsible for transforming static source code artifacts into executable software. While build systems play such a crucial role in software development and maintenance, they have been largely ignored by software evolution researchers. However, a firm understanding of build system aging processes is needed in order to allow project managers to allocate personnel and resources to build system maintenance tasks effectively, and reduce the build maintenance overhead on regular development activities. In this paper, we study the evolution of build systems based on two popular Java build languages (i.e., ANT and Maven) from two perspectives: (1) a static perspective, where we examine the complexity of build system specifications using software metrics adopted from the source code domain; and (2) a dynamic perspective, where the complexity and coverage of representative build runs are measured. Case studies of the build systems of six open source build projects with a combined history of 172 releases show that build system and source code size are highly correlated, with source code restructurings often requiring build system restructurings. Furthermore, we find that Java build systems evolve dynamically in terms of duration and recursive depth of the directory hierarchy.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Literatur
Zurück zum Zitat Abreu R, Premraj R (2009) How developer communication frequency relates to bug introducing changes. In: Proc of the joint int’l and annual ERCIM workshops on principles of software evolution and software evolution workshops (IWPSE-Evol). ACM, New York, pp 153–158CrossRef Abreu R, Premraj R (2009) How developer communication frequency relates to bug introducing changes. In: Proc of the joint int’l and annual ERCIM workshops on principles of software evolution and software evolution workshops (IWPSE-Evol). ACM, New York, pp 153–158CrossRef
Zurück zum Zitat Adams B, De Schutter K, Tromp H, Meuter W (2007) Design recovery and maintenance of build systems. In: Proc of the 23rd int’l conf on software maintenance (ICSM), pp 114–123 Adams B, De Schutter K, Tromp H, Meuter W (2007) Design recovery and maintenance of build systems. In: Proc of the 23rd int’l conf on software maintenance (ICSM), pp 114–123
Zurück zum Zitat Adams B, De Schutter K, Tromp H, De Meuter W (2008) The evolution of the linux build system. Electron Commun ECEASST 8 Adams B, De Schutter K, Tromp H, De Meuter W (2008) The evolution of the linux build system. Electron Commun ECEASST 8
Zurück zum Zitat Antoniol G, Guéhéneuc YG (2005) Feature identification: a novel approach and a case study. In: Proc of the 21st int’l conf on software maintenance (ICSM). IEEE Computer Society, Piscataway, pp 357–366CrossRef Antoniol G, Guéhéneuc YG (2005) Feature identification: a novel approach and a case study. In: Proc of the 21st int’l conf on software maintenance (ICSM). IEEE Computer Society, Piscataway, pp 357–366CrossRef
Zurück zum Zitat Belady L, Lehman M (1976) A model of large program development. IBM Syst J 15(3):225–252MATHCrossRef Belady L, Lehman M (1976) A model of large program development. IBM Syst J 15(3):225–252MATHCrossRef
Zurück zum Zitat Berger T, She S, Lotufo R, Wasowski A, Czarnecki K (2010) Variability modeling in the real: a perspective from the operating systems domain. In: Proc of the 25th int’l conf on automated software engineering (ASE). IEEE/ACM, New York Berger T, She S, Lotufo R, Wasowski A, Czarnecki K (2010) Variability modeling in the real: a perspective from the operating systems domain. In: Proc of the 25th int’l conf on automated software engineering (ASE). IEEE/ACM, New York
Zurück zum Zitat de Jonge M (2005) Build-level components. IEEE Trans Softw Eng 31(7):588–600CrossRef de Jonge M (2005) Build-level components. IEEE Trans Softw Eng 31(7):588–600CrossRef
Zurück zum Zitat Dmitriev M (2002) Language-specific make technology for the Java programming language. In: Proc of the 17th conf on object-oriented programming, systems, languages & applications (OOPSLA). ACM, New York Dmitriev M (2002) Language-specific make technology for the Java programming language. In: Proc of the 17th conf on object-oriented programming, systems, languages & applications (OOPSLA). ACM, New York
Zurück zum Zitat Feldman S (1979) Make-a program for maintaining computer programs. Softw Pract Exp 9(4):255–265MATHCrossRef Feldman S (1979) Make-a program for maintaining computer programs. Softw Pract Exp 9(4):255–265MATHCrossRef
Zurück zum Zitat Godfrey MW, Tu Q (2000) Evolution in open source software: a case study. In: Proc of the int’l conf on software maintenance (ICSM). IEEE Computer Society, Piscataway, pp 131–140 Godfrey MW, Tu Q (2000) Evolution in open source software: a case study. In: Proc of the int’l conf on software maintenance (ICSM). IEEE Computer Society, Piscataway, pp 131–140
Zurück zum Zitat Graves TL, Karr AF, Marron JS, Siy H (2000) Predicting fault incidence using software change history. IEEE Trans Softw Eng 26(7):653–661CrossRef Graves TL, Karr AF, Marron JS, Siy H (2000) Predicting fault incidence using software change history. IEEE Trans Softw Eng 26(7):653–661CrossRef
Zurück zum Zitat Halstead MH (1977) Elements of software science (Operating and programming systems series). Elsevier, New York Halstead MH (1977) Elements of software science (Operating and programming systems series). Elsevier, New York
Zurück zum Zitat Knight S (2002) SCons design and implementation. In: Tenth int’l python conf Knight S (2002) SCons design and implementation. In: Tenth int’l python conf
Zurück zum Zitat Kumfert G, Epperly T (2002) Software in the DOE: the hidden overhead of “The build”. Tech Rep UCRL-ID-147343, Lawrence Livermore National Laboratory, CA, USA Kumfert G, Epperly T (2002) Software in the DOE: the hidden overhead of “The build”. Tech Rep UCRL-ID-147343, Lawrence Livermore National Laboratory, CA, USA
Zurück zum Zitat Lehman M (1980) On understanding laws, evolution and conservation in the large program life cycle. J Syst Softw 1(3):213–221MathSciNet Lehman M (1980) On understanding laws, evolution and conservation in the large program life cycle. J Syst Softw 1(3):213–221MathSciNet
Zurück zum Zitat Lehman M, Ramil J, Wernick P, Perry D, Turski W (1997) Metrics and laws of software evolution—the nineties view. In: Proc of the 4th int’l software metrics symposium (METRICS) Lehman M, Ramil J, Wernick P, Perry D, Turski W (1997) Metrics and laws of software evolution—the nineties view. In: Proc of the 4th int’l software metrics symposium (METRICS)
Zurück zum Zitat McCabe TJ (1976) A complexity measure. In: Proc of the 2nd int’l conf on software engineering (ICSE). IEEE Computer Society, Piscataway, p 407 McCabe TJ (1976) A complexity measure. In: Proc of the 2nd int’l conf on software engineering (ICSE). IEEE Computer Society, Piscataway, p 407
Zurück zum Zitat McIntosh S, Adams B, Hassan AE (2010) The evolution of ANT build systems. In: Proc of the 7th working conf on mining software repositories (MSR). IEEE Computer Society, Piscataway, pp 42–51CrossRef McIntosh S, Adams B, Hassan AE (2010) The evolution of ANT build systems. In: Proc of the 7th working conf on mining software repositories (MSR). IEEE Computer Society, Piscataway, pp 42–51CrossRef
Zurück zum Zitat McIntosh S, Adams B, Nguyen THD, Kamei Y, Hassan AE (2011b) An empirical study of build maintenance effort. In: Proc of the 33rd int’l conf on software engineering (ICSE). ACM, New York McIntosh S, Adams B, Nguyen THD, Kamei Y, Hassan AE (2011b) An empirical study of build maintenance effort. In: Proc of the 33rd int’l conf on software engineering (ICSE). ACM, New York
Zurück zum Zitat Miller P (1998) Recursive make considered harmful. In: Australian Unix user group newsletter, vol 19, pp 14–25 Miller P (1998) Recursive make considered harmful. In: Australian Unix user group newsletter, vol 19, pp 14–25
Zurück zum Zitat Nagappan N, Ball T (2005) Use of relative code churn measures to predict system defect density. In: Proc of the 27th int’l conf on software engineering (ICSE). ACM, New York, pp 284–292. doi:10.1145/1062455.1062514 CrossRef Nagappan N, Ball T (2005) Use of relative code churn measures to predict system defect density. In: Proc of the 27th int’l conf on software engineering (ICSE). ACM, New York, pp 284–292. doi:10.​1145/​1062455.​1062514 CrossRef
Zurück zum Zitat Robles G, Amor J, Gonzalez-Barahona J, Herraiz I (2005) Evolution and growth in large libre software projects. In: Proc of the int’l workshop on principles of software evolution (IWPSE), pp 165–174 Robles G, Amor J, Gonzalez-Barahona J, Herraiz I (2005) Evolution and growth in large libre software projects. In: Proc of the int’l workshop on principles of software evolution (IWPSE), pp 165–174
Zurück zum Zitat Tu Q, Godfrey M (2002) The build-time software architecture view. In: Proc of int’l conf on software maintenance (ICSM), IEEE Computer Society, Piscataway, pp 398–407 Tu Q, Godfrey M (2002) The build-time software architecture view. In: Proc of int’l conf on software maintenance (ICSM), IEEE Computer Society, Piscataway, pp 398–407
Zurück zum Zitat Zadok E (2002) Overhauling Amd for the ’00s: a case study of GNU autotools. In: Proc of the FREENIX track on the USENIX technical conf. USENIX Association, Berkeley, pp 287–297 Zadok E (2002) Overhauling Amd for the ’00s: a case study of GNU autotools. In: Proc of the FREENIX track on the USENIX technical conf. USENIX Association, Berkeley, pp 287–297
Metadaten
Titel
The evolution of Java build systems
verfasst von
Shane McIntosh
Bram Adams
Ahmed E. Hassan
Publikationsdatum
01.08.2012
Verlag
Springer US
Erschienen in
Empirical Software Engineering / Ausgabe 4-5/2012
Print ISSN: 1382-3256
Elektronische ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-011-9169-5

Weitere Artikel der Ausgabe 4-5/2012

Empirical Software Engineering 4-5/2012 Zur Ausgabe

Premium Partner