Punctuations - School of Computing

advertisement
Evolution 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
The Outline
Punctuated software evolution
Punctuation analysis method
Evolution spectrographs
Case studies of open source software
OpenSSH, PostgreSQL, and Linux kernel
Conclusion
Sept 06, 2004
2
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
Punctuations
software architecture
sudden and discontinuous
changes to the system architecture
Sept 06, 2004
3
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
4
Analysis 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
Sept 06, 2004
5
Analysis 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
Source
Repository
R1
R2
Rn
Time
P(R1)
P(R2)
P(Rn)
Time
V(R2)
V(Rn)
Time
Model
Extraction
Metric
Computation
V(R1)
Evolution
Analysis
Evolution Spectrograph
Sept 06, 2004
6
Analysis 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
file’s incoming dependency change
Source
Repository
R1
R2
Rn
Time
P(R1)
P(R2)
P(Rn)
Time
V(R2)
V(Rn)
Time
Model
Extraction
Metric
Computation
V(R1)
Evolution
Analysis
Evolution Spectrograph
Sept 06, 2004
7
Analysis Method Step 3
Source
Repository
R1
R2
Rn
Time
P(R1)
P(R2)
P(Rn)
Time
V(R2)
V(Rn)
Time
Model
Extraction
• Metrics can be plotted to
portray a software system’s
evolution.
• Spectrographs can be used
to visualize the evolution
Metric
Computation
V(R1)
Evolution
Analysis
Evolution Spectrograph
Sept 06, 2004
8
Evolution 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
Sept 06, 2004
9
Example Spectrograph
Growth
curve
File
D
-1
-1
9
System-wide
change
D
2
created
C
7
0
1
0
C
changed
B
12
0
0
0
B
not
changed
A
17
R0
0
R1
period
e.g. month
3
R2
0
R3
R4
Stabilize
A
Time
Evolution Matrix
Color Chart
(Outgoing dependency change at the file level)
Sept 06, 2004
10
Case Studies
Application
Type
Lang.
Periods Studied
Size
(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
11
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
12
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
13
A More Pleasing Picture
Sept 06, 2004
14
Linux 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
Sept 06, 2004
15
Conclusions
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 system’s lifetime
Spectrographs can be customized to portray system
growth and dependency changes at the file level
simultaneously
Sept 06, 2004
16
Download