An evaluation of software product metrics

Abstract The study of quantitative aspects of software engineering can be divided into measurements that relate to the process of engineering software and those that relate to the software engineering product. This paper deals with the latter. Some of the most well known and some of the most promising metrics are reviewed. Well known metrics include the code metrics of Halstead and McCabe; however, code metrics suffer from a number of inherent limitations. The more promising but relatively unexplored fields of design and specification metrics are outlined. The paper concludes with some speculative remarks concerning the future of product metrics.

[1]  Sallie M. Henry,et al.  The evaluation of software systems' structure using quantitative software metrics , 1984, Softw. Pract. Exp..

[2]  Jon Silverman,et al.  Quantifying software designs , 1984, ICSE '84.

[3]  Chris F. Kemerer,et al.  An empirical validation of software cost estimation models , 1987, CACM.

[4]  Robert G. Reynolds Metrics to measure the complexity of partial programs , 1984, J. Syst. Softw..

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

[6]  Stuart H. Zweben,et al.  Measuring the quality of structured designs , 1981, J. Syst. Softw..

[7]  Stephen S. Yau,et al.  Ripple effect analysis of software maintenance , 1978, COMPSAC.

[8]  Maurice H. Halstead,et al.  An experiment comparing Fortran programming times with the software physics hypothesis , 1899, AFIPS '76.

[9]  Stephen S. Yau,et al.  Some Stability Measures for Software Maintenance , 1980, IEEE Trans. Software Eng..

[10]  Neal S. Coulter,et al.  Software Science and Cognitive Psychology , 1983, IEEE Transactions on Software Engineering.

[11]  Kenneth Magel,et al.  Regular expressions in a program complexity metric , 1981, SIGP.

[12]  Glenford J Myers,et al.  Reliable software through composite design , 1975 .

[13]  David N. Card,et al.  Measuring software design complexity , 1988, J. Syst. Softw..

[14]  Sallie M. Henry,et al.  On the relationships among three software metrics , 1981, SIGMETRICS Perform. Evaluation Rev..

[15]  B. H. Yin,et al.  The establishment and use of measures to evaluate the quality of software designs , 1978 .

[16]  Christopher Alexander Notes on the Synthesis of Form , 1964 .

[17]  J. M. Stroud THE FINE STRUCTURE OF PSYCHOLOGICAL TIME , 1967 .

[18]  Norman L. Soong,et al.  A program stability measure , 1977, ACM Annual Conference.

[19]  Frederick M. Haney Module connection analysis: a tool for scheduling software debugging activities , 1972, AFIPS '72 (Fall, part I).

[20]  Enrique Ivan Oviedo Control flow, data flow and program complexity , 1984 .

[21]  L. T. Love,et al.  An independent test of the theory of software physics , 1976, SIGP.

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

[23]  Glenford J. Myers,et al.  Structured Design , 1974, IBM Syst. J..

[24]  Sallie M. Henry,et al.  Software Structure Metrics Based on Information Flow , 1981, IEEE Transactions on Software Engineering.

[25]  H. E. Dunsmore,et al.  Software Science Revisited: A Critical Analysis of the Theory and Its Empirical Support , 1983, IEEE Transactions on Software Engineering.

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

[27]  Robin W. Whitty,et al.  Axiomatic Approach to Software Metrication Through Program Decomposition , 1986, Comput. J..

[28]  G. Oulsnam,et al.  Cyclomatic Numbers Do Not Measure Complexity of Unstructured Programs , 1979, Inf. Process. Lett..

[29]  Paul Piwowarski,et al.  A nesting level complexity measure , 1982, SIGP.

[30]  H. Dieter Rombach,et al.  A Controlled Expeniment on the Impact of Software Structure on Maintainability , 1987, IEEE Transactions on Software Engineering.

[31]  T. J. Emerson A discriminant metric for module cohesion , 1984, ICSE '84.

[32]  Ronald E. Prather An Axiomatic Theory of Software Complexity Measure , 1984, Comput. J..

[33]  Victor R. Basili,et al.  The TAME Project: Towards Improvement-Oriented Software Environments , 1988, IEEE Trans. Software Eng..

[34]  W. B. Samson,et al.  Predictive software metrics based on a formal specification , 1987 .

[35]  Tom DeMarco,et al.  Controlling Software Projects: Management, Measurement, and Estimates , 1986 .

[36]  M. Shepperd,et al.  A critique of cyclomatic complexity as a software metric , 1988, Softw. Eng. J..

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

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

[39]  G. D. Frewin,et al.  M.H. Halstead's Software Science - a critical examination , 1982, ICSE '82.

[40]  Alex Bykat An extension to PASCAL input-output procedures , 1982, SIGP.

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

[42]  Péter Szöke Some remarks on new instances and garbage collection , 1977 .

[43]  Darrel C. Ince Module interconnection languages and Prolog , 1984, SIGP.

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

[45]  Charles A. Behrens,et al.  Measuring the Productivity of Computer Systems Development Activities with Function Points , 1983, IEEE Transactions on Software Engineering.

[46]  Albert L. Baker,et al.  A Comparison of Measures of Control Flow Complexity , 1979, IEEE Transactions on Software Engineering.

[47]  A. S. Wang,et al.  Back-to-front programming effort prediction , 1984, Inf. Process. Manag..

[48]  John B. Bowen Are current approaches sufficient for measuring software quality , 1978 .

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

[50]  David N. Card,et al.  Empirical Study of Software Design Practices , 2004 .

[51]  Adrian John Bowles Effects of design complexity on software maintenance , 1983 .

[52]  Paul A. Szulewski,et al.  The measurement of software science parameters in software designs , 1981, SIGMETRICS Perform. Evaluation Rev..

[53]  R. N. Chanon On a measure of program structure , 1974, Symposium on Programming.

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

[55]  John E. Gaffney,et al.  Software Function, Source Lines of Code, and Development Effort Prediction: A Software Science Validation , 1983, IEEE Transactions on Software Engineering.

[56]  Wilfred J. Hansen,et al.  Measurement of program complexity by the pair: (Cyclomatic Number, Operator Count) , 1978, SIGP.

[57]  Brian W. Kernighan,et al.  Elements of Programming Style , 1974 .

[58]  Nicholas Beser,et al.  Foundations and experiments in software science , 1982, SCORE '82.