A study of software metrics

Abstract This article reports on an empirical study conducted to explore the interdependencies among a number of software metrics and validate a new metric. Also a model for code faults in terms of static metrics is presented and investigated. The software analyzed is a commercial data-base system currently being sold and used widely. Availability of various post-release versions of this production-quality software package, together with the corresponding history data, provide a new dimension for metrics analysis. The results of this study indicate that: 1. 1) all of the static metrics considered correlate well to each other and also to the size metric; 2. 2) the residual complexity metric was validated against other static metrics; 3. 3) none of the metrics under consideration was able to identify all of the variations in code faults; in fact, even a multiple-variable model accounted for only one quarter of the variance in the number of code faults; and 4. 4) the static metrics' intercorrelations are consistent across versions.

[1]  Dennis G. Kafura,et al.  The Use of Software Complexity Metrics in Software Maintenance , 1987, IEEE Transactions on Software Engineering.

[2]  Ruven E. Brooks,et al.  Studying programmer behavior experimentally: the problems of proper methodology , 1980, CACM.

[3]  Victor R. Basili,et al.  Experimentation in software engineering , 1986, IEEE Transactions on Software Engineering.

[4]  Herbert E. Dunsmore,et al.  A Software Science Analysis of COBOL Programs , 1980 .

[5]  Maurice H. Halstead,et al.  Advances in Software Science , 1979, Adv. Comput..

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

[7]  W. M. Evangelist Software complexity metric sensitivity to program structuring rules , 1983, J. Syst. Softw..

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

[9]  Joseph E. Urban,et al.  The Effect of Abstract Data Types on Program Development , 1987, Computer.

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

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

[12]  Daryl Pregibon,et al.  An analysis of static metrics and faults in C software , 1985, J. Syst. Softw..

[13]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

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

[15]  Bill Curtis,et al.  By the way, did anyone study any real programmers? , 1986 .

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

[17]  M.H. Samadzadeh,et al.  A classification model of software comprehension , 1988, [1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track.

[18]  Bill Curtis,et al.  Measuring the Psychological Complexity of Software Maintenance Tasks with the Halstead and McCabe Metrics , 1979, IEEE Transactions on Software Engineering.