Title: Evolution Spectrographs: Visualizing Punctuated Change in Software Evolution
1Evolution Spectrographs Visualizing Punctuated
Change in Software Evolution
- Jingwei Wu, Claus W. Spitzer,
- Ahmed E. Hassan, Richard C. Holt
- School of Computer Science
- University of Waterloo
- Waterloo Canada
2The Outline
- Punctuated software evolution
- Punctuation analysis method
- Evolution spectrographs
- Case studies of open source software
- OpenSSH, PostgreSQL, and Linux kernel
- Conclusion
3Punctuated Evolution
- Punctuated equilibrium - systems evolve through
the alternation of - Periods of equilibrium incremental change to
underlying structures (i.e. deep structure) - Periods of punctuation fundamental change of
structures - Deep structure software architecture
- Punctuations sudden and discontinuous
changes to the system architecture
4Interpreting Deep Structure
Deep structure is a network of fundamental
interdependent choices of the basic configuration
in which a systems units are organized
C. J. Gersick
Software architecture is the fundamental
organization of a software system, embodied in
its components, their relationships to each other
and the environment, and the principles of
governing its design and evolution
IEEE Std. 1471
5Analysis Methods
- Examine changes to inter-dependencies among
software units, such as files or subsystems - Analyze punctuations in three steps
- Model extraction
- Metrics computation
- Evolution analysis based on spectrographs
- Validate findings by reading software docs
6Analysis Method Step 1
- Extract program models from historical snapshots
(releases/builds) - Used LDX
- an instrumented version of the GNU linker LD
- LDX outputs dependencies
- function calls
- variable uses
7Analysis Method Step 2
- Measure changes to either incoming or outgoing
dependencies at the file level
- For example, if a file has
- One old incoming dep. deleted
- Two new incoming dep. added
- We use metric value 3 to denote that files
incoming dependency change
8Analysis Method Step 3
- Metrics can be plotted to portray a software
systems evolution. - Spectrographs can be used to visualize the
evolution
9Evolution Spectrograph
- A spectrograph (e.g., sound spectrograph) has
three dimensions - Time snapshots (releases/builds)
- Spectrum files
- Measurement dependency changes
- We show a customized spectrograph, which portrays
both system growth and dependency changes at the
file level
10Example Spectrograph
D
C
B
A
Evolution Matrix (Outgoing dependency change at
the file level)
Color Chart
11Case Studies
12Visualizing Punctuations
- We show two spectrographs
- Incoming dependency change spectrograph
- Outgoing dependency change spectrograph
- Spectrograph highlight evolution events, i.e.
punctuations, across a historical sequence of
releases
13OpenSSH Spectrographs
Incoming dependency change
Outgoing dependency change
14A More Pleasing Picture
15Linux Kernel Spectrographs
Incoming dependency change
Outgoing dependency change
The evolution of Linux is mainly driven by new
functionality requirements The kernel experienced
critical structural change near the milestone
release 2.4.0
16Conclusions
- Software evolution shows characteristics of
punctuation - System-wide structural changes occurs in large
systems - Spectrographs offer a scalable means for
analyzing the evolution of large systems - Spectrographs highlight the main evolutionary
events during a systems lifetime - Spectrographs can be customized to portray system
growth and dependency changes at the file level
simultaneously