SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
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
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
Case Study
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


• Our case study consists of six versions of JHotDraw from
  March 2001 to January 2004
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‟
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
• Network representing Version 1,
  ▫ Lighter Nodes: High Betweenness Centrality
  ▫ Larger Nodes: High Clustering Coefficient
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
Change in Vertex Properties
• All properties increased with version number
Correlation Between Properties




 ▫ Positive correlation between degree and betweenness centrality
 ▫ Correlation between clustering coefficient and betweenness
   centrality changes across versions
Disruption in Values and Rank
• We examine how the relationships between
  these properties changed from one version to the
  next
Disruption in Values and Rank
Disruption in Values and Rank
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)
Percentage Breakdown of All Vertices
in Each Version
Percentage Breakdown of Vertices
(Common to All Versions)
  Other




  Extra
  Low




   Low




  Extra
  High




  High
Analysis of Newly Added Vertices
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
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)
Acknowledgement
• Nebraska EPSCoR

• College of IS&T, University of Nebraska at
  Omaha
Thank you!

Más contenido relacionado

Destacado

Lionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteLionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 Keynote
ICSM 2011
 
Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11
ICSM 2011
 
ICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer KoschkeICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer Koschke
ICSM 2011
 

Destacado (20)

Faults and Regression Testing - Fault interaction and its repercussions
Faults and Regression Testing - Fault interaction and its repercussionsFaults and Regression Testing - Fault interaction and its repercussions
Faults and Regression Testing - Fault interaction and its repercussions
 
ERA - Clustering and Recommending Collections of Code Relevant to Task
ERA - Clustering and Recommending Collections of Code Relevant to TaskERA - Clustering and Recommending Collections of Code Relevant to Task
ERA - Clustering and Recommending Collections of Code Relevant to Task
 
Industry - Relating Developers' Concepts and Artefact Vocabulary in a Financ...
Industry -  Relating Developers' Concepts and Artefact Vocabulary in a Financ...Industry -  Relating Developers' Concepts and Artefact Vocabulary in a Financ...
Industry - Relating Developers' Concepts and Artefact Vocabulary in a Financ...
 
Natural Language Analysis - Mining Java Class Naming Conventions
Natural Language Analysis - Mining Java Class Naming ConventionsNatural Language Analysis - Mining Java Class Naming Conventions
Natural Language Analysis - Mining Java Class Naming Conventions
 
Industry - Evolution and migration - Incremental and Iterative Reengineering ...
Industry - Evolution and migration - Incremental and Iterative Reengineering ...Industry - Evolution and migration - Incremental and Iterative Reengineering ...
Industry - Evolution and migration - Incremental and Iterative Reengineering ...
 
Components - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API LimitationsComponents - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API Limitations
 
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
 
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
 
Lionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteLionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 Keynote
 
Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11
 
Postdoc Symposium - Abram Hindle
Postdoc Symposium - Abram HindlePostdoc Symposium - Abram Hindle
Postdoc Symposium - Abram Hindle
 
Reliability and Quality - Predicting post-release defects using pre-release f...
Reliability and Quality - Predicting post-release defects using pre-release f...Reliability and Quality - Predicting post-release defects using pre-release f...
Reliability and Quality - Predicting post-release defects using pre-release f...
 
Metrics - You can't control the unfamiliar
Metrics - You can't control the unfamiliarMetrics - You can't control the unfamiliar
Metrics - You can't control the unfamiliar
 
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
 
ERA - A Comparison of Stemmers on Source Code Identifiers for Software Search
ERA - A Comparison of Stemmers on Source Code Identifiers for Software SearchERA - A Comparison of Stemmers on Source Code Identifiers for Software Search
ERA - A Comparison of Stemmers on Source Code Identifiers for Software Search
 
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...
 
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
 
ERA - Tracking Technical Debt
ERA - Tracking Technical DebtERA - Tracking Technical Debt
ERA - Tracking Technical Debt
 
ICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer KoschkeICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer Koschke
 
ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild
 

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

Getting From Folsom to Grizzly - A DevOps Upgrade Pattern.pptx
Getting From Folsom to Grizzly - A DevOps Upgrade Pattern.pptxGetting From Folsom to Grizzly - A DevOps Upgrade Pattern.pptx
Getting From Folsom to Grizzly - A DevOps Upgrade Pattern.pptx
OpenStack Foundation
 
Virt july-2013-meetup
Virt july-2013-meetupVirt july-2013-meetup
Virt july-2013-meetup
nvirters
 

Similar a ERA - Measuring Disruption from Software Evolution Activities Using Graph-Based Metrics (20)

OSI Model Assignment Help
OSI Model Assignment HelpOSI Model Assignment Help
OSI Model Assignment Help
 
Object oriented design patterns for distributed systems
Object oriented design patterns for distributed systemsObject oriented design patterns for distributed systems
Object oriented design patterns for distributed systems
 
StarlingX - Project Onboarding
StarlingX - Project OnboardingStarlingX - Project Onboarding
StarlingX - Project Onboarding
 
Getting From Folsom to Grizzly - A DevOps Upgrade Pattern.pptx
Getting From Folsom to Grizzly - A DevOps Upgrade Pattern.pptxGetting From Folsom to Grizzly - A DevOps Upgrade Pattern.pptx
Getting From Folsom to Grizzly - A DevOps Upgrade Pattern.pptx
 
Initial Architectural Design (Game Architecture)
Initial Architectural Design (Game Architecture)Initial Architectural Design (Game Architecture)
Initial Architectural Design (Game Architecture)
 
Microservices 101 - The Big Why?
Microservices 101 - The Big Why?Microservices 101 - The Big Why?
Microservices 101 - The Big Why?
 
Issre2014 test defectprediction
Issre2014 test defectpredictionIssre2014 test defectprediction
Issre2014 test defectprediction
 
Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19
 
StarlingX - A Platform for the Distributed Edge | Ildiko Vancsa
StarlingX - A Platform for the Distributed Edge | Ildiko VancsaStarlingX - A Platform for the Distributed Edge | Ildiko Vancsa
StarlingX - A Platform for the Distributed Edge | Ildiko Vancsa
 
Software defined network
Software defined network Software defined network
Software defined network
 
Dc lec-06 & 07 (osi model)
Dc lec-06 & 07 (osi model)Dc lec-06 & 07 (osi model)
Dc lec-06 & 07 (osi model)
 
Virt july-2013-meetup
Virt july-2013-meetupVirt july-2013-meetup
Virt july-2013-meetup
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
Partitioning composite code changes to facilitate code review
Partitioning composite code changes to facilitate code reviewPartitioning composite code changes to facilitate code review
Partitioning composite code changes to facilitate code review
 
Anguiano varshneya sccur-poster_20141122
Anguiano varshneya sccur-poster_20141122Anguiano varshneya sccur-poster_20141122
Anguiano varshneya sccur-poster_20141122
 
SQL Server DevOps Jumpstart
SQL Server DevOps JumpstartSQL Server DevOps Jumpstart
SQL Server DevOps Jumpstart
 
poster_3.0
poster_3.0poster_3.0
poster_3.0
 
isoosimodel
isoosimodelisoosimodel
isoosimodel
 
Performance testing material
Performance testing materialPerformance testing material
Performance testing material
 
How to Leverage Open Architectures for Existing Systems
How to Leverage Open Architectures for Existing SystemsHow to Leverage Open Architectures for Existing Systems
How to Leverage Open Architectures for Existing Systems
 

Último

Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 

Último (20)

2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 

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

  • 1. 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
  • 2. 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
  • 3. Case Study 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 • Our case study consists of six versions of JHotDraw from March 2001 to January 2004
  • 4. 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‟
  • 5. 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
  • 6. • Network representing Version 1, ▫ Lighter Nodes: High Betweenness Centrality ▫ Larger Nodes: High Clustering Coefficient
  • 7. 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
  • 8. Change in Vertex Properties • All properties increased with version number
  • 9. Correlation Between Properties ▫ Positive correlation between degree and betweenness centrality ▫ Correlation between clustering coefficient and betweenness centrality changes across versions
  • 10. Disruption in Values and Rank • We examine how the relationships between these properties changed from one version to the next
  • 13. 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)
  • 14. Percentage Breakdown of All Vertices in Each Version
  • 15. Percentage Breakdown of Vertices (Common to All Versions) Other Extra Low Low Extra High High
  • 16. Analysis of Newly Added Vertices
  • 17. 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
  • 18. 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)
  • 19. Acknowledgement • Nebraska EPSCoR • College of IS&T, University of Nebraska at Omaha