Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects

To produce high quality object-oriented (OO) applications, a strong emphasis on design aspects, especially during the early phases of software development, is necessary. Design metrics play an important role in helping developers understand design aspects of software and, hence, improve software quality and developer productivity. In this paper, we provide empirical evidence supporting the role of OO design complexity metrics, specifically a subset of the Chidamber and Kemerer (1991, 1994) suite (CK metrics), in determining software defects. Our results, based on industry data from software developed in two popular programming languages used in OO development, indicate that, even after controlling for the size of the software, these metrics are significantly associated with defects. In addition, we find that the effects of these metrics on defects vary across the samples from two programming languages-C++ and Java. We believe that these results have significant implications for designing high-quality software products using the OO approach.

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

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

[3]  Capers Jones Software quality - analysis and guidelines for success , 1997 .

[4]  Rajiv D. Banker,et al.  Software complexity and maintenance costs , 1993, CACM.

[5]  Barry Boone Java essentials for C and C++ programmers , 1996 .

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

[7]  F. Fisher Tests of Equality Between Sets of Coefficients in Two Linear Regressions: An Expository Note , 1970 .

[8]  Maurice H. Halstead,et al.  Elements of software science (Operating and programming systems series) , 1977 .

[9]  Cay S. Horstmann Practical Object-Oriented Development in C++ and Java , 1997 .

[10]  Barbara A. Kitchenham,et al.  An evaluation of some design metrics , 1990, Softw. Eng. J..

[11]  Fernando Brito e Abreu,et al.  Evaluating the impact of object-oriented design on software quality , 1996, Proceedings of the 3rd International Software Metrics Symposium.

[12]  Robert B. Grady,et al.  Software Metrics: Establishing a Company-Wide Program , 1987 .

[13]  Maurice H. Halstead,et al.  Elements of software science , 1977 .

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

[15]  Lionel C. Briand,et al.  Investigating quality factors in object-oriented designs: an industrial case study , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[16]  Gerald W. Both,et al.  Object-oriented analysis and design with applications , 1994 .

[17]  Robert B. Grady,et al.  Practical Software Metrics for Project Management and Process Improvement , 1992 .

[18]  W. W. Muir,et al.  Regression Diagnostics: Identifying Influential Data and Sources of Collinearity , 1980 .

[19]  S. Weisberg,et al.  Residuals and Influence in Regression , 1982 .

[20]  Adam C. Marshall,et al.  A relationship between software coverage metrics and reliability , 1994, Softw. Test. Verification Reliab..

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

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

[23]  Rajiv D. Banker,et al.  Scale Economies in New Software Development , 2013, IEEE Transactions on Software Engineering.

[24]  Tze-Jie Yu,et al.  Identifying Error-Prone Software—An Empirical Study , 1985, IEEE Transactions on Software Engineering.

[25]  Norman E. Fenton,et al.  Software Metrics: A Rigorous Approach , 1991 .

[26]  H. White A Heteroskedasticity-Consistent Covariance Matrix Estimator and a Direct Test for Heteroskedasticity , 1980 .

[27]  M. S. Krishnan,et al.  An Empirical Analysis of Productivity and Quality in Software Products , 2000 .

[28]  Michelle Cartwright,et al.  An Empirical Investigation of an Object-Oriented Software System , 2000, IEEE Trans. Software Eng..

[29]  Doo-Hwan Bae,et al.  A cohesion measure for object‐oriented classes , 2000 .

[30]  D. Cox,et al.  An Analysis of Transformations , 1964 .

[31]  Mei-Hwa Chen,et al.  An empirical study on object-oriented metrics , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

[32]  Ron Weber,et al.  An Ontological Model of an Information System , 1990, IEEE Trans. Software Eng..

[33]  Victor R. Basili,et al.  Software errors and complexity: an empirical investigation0 , 1984, CACM.

[34]  Stephen R. Schach,et al.  Validation of the coupling dependency metric as a predictor of run-time failures and maintenance measures , 1998, Proceedings of the 20th International Conference on Software Engineering.

[35]  Fumio Akiyama,et al.  An Example of Software System Debugging , 1971, IFIP Congress.

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

[37]  Grady Booch,et al.  Object-oriented analysis and design with applications (2nd ed.) , 1993 .

[38]  Yinka R. Adebayo,et al.  Some issues surrounding air pollution problems in Africa , 1990 .

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