Presentation is loading. Please wait.

Presentation is loading. Please wait.

Exploring Software Evolution Using Spectrographs Jingwei Wu, Richard C. Holt, Ahmed Hassan School of Computer Science University of Waterloo Waterloo ON.

Similar presentations


Presentation on theme: "Exploring Software Evolution Using Spectrographs Jingwei Wu, Richard C. Holt, Ahmed Hassan School of Computer Science University of Waterloo Waterloo ON."— 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 Nov-10-20042 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 Nov-10-20043 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 Nov-10-20044 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 Nov-10-20045 Evolution Spectrograph Fan Out of Changed Dependencies at the File Level (60 Versions of OpenSSH)

6 Nov-10-20046 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 Nov-10-20047 Spectrograph Model Time Spectrum Measurement

8 Nov-10-20048 Color normally fades from red to green Linear Gradient Exponential Decay Quartile Range Spectrograph Coloring MaxMin MaxMin MaxMin Median Lower QuartileUpper Quartile

9 Nov-10-20049 Describing a Spectrograph For each spectrograph, we give its: Intent Motivation Dimensions Coloring method Example spectrographs

10 Nov-10-200410 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 Nov-10-200411 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 Fan Out of Changed Dependencies at the File Level

12 Nov-10-200412 Punctuation in OpenSSH 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 Fan In of Changed DependenciesFan Out of Changed Dependencies

13 Nov-10-200413 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 Nov-10-200414 Development of KOffice 200 CVS Commits 13 Top Level Subsystems

15 Nov-10-200415 Development of KOffice 200 CVS Commits 31 Second Level Subsystems

16 Nov-10-200416 Development of KOffice 200 CVS Commits 327 Source Files

17 Nov-10-200417 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 Nov-10-200418 Developer Activities in FreeBSD Cardinality of CVS Commit Development Months

19 Nov-10-200419 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 Nov-10-200420 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


Download ppt "Exploring Software Evolution Using Spectrographs Jingwei Wu, Richard C. Holt, Ahmed Hassan School of Computer Science University of Waterloo Waterloo ON."

Similar presentations


Ads by Google