Information Theory-Based Measurement of Software

Chapter

Abstract

Abstractions of software may take the form of complex graphs. This chapter presents methods for measurement of hypergraph abstractions of software, using information theory, rather than counting. Even though the context of this chapter is software engineering, the measurement methods are applicable to any hypergraph. The software-metrics literature often assumes that complex software has more bugs than simple software. Thus, if one measures a software system, one can identify which modules are more likely to have bugs. This chapter presents measures of size, complexity, and coupling in terms of the amount of information, building on formal definitions of these software-metric families proposed by Briand, Morasca, and Basili. Kolmogorov complexity and its information theory-based approximations are the foundation for our measure of size. Excess entropy is the foundation for our measures of complexity and coupling. These concepts make the metrics sensitive to the configuration of hypergraph connections, and thus, may be preferred to corresponding counting metrics.

Keywords

Information theory Measurement Software engineering Software metrics 

Notes

Acknowledgements

This work was supported in part by grant CCR-0098024 from the National Science Foundation. The findings and opinions in this chapter belong solely to the author and are not necessarily those of the sponsor. We thank Sampath Gottipati, Rajiv Govindarajan, Taghi M. Khoshgoftaar, and Ye Chen, who were coauthors of related work with us. We thank the Empirical Software Engineering research group at Mississippi State University for helpful discussions.

References

  1. 1.
    Allen, E.B.: Information theory and software measurement. PhD thesis, Florida Atlantic University, Boca Raton, Florida, August 1995. Advised by Taghi M. KhoshgoftaarGoogle Scholar
  2. 2.
    Allen, E.B.: Measuring graph abstractions of software: An information-theory approach. In Proceedings: Eighth IEEE symposium on software metrics, pages 182–193, Ottawa, Canada, June 2002. IEEE Computer SocietyGoogle Scholar
  3. 3.
    Allen, E.B., Gottipati, S., Govindarajan, R.: Measuring size, complexity, and coupling of hypergraph abstractions of software: An information-theory approach. Software Qual. J. 15(2), 179–212 (2007)CrossRefGoogle Scholar
  4. 4.
    Allen, E.B., Khoshgoftaar, T.M.: Measuring coupling and cohesion: An information-theory approach. In Proceedings of the sixth international software metrics symposium, pages 119–127, Boca Raton, Florida, November 1999. IEEE Computer SocietyGoogle Scholar
  5. 5.
    Briand, L.C., Daly, J.W., Wüst, J.: A unified framework for cohesion measurement in object-oriented systems. Empir. Software Eng. Int. J. 3(1), 65–117 (1998)CrossRefGoogle Scholar
  6. 6.
    Briand, L.C., Daly, J.W., Wüst, J.K.: A unified framework for coupling measurement in object-oriented systems. IEEE Trans. Software Eng. 25(1), 91–121 (1999)CrossRefGoogle Scholar
  7. 7.
    Briand, L.C., El Emam, K., Morasca, S.: On the application of measurement theory in software engineering. Empir. Software Eng. Int. J. 1(1), 61–88 (1996). See [8, 37]Google Scholar
  8. 8.
    Briand, L.C., El Emam, K., Morasca, S.: Reply to “Comments to the paper: Briand, El Emam, Morasca: On the application of measurement theory in software engineering”. Empir. Software Eng. Int. J. 2(3), 317–322 (1997). See [7, 37]Google Scholar
  9. 9.
    Briand, L.C., Morasca, S., Basili, V.R.: Property-based software engineering measurement. IEEE Trans. Software Eng. 22(1), 68–85 (1996). See comments in [10, 28, 39]Google Scholar
  10. 10.
    Briand, L.C., Morasca, S., Basili, V.R.: Response to: Comments on “Property-based software engineering measurement”: Refining the additivity properties. IEEE Trans. Software Eng. 23(3), 196–197 (1997). See [9, 28]Google Scholar
  11. 11.
    Chaitin, G.J.: On the length of programs for computing finite binary sequences. J. ACM 13(4), 547–569 (1966)MathSciNetMATHCrossRefGoogle Scholar
  12. 12.
    Chaitin, G.J.: A theory of program size formally identical to information theory. J. ACM 22(3), 329–340 (1975)MathSciNetMATHCrossRefGoogle Scholar
  13. 13.
    Cover, T.M., Thomas, J.A.: Elements of Information Theory. Wiley, New York (1991)MATHCrossRefGoogle Scholar
  14. 14.
    Dehmer, M.: Information-theoretic concepts for the analysis of complex networks. Appl. Artif. Intell. 22(7), 684–706 (2008)CrossRefGoogle Scholar
  15. 15.
    El Emam, K., Benlarbi, S., Goel, N., Rai, S.N.: The confounding effect of class size on the validity of object-oriented metrics. IEEE Trans. Software Eng. 27(7), 630–650 (2001). See [16]Google Scholar
  16. 16.
    Evanco, W.M.: Comments on “The confounding effect of class size on the validity of object-oriented metrics”. IEEE Trans. Software Eng. 29(7), 670–672 (2003). See [15]Google Scholar
  17. 17.
    Fenton, N.E., Pfleeger, S.L.: Software Metrics: A Rigorous and Practical Approach, 2nd edn. PWS Publishing, London (1997)Google Scholar
  18. 18.
    Halstead, M.H.: Elements of Software Science. Elsevier, New York (1977)MATHGoogle Scholar
  19. 19.
    Khoshgoftaar, T.M., Allen, E.B.: Applications of information theory to software engineering measurement. Software Qual. J. 3(2), 79–103 (1994)CrossRefGoogle Scholar
  20. 20.
    Kitchenham, B.A., Pfleeger, S.L., Fenton, N.E.: Towards a framework for software measurement validation. IEEE Trans. Software Eng. 21(12), 929–944 (1995). See comments in [21, 27]Google Scholar
  21. 21.
    Kitchenham, B.A., Pfleeger, S.L., Fenton, N.E.: Reply to: Comments on “Towards a framework for software measurement validation”. IEEE Trans. Software Eng. 23(3), 189 (1997). See [20, 27, 36]Google Scholar
  22. 22.
    Kolmogorov, A.N.: Logical basis for information theory and probability theory. IEEE Trans. Inform. Theory 14(5), 662–664 (1968)MathSciNetMATHCrossRefGoogle Scholar
  23. 23.
    Li, M., Vitányi, P.M.B.: Two decades of applied Kolmogorov complexity. In Proceedings of the third annual structure in complexity theory conference, pages 80–101, Washington, DC, June 1988Google Scholar
  24. 24.
    McCabe, T.J.: A complexity measure. IEEE Trans. Software Eng. 2(4), 308–320 (1976)MathSciNetCrossRefGoogle Scholar
  25. 25.
    Mohanty, S.N.: Entropy metrics for software design evaluation. J. Syst. Software 2, 39–46 (1981)CrossRefGoogle Scholar
  26. 26.
    Morasca, S., Briand, L.C.: Towards a theoretical framework for measuring software attributes. In Proceedings of the Fourth International Symposium on Software Metrics, pages 119–126, Albuquerque, New Mexico, November 1997. IEEE Computer SocietyGoogle Scholar
  27. 27.
    Morasca, S., Briand, L.C., Basili, V.R., Weyuker, E.J., Zelkowitz, M.V.: Comments on “Towards a framework for software measurement validation”. IEEE Trans. Software Eng. 23(3), 187–188 (1997). See [20, 36]Google Scholar
  28. 28.
    Poels, G., Dedene, G.: Comments on “Property-based software engineering measurement”: Refining the additivity properties. IEEE Trans. Software Eng. 23(3), 190–195 (1997). See [9]Google Scholar
  29. 29.
    Schneidewind, N.F.: Methodology for validating software metrics. IEEE Trans. Software Eng. 18(5), 410–422 (1992)CrossRefGoogle Scholar
  30. 30.
    Schütt, D.: On a hypergraph oriented measure for applied computer science. In Digest of Papers: COMPCON 77 Fall, pages 295–296, Washington, DC, September 1977. IEEE Computer Society. Abstract onlyGoogle Scholar
  31. 31.
    Shannon, C.E., Weaver, W.: The Mathematical Theory of Communication. University of Illinois Press, Urbana, Illinois (1949)MATHGoogle Scholar
  32. 32.
    Solomonoff, R.J.: A formal theory of inductive inference, part 1 and part 2. Inform. Contr. 7, 1–22, 224–254 (1964)MathSciNetMATHCrossRefGoogle Scholar
  33. 33.
    van Emden, M.H.: Hierarchical decomposition of complexity. Machine Intelligence 5, 361–380 (1970). See also [34] for detailsGoogle Scholar
  34. 34.
    van Emden, M.H.: An Analysis of Complexity. Number 35 in Mathematical Centre Tracts. Mathematisch Centrum, Amsterdam (1971)Google Scholar
  35. 35.
    Watanabe, S.: Information theoretical analysis of multivariate correlation. IBM J. Res. Dev. 4(1), 66–82 (1960)MATHCrossRefGoogle Scholar
  36. 36.
    Weyuker, E.J.: Evaluating software complexity measures. IEEE Trans. Software Eng. 14(9), 1357–1365 (1988)MathSciNetCrossRefGoogle Scholar
  37. 37.
    Zuse, H.: Comments to the paper: Briand, Emam, Morasca: On the application of measurement theory in software engineering. Empir. Software Eng. Int. J. 2(3), 313–316 (1997). See [7, 8]Google Scholar
  38. 38.
    Zuse, H.: A Framework for Software Measurement. Walter de Gruyter and Co., Berlin (1997)Google Scholar
  39. 39.
    Zuse, H.: Reply to: “Property-based software engineering measurement”. IEEE Trans. Software Eng. 23(8), 533 (1997). See [9]Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2011

Authors and Affiliations

  1. 1.Department of Computer Science and EngineeringMississippi State UniversityStarkvilleUSA

Personalised recommendations