1 / 16

Evolution Spectrographs: Visualizing Punctuated Change in Software Evolution

This research paper explores the concept of punctuated software evolution and presents an analysis method using evolution spectrographs. Case studies of open source software such as OpenSSH, PostgreSQL, and Linux kernel are presented to illustrate the effectiveness of the approach. The paper concludes that spectrographs offer a scalable means for analyzing system evolution and can highlight major evolutionary events during a system's lifetime.

singley
Download Presentation

Evolution Spectrographs: Visualizing Punctuated Change in Software Evolution

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. The Outline • Punctuated software evolution • Punctuation analysis method • Evolution spectrographs • Case studies of open source software • OpenSSH, PostgreSQL, and Linux kernel • Conclusion

  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 architecture • Punctuations sudden and discontinuous changes to the system architecture

  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

  5. 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

  6. 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

  7. 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

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

  9. 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

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

  11. Case Studies

  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

  13. 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 OpenSSH Spectrographs Incoming dependency change Outgoing dependency change

  14. A More Pleasing Picture

  15. 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

  16. 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

More Related