Bdsys icsm v3.5
Transcript of Bdsys icsm v3.5
![Page 1: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/1.jpg)
An Empirical Study of Build System
Migrations in PracticeCase Studies on KDE and the Linux Kernel
1
R. Suvorov, B. Adams, M. Nagappan, A. E. Hassan, Y. Zou
![Page 2: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/2.jpg)
Analogy: Car Assembly
2
+4x +assembly
+
![Page 3: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/3.jpg)
Build System Transforms Source Code & Resources into Executables
3
+bdSys
+
![Page 4: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/4.jpg)
bdSys is at the Heart of the Development Process!
4
bdSys+
Developers
QA Personnel Testers
![Page 5: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/5.jpg)
bdSys Technology is “different”
5
![Page 6: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/6.jpg)
bdSys Technology is “different”
5
Our record so far is a project we inherited with an Ant script weighing in at 10,000 lines of XML. Needless to say, this project required an entire team devoted to keeping the build working - a complete waste of resources.[Jez Humble & David Farley]
KDE 4 is leaving the aging "autotool" build chain behind. Some developers,
not only in KDE, like to nickname
the autotools as "auto-hell"
because of its difficult to comprehend architecture.[Alexander Neundorf]
I've been examining the existing kernel configuration system, and concluded that the best favor we could do everybody involved with it is to take it out behind the barn and shoot it through the head. [Eric Raymond]
![Page 7: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/7.jpg)
... yet a bdSys Must Keep on Evolving
6
MLO
C
![Page 8: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/8.jpg)
..., in fact a bdSys Changes Relatively More than Source Code
71
(c) McIntosh et al.: “An Empirical Study of
Build Maintenance Effort”
![Page 9: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/9.jpg)
..., in fact a bdSys Changes Relatively More than Source Code
71
ArgoUML Hibernate Eclipse GCC Git Linux Mozilla PLPlot PostgreSQL0
0.51
1.52
2.53
3.54
4.55
# changes / source file# changes / build file
(c) McIntosh et al.: “An Empirical Study of
Build Maintenance Effort”
![Page 10: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/10.jpg)
..., in fact a bdSys Changes Relatively More than Source Code
71
ArgoUML Hibernate Eclipse GCC Git Linux Mozilla PLPlot PostgreSQL0
0.51
1.52
2.53
3.54
4.55
# changes / source file# changes / build file
(c) McIntosh et al.: “An Empirical Study of
Build Maintenance Effort”
![Page 11: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/11.jpg)
..., in fact a bdSys Changes Relatively More than Source Code
71
ArgoUML Hibernate Eclipse GCC Git Linux Mozilla PLPlot PostgreSQL0
0.51
1.52
2.53
3.54
4.55
# changes / source file# changes / build file
(c) McIntosh et al.: “An Empirical Study of
Build Maintenance Effort”
![Page 12: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/12.jpg)
In Other Words ...
8
![Page 13: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/13.jpg)
In Other Words ...
8
Software Projects need HELP Maintaining their Build Systems
![Page 14: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/14.jpg)
The “easy” way out: Build System Migrations
9
![Page 15: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/15.jpg)
The “easy” way out: Build System Migrations
9
![Page 16: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/16.jpg)
10
![Page 17: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/17.jpg)
11
![Page 18: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/18.jpg)
12
![Page 19: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/19.jpg)
12
Build system migrations are not that easy! But why?
![Page 20: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/20.jpg)
Major Contributions
13
Common Migration
Methodology
Major Migration Challenges
Major Challenge: Requirements
Gathering
![Page 21: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/21.jpg)
Study Setup
• Linux & KDE:
• Two established projects: 21 & 16 years old
• Large: 25 & 4.3 MLOC
• 1 failed & 1 successful migration each
• Data sources:
• git repos: 300 K & 100 K commits
• 4 mailing lists, over 1.5 million messages
14
![Page 22: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/22.jpg)
Quantitative Study of Developer Commits
• git repositories
• Native git tools + bash scripts
• Statistics on source & bdSys code:
• Evolution
• Churn
• Distinguish between “normal” periods & migrations
15
![Page 23: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/23.jpg)
Qualitative Analysis of Developer Communication
• Personal emails to migration participants
• Mailing lists
• Mass-downloaded and analyzed
• Statistics on number of messages:
• By groups (roles)
• By period of time
• Distinguish between “normal” periods & migrations
16
![Page 24: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/24.jpg)
Major Contributions
17
Common Migration
Methodology
Major Migration Challenges
Major Challenge: Requirements
Gathering
![Page 25: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/25.jpg)
18
Common Migration
Methodology
![Page 26: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/26.jpg)
The Spiral Model of bdSys Migration
19
1. Planning 2. Risk Analysis
3. Development4. Evaluation
![Page 27: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/27.jpg)
Why? Migration is Incremental!
• Linux kernel
• 33K+ source code files
• 2,300+ subdirectories
• 5 major subsystems
• KDE
• 11K+ source code files
• 22 packages
20
![Page 28: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/28.jpg)
21
Common Migration
Methodology
![Page 29: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/29.jpg)
21
Common Migration
Methodology
spiral model!
![Page 30: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/30.jpg)
21
Common Migration
Methodology
spiral model!
migration happens
incrementally
![Page 31: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/31.jpg)
22
Common Migration
Methodology
Major Migration Challenges
spiral model!
migration happens
incrementally
![Page 32: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/32.jpg)
Communication AmongKey Participants
23
![Page 33: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/33.jpg)
Communication AmongKey Participants
23
bdSys Managermajor decisions
![Page 34: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/34.jpg)
Communication AmongKey Participants
23
bdSys Managermajor decisions
bdSys Championleading bdSys dev’t
![Page 35: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/35.jpg)
Communication AmongKey Participants
23
bdSys Managermajor decisions
bdSys Championleading bdSys dev’t
bdSys ExpertbdSys contributor
![Page 36: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/36.jpg)
Communication AmongKey Participants
23
bdSys Managermajor decisions
bdSys Championleading bdSys dev’t
bdSys ExpertbdSys contributor
Core Developersource contributor
![Page 37: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/37.jpg)
Major Challenges
• Communication issues
• Build experts form a sub-community often reluctant to communicate effectively
• Performance vs. complexity
• Improving performance often means introducing hacks
• Effective evaluation
• When is migration "successfully finished"? How to measure?
• Requirements gathering (see remainder)
24
![Page 38: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/38.jpg)
25
Common Migration
Methodology
Major Migration Challenges
spiral model!
migration happens
incrementally
![Page 39: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/39.jpg)
25
Common Migration
Methodology
Major Migration Challenges
requirementsspiral model!
migration happens
incrementally
![Page 40: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/40.jpg)
25
Common Migration
Methodology
Major Migration Challenges
requirements
communicationspiral model!
migration happens
incrementally
![Page 41: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/41.jpg)
25
Common Migration
Methodology
Major Migration Challenges
requirements
communication
performance
spiral model!
migration happens
incrementally
![Page 42: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/42.jpg)
25
Common Migration
Methodology
Major Migration Challenges
requirements
communication
performance
evaluation
spiral model!
migration happens
incrementally
![Page 43: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/43.jpg)
26
Common Migration
Methodology
Major Migration Challenges
Major Challenge: Requirements
Gathering
requirements
communication
performance
evaluation
spiral model!
migration happens
incrementally
![Page 44: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/44.jpg)
Example bdSys Requirements
• Platform independence
• Two new major platforms: Mac OS X & Windows
• High-level configuration
• Single-pass methodology
• Away with multiple-steps build!
• Simple and platform-independent syntax
27
![Page 45: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/45.jpg)
Requirements Gathering Process1. Stakeholder identification - who?
• Who needs to be involved?
2. Elicitation
• What requirements are there?
3. Analysis
• Get all requirement data. Resolve conflicts, refine and organize.
4. Specification & Maintenance
• Document & order resulting requirements.
28
![Page 46: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/46.jpg)
How SCons failed• Stakeholder identification
• Only 150 of 800 developers attended aKademy
• Elicitation
• Too little, too late: “trawled” for requirements
• Analysis
• Not enough attention paid to this phase!
• Specification & Maintenance
• Not done at all!
29
![Page 47: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/47.jpg)
30
“the main SCons tree has intolerable problems, and there are so many layers [...] that it barely
resembles what a normal SCons build system looks like. Don't get me wrong; I use SCons at work and I
really like it, but if it isn't capable of handling KDE then why are we trying to make it do so? Is it really
worth keeping a KDE specific build system (which is what we are moving towards)?
[...] Perhaps it’s time to cut our losses and run.” [Jaison Lee]
As a Result:
![Page 48: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/48.jpg)
Rise and Fall of SCons
31
% m
ax (
LOC
)
![Page 49: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/49.jpg)
How succeeded
• Stakeholder identification
• Learned from SCons. Involved experts early.
• Elicitation
• Reuse some of SCons’ data.Active participation by experts!
• Analysis
• Identified conflicting requirements early.
• Specification & Maintenance
• An initiative by the build champion.32
![Page 50: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/50.jpg)
33
Common Migration
Methodology
Major Migration Challenges
Major Challenge: Requirements
Gathering
spiral model!requirements
communication
performance
evaluation
migration happens
incrementally
![Page 51: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/51.jpg)
33
Common Migration
Methodology
Major Migration Challenges
Major Challenge: Requirements
Gathering
spiral model!requirements
communication
performance
evaluation
migration happens
incrementally
involve all stakeholders
![Page 52: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/52.jpg)
33
Common Migration
Methodology
Major Migration Challenges
Major Challenge: Requirements
Gathering
spiral model!requirements
communication
performance
evaluation
migration happens
incrementally
involve all stakeholders
identify &
resolve conflicts
![Page 53: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/53.jpg)
33
Common Migration
Methodology
Major Migration Challenges
Major Challenge: Requirements
Gathering
spiral model!requirements
communication
performance
evaluation
migration happens
incrementally
involve all stakeholders
identify &
resolve conflicts
efficient elicitation
![Page 54: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/54.jpg)
34
![Page 55: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/55.jpg)
34
Common Migration
Methodology
spiral model!
migration happens
incrementally
![Page 56: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/56.jpg)
34
Major Migration Challenges
requirements
communication
performance
evaluation
Common Migration
Methodology
spiral model!
migration happens
incrementally
![Page 57: Bdsys icsm v3.5](https://reader031.fdocuments.net/reader031/viewer/2022012402/58edc7831a28abc3748b46d7/html5/thumbnails/57.jpg)
34
Major Migration Challenges
requirements
communication
performance
evaluation
Common Migration
Methodology
spiral model!
migration happens
incrementally
Major Challenge: Requirements
Gathering
involve all stakeholders
identify &
resolve conflicts
efficient elicitation