Studying the Evolution of Build Systems

As a software project ages, its source code is improved by refining existing features, adding new ones, and fixing bugs. Software developers can attest that such changes often require accompanying changes to the infrastructure that converts source code into executable software packages, i.e., the bu...

Full description

Bibliographic Details
Main Author: MCINTOSH, SHANE
Other Authors: Queen's University (Kingston, Ont.). Theses (Queen's University (Kingston, Ont.))
Language:en
en
Published: 2011
Subjects:
Online Access:http://hdl.handle.net/1974/6294
id ndltd-LACETR-oai-collectionscanada.gc.ca-OKQ.1974-6294
record_format oai_dc
spelling ndltd-LACETR-oai-collectionscanada.gc.ca-OKQ.1974-62942013-12-20T03:40:01ZStudying the Evolution of Build SystemsMCINTOSH, SHANESoftware EvolutionBuild SystemsAs a software project ages, its source code is improved by refining existing features, adding new ones, and fixing bugs. Software developers can attest that such changes often require accompanying changes to the infrastructure that converts source code into executable software packages, i.e., the build system. Intuition suggests that these build system changes slow down development progress by diverting developer focus away from making improvements to the source code. While source code evolution and maintenance is studied extensively, there is little work that focuses on the build system. In this thesis, we empirically study the static and dynamic evolution of build system complexity in proprietary and open source projects. To help counter potential bias of the study, 13 projects with different sizes, domains, build technologies, and release strategies were selected for examination, including Eclipse, Linux, Mozilla, and JBoss. We find that: (1) similar to Lehman's first law of software evolution, Java build system specifications tend to grow unless explicit effort is invested into restructuring them, (2) the build system accounts for up to 31\% of the code files in a project, and (3) up to 27\% of source code related development tasks require build maintenance. Project managers should include build maintenance effort of this magnitude in their project planning and budgeting estimations.Thesis (Master, Computing) -- Queen's University, 2011-01-31 12:46:06.082Queen's University (Kingston, Ont.). Theses (Queen's University (Kingston, Ont.))2011-01-31 12:46:06.0822011-01-31T22:48:33Z2011-01-31T22:48:33Z2011-01-31T22:48:33ZThesishttp://hdl.handle.net/1974/6294enenCanadian thesesThis publication is made available by the authority of the copyright owner solely for the purpose of private study and research and may not be copied or reproduced except as permitted by the copyright laws without written authority from the copyright owner.
collection NDLTD
language en
en
sources NDLTD
topic Software Evolution
Build Systems
spellingShingle Software Evolution
Build Systems
MCINTOSH, SHANE
Studying the Evolution of Build Systems
description As a software project ages, its source code is improved by refining existing features, adding new ones, and fixing bugs. Software developers can attest that such changes often require accompanying changes to the infrastructure that converts source code into executable software packages, i.e., the build system. Intuition suggests that these build system changes slow down development progress by diverting developer focus away from making improvements to the source code. While source code evolution and maintenance is studied extensively, there is little work that focuses on the build system. In this thesis, we empirically study the static and dynamic evolution of build system complexity in proprietary and open source projects. To help counter potential bias of the study, 13 projects with different sizes, domains, build technologies, and release strategies were selected for examination, including Eclipse, Linux, Mozilla, and JBoss. We find that: (1) similar to Lehman's first law of software evolution, Java build system specifications tend to grow unless explicit effort is invested into restructuring them, (2) the build system accounts for up to 31\% of the code files in a project, and (3) up to 27\% of source code related development tasks require build maintenance. Project managers should include build maintenance effort of this magnitude in their project planning and budgeting estimations. === Thesis (Master, Computing) -- Queen's University, 2011-01-31 12:46:06.082
author2 Queen's University (Kingston, Ont.). Theses (Queen's University (Kingston, Ont.))
author_facet Queen's University (Kingston, Ont.). Theses (Queen's University (Kingston, Ont.))
MCINTOSH, SHANE
author MCINTOSH, SHANE
author_sort MCINTOSH, SHANE
title Studying the Evolution of Build Systems
title_short Studying the Evolution of Build Systems
title_full Studying the Evolution of Build Systems
title_fullStr Studying the Evolution of Build Systems
title_full_unstemmed Studying the Evolution of Build Systems
title_sort studying the evolution of build systems
publishDate 2011
url http://hdl.handle.net/1974/6294
work_keys_str_mv AT mcintoshshane studyingtheevolutionofbuildsystems
_version_ 1716621244117286912