+ All Categories
Home > Technology > ERA Poster - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics

ERA Poster - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics

Date post: 13-Jan-2015
Category:
Upload: icsm-2011
View: 488 times
Download: 2 times
Share this document with a friend
Description:
Paper: Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics Authors: Prashant Paymal, Rajvardhan Patil, Sanjukta Bhowmick and Harvey SiySession: Early Research Achievements Track Session 3: Managing and Supporting Software Maintenance Activities
Popular Tags:
1
Background Network Properties In-degree and out-degree distributions observe power law scale-free networks What We Did Our approach: Model software as a directed graph Apply dynamic network analysis. Dynamic Network Analysis Strategy: 1. Study network properties Size Degree distribution of vertices Communities of vertices 2. Study vertex properties Degree fan-in and fan-out of vertex Betweenness Centrality (BC) ratio of shortest paths through a vertex Clustering Coefficient (CC) connections between neighbors Articulation Point (AP) removal causes network disconnection 3. Compute disruption measures 4. Characterize changes in vertex properties 5. Characterize new vertices 6. Compare against project data 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. Key Idea: Measure how the relationships are affected or disrupted by such changes. Data: JHotDraw 5 Vertex Properties Disruption Important Vertices Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics Prashant Paymal, Rajvardhan Patil, Sanjukta Bhowmick, Harvey Siy, University of Nebraska at Omaha Ver Date Last Change 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 release) V4 11/8/2002 Refactor to use StandardStorageFormat as a superclass. V5 5/8/2003 Refactoring of Cursor: - java.awt.Cursor (class) has been sistematically replaced V6 1/9/2004 After renaming the CH.ifa.draw to org.jhotdraw Disruption extent to which class relationships are disrupted in the course of software evolution. 1. Value disruption measures change in the values of vertex properties. 2. Rank disruption measures change in ordering of vertex properties. Communities of Vertices Jump in size from V2-V3 and V4-V5. Positive correlation Highly connected classes are central Negative in V1, V2 Positive in V4,V5 Negative in V1, V2 Positive in V4,V5 Find closely connected groups of vertices (communities). Network of V1 Node size: CC Blues: BC ≤ 10 Greens: 10 < BC ≤ 100 Yellows: BC > 100 Earlier versions: New vertices are clusters of interdependent classes. Latter versions: New vertices have few neighboring vertices. New vertices are added to network periphery. Distribution of important vertices decreases over time due to addition of new (and less important) vertices. Higher values from V2-V3 and V4-V5 “High importance” – high degrees, BC, or CC, or is AP. Vertices that were important in V1 tend to stay important. Large communities have more relationships within than to external vertices → modular Average count of edges per vertex appears capped at 3-4 edges → manageable communities Effect on Quality Higher percentage of bug fix changes relative to total changes after V3 and V5, coinciding with periods of higher disruption. JHotDraw Findings Acknowledgements This research was funded in part by a Nebraska EPSCoR First Award grant and by the College of IS&T, University of Nebraska at Omaha. Higher disruption from V2-V3 and V4-V5 Even so, core design appears stable. Newer vertices added to network periphery. Important nodes stay important. Similar communities across versions. Degree of disruption may help explain why bug incidence increases (future work) “Figure” DrawingView
Transcript
Page 1: ERA Poster - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics

Background Network Properties

In-degree and out-degree distributions observe power law → scale-free networks

What We DidOur approach:

• Model software as a directed graph

• Apply dynamic network analysis.

Dynamic Network Analysis Strategy:

1. Study network properties

• Size

• Degree distribution of vertices

• Communities of vertices

2. Study vertex properties

• Degree – fan-in and fan-out of vertex

• Betweenness Centrality (BC)

– ratio of shortest paths through a vertex

• Clustering Coefficient (CC)

– connections between neighbors

• Articulation Point (AP)

– removal causes network disconnection

3. Compute disruption measures

4. Characterize changes in vertex properties

5. Characterize new vertices

6. Compare against project data

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.

Key Idea: Measure how the relationships are affected or disrupted by such changes.

Data: JHotDraw 5

Vertex Properties

Disruption

Important Vertices

Measuring Disruption from Software Evolution Activities Using Graph-Based MetricsPrashant Paymal, Rajvardhan Patil, Sanjukta Bhowmick, Harvey Siy, University of Nebraska at Omaha

Ver Date Last Change

V1 3/9/2001 Merge to JHotDraw 5.2 (using JFC/Swing GUIcomponents)

V2 10/24/2001 before merge for version 5.3 (dnd, undo,...), mergednd (before 5.3)

V3 8/4/2002 after various merges... (before 5.4 release)

V4 11/8/2002 Refactor to use StandardStorageFormat as a superclass.

V5 5/8/2003 Refactoring of Cursor: - java.awt.Cursor (class) hasbeen sistematically replaced

V6 1/9/2004 After renaming the CH.ifa.draw to org.jhotdraw

Disruption – extent to which class relationships are disrupted in the course of software evolution.

1. Value disruption – measures change in the values of vertex properties.

2. Rank disruption – measures change in ordering of vertex properties.

Communities of VerticesJump in size from V2-V3 and V4-V5.

Positive correlationHighly connected classes are central

Negative in V1, V2Positive in V4,V5

Negative in V1, V2Positive in V4,V5

Find closely connected groups of vertices (communities).

Network of V1Node size: CCBlues: BC ≤ 10

Greens: 10 < BC ≤ 100Yellows: BC > 100

Earlier versions:New vertices are clusters of interdependent classes.

Latter versions:New vertices have few neighboring vertices.New vertices are added to network periphery.

Distribution of important vertices decreases over time due to addition of new (and less important) vertices.

Higher values from V2-V3 and V4-V5

“High importance” – high degrees, BC, or CC, or is AP.

Vertices that were important in V1 tend to stay important.

Large communities have more relationships within than to external vertices → modular

Average count of edges per vertex appears capped at 3-4 edges → manageable communities

Effect on Quality

Higher percentage of bug fix changes relative to total changes after V3 and V5, coinciding with periods of higher disruption.

JHotDraw Findings

AcknowledgementsThis research was funded in part by a Nebraska EPSCoR First Award grant and by the College of IS&T, University of Nebraska at Omaha.

• Higher disruption from V2-V3 and V4-V5• Even so, core design appears stable.

• Newer vertices added to network periphery.• Important nodes stay important. • Similar communities across versions.

• Degree of disruption may help explain why bug incidence increases (future work)

“Figure”

“DrawingView”

Recommended