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...
Main Author: | |
---|---|
Other Authors: | |
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 |