A Validation of Object-Oriented Design Metrics as Quality Indicators

This paper presents the results of a study in which we empirically investigated the suite of object-oriented (OO) design metrics introduced in (Chidamber and Kemerer, 1994). More specifically, our goal is to assess these metrics as predictors of fault-prone classes and, therefore, determine whether they can be used as early quality indicators. This study is complementary to the work described in (Li and Henry, 1993) where the same suite of metrics had been used to assess frequencies of maintenance changes to classes. To perform our validation accurately, we collected data on the development of eight medium-sized information management systems based on identical requirements. All eight projects were developed using a sequential life cycle model, a well-known OO analysis/design method and the C++ programming language. Based on empirical and quantitative analysis, the advantages and drawbacks of these OO metrics are discussed. Several of Chidamber and Kemerer's OO metrics appear to be useful to predict class fault-proneness during the early phases of the life-cycle. Also, on our data set, they are better predictors than "traditional" code metrics, which can only be collected at a later phase of the software development processes.

[1]  B. McCarl,et al.  Economics , 1870, The Indian medical gazette.

[2]  A. R. Ilersic,et al.  Research methods in social relations , 1961 .

[3]  Victor R. Basili,et al.  Analyzing A Syntactic Family of Complexity Metrics , 1981 .

[4]  Jay L. Devore,et al.  Probability and statistics for engineering and the sciences , 1982 .

[5]  Victor R. Basili,et al.  An Empirical Study of a Syntactic Complexity Family , 1983, IEEE Transactions on Software Engineering.

[6]  Victor R. Basili,et al.  Metric Analysis and Data Validation Across Fortran Projects , 1983, IEEE Transactions on Software Engineering.

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

[8]  H. E. Dunsmore,et al.  Software engineering metrics and models , 1986 .

[9]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[10]  Adam A. Porter,et al.  Learning from Examples: Generation and Evaluation of Decision Trees for Software Resource Analysis , 1988, IEEE Trans. Software Eng..

[11]  Warren Harrison,et al.  Using Software Metrics to Allocate Testing Resources , 1988, J. Manag. Inf. Syst..

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

[13]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

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

[15]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

[16]  Jon Valett,et al.  Data collection procedures for the Software Engineering Laboratory (SEL) database , 1992 .

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

[18]  Victor R. Basili,et al.  The software engineering laboratory - an operational software experience factory , 1992, International Conference on Software Engineering.

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

[20]  Douglas A. Young,et al.  Object oriented programming with C++ and OSF/Motif , 1992 .

[21]  Premkumar T. Devanbu GENOA - A Customizable, Language- And Front-end Independent Code Analyzer , 1992, International Conference on Software Engineering.

[22]  Taghi M. Khoshgoftaar,et al.  The Detection of Fault-Prone Programs , 1992, IEEE Trans. Software Eng..

[23]  Abhijit S. Pandya,et al.  A neural network approach for predicting software development faults , 1992, [1992] Proceedings Third International Symposium on Software Reliability Engineering.

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

[25]  Victor R. Basili,et al.  Developing Interpretable Models with Optimized Set Reduction for Identifying High-Risk Software Components , 1993, IEEE Trans. Software Eng..

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

[27]  Marvin V. Zelkowitz,et al.  Software Process Improvement in the NASA Software Engineering Laboratory , 1994 .

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

[29]  Fernando Brito e Abreu,et al.  Candidate metrics for object-oriented software within a taxonomy framework , 1994, J. Syst. Softw..

[30]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[31]  Sandro Morasca,et al.  Defining and validating high-level design metrics , 1994 .

[32]  Warren Harrison Software Measurement: A Decision-Process Approach , 1994, Adv. Comput..

[33]  James M. Bieman,et al.  Cohesion and reuse in an object-oriented system , 1995, SSR '95.

[34]  Neville Churcher,et al.  Comments on "A Metrics Suite for Object Oriented Design" , 1995, IEEE Trans. Software Eng..

[35]  David S. Rosenblum Correction to "A Practical Approach to Programming with Assertions" , 1995, IEEE Trans. Software Eng..

[36]  Victor R. Basili,et al.  How reuse influences productivity in object-oriented systems , 1996, CACM.

[37]  Martin Hitz,et al.  Chidamber & Kemerer's Metrics Suite: a Measurement Theory Perspective , 1996 .

[38]  Premkumar T. Devanbu,et al.  Analytical and empirical evaluation of software reuse metrics , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[39]  John W. Daly,et al.  An empirical study evaluating depth of inheritance on the maintainability of object-oriented software , 1996 .

[40]  Sandro Morasca,et al.  Property-Based Software Engineering Measurement , 1996, IEEE Trans. Software Eng..

[41]  Giuseppe Visaggio,et al.  Evaluating predictive quality models derived from software measures: Lessons learned , 1997, J. Syst. Softw..

[42]  Victor R. Basili,et al.  Measuring the Impact of Reuse on Quality and Productivity in Object-Oriented Systems , 1998 .