Improvement of change-proneness prediction

Period: March 2006 - February 2009

Table of Contents

  1. Motivation and Goal
  2. Method
  3. Experiment
    3.1 Goal
    3.2 Data sets
    3.3 Evaluation method
  4. Results
  5. Conclusion
  6. Papers
  7. Awards

Motivation and Goal

Software changed either to add new functionalities or to fix bugs. Some part of the software may be more prone to be changed than others. Finding software parts that are more likely to change can be useful because we can decide how to effectively invest the software maintenance efforts. In previous studies, most of the metrics used to build a change-proneness predictive model are based on the structural complexity of software programs.

To improve the accuracy of the change-proneness prediction, I propose the new behavioral dependency metric that captures the aspects of the dynamic behavior program.

Method

Overview of the change-proneness prediction
researchBDMProcedure

Illustrative example for calculating all reachable paths for all pairs of objects in the system
researchBDMOverview
The key concept for measuring the behavior dependency metric is to measure the dependency by weighting the control flows (e.g., choice or loops) into messages exchanged between the two classes.

Experiment

Goal

To show that the behavioral dependency metric is the useful and additional explanatory variable for change-proneness prediction

Data sets

JFreeChart ver 1.0.0: Open-source Java class library for generating various types of charts

Independent variables
- NOC (number of children)
- DIT (depth of inheritance tree)
- WMC (weighted methods per class)
- RFC (response for a class)
- CBO (coupling between objects)
- LCOM (lack of cohesion in methods)
  • Metric of change-proneness
Dependent variables
Total amount of changes (source lines of coded added and deleted) across the six releases (ver 1.0.1 ~ ver 1.0.6)

Evaluation method

Compare goodness of the fit (R2) of the multivariate regression models constructed with and without the behavioral dependency metric along with the two different independent variable sets

ComparatorsDescription
Model with behavioral dependency metric in addition to C&K metrics (our approach)- Dependent variables: metric of change-proneness
- Independent variables: behavioral dependency metric + C&K metrics
Model with only C&K metrics- Dependent variables: metric of change-proneness
- Independent variables: C&K metrics
Evaluation measure
Goodness of the fit (R^2)

Results

R2 is increased by 8% using the behavioral dependency metric.

  • Regression model with only C&K metrics:
    researchBDMGraphCK
    • Explains around 56% (adjusted R2 of 0.55)
    • Selected variables: WMC (1st), CBO (2nd), and LCOM (3rd)
  • Regression model with the behavioral dependency metric in addition to C&K metrics:
    researchBDMGraphBDM
    • Explains around 64% (adjusted R2 of 0.64)
    • Selected variables: WMC (1st), BDM (behavioral dependency metric) (2nd), and CBO (3rd), LCOM (4th), and NOC (5th)

Conclusion

The behavioral dependency metric in conjunction with existing structural metrics help to make a more accurate prediction change-proneness model.

Papers

Awards

The paper Behavioral Dependency Measurement for Change-proneness Prediction in UML 2.0 Design Models was invited for the publication to the Special Issue for Journal of Systems and Software. The top quality papers of the IEEE International Conference on Computer Software and Applications 2008 are selected by program committee.