buildtechs
DESCRIPTION
TRANSCRIPT
![Page 1: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/1.jpg)
A Large-Scale Empirical Study of the Relationship between Build
Technology and Build Maintenance
ShaneMcIntosh
Ahmed E. Hassan
BramAdams
MeiyappanNagappan
Audris Mockus
![Page 2: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/2.jpg)
What is a build system?Source code
2
![Page 3: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/3.jpg)
What is a build system?Source code
2
Deliverable
![Page 4: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/4.jpg)
3
.tex
.c
.cc
.o
.o
.dvi
Build systems describe how sources are translated into deliverables
.a
.exe
.deb
![Page 5: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/5.jpg)
4) Publishresults
1) Listen forchanges
2) Buildchanges
3) Executetests
ContinuousIntegration:Enabled by
the build system
4
![Page 6: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/6.jpg)
“...nothing can be said to be certain, except death and taxes”
- Benjamin Franklin
The Build “Tax”
An Empirical Study of Build Maintenance EffortS. McIntosh, B. Adams, T. H. D. Nguyen, Y. Kamei, A. E. Hassan
[ICSE 2011]
Up to 27% of source changes require build
changes, too!
5
![Page 7: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/7.jpg)
Teams even migrate to different build technologies
6
![Page 8: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/8.jpg)
...But does build technology really influence build
maintenance activity?
7
![Page 9: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/9.jpg)
Low-Level
Abstraction-Based
Low-level scripts generated from
project metadata
Framework-Driven
Assumes standard project layout and
dependencies
8
MakeRake
Autotools
Dependency Management
Automatically manages 3rd-party API dependencies
File-level dependencies are explicitly declared
![Page 10: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/10.jpg)
Low-Level
Abstraction-Based
File-level dependencies are explicitly declared
Low-level scripts generated from
project metadata
Framework-Driven
Assumes standard project layout and
dependencies
9
MakeRake
Autotools
Dependency Management
Automatically manages 3rd-party API dependencies
![Page 11: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/11.jpg)
Low-Level
Abstraction-Based
File-level dependencies are explicitly declared
Low-level scripts generated from
project metadata
Framework-Driven
Assumes standard project layout and
dependencies
10
MakeRake
Autotools
Dependency Management
Automatically manages 3rd-party API dependencies
![Page 12: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/12.jpg)
Low-Level
Abstraction-Based
File-level dependencies are explicitly declared
Low-level scripts generated from
project metadata
Framework-Driven
Assumes standard project layout and
dependencies
11
MakeRake
Autotools
Dependency Management
Automatically manages 3rd-party API dependencies
![Page 13: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/13.jpg)
Low-Level
Abstraction-Based
File-level dependencies are explicitly declared
Low-level scripts generated from
project metadata
Framework-Driven
Assumes standard project layout and
dependencies
12
MakeRake
Autotools
Dependency Management
Automatically manages 3rd-party API dependencies
![Page 14: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/14.jpg)
Amassing and indexing a large sample of version
control systemsTowards the census of public
source code historyA. Mockus [MSR 2009]
Mining a Large-Scale Corpus
843,976 source code repositories!
13
![Page 15: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/15.jpg)
Amassing and indexing a large sample of version
control systemsTowards the census of public
source code historyA. Mockus [MSR 2009]
repo.or.cz
Software ForgesMining a Large-
Scale Corpus
843,976 source code repositories!
13
![Page 16: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/16.jpg)
Amassing and indexing a large sample of version
control systemsTowards the census of public
source code historyA. Mockus [MSR 2009]
repo.or.cz
Software Forges
Software Ecosystems
Mining a Large-Scale Corpus
843,976 source code repositories!
13
![Page 17: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/17.jpg)
Amassing and indexing a large sample of version
control systemsTowards the census of public
source code historyA. Mockus [MSR 2009]
repo.or.cz
Software Forges
Software Ecosystems
Large Projects
Mining a Large-Scale Corpus
843,976 source code repositories!
13
![Page 18: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/18.jpg)
Low−level Abstraction Frame Dependency
0
100
200
Ant Jam Makefile Rake SCons Autotools CMake Maven Bundler Ivy
Build
chu
rn ra
teFramework builds tend to churn most repo.or.cz
Software Forges
14
![Page 19: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/19.jpg)
−0.2
0.2
0.4
0.6
0.8
1.0
1.2
Apache − Ant vs. Maven Debian − Make vs. Autotools GNU − Make vs. Autotools
Logi
cal c
oupl
ing
Source code coupling is tightest with framework
and abstraction
Low-level Abstraction
Software Ecosystems
15
Low-level Framework Low-level Abstraction
![Page 20: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/20.jpg)
●
●
●
● ●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●●
●
●
●
●
● ●●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
0.05
0.10
0.15
0.20
2006 2008 2010
Build
aut
hor r
atio
Android
●
●
●
●
●
● ●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●●
●●
●
●
●
●●
●
●
●● ●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●● ●
●
●
0.4
0.5
0.6
0.7
2000 2004 2008
Build
aut
hor r
atio
GNOME
●
●●
●●
●●
●
● ●
●
● ●
●
●
●
● ●●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
● ●
●●
● ●●
●
●●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●●●
●
●
●●
●●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
● ●
●●●
●
●●●
●●
●
●●
●
●●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●●●
● ●●
●
●
●
●
●●
0.25
0.50
0.75
1.00
1996 2000 2004 2008 2012
Build
aut
hor r
atio
PostgreSQL
●
●
●●
●
●
●●
●
●
●
●●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●● ●
●
●
●●
●
●●
●●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●●
0.00
0.25
0.50
0.75
1.00
2000 2004 2008 2012
Build
aut
hor r
atio
KDE
AutotoolsAuthorshipdecreases
Large Projects
16
Migration helps!
![Page 21: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/21.jpg)
●
●
●
● ●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●●
●
●
●
●
● ●●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
0.05
0.10
0.15
0.20
2006 2008 2010
Build
aut
hor r
atio
Android
●
●
●
●
●
● ●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●●
●●
●
●
●
●●
●
●
●● ●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●● ●
●
●
0.4
0.5
0.6
0.7
2000 2004 2008
Build
aut
hor r
atio
GNOME
●
●●
●●
●●
●
● ●
●
● ●
●
●
●
● ●●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
● ●
●●
● ●●
●
●●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●●●
●
●
●●
●●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
● ●
●●●
●
●●●
●●
●
●●
●
●●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●●●
● ●●
●
●
●
●
●●
0.25
0.50
0.75
1.00
1996 2000 2004 2008 2012
Build
aut
hor r
atio
PostgreSQL
●
●
●●
●
●
●●
●
●
●
●●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●● ●
●
●
●●
●
●●
●●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●●
0.00
0.25
0.50
0.75
1.00
2000 2004 2008 2012
Build
aut
hor r
atio
KDE
AutotoolsAuthorshipdecreases
Large Projects
Teams dedicate build experts to help cope
with the build tax16
Migration helps!
![Page 22: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/22.jpg)
![Page 23: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/23.jpg)
![Page 24: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/24.jpg)
![Page 25: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/25.jpg)
![Page 26: Buildtechs](https://reader033.vdocument.in/reader033/viewer/2022042613/54b6c33f4a7959e5268b463c/html5/thumbnails/26.jpg)