An Empirical Study of Software Metrics

Software metrics are computed for the purpose of evaluating certain characteristics of the software developed. A Fortran static source code analyzer, FORTRANAL, was developed to study 31 metrics, including a new hybrid metric introduced in this paper, and applied to a database of 255 programs, all of which were student assignments. Comparisons among these metrics are performed. Their cross-correlation confirms the internal consistency of some of these metrics which belong to the same class. To remedy the incompleteness of most of these metrics, the proposed metric incorporates context sensitivity to structural attributes extracted from a flow graph. It is also concluded that many volume metrics have similar performance while some control metrics surprisingly correlate well with typical volume metrics in the test samples used. A flexible class of hybrid metric can incorporate both volume and control attributes in assessing software complexity.

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

[2]  Victor R. Basili,et al.  Calculation and use of an environment's characteristic software metric set , 1985, ICSE '85.

[3]  Warren A. Harrison,et al.  A complexity measure based on nesting level , 1981, SIGP.

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

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

[6]  Martin R. Woodward,et al.  A Measure of Control Flow Complexity in Program Text , 1979, IEEE Transactions on Software Engineering.

[7]  M. Itakura,et al.  A model for estimating program size and its evaluation , 1982, ICSE '82.

[8]  Raymond H. Myers,et al.  Probability and Statistics for Engineers and Scientists. , 1973 .

[9]  Martin De Prycker On the Development of a Measurement System for High Level Language Program Statistics , 1982, IEEE Trans. Computers.

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

[11]  NED CHAPIN A measure of software complexity , 1979, 1979 International Workshop on Managing Requirements Knowledge (MARK).

[12]  John C. Baird,et al.  Fundamentals of scaling and psychophysics , 1978 .

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

[14]  A. Schroeder Integrated program measurement and documentation tools , 1984, ICSE '84.