Skip to main content

A methodology for development of software composite-metrics for program control-flow structure

Abstract

This paper reports on a pioneer effort for the establishment of a software composite-metric with key capability of distinguishing among different structures. As a part of this effort most of the previously proposed program control-flow complexity metrics are evaluated. It is observed that most of these metrics are inherently limited in distinguishing capability. However, the concept of composite metrics is potentially useful for the development of a practical metrics. This paper presents a methodology for the development of a practical composite metric using statistical techniques. The proposed metric differs from all previous metrics in 2 ways: (1) It is based on an overall structural analysis of a given program in deeper and broader context. It captures various structural measurements taken from all existing structural levels; (2) It unifies a set of 19 important structural metrics. The compositing model of these metrics is based on statistical techniques rather than on an arbitrary method. Experinces with the proposed metric clearly indicate that it distinguishes different structures better than the previous metrics.

This is a preview of subscription content, access via your institution.

References

  1. [1]

    B. W. Boehm, Software and its impact: A quantitative assessment.Datamation, 1973, 129, 48–49.

    Google Scholar 

  2. [2]

    B. W. Boehm, The hardware/software cost ratio: Is it myth?IEEE Computer, 1983, 3, 78–80.

    Google Scholar 

  3. [3]

    Perlis, Sawayed and Shaw, Software Metrics: An Analysis and Evaluation. The MIT Press, 1981.

  4. [4]

    V. R. Basili, and D. H. Hutches, An empirical study of a syntactic complexity family.IEEE Trans. Soft. Engg., 1983, SE-9 (6), 664–672.

    Article  Google Scholar 

  5. [5]

    E. J. Wayheker, Evaluating software complexity measures.IEEE Trans. Soft. Engg., 1988, 14 (9), 1357–1365.

    Article  Google Scholar 

  6. [6]

    V. R. Basili and R. W. Reiter, Evaluating Automable Measures of Software Development. in Proc. IEEE Workshop on Quantitative Software Models for Reliability, Complexity and Cost, 107–116, 1980.

  7. [7]

    L. A. Belady, Software Complexity, in Software Phenomenology, Atlanta: AIRMICS, 371–383, 1977.

    Google Scholar 

  8. [8]

    D. E. Bell and J. E. Sullivan, Further Investigations into the Complexity of Software. Tech. Rep. MTR-2874, Bedford, MA: MITRE, 1974.

    Google Scholar 

  9. [9]

    G. Benyon Tinker, Complexity Measures in an Evolving Large System. in Proc. IEEE Workshop on Quantitative Software Models for Reliability, Complexity and Cost, 117–127, 1980.

  10. [10]

    W. T. Kelvin, Popular Lectures and Addresses, 1891–1894. Quoted by M. L. Shooman in the Introduction to Proc. IEEE Workshop on Quantitative Software Models for Reliablity, Complexity and Cost, 1980.

  11. [11]

    B. Curtis, In Search of Software Complexity. in Proc. IEEE Workshop on Quantitative Software Models for Reliability, Complexity and Cost, 95–106, 1980.

  12. [12]

    Data Analysis Center for Software, Quantitative Software Models. (SR R-1) Griffiss AFB, NY: Rome Air Development Center, 1979.

  13. [13]

    T. C. Jones, Measuring programming quality and productivity.IBM Syst. J., 1978, 17 (1), 39–63.

    Article  Google Scholar 

  14. [14]

    John S. Davis and Richard J. Leblanc, A study of the applicability of complexity measures.IEEE Trans. Soft. Engg., 1988, 14 (9), 1366–1372.

    MATH  Article  Google Scholar 

  15. [15]

    Lem O. Ejiogu, The critical issues of software metrics.SIGPLAN Notices, 1987, 22 (3).

  16. [16]

    N. E. Fenton and Agnes Kaposi, Metrics and software structure.Information and Software Technology, 1987, 29 (8).

  17. [17]

    Ion Ivan and Ashire Romulus, Program complexity: comparative analysis, hierarchy, classification.SIGPLAN Notices, 1987, 22 (4).

  18. [18]

    S. D. Conte, H. E. Dunsmore and V. Y., Shen, Software Engineering Metrics and Models. Benjamin Publishing Co., 1984.

  19. [19]

    A. R. Feuer and E. G. Fowlkes, Some Results from an Empirical Study of Computer Software. in Proc. 4th IEEE. Int. Conf. Software Engineering, 351–355, 1979.

  20. [20]

    Bache, R., Metricating A-KINDRA BT Project 610287 Document W021, South Bank 1987.

  21. [21]

    T. A. Thayer, Understanding Software Through Empirical Reliability Analysis. in 1975 Spring Joint Comput. Conf. AFIPS Conf. Proc. Vol. 44, Montvale, NJ: AFIPS Press, 335–341, May 1975.

    Google Scholar 

  22. [22]

    V. R. Basili and H. D. Rombach, TAME: Integerating Measurement into Software Environments TR-1764. TAME-TR-1-1987.

  23. [23]

    J. K. Navlakz, A survey of system complexity metrics.The Computer Journal, 1987, 30 (3).

  24. [24]

    Volney Rodriguez and Tsai Weitek, Software Metrics Interpretation through Experimentation. COMPSAC, 1986, 368–374.

  25. [25]

    H. D. Mills, The Complexity of Programs. in Program Test Methods, W. C. Hetzel, Ed., 1973.

  26. [26]

    T. J. McCabe, A complexity measure.IEEE Trans. Soft. Engg., 1976, SE-2, 308–320.

    Article  MathSciNet  Google Scholar 

  27. [27]

    H. F. LI and W. K. Cheung, An empirical study of software metrics.IEEE Trans. on Soft. Engg., 1987, SE-13 (6), 697–708.

    Article  Google Scholar 

  28. [28]

    J. Szentes, SOMIKA: An Automated System for Measuring Software Quality. Software Qualitaetssicherung, German Chapter on ACM, 188–202, 1982.

  29. [29]

    T. Gilb, Software Metrics. Cambridge, MA: Winthrop, 1977.

    Google Scholar 

  30. [30]

    Paul Piwowarski, A nesting complexity measure.SIGPLAN Notices, 1982, 17 (9), 44–50.

    Article  Google Scholar 

  31. [31]

    M. R. Woodward, M. A. Hannell and D. Hedley, A measure of control flow complexity in program text.IEEE Trans. Soft. Engg., 1979, SE-5, 45–50.

    Article  Google Scholar 

  32. [32]

    P. A. Szulewski and M. H. Whiteworth, The Measurement of Control Flow and Data-Flow Complexity in Software Designs. Proc. of 4th IEEE Computer Software and Applications Conference, 735–743, 1980.

  33. [33]

    J. Guttag, Abstract data types and the development of data structures. Conference on Data, Salt Lake City, 1976.CACM, 1977, 20(6), 396–404.

    MATH  Google Scholar 

  34. [34]

    N.F. Schneidewind, Software Metrics for Aiding Program Development and Debugging. Proc. NCC., 989–994, 1979.

  35. [35]

    L.A. Belady, and C.J. Evangelisti, System partitioning and its measure.The Journal of System and Software 2, 23–29, 1981.

    Article  Google Scholar 

  36. [36]

    H.E. Dunsmore, Software Metrics: An Overview of Evolving Method, Empirical Foundations of Information and Software Science, Proc. of the First Symposium, Atlanta, GA., 183–192, 1982.

  37. [37]

    E.T. Chen, Program complexity and programmer productivity.IEEE Trans. Soft., Engg., 1978, SE-4, 187–194.

    Article  Google Scholar 

  38. [38]

    W. Harrison and K. Magel, Applying software complexity metrics to program maintenance.Computer, 1982, (9).

  39. [39]

    K. Magel, Efficient calculation of the scope program complexity metric.SIGPLAN Notices, 1986, 21(2).

  40. [40]

    G.J. Myers, An extension to the cyclomatic measure of program complexity,SIGPLAN Notices, 1977, 12(10), 61–64.

    Article  Google Scholar 

  41. [41]

    W.J. Hansen, Measurement of program complexity by the pair (Cyclomatic Number, Operator Count).SIGPLAN Notices, 1979, 13, 61–64.

    Google Scholar 

  42. [42]

    Monika Schmidt, A complexity measure based on selection and nesting.ACM SIGMETRICS-Performance Evaluation Review, 1985, 13(1).

  43. [43]

    Bina Ramamurthy and Austin Melton, A synthesis of software science measures and cyclomatic number.IEEE Trans. on Soft. Engg., 1988, 14(8), 1116–1121.

    Article  Google Scholar 

  44. [44]

    W.J. Howatt, and A.L. Baker, Definition and Design Tool for Program Control Structure Measures. COMPSAC 85, 214–220, 198.

  45. [45]

    R. Moawad, and M. Hassan, Structural Approach Towards Software Reliability Evaluation. COMPSAC 83, 9–16, 1983.

  46. [46]

    F. Stetter, Software Technologies. Wissench Aftsverlag, Bibliographisches Institute Manheim, Zurich, 1981.

    Google Scholar 

  47. [47]

    E. Oviedo, Control Flow, Data Flow and Programming Complexity. Proc. of COMPSAC 80, Chicago IL, pp. 146–152, 1980.

  48. [48]

    S. Jayaprakash, K.B. lakshman and P.K. Sinha, MEBOW: A Comprehensive Measure of Control Flow Complexity, COMPSAC 87, pp. 238–244, 1987.

  49. [49]

    S. Presier, Combined network complexity measures.IBM Journal of Research and Development, 15–27, Jan. 1984.

  50. [50]

    A.T. Tayer and M. Lipow, Software Reliability: A Study of Large Project Reliability. North Holland Publishing Company, 1978.

  51. [51]

    D. Potier, J.L. Albin and R. Ferreol, Experiments with Computer Software Complexity and Reliability. COMPSAC 82, 94–103, 1982.

    Google Scholar 

  52. [52]

    N. Schneidewind and H.M. Hoffman, An experiment in software error data collection and analysis.IEEE Trans. Soft. Engg., 1979, SE-5, 276–286.

    Article  Google Scholar 

  53. [53]

    J.E. Sullivan, Measuring Complexity of Computer Software. Mitre Corporation, MTR-2648, Vol. 5, June 1973.

  54. [54]

    A.R. Feuer and B.E. Fowlkes, Relating Computer Maintainability to Software Measures. National Computer Conference, 1003–1012, 1979.

  55. [55]

    A.L. Baker and S.H. Zweben, A Comparison of Measures of Control Flow Complexity. In Proc., COMPSAC 79. New York: IEEE, 1979, 695–701.

    Google Scholar 

  56. [56]

    S.C. Ntafos, A comparison of some structural testing strategies.IEEE Trans. on Soft. Engg., 1986, 14(6), 868–874.

    Article  Google Scholar 

  57. [57]

    F. F. Walters, Applications of Metrics to a Software Quality Management (QM) Program. J.D. Cooper and M.J. Fisher, Eds., Software Quality Management, New York, Petrocelli, 143–157. 1979.

    Google Scholar 

  58. [58]

    S.S. Yau and J.S. Collofellow, Some Stability Measures for Software Maintenance. in Proc. IEEE COMPSAC 79, 674–679, 1979.

    Google Scholar 

  59. [59]

    D. Kafura and R. Greereddy, The use of software complexity metrics in software maintenance.IEEE Trans. on Soft. Engg., 1987, SE-13(3).

  60. [60]

    J.L. Elshoff and M. Marcotty, On the use of the cyclomatic number to measure program complexity.SIGPLAN Notices, 1978, 12, 29–39.

    Google Scholar 

  61. [61]

    D.J. Blaine and R.A. Kemmerer, Complexity measures for assembly language programs.The Journal of System and Software, 1985, (5), 229–245.

    Article  Google Scholar 

  62. [62]

    Brain A. Nejmch, NAPTH: A measure of execution path complexity and its applications.CACM, 1988, 31(2), 188–200.

    Google Scholar 

  63. [63]

    N. Deo, Graph Theory with Application to Engineering and Computer Science, Prentice-Hall, New Jersey, 1974.

    Google Scholar 

  64. [64]

    N.E. Fenton, The Structural Complexity of Flowgraphs in Graph Theory and Its Applications to Algorithms and Computer Science, J. Willey and Sons, 1985.

  65. [65]

    V. Rodriguez and W.T. Tsai, A tool for discriminant analysis and classification of software metrics.Software Development, Butterworth & Co., 1987, 29(3).

  66. [66]

    W.S. Torgerson, Theory and Methods of Scaling. New York, John Wiley, 1958.

    Google Scholar 

  67. [67]

    S.S. Stevens, Measurement in G.M. Maranell Ed., Scaling: A Source-book for Behavioral Scientists. Chicago, IL: Aldine, 22–41, 1974.

    Google Scholar 

  68. [68]

    D.F. Morrison, Multivariate Statistical Methods. New York; McGraw Hills, 1967.

    MATH  Google Scholar 

  69. [69]

    SAS User's Guide: SAS Institute of Statistical Analysis System, 1982.

  70. [70]

    J.C. Tieman, An efficient search algorithm to find the elementary circuits of a grpah.CACM, 1970, 13(12), 722–726.

    Google Scholar 

  71. [71]

    F.E. Allen, Control flow analysis.SIGPLAN Notice, 1970, 7, 1–19.

    Article  Google Scholar 

  72. [72]

    Kernighan and Plaugher, The Elements of Programming Style. McGraw-Hills, 1974.

Download references

Author information

Affiliations

Authors

Corresponding author

Correspondence to Aftab Ahmad.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Ahmad, A. A methodology for development of software composite-metrics for program control-flow structure. J. of Comput. Sci. & Technol. 7, 202–218 (1992). https://doi.org/10.1007/BF02946570

Download citation

Keywords

  • Complexity Measure
  • Program Structure
  • Program Complexity
  • Sequential Machine
  • Software Metrics