Top Banner
Build System Maintenance Shane McIntosh
37

Icse2011 src

Apr 12, 2017

Download

Documents

SAIL_QU
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Icse2011 src

Build System Maintenance

Shane McIntosh

Page 2: Icse2011 src

What is the build system?

2

.c

.c

Page 3: Icse2011 src

What is the build system?

2

.c

.c

.o

.o

.exe

Page 4: Icse2011 src

Build code is complex...

3

Page 5: Icse2011 src

Build Maintenance is a Nuisance for Developers

4

Page 6: Icse2011 src

Build Maintenance is a Nuisance for Developers

4

Page 7: Icse2011 src

Build Maintenance is a Nuisance for Developers

4Autotools

Make

Page 8: Icse2011 src

Build Maintenance is a Nuisance for Developers

4Autotools

Make

Migration to newer build technology

Page 9: Icse2011 src

5

Build Bugs Even Affect the End User!

Page 10: Icse2011 src

Address Bar

5

Build Bugs Even Affect the End User!

Page 11: Icse2011 src

Address Bar Search Bar

5

Build Bugs Even Affect the End User!

Page 12: Icse2011 src

Address Bar Search Bar

5

Build Bugs Even Affect the End User!

Page 13: Icse2011 src

Address Bar Search Bar

5

Build Bugs Even Affect the End User!

Page 14: Icse2011 src

Build Systems Require 12%of a Developer’s

Time (on average)

6

Kumfert, G., and Epperly, T.Software in the DOE: The

Hidden Overhead of the “Build”

Page 15: Icse2011 src

Build Systems Require 12%of a Developer’s

Time (on average)

6

Kumfert, G., and Epperly, T.Software in the DOE: The

Hidden Overhead of the “Build”

Build maintenanceslows development!

Page 16: Icse2011 src

7

Size Evolution Coupling People

Four Dimensional Study of Build Maintenance

.mk⇒?

.c

Page 17: Icse2011 src

8

Page 18: Icse2011 src

8

PLplot

Page 19: Icse2011 src

9

PLplot

.mk⇒?

.c

Size

9% ofall files

Evolution Coupling

Tightly coupled

People

Dispersed or concentrated

Build churn >> src churn

Page 20: Icse2011 src

10

PLplot

.mk⇒?

.c

Size

9% ofall files

Evolution Coupling

Tightly coupled

People

Dispersed or concentrated

Build churn >> src churn

Page 21: Icse2011 src

Identifying build maintainers

.c .c .c .ac.c

SourceBuild

.c .c

Page 22: Icse2011 src

Identifying build maintainers

Change list #1

.c .c .c

Change list #3

Change list #4

.ac.c

Change list #2

SourceBuild

.c .c

Page 23: Icse2011 src

Identifying build maintainers

Change list #1

.c .c .c

Change list #3

Change list #4

.ac.c

Change list #2

25% build

SourceBuild

.c .c

Page 24: Icse2011 src

Identifying build maintainers

Change list #1

.c .c .c

Change list #3

Change list #4

.ac.c

Change list #2

25% build

SourceBuild

.c .c

Page 25: Icse2011 src

Identifying build maintainers

Change list #1

.c .c .c

Change list #3

Change list #4

.ac.c

Change list #2

0% build

25% build

SourceBuild

.c .c

Page 26: Icse2011 src

Identifying build maintainers

Change list #1

.c .c .c

Change list #3

Change list #4

.ac.c

Change list #2

0% build

25% build

SourceBuild

.c .c

Page 27: Icse2011 src

Identifying build maintainers

Change list #1

.c .c .c

Change list #3

Change list #4

.ac.c

Change list #2

0% build 50% build

25% build

SourceBuild

.c .c

Page 28: Icse2011 src

Identifying build maintainers

Change list #1

.c .c .c

Change list #3

Change list #4

.ac.c

Change list #2

0% build 50% build

SourceBuild

.c .c

Page 29: Icse2011 src

Identifying build maintainers

Change list #1

.c .c .c

Change list #3

Change list #4

.ac.c

Change list #2

0% build 50% build

SourceBuild

.c .c

Page 30: Icse2011 src

If you maintain source code, do you maintain build code?

12

25%22%

79%

% of developers

Page 31: Icse2011 src

If you maintain source code, do you maintain build code?

12

25%22%

79%

% of developers

Page 32: Icse2011 src

Dispersed Ownership:

Build maintenance isdistributed amongst most team members

13

Page 33: Icse2011 src

Dispersed Ownership:

Build maintenance isdistributed amongst most team members

13

Concentrated Ownership:A small team is

responsible for mostof the build maintenance

Page 34: Icse2011 src

Dispersed Ownership:

Build maintenance isdistributed amongst most team members

13

Concentrated Ownership:A small team is

responsible for mostof the build maintenance

Which build ownership style performs best?

Page 35: Icse2011 src

Tool Support Needed for Build Maintenance!

14

Build churn >> source churn

Build maintenance required for 27% of source code tasks

Page 36: Icse2011 src

15

PLplot

.mk⇒?

.c

Size

9% ofall files

Evolution Coupling

Tightly coupled

People

Dispersed or concentrated

Build churn >> src churn

Page 37: Icse2011 src

15

PLplot

.mk⇒?

.c

Size

9% ofall files

Evolution Coupling

Tightly coupled

People

Dispersed or concentrated

Build churn >> src churn

Questions?