Evolution Spectrographs Visualizing Punctuated Change in Software Evolution

  • Slides: 16
Download presentation
Evolution Spectrographs: Visualizing Punctuated Change in Software Evolution Jingwei Wu, Claus W. Spitzer, Ahmed

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 Canada Sept 06, 2004

The Outline Punctuated software evolution Punctuation analysis method Evolution spectrographs Case studies of open

The Outline Punctuated software evolution Punctuation analysis method Evolution spectrographs Case studies of open source software Open. SSH, Postgre. SQL, and Linux kernel Conclusion Sept 06, 2004 2

Punctuated Evolution Punctuated equilibrium - systems evolve through the alternation of: Periods of equilibrium:

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

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

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

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 Sept 06, 2004 6

Analysis Method Step 2 • Measure changes to either incoming or outgoing dependencies at

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 Sept 06, 2004 7

Analysis Method Step 3 • Metrics can be plotted to portray a software system’s

Analysis Method Step 3 • Metrics can be plotted to portray a software system’s evolution. • Spectrographs can be used to visualize the evolution Sept 06, 2004 8

Evolution Spectrograph A spectrograph (e. g. , sound spectrograph) has three dimensions: Time: snapshots

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 System-wide change D C B Stabilize Evolution Matrix A Color

Example Spectrograph Growth curve System-wide change D C B Stabilize Evolution Matrix A Color Chart (Outgoing dependency change at the file level) Sept 06, 2004 10

Case Studies Application Type Lang. Periods Studied Size (KLOC) #Releases Open. SSH Protocol C

Case Studies Application Type Lang. Periods Studied Size (KLOC) #Releases Open. SSH Protocol C 10/1999– 03/2004 22– 70 60 Postgre. SQL 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

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

Open. SSH Spectrographs Incoming dependency change Outgoing dependency change • Change to an aspect

Open. SSH 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 SSH 2 • 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

A More Pleasing Picture Sept 06, 2004 14

Linux Kernel Spectrographs Incoming dependency change Outgoing dependency change The evolution of Linux is

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

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