ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics
description
Transcript of ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics
![Page 1: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/1.jpg)
Measuring Disruption from Software
Evolution Activities Using Graph-
Based Metrics
Prashant Paymal, Rajvardhan Patil, Sanjukta Bhowmick, Harvey Siy
Department of Computer Science,
University of Nebraska at Omaha
![Page 2: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/2.jpg)
Introduction
• Real world software systems have large numbers of components (e.g. classes, functions, etc.)
• It is difficult to get a quick summary of how system evolved after a major change such as perfective maintenance activity or new software release
![Page 3: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/3.jpg)
Case Study
• Our case study consists of six versions of JHotDraw from March 2001 to January 2004
Version Date Commit Messages
V1 3/9/2001 Merge to JHotDraw 5.2 (using JFC/Swing GUI components)
V2 10/24/2001 Before merge for version 5.3 (dnd, undo…) merge dnd(before 5.3)
V3 8/4/2002 After various merges… (before 5.4 relaease)
V4 11/8/2002 Refactor to use StandardStorageFormat as a superclass
V5 5/8/2003 Refactoring of Cursor. – java.awt.Cursor(class) has been systematically replaced
V6 1/9/2004 After renaming the CH.ifa.draw to org.jhotdraw
![Page 4: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/4.jpg)
Network Construction
• Extracted relationships from these versions (inheritance, implementation, method calls and class member access, object declaration and instantiation)
• Network was created by connecting class dependencies, where each edge (u, v) is a dependency from class „u‟ to class „v‟
![Page 5: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/5.jpg)
Vertex Properties
• Degree Distribution ▫ Frequency of vertices per degree, scale
free for most real world networks
• Clustering Coefficient ▫ Connections between neighbors
• Betweenness Centrality▫ Ratio of shortest paths through a
vertex
• Articulation Points▫ It‟s removal would cause the network to
become disconnected
![Page 6: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/6.jpg)
• Network representing Version 1,▫ Lighter Nodes: High Betweenness Centrality▫ Larger Nodes: High Clustering Coefficient
![Page 7: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/7.jpg)
Objective
• Extract key combinatorial properties from these six networks that would enable us to detect evolutionary characteristics such as
▫ Points of significant change in the software
▫ How these changes affect crucial classes in the network
![Page 8: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/8.jpg)
Change in Vertex Properties
• All properties increased with version number
![Page 9: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/9.jpg)
Correlation Between Properties
▫ Positive correlation between degree and betweenness centrality
▫ Correlation between clustering coefficient and betweenness centrality changes across versions
![Page 10: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/10.jpg)
Disruption in Values and Rank
• We examine how the relationships between these properties changed from one version to the next
![Page 11: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/11.jpg)
Disruption in Values and Rank
![Page 12: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/12.jpg)
Disruption in Values and Rank
![Page 13: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/13.jpg)
Identifying Crucial Vertices
• High▫ If vertex has high rank (within top 25) in at least one of the
following categories• Extra High
▫ If vertex has high rank in at least two categories• Low
▫ If vertex has zero value for any one vertex based properties and is not marked as a High vertex
• Extra Low▫ If it has zero value for both betweenness centrality and
clustering coefficient
• (High Betweenness Centrality, High Indegree, High Outdegree, High Clustering Coefficient / Articulation Point)
![Page 14: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/14.jpg)
Percentage Breakdown of All Vertices
in Each Version
![Page 15: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/15.jpg)
Percentage Breakdown of Vertices
(Common to All Versions)
High
Extra High
Low
Extra Low
Other
![Page 16: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/16.jpg)
Analysis of Newly Added Vertices
![Page 17: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/17.jpg)
Bug Frequencies
• Changes that have the keywords “bug fix” in the change log
• The periods with high percentage are also the periods after the high disruption
![Page 18: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/18.jpg)
Conclusion
• The significant evolutionary changes occur between Version 2 – Version 3 and Version 4 – Version 5
• The network has grown cumulatively. Newer vertices tend to get added to the peripheries of the network
• The top 25 ranking of vertices was generally stable across versions. Important nodes stay important. This indicates stability in the design.
• The bug frequency is higher after Version 3 and Version 5. The degree of disruption can help explain why bug incidence increases (future work)
![Page 19: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/19.jpg)
Acknowledgement
• Nebraska EPSCoR
• College of IS&T, University of Nebraska at Omaha
![Page 20: ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics](https://reader034.fdocuments.net/reader034/viewer/2022051818/54b4a8834a79595d688b4649/html5/thumbnails/20.jpg)
Thank you!