A Comparison of Measures of Control Flow Complexity

In attempting to describe the quality of computer software, one of the more frequently mentioned measurable attributes is complexity of the flow of control. During the past several years, there have been many attempts to quantify this aspect of computer programs, approaching the problem from such diverse points of view as graph theory and software science. Most notable measures in these areas are McCabe's cyclomatic complexity and Halstead's software effort. More recently, Woodward et al. proposed a complexity measure based on the number of crossings, or "knots," of arcs in a linearization of the flowgraph.

[1]  Michael Marcotty,et al.  A genealogy of control structures , 1975, CACM.

[2]  John D. Gannon,et al.  Programming factors - language features that help explain programming complexity , 1978, ACM '78.

[3]  Tom Love,et al.  A Review and Evaluation of Software Science , 1978, CSUR.

[4]  Albert L. Baker Software science and program complexity measures , 1979 .

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

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

[7]  Albert L. Baker,et al.  The Use of Software Science in Evaluating Modularity Concepts , 1979, IEEE Transactions on Software Engineering.

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

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

[10]  Zohar Manna,et al.  The Translation of 'Go To' Programs to 'While' Programs , 1971, IFIP Congress.

[11]  Donald E. Knuth,et al.  Structured Programming with go to Statements , 1974, CSUR.

[12]  Tom Love,et al.  An experimental investigation of the effect of program structure on program understanding , 1977, Language Design for Reliable Software.

[13]  A. Bonato,et al.  Graphs and Hypergraphs , 2022 .

[14]  Laurence Mark Weissman,et al.  A methodology for studying the psychological complexity of computer programs. , 1974 .

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

[16]  Irving Wladawsky,et al.  An interactive business definition system , 1974 .

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

[18]  Ronald D. Gordon,et al.  Measuring Improvements in Program Clarity , 1979, IEEE Transactions on Software Engineering.

[19]  Robert W. Floyd,et al.  Notes on Avoiding "go to" Statements , 1971, Information Processing Letters.

[20]  Edsger W. Dijkstra,et al.  Go To Statement Considered Harmful , 2022, Software Pioneers.