1 / 20

Exploring Software Evolution Using Spectrographs

Explore the evolution history of software systems through the innovative use of spectrographs, uncovering valuable insights on changes, developer activities, and system structure evolution. Spectrographs provide visual cues across dimensions like time and spectrum, aiding in understanding software dynamics and supporting maintenance activities. This study showcases case studies in Punctuation in OpenSSH, KOffice development, and FreeBSD developer activities, demonstrating the effectiveness of spectrographs for software evolution analysis. Join the evolution journey with this comprehensive guide.

winfante
Download Presentation

Exploring Software Evolution Using Spectrographs

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. Exploring Software Evolution Using Spectrographs Jingwei Wu, Richard C. Holt, Ahmed Hassan School of Computer Science University of Waterloo Waterloo ON Canada

  2. Outline • Motivation • Spectrographs • Sound spectrograph • Evolution spectrograph • Dimensions, model, and coloring • Template for describing spectrographs • Case Studies • Punctuation in OpenSSH • Recent development of KOffice • Developer activities in FreeBSD • Conclusion

  3. Motivation • Software engineers often turn to the evolution history of a software system to recover various kinds of information by means of examining evolutionary phenomena, events, and trends. • Laws of evolution, logical coupling, decay indexes, evolution matrix, software volatility, … • Recovered information can be useful for understanding evolution and supporting maintenance activities • How the system structure evolves? • Which components suffer chronic illness (unstable, faulty)? • Who is the most productive developer? • There are some problems regarding current techniques: • Over-reduction of history data into a limited number of values • Lack of a scalable method for visualizing the sheer volume of evolution data

  4. Sound Spectrograph • A sound spectrograph is a picture in which: • The horizontal axis represents time • The vertical axis represents frequency of sound • The brightness of a position represents the amplitude of a frequency component

  5. Fan Out of Changed Dependencies at the File Level (60 Versions of OpenSSH) Evolution Spectrograph

  6. Spectrograph Dimensions • Time options: • Fixed-length periods (e.g., months) • Evolutionary events (e.g., versions and CVS commits) • Spectrum options: • Software decomposition into smaller units • Other possible options such as software developers and implementation languages • Measurement options: • Per-unit basis (e.g., per-file, per-subsystem, per-developer) • Various software metrics such as LOC, Fan In/Out of dependencies and defect density

  7. Spectrum Time Spectrograph Model Measurement

  8. Max Min Max Min Max Min Median Upper Quartile Lower Quartile Spectrograph Coloring • Color normally fades from red to green • Linear Gradient • Exponential Decay • Quartile Range

  9. Describing a Spectrograph • For each spectrograph, we give its: • Intent • Motivation • Dimensions • Coloring method • Example spectrographs

  10. Example Spectrographs • Punctuation in OpenSSH Find sudden and discontinuous changes occurring in the evolution of OpenSSH • Recent development of KOffice Identify most frequently modified subsystems and source files • Developer activities in FreeBSD Analyze the extent of developer activities during the lifetime of FreeBSD

  11. Fan Out of Changed Dependencies at the File Level Punctuation in OpenSSH • Intent • Look for evidence of punctuation, (sudden discontinuous change) in software system evolution • Motivation • An evolving software system needs to be regularly adapted to meet changing requirements • Dimensions • Time — versions • Spectrum — ordered source files • Measurement — Fan In/Out of dependencies between files • Coloring Method • Exponential decay

  12. 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 Punctuation in OpenSSH Fan In of Changed Dependencies Fan Out of Changed Dependencies

  13. Observations • Software systems often show characteristics of punctuation during their evolution • We have also observed punctuation in the evolution of Linux and PostgreSQL • Punctuations are mainly caused by new functionality and system restructuring • Punctuations are mostly related to milestone releases

  14. Development of KOffice 13 Top Level Subsystems 200 CVS Commits

  15. Development of KOffice 31 Second Level Subsystems 200 CVS Commits

  16. Development of KOffice 327 Source Files 200 CVS Commits

  17. Observations • Spectrographs provide strong visual cues for recognizing change-prone components at varying levels of granularity. • Different stake holders of a software system use spectrographs for different purposes • Managers focus on change at higher levels • Developers play in their own small world

  18. Developer Activities in FreeBSD Cardinality of CVS Commit Development Months

  19. Observations • There is a growing trend toward larger commits in FreeBSD • Possibly a sign of decay? • The extent of programmer activities in FreeBSD varies dramatically • Top experienced programmers worked on the majority of top-level subsystems and 20~60 second-level subsystems • Junior programmers worked on 1~2 top-level subsystems and 5~20 second-level subsystems

  20. Conclusion Spectrograph provides a scalable way to visualize the evolution of large software systems • Displays time, spectrum and software property measurement • Can highlight main evolutionary events during system lifetime • Can be used for various purposes in software understanding and maintenance

More Related