This Article 
 Bibliographic References 
 Add to: 
An Entropy-Based Measure of Software Complexity
November 1992 (vol. 18 no. 11)
pp. 1025-1029

It is proposed that the complexity of a program is inversely proportional to the average information content of its operators. An empirical probability distribution of the operators occurring in a program is constructed, and the classical entropy calculation is applied. The performance of the resulting metric is assessed in the analysis of two commercial applications totaling well over 130000 lines of code. The results indicate that the new metric does a good job of associating modules with their error spans (averaging number of tokens between error occurrences).

[1] E. Berlinger, "An information theory based complexity measure," inProc. 1980 Nat. Computer Conf., pp. 773-779.
[2] C. Cook, "Information theory metric for assembly language," inProc. Third Annual Oregon Workshop on Software Metrics, Mar. 1991.
[3] J. Davis and R. LeBlanc, "A study of the applicability of complexity measures,"IEEE Trans. Software Eng., vol. 14, pp. 1366-1372, Sept. 1988.
[4] M. Halstead,Elements of Software Science. New York: Elsevier-North Holland, 1977.
[5] R. Hamming,Coding and Information Theory. Englewood Cliffs, NJ: Prentice-Hall, 1980.
[6] W. Harrison, K. Magel, R. Kluczney, and A. DeKock, "Software complexity metrics and their application to maintenance,"IEEE Computer, pp. 65-79, Sept. 1982.
[7] E. Weyuker, "Evaluating software complexity measures,"IEEE Trans. Software Eng., vol. 14, pp. 1357-1365, Sept. 1988.
[8] H. Zuse,Software Complexity: Measures and Metrics, Berlin, Germany: Walter de Gruyter, 1991.
[9] S. Zweben and M. Halstead, "The frequency distribution of operators in PL/I programs,"IEEE Trans. Software Eng., vol. SE-5, pp. 91-95, Mar. 1979.

Index Terms:
entropy-based measure; software complexity; average information content; empirical probability distribution; classical entropy calculation; performance; probability; software metrics
W. Harrison, "An Entropy-Based Measure of Software Complexity," IEEE Transactions on Software Engineering, vol. 18, no. 11, pp. 1025-1029, Nov. 1992, doi:10.1109/32.177371
Usage of this product signifies your acceptance of the Terms of Use.