Predicting fault-proneness using OO metrics. An industrial case study

Software quality is an important external software attribute that is difficult to measure objectively. In this case study, we empirically validate a set of object-oriented metrics in terms of their usefulness in predicting fault-proneness, an important software quality indicator We use a set of ten software product metrics that relate to the following software attributes: the size of the software, coupling, cohesion, inheritance, and reuse. Eight hypotheses on the correlations of the metrics with fault-proneness are given. These hypotheses are empirically tested in a case study, in which the client side of a large network service management system is studied. The subject system is written in Java and it consists of 123 classes. The validation is carried out using two data analysis techniques: regression analysis and discriminant analysis.

[1]  Ian M. Graham,et al.  Migrating to object technology , 1994 .

[2]  Taghi M. Khoshgoftaar,et al.  Early Quality Prediction: A Case Study in Telecommunications , 1996, IEEE Softw..

[3]  Chris F. Kemerer,et al.  Towards a metrics suite for object oriented design , 2017, OOPSLA '91.

[4]  Rachel Harrison,et al.  Coupling metrics for object-oriented design , 1998, Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262).

[5]  Norman F. Schneidewind,et al.  Methodology For Validating Software Metrics , 1992, IEEE Trans. Software Eng..

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

[7]  M. Goldstein,et al.  Multivariate Analysis: Methods and Applications , 1984 .

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

[9]  Paolo Nesi,et al.  A study on fault-proneness detection of object-oriented systems , 2001, Proceedings Fifth European Conference on Software Maintenance and Reengineering.

[10]  Hausi A. Müller,et al.  A reverse-engineering approach to subsystem structure identification , 1993, J. Softw. Maintenance Res. Pract..

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

[12]  D. Hosmer,et al.  Applied Logistic Regression , 1991 .

[13]  Victor R. Basili,et al.  A Validation of Object-Oriented Design Metrics as Quality Indicators , 1996, IEEE Trans. Software Eng..

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

[15]  Javam C. Machado,et al.  The prediction of faulty classes using object-oriented design metrics , 2001, J. Syst. Softw..

[16]  Michael Philippsen,et al.  The impact of inheritance depth on maintenance tasks - Detailed description and evaluation of two experiment replications , 1998 .

[17]  I. Jolliffe Principal Component Analysis , 2002 .

[18]  L. Briand,et al.  Theoretical and Empirical Validation of Software Product Measures , 1995 .

[19]  Hausi A. Müller,et al.  Rigi: a system for programming-in-the-large , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

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

[21]  David N. Card,et al.  Empirical Study of Software Design Practices , 2004 .