This Article 
 Bibliographic References 
 Add to: 
Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects
April 2003 (vol. 29 no. 4)
pp. 297-310

Abstract—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 suite, 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] F. Akiyama, “An Example of Software System Debugging,” Information Processing, vol. 71, pp. 353-379, 1971.
[2] R.D. Banker, S.M. Datar, C.F. Kemerer, and D. Zweig, "Software Complexity and Maintenance Costs," Comm. ACM, vol. 36, pp. 81-94, Nov. 1993.
[3] R.D. Banker and C.F. Kemerer, "Scale of Economies in New Software Development," IEEE Trans. Software Eng., vol. 15, no. 10, pp. 1,199-1,205, 1989.
[4] V.R. Basili, L.C. Briand, and W. Melo, "A Validation of Object-Oriented Design Metrics as Quality Indicators," IEEE Trans. Software Eng., Oct. 1996, pp. 751-761.
[5] V.R. Basili and B.T. Perricone,“Software errors and complexity: An empirical investigation,” Comm. ACM, vol. 27, no. 1, pp. 42-52, Jan. 1984.
[6] D. Belsley, E. Kuh, and R. Welsch, Regression Diagnostics: Identifying Influential Data and Sources of Collinearity. New York: John Wiley and Sons, 1980.
[7] A. Binkley and S. Schach, “Validation of the Coupling Dependency Metric as a Predictor of Run-Time Failures and Maintenance Measures,” Proc. 20th Int'l Conf. Software Eng., 1998.
[8] G. Booch, Object-Oriented Analysis and Design with Applications, Addison-Wesley, Reading, Mass., 1994.
[9] B. Boone, Java(TM) Essentials for C and C++ Programmers. Reading, Mass.: Addison-Wesley, 1996.
[10] G. Box and D. Cox, “An Analysis of Transformations,” J. Royal Statistical Soc., Series B, pp. 211-264, 1964.
[11] L. Briand, J. Wuest, J. Daly, and V. Porter, “Exploring the Relationships between Design Measures and Software Quality in Object-Oriented Systems,” J. Systems and Software, vol. 51, 2000.
[12] L.C. Briand, J. Wuest, S. Ikonomovski, and H. Lounis, “Investigation of Quality Factors in Object-Oriented Designs: An Industrial Case Study,” Proc. Int'l Conf. Software Eng., pp. 345-354, 1999.
[13] F. Brito e Abreu, “The MOOD Metrics Set,” Proc. ECOOP'95 Workshop Metrics, 1995.
[14] F. Brito e Abreu and W. Melo, “Evaluating the Impact of OO Design on Software Quality,” Proc. Third Int'l Software Metrics Symp., 1996.
[15] M. Bunge, Treatise on Basic Philosophy: Ontology I: Furniture of the World. Boston: Riedel, 1977.
[16] M. Bunge, Treatise on Basic Philosophy: Ontology II: The World of Systems. Boston: Riedel, 1979.
[17] M. Cartwright and M. Shepperd, "An Empirical Investigation of an Object-Oriented Software System," IEEE Trans. Software Eng., vol. 26, no. 8, Aug. 2000, pp. 786-796.
[18] H.S. Chae, Y.R. Kwon, and D.H. Bae, “A Cohesion Measure for Classes in Object-Oriented Classes,” Software—Practice and Experience, vol. 30, pp. 1405-1431, 2000.
[19] S.R. Chidamber and C.F. Kemerer, "Towards a Metrics Suite for Object Oriented Design," A. Paepcke, ed., Proc. Conf. Object-Oriented Programming: Systems, Languages and Applications, OOPSLA'91, Oct. 1991. Also published in SIGPLAN Notices, vol. 26, no. 11, pp. 197-211, 1991.
[20] S.R. Chidamber and C.F. Kemerer, "A Metrics Suite for Object Oriented Design," IEEE Trans. Software Eng., vol. 20, no. 6, pp. 476-493, 1994.
[21] S. Chidamber, D. Darcy, and C. Kemerer, “Managerial use of Metrics for Object-Oriented Software: An Exploratory Analysis,” IEEE Trans. Software Eng., vol. 24, no. 8, pp. 629-639, Aug. 1998.
[22] G. Chow, “Tests of Equality Between Sets of Coefficients in Two Linear Regressions,” Econometrica, vol. 28, pp. 591-605, 1960.
[23] R.D. Cook and S. Weisberg, Residuals and Influence in Regression. London: Chapman and Hall, 1982.
[24] K. El Emam, W. Melo, and J. Machado, The Prediction of Faulty Classes Using Object-Oriented Design Metrics J. Systems and Software, vol. 56, no. 1, pp. 63-75, 2001.
[25] K. El-Emam, S. Benlarbi, N. Goel, and S. Rai, “The Confounding Effect of Class Size on the Validity of Object-Oriented Metrics,” IEEE Trans. Software Eng., vol. 27, no. 6, pp. 630-650, July 2001.
[26] N.E. Fenton, Software Metrics, A Rigorous Approach. Chapman&Hall, 1991.
[27] R.B. Grady, Practical Software Metrics for Project Management and Process Improvement, Prentice Hall, Englewood Cliffs, N.J., 1992.
[28] R.B. Grady and D.L. Caswell, Software Metrics Establishing a Company-Wide Program, Prentice Hall, Englewood Cliffs, N.J., 1987.
[29] W.H. Greene, Econometric Analysis. New Jersey: Prentice Hall, 1997.
[30] M.H. Halstead, Elements of Software Science. North-Holland, 1977.
[31] C.S. Horstmann, Practical Object-Oriented Development in C++ and Java. New York: John Wiley&Sons, 1997.
[32] C. Jones, Software Quality: Analysis and Guidelines, Int'l Thomson Publishing, Stamford, Conn., 1999.
[33] B.A. Kitchenham, L.M. Pickard, and S.J. Linkman, “An Evaluation of Some Design Metrics,” Software Eng. J., vol 5, no. 1, pp. 50–58, 1990.
[34] M.S. Krishnan, C.H. Kriebel, S. Kekre, and T. Mukhopadhyay, “An Empirical Analysis of Productivity and Quality in Software Products,” Management Science, vol. 46, no. 6, pp. 745-759, 2000.
[35] W. Li and S. Henry, "Object-Oriented Metrics that Predict Maintainability," J. Systems Software, Vol. 23, No. 2, 1993, pp. 111-122.
[36] T.J. McCabe, “A Complexity Measure,” IEEE Trans. Software Eng., vol. 2, pp. 308-320, 1976.
[37] V.Y. Shen, T. Yu, S.M. Thebaut, and L.R. Paulsen, “Identifying Error-Prone Software—An Empirical Study,” IEEE Trans. Software Eng., vol 11, no. 4, pp. 317–323, Apr. 1985.
[38] M.H. Tang, M.H. Kao, and M.H. Chen, “An Empirical Study on Object Oriented Metrics,” Proc. Sixth Int'l Software Metrics Symp., pp. 242-249, 1999.
[39] A. Veevers and A.C. Marshall, “A Relationship between Software Coverage Metrics and Reliability,” J. Software Testing, Verification and Reliability, vol. 4, pp. 3-8, 1994.
[40] Y. Wand and R. Weber,“An ontological model of an information system,” IEEE Trans. Software Engineering, vol. 16, no. 11, pp. 1,282-1,292, 1990.
[41] H. White, “A Heteroscedasticity-Consistent Covariance Matrix Estimator and a Direct Test for Heteroscedasticity,” Econometrica, vol. 48, pp. 817-838, 1980.

Index Terms:
Object-oriented design, software metrics validation, object-oriented languages, C++, Java.
Ramanath Subramanyam, M.S. Krishnan, "Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects," IEEE Transactions on Software Engineering, vol. 29, no. 4, pp. 297-310, April 2003, doi:10.1109/TSE.2003.1191795
Usage of this product signifies your acceptance of the Terms of Use.