evolution spectrographs: visualizing punctuated change in software evolution jingwei wu, claus w....

16
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

Upload: bonnie-wiggins

Post on 17-Dec-2015

216 views

Category:

Documents


0 download

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 14

A More Pleasing Picture

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