Skip to main content
Log in

Applications of information theory to software engineering measurement

  • Papers
  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

In the 1990s, there is an emphasis on finding ways to lower software cost and improve quality. Thus, it is very important to quantify and measure factors, such as software complexity, which have been shown to affect cost and quality. Researchers have defined many software complexity measures, and have exploited them to identify fault-prone program modules, to predict the number of faults that testing and operation will reveal, or to assess maintainability. Information theory based software measures are attractive because they quantify, with a standard unit, the amount of information in an abstraction of a program. The unit of measure is a bit. The purpose of this paper is to survey the state of the art of applications of information theory to software measurement, beginning in 1972. Information theory based measures have been applied to most phases of the development lifecycle. However, there have been relatively few papers. Most measures have not been empirically validated. One can conclude that the field is in its infancy. Relevant concepts of information theory are briefly described, and tables summarize the references from various perspectives. Since the amount of research, thus far, has been very limited, researchers will find numerous opportunities to validate, refine, and improve the measures presented here. Such research should give future practitioners useful software measures for each phase of the lifecycle.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Basili, V.R., Selby, R.W. and Hutchens, D.H. (1986) Experimentation in software engineering. IEEE Transactions on Software Engineering, SE-12(7), 733–743.

    Google Scholar 

  • Berlinger, E. (1980) An information theory based complexity measure, in Proceedings of the National Computer Conference, pp. 773–779.

  • Boloix, G. and Robillard, P.N. (1988) Interconnectivity metric for software complexity. Information Systems and Operations Research, 26(1), 17–39.

    Google Scholar 

  • Chanon, R.N. (1973) On a measure of program structure, PhD thesis, Carnegie-Mellon University, Pittsburgh, PA.

  • Chanon, R.N. (1974) On a measure of program structure, in Proceedings of Programming Symposium, Paris, Robinet, B. (ed) (Springer-Verlag) pp. 9–16. (See also Chanon (1973).)

  • Chen, E.T. (1978) Program complexity and programmer productivity. IEEE Transactions on Software Engineering, SE-4(3), 187–194.

    Google Scholar 

  • Cook, C.R. (1991) Information theory metric for assembly language, in Proceedings of Third Annual Oregon Workshop on Software Metrics, Silver Falls, OR. Portland State University, Oregon Center for Advanced Technology Education.

  • Cook, M.L. (1982) Software metrics: an introduction and annotated bibliography. ACM Software Engineering Notes, 7(2), 41–60.

    Google Scholar 

  • Côté, V., Bourque, P., Oligny, S. and Rivard, N. (1988) Software metrics: an overview of recent results. Journal of Systems and Software, 8, 121–131.

    Google Scholar 

  • Coulter, N.S., Cooper, R.B. and Solomon, M.K. (1987) Information-theoretic complexity of program specifications. Computer Journal, 30(3), 223–227.

    Google Scholar 

  • Cover, T.M. and Thomas, J.A. (1991) Elements of Information Theory (John Wiley & Sons, New York).

    Google Scholar 

  • Curtis, B. (1979) In search of software complexity, in Proceedings of Workshop on Quantitative Models for Reliability, Complexity and Cost, Washington, DC, IEEE Computer Society, pp. 95–106.

  • Davis, J.S. and LeBlanc, R.J. (1988) A study of the applicability of complexity measures. IEEE Transactions on Software Engineering, 14(9), 1366–1372.

    Google Scholar 

  • Fenton, N.E. (1992) When a software measure is not a measure. Software Engineering Journal, 7(5), 357–362.

    Google Scholar 

  • Halstead, M. (1977) Elements of Software Science (Elsevier, New York).

    Google Scholar 

  • Harrison, W. (1984) Bibliography on software complexity. ACM SIGPLAN Notices, 19(2), 17–27.

    Google Scholar 

  • Harrison, W. (1992) An entropy-based measure of software complexity, IEEE Transactions on Software Engineering, 18(11), 1025–1029.

    Google Scholar 

  • Hellerman, L. (1972) A measure of computational work. IEEE Transactions on Computers, C-21(5), 439–446.

    Google Scholar 

  • Henry, S. and Wake, S. (1991) Predicting maintainability with software quality metrics. Software Maintenance: Research and Practice, 3, 129–143.

    Google Scholar 

  • Jensen, H.A. and Vairavan, K. (1985) An experimental study of software metrics for real-time software. IEEE Transactions on Software Engineering, SE-11(2), 231–234.

    Google Scholar 

  • Khoshgoftaar, T.M., Lanning, D.L. and Pandya, A.S. (1994) A comparative study of pattern recognition techniques for quality evaluation of telecommunications software. IEEE Journal on Selected Areas in Communications, 12(2), 279–291.

    Google Scholar 

  • Khoshgoftaar, T.M. and Munson, J.C. (1990) Predicting software development errors using software complexity metrics. IEEE Journal on Selected Areas in Communications, 8(2), 253–261.

    Google Scholar 

  • Khoshgoftaar, T.M. and Munson, J.C. (1992a) Applications of a relative complexity metric for predicting source code complexity at the design phase, in Proceedings of the Second Software Engineering Research Forum, Melbourne, FL, pp. 191–198.

  • Khoshgoftaar, T.M. and Munson, J.C. (1992b) A measure of software system complexity and its relationship to faults, in Proceedings of 1992 International Simulation Technology Conference SimTec '92 and WNN '92, Clear Lake, TX, pp. 267–272.

  • Khoshgoftaar, T.M., Munson, J.C. and Lanning, D.L. (1993) Dynamic system complexity, in Proceedings of First International Software Metrics Symposium, Baltimore, MD, IEEE Computer Society Technical Committee on Software Engineering, pp. 129–140.

  • Lew, K.S., Dillon, T.S. and Forward, K.E. (1988) Software complexity and its impact on software reliability. IEEE Transitions on Software Engineering, 14(11), 1645–1655.

    Google Scholar 

  • McCabe, T.J. (1976) A complexity measure. IEEE Transactions on Software Engineering, SE-2(4), 308–320.

    Google Scholar 

  • Mohanty, S.N. (1979) Models and measurements for quality assessment of software. Computing Surveys, 11(3), 251–275.

    Google Scholar 

  • Mohanty, S.N. (1981) Entropy metrics for software design evaluation. Journal of Systems and Software, 2, 39–46.

    Google Scholar 

  • Mowshowitz, A. (1968a) Entropy and the complexity of graphs: I. An index of the relative complexity of a graph. Bulletin of Mathematical Biophysics, 30(1), 175–204.

    Google Scholar 

  • Mowshowitz, A. (1968b) Entropy and the complexity of graphs: II. The information content of digraphs and infinite graphs. Bulletin of Mathematical Biophysics, 30(2), 225–240.

    Google Scholar 

  • Mowshowitz, A. (1968c) Entropy and the complexity of graphs: III. Graphs with prescribed information content. Bulletin of Mathematical Biophysics, 30(3), 387–414.

    Google Scholar 

  • Mowshowitz, A. (1968d) Entropy and the complexity of graphs: IV. Entropy measures and graphical structure. Bulletin of Mathematical Biophysics, 30(4), 533–546.

    Google Scholar 

  • Munson, J.C. and Khoshgoftaar, T.M. (1989) The dimensionality of program complexity, in Proceedings of the 11th International Conference on Software Engineering, Pittsburgh, PA, pp. 245–253.

  • Munson, J.C. and Khoshgoftaar, T.M. (1990) Applications of a relative complexity metric for software project management. Journal of Systems and Software, 12, 283–291.

    Google Scholar 

  • Munson, J.C. and Khoshgoftaar, T.M. (1991) Some primitive control flow metrics, in Proceedings of the Third Annual Oregon Workshop on Software Metrics, Silver Falls, OR. Portland State University, Oregon Center for Advanced Technology Education.

  • Munson, J.C. and Khoshgoftaar, T.M. (1992a) The detection of fault-prone programs. IEEE Transactions on Software Engineering, 18(5), 423–433.

    Google Scholar 

  • Munson, J.C. and Khoshgoftaar, T.M. (1992b) Measuring dynamic program complexity. IEEE Software, 9(6), 48–55.

    Google Scholar 

  • Munson, J.C. and Khoshgoftaar, T.M. (1993) Measurement of data structure complexity. Journal of Systems and Software, 20(2), 217–225.

    Google Scholar 

  • Musa, J.D. (1993) Operational profiles in software reliability engineering. IEEE Software, 10(2), 14–32.

    Google Scholar 

  • Parnas, D.L. (1972) On the criteria to be used in decomposing systems. Communications of the ACM, 15(12), 1053–1058.

    Google Scholar 

  • Paulson, D. and Wand, Y. (1992) An automated approach to information systems decomposition. IEEE Transactions on Software Engineering, 18(3), 174–189.

    Google Scholar 

  • Porter, A.A. and Selby, R.W. (1990) Empirically guided software development using metric-based classification trees. IEEE Software, 7(2), 46–54.

    Google Scholar 

  • Ramirez, D.E. (1989) On two nonequivalent measures of complexity. IEEE Transactions on Systems, Man, and Cybernetics, 19(5); 1073–1077. (See also van Emden (1971)).

    Google Scholar 

  • Robillard, P.N. and Boloix, G. (1989) Interconnectivity metrics: A new metric showing how a program is organized. Journal of Systems and Software, 10, 29–39.

    Google Scholar 

  • Samadzadeh, M.H. and Edwards, W.R. (1988) A classification model of software comprehension, in Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences, Volume II, Shriver, B.D. (ed.) Kailua-Kona, HI. IEEE Computer Society Press, p. 541. (Abstract only.)

    Google Scholar 

  • Schneidewind, N.F. (1992) Methodology for validating software metrics. IEEE Transactions on Software Engineering, 18(5), 410–422.

    Google Scholar 

  • Schütt, D. (1977) On a hypergraph oriented measure for applied computer science, in Digest of Papers: COMPCON 77 Fall, Washington, DC. IEEE Computer Society, pp. 295–296. (Abstract only.)

    Google Scholar 

  • Shannon, C.E. and Weaver, W. (1949) The Mathematical Theory of Communication (University of Illinois Press, Urbana, IL).

    Google Scholar 

  • Shen, V.Y., Cote, S.D. and Dunsmore, H.E. (1983) Software science revisited: A critical analysis of the theory and its empirical support. IEEE Transactions on Software Engineering, SE-9(2), 155–165.

    Google Scholar 

  • Torres, W.R. and Samadzadeh, M.H. (1991) Software reuse and information theory based metrics, in Proceedings of 1991 Symposium on Applied Computing, Kansas City, MO. IEEE Computer Society Press, pp. 437–446.

  • Troy, D.A. and Zweben, S.H. (1981) Measuring the quality of structured designs. Journal of Systems and Software, 2, 113–120.

    Google Scholar 

  • van Emden, M.H. (1970) Hierarchical decomposition of complexity. Machine Intelligence, 5, 361–380. (See also van Emden (1971) for details.)

    Google Scholar 

  • van Emden, M.H. (1971) An Analysis of Complexity. Number 35 in Mathematical Centre Tracts (Mathematisch Centrum, Amsterdam). (See also Ramirez (1989).)

    Google Scholar 

  • WaguespackJr., L.J. and Badlani, S. (1987) Software complexity assessments: An introduction and annotated bibliography. ACM Software Engineering Notes, 12(4), 52–71.

    Google Scholar 

  • Watanabe, S. (1960) Information theoretical analysis of multivariate correlation. IBM Journal of Research and Development, 4(1), 66–82.

    Google Scholar 

  • Weyuker, E.J. (1988) Evaluating software complexity measures. IEEE Transactions on Software Engineering, 14(9), 1357–1365.

    Google Scholar 

  • Zhuo, F., Lowther, B., Oman, P. and Hagemeister, J. (1993) Constructing and testing software maintainability assessment models, in Proceedings of the First International Software Metrics Symposium, Baltimore, MD. IEEE Computer Society Technical Committee on Software Engineering, pp. 61–70.

  • Zuse, H. (1991) Software Complexity: Measures and Methods (deGruyter, Berlin).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Khoshgoftaar, T.M., Allen, E.B. Applications of information theory to software engineering measurement. Software Quality Journal 3, 79–103 (1994). https://doi.org/10.1007/BF00213632

Download citation

  • Received:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00213632

Keywords

Navigation