Identifying threshold values of an open source software using Receiver Operating Characteristics curve (ROC)

Abstract Software metrics are widely used to predict the classes in a software that are comparatively more change prone than others. Developers construct various prediction models which are used for the prediction of change prone classes. Thus, focussed attention can be laid on such classes leading to saving of lots of resources in terms of money, manpower and cost. But construction and usage of the prediction models using metrics is not always efficient and practical for developers. Thus, the alternative approach can be to identify certain alarming values of metrics above which a class is said to be at high risk. These alarming values are known as thresholds of the metrics. The main focus of this study is to identify metric threshold values using receiver operating characteristic curves. We have used threshold values to identify change prone classes (or classes that may lead to some risk in future) so that developers can carefully examine and pay attention on those classes. The study has used five releases of an open source, widely used operating system, Android. To predict change prone classes in any release of software, the threshold values of its immediate predecessor release are used. For example, to predict change prone classes in Android 4.0, the threshold values of Android 2.3 are used. In addition to this, the threshold methodology based on receiver operating characteristics curve is compared with the traditional statistical methodology based on logistic regression. We conclude that researchers may use the methodology based on receiver operating characteristics curve to calculate the thresholds.

[1]  Ladan Tahvildari,et al.  Change Prediction in Object-Oriented Software Systems: A Probabilistic Approach , 2008, J. Softw..

[2]  Lionel C. Briand,et al.  Dynamic coupling measurement for object-oriented software , 2004, IEEE Transactions on Software Engineering.

[3]  Ladan Tahvildari,et al.  A Probabilistic Approach to Predict Changes in Object-Oriented Software Systems , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[4]  Mikael Lindvall Are large C++ classes change‐prone? An empirical investigation , 1998 .

[5]  SinghYogesh,et al.  Empirical validation of object-oriented metrics for predicting fault proneness models , 2010 .

[6]  Arvinder Kaur,et al.  Empirical validation of object-oriented metrics for predicting fault proneness models , 2010, Software Quality Journal.

[7]  Khaled El Emam,et al.  A Validation of Object-oriented Metrics , 1999 .

[8]  Akif Günes Koru,et al.  Comparing high-change modules and modules with the highest measurement values in two large-scale open-source products , 2005, IEEE Transactions on Software Engineering.

[9]  Michelle Cartwright,et al.  An empirical view of inheritance , 1998, Inf. Softw. Technol..

[10]  Khaled El Emam,et al.  The Confounding Effect of Class Size on the Validity of Object-Oriented Metrics , 2001, IEEE Trans. Software Eng..

[11]  Raed Shatnawi,et al.  Finding software metrics threshold values using ROC curves , 2010, J. Softw. Maintenance Res. Pract..

[12]  Khaled El Emam,et al.  Thresholds for object-oriented measures , 2000, Proceedings 11th International Symposium on Software Reliability Engineering. ISSRE 2000.

[13]  Alexander Chatzigeorgiou,et al.  Predicting the probability of change in object-oriented systems , 2005, IEEE Transactions on Software Engineering.

[14]  Barbara A. Kitchenham,et al.  Coupling measures and change ripples in C++ application software , 2000, J. Syst. Softw..

[15]  Brian A. Nejmeh,et al.  NPATH: a measure of execution path complexity and its applications , 1988, CACM.

[16]  François Lustman,et al.  A change impact model for changeability assessment in object-oriented software systems , 2002, Sci. Comput. Program..

[17]  Doo-Hwan Bae,et al.  Behavioral Dependency Measurement for Change-Proneness Prediction in UML 2.0 Design Models , 2008, 2008 32nd Annual IEEE International Computer Software and Applications Conference.

[18]  Ahmed E. Hassan,et al.  Supporting software evolution using adaptive change propagation heuristics , 2008, 2008 IEEE International Conference on Software Maintenance.

[19]  Ruchika Malhotra,et al.  Investigation of relationship between object-oriented metrics and change proneness , 2013, Int. J. Mach. Learn. Cybern..

[20]  Tibor Gyimóthy,et al.  The Dynamic Function Coupling Metric and Its Use in Software Evolution , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[21]  Yuming Zhou,et al.  Examining the Potentially Confounding Effect of Class Size on the Associations between Object-Oriented Metrics and Change-Proneness , 2009, IEEE Transactions on Software Engineering.

[22]  Brian Henderson-Sellers,et al.  Object-Oriented Metrics , 1995, TOOLS.

[23]  David P. Darcy,et al.  Managerial Use of Metrics for Object-Oriented Software: An Exploratory Analysis , 1998, IEEE Trans. Software Eng..

[24]  Richard C. Holt,et al.  Predicting change propagation in software systems , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[25]  Hongfang Liu,et al.  Identifying and characterizing change-prone classes in two large-scale open-source products , 2007, J. Syst. Softw..

[26]  Claus Lewerentz,et al.  Applying design-metrics to object-oriented frameworks , 1996, Proceedings of the 3rd International Software Metrics Symposium.

[27]  Raed Shatnawi,et al.  A Quantitative Investigation of the Acceptable Risk Levels of Object-Oriented Metrics in Open-Source Systems , 2010, IEEE Transactions on Software Engineering.

[28]  R. Bender,et al.  Quantitative risk assessment in epidemiological studies investigating threshold effects , 1999 .

[29]  Tibor Gyimóthy,et al.  Empirical validation of object-oriented metrics on open source software for fault prediction , 2005, IEEE Transactions on Software Engineering.

[30]  Sallie M. Henry,et al.  Object-oriented metrics that predict maintainability , 1993, J. Syst. Softw..

[31]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[32]  Arvinder Kaur,et al.  Empirical analysis for investigating the effect of object-oriented metrics on fault proneness: a replicated case study , 2009 .

[33]  Michael Philippsen,et al.  A controlled experiment on inheritance depth as a cost factor for code maintenance , 2003, J. Syst. Softw..

[34]  Rachel Harrison,et al.  Experimental assessment of the effect of inheritance on the maintainability of object-oriented systems , 2000, J. Syst. Softw..

[35]  John W. Daly,et al.  Evaluating inheritance depth on the maintainability of object-oriented software , 2004, Empirical Software Engineering.

[36]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[37]  K Ulm,et al.  A statistical method for assessing a threshold in epidemiological studies. , 1991, Statistics in medicine.

[38]  Yuming Zhou,et al.  The ability of object-oriented metrics to predict change-proneness: a meta-analysis , 2011, Empirical Software Engineering.

[39]  Doo-Hwan Bae,et al.  Measuring behavioral dependency for improving change-proneness prediction in UML-based design models , 2010, J. Syst. Softw..

[40]  Khaled El Emam,et al.  The Optimal Class Size for Object-Oriented Software , 2002, IEEE Trans. Software Eng..