Exploring the relationships between design measures and software quality in object-oriented systems

Abstract One goal of this paper is to empirically explore the relationships between existing object-oriented (OO) coupling, cohesion, and inheritance measures and the probability of fault detection in system classes during testing. In other words, we wish to better understand the relationship between existing design measurement in OO systems and the quality of the software developed. The second goal is to propose an investigation and analysis strategy to make these kind of studies more repeatable and comparable, a problem which is pervasive in the literature on quality measurement. Results show that many of the measures capture similar dimensions in the data set, thus reflecting the fact that many of them are based on similar principles and hypotheses. However, it is shown that by using a subset of measures, accurate models can be built to predict which classes most of the faults are likely to lie in. When predicting fault-prone classes, the best model shows a percentage of correct classifications higher than 80% and finds more than 90% of faulty classes. Besides the size of classes, the frequency of method invocations and the depth of inheritance hierarchies seem to be the main driving factors of fault-proneness.

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

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

[3]  Shizuhiko Nishisato,et al.  Elements of Dual Scaling: An Introduction To Practical Data Analysis , 1993 .

[4]  Jacob Cohen A Coefficient of Agreement for Nominal Scales , 1960 .

[5]  J. A. Calvin Regression Models for Categorical and Limited Dependent Variables , 1998 .

[6]  Premkumar T. Devanbu,et al.  An Investigation into Coupling Measures for C++ , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[7]  Terri L. Moore,et al.  Regression Analysis by Example , 2001, Technometrics.

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

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

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

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

[12]  J. S. Long,et al.  Regression Models for Categorical and Limited Dependent Variables , 1997 .

[13]  Lionel C. Briand,et al.  An experimental evaluation of quality guidelines on the maintainability of object-oriented design documents , 1997, ESP '97.

[14]  M. Stone Cross‐Validatory Choice and Assessment of Statistical Predictions , 1976 .

[15]  Jim Freeman,et al.  Outliers in Statistical Data (3rd edition) , 1995 .

[16]  Lionel C. Briand,et al.  A Comprehensive Investigation of Quality Factors in Object-Oriented Designs: an Industrial Case Study , 1998 .

[17]  S. Chatterjee,et al.  Regression Analysis by Example , 1979 .

[18]  Curtis R. Cook,et al.  Use of Factor Analysis to Develop OOP Software Complexity Metrics , 1994 .

[19]  S. Menard Applied Logistic Regression Analysis , 1996 .

[20]  W. R. Buckland,et al.  Outliers in Statistical Data , 1979 .

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

[22]  S. Chatterjee,et al.  Regression Analysis by Example (2nd ed.). , 1992 .

[23]  Taghi M. Khoshgoftaar,et al.  LOGISTIC REGRESSION MODELING OF SOFTWARE QUALITY , 1999 .

[24]  David P. Tegarden,et al.  A software complexity model of object-oriented systems , 1995, Decis. Support Syst..

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

[26]  Jarrett Rosenberg,et al.  Some misconceptions about lines of code , 1997, Proceedings Fourth International Software Metrics Symposium.

[27]  Jean Mayrand,et al.  System acquisition based on software product assessment , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[28]  Martin Hitz,et al.  Measuring coupling and cohesion in object-oriented systems , 1995 .

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

[30]  Lionel C. Briand,et al.  A Unified Framework for Coupling Measurement in Object-Oriented Systems , 1999, IEEE Trans. Software Eng..

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

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

[33]  R. Darlington,et al.  Multiple regression in psychological research and practice. , 1968, Psychological bulletin.