evolution spectrographs: visualizing punctuated change in software evolution jingwei wu, claus w....
TRANSCRIPT
Evolution Spectrographs: Visualizing Punctuated Change in Software
Evolution Jingwei Wu, Claus W. Spitzer,
Ahmed E. Hassan, Richard C. HoltSchool of Computer Science
University of WaterlooWaterloo Canada
Sept 06, 2004 2
The Outline
Punctuated software evolutionPunctuation analysis methodEvolution spectrographsCase studies of open source software
OpenSSH, PostgreSQL, and Linux kernel
Conclusion
Sept 06, 2004 3
Punctuated 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 architecturePunctuations sudden and discontinuous changes to the system architecture
Sept 06, 2004 4
Interpreting Deep Structure
Deep structure is a network of fundamental interdependent choices of the basic configuration in which a system’s 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
Sept 06, 2004 5
Analysis Methods
Examine changes to inter-dependencies among software units, such as files or subsystemsAnalyze punctuations in three steps
Model extractionMetrics computationEvolution analysis based on spectrographs
Validate findings by reading software docs
Sept 06, 2004 6
Analysis Method Step 1
P(R1)
R1 R2 Rn
P(R2) P(Rn)
Time
ModelExtraction
V(R1) V(R2) V(Rn)
MetricComputation
Time
Time
SourceRepository
EvolutionAnalysis
Evolution Spectrograph
• 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
Sept 06, 2004 7
Analysis Method Step 2
P(R1)
R1 R2 Rn
P(R2) P(Rn)
Time
ModelExtraction
V(R1) V(R2) V(Rn)
MetricComputation
Time
Time
SourceRepository
EvolutionAnalysis
Evolution Spectrograph
• 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. addedWe use metric value 3 to denote that file’s incoming dependency change
Sept 06, 2004 8
Analysis Method Step 3
P(R1)
R1 R2 Rn
P(R2) P(Rn)
Time
ModelExtraction
V(R1) V(R2) V(Rn)
MetricComputation
Time
Time
SourceRepository
EvolutionAnalysis
Evolution Spectrograph
• Metrics can be plotted to portray a software system’s evolution.
• Spectrographs can be used to visualize the evolution
Sept 06, 2004 9
Evolution SpectrographA spectrograph (e.g., sound spectrograph) has three dimensions:
Time: snapshots (releases/builds)Spectrum: filesMeasurement: dependency changes
We show a customized spectrograph, which portrays both system growth and dependency changes at the file level
Sept 06, 2004 10
Example Spectrograph
17
D
C
B
A
12
7
0
9
0
0
1
2
0
0
0
3
0
File
periode.g. month Time
changed
changed
not
created
-1-1
R0 R1 R2 R3 R4
D
C
B
A
Evolution Matrix(Outgoing dependency change at the file level)
Color Chart
System-widechange
Growthcurve
Stabilize
Sept 06, 2004 11
Case Studies
Application Type Lang. Periods StudiedSize
(KLOC)#Releases
OpenSSH Protocol C 10/1999–03/2004 22–70 60
PostgreSQL DMBS C 01/1997–12/2003 185–525 85
Linux Kernel OS C 06/1996–07/2003 674–5141 324
Sept 06, 2004 12
Visualizing 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
Sept 06, 2004 13
OpenSSH Spectrographs
Incoming dependency change Outgoing dependency change• Change to an aspect (merging log-client.c and log-server.c into log.c)• Release 2.0 implemented SSH2• Release 2.5.0 added support for Secure File Transfer Protocol (SFTP)• Releases 3.0 and 3.1 were aimed at consolidating the system architecture
Sept 06, 2004 15
Linux Kernel Spectrographs
Incoming dependency change Outgoing dependency change
The evolution of Linux is mainly driven by new functionality requirementsThe kernel experienced critical structural change near the milestone release 2.4.0
Sept 06, 2004 16
ConclusionsSoftware 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 system’s lifetimeSpectrographs can be customized to portray system growth and dependency changes at the file level simultaneously