Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

Information entropy applied to software based control flow graphs

  • Original Article
  • Published:
International Journal of System Assurance Engineering and Management Aims and scope Submit manuscript

Abstract

Information theory, introduced by Shannon in the context of information transfer in communication channels, is used as a foundation for research in many diverse fields. The concept Entropy in terms of information theory is seen as the average amount of information or the rate of information produced when forming a message, element by element. Entropy has found broad application in many research fields and can also be applied in software engineering for quantifying the uncertainty associated with a software code. In this paper, information entropy and its application towards measuring software complexity are explored, along with the formulation of an information entropy based complexity measure that considers logical decision-making, processes, and software statement interaction patterns in control flow graphs mapped from actual software code. To broaden the application of the proposed metric, the execution times of nodes in the control flow graphs are also incorporated. Further, the metric is evaluated against eight different axioms that a software complexity measure should satisfy.

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

Access this article

Subscribe and save

Springer+ Basic
EUR 32.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or Ebook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9

Similar content being viewed by others

References

  • Adamchik VS (2009) Algorithmic complexity. School of Computer Science, Carnegie Mellon University, 2009. http://www.cs.cmu.edu/~adamchik/15121/lectures/Algorithmic%20Complexity/complexity.html

  • Bansiya Jagdish, Davis Carl, Etzkorn Letha (1999) An entropy-based complexity measure for object-oriented designs. Theory Pract Object Syst 5(2):111–118

    Article  Google Scholar 

  • Berlinger E (1980) An information theory based complexity measure. In: Proceedings of the national computer conference, May 19–22, 1980. ACM, New York

  • Bhojasia M (2017) C++ programming examples on numerical problems & algorithms. http://www.sanfoundry.com/cpp-programming-examples-numerical-problems-algorithms/. Accessed Oct 2017

  • Chaturvedi KK et al (2014) Predicting the complexity of code changes using entropy based measures. Int J Syst Assur Eng Manag 5(2):155–164

    Article  Google Scholar 

  • Fitzsimmons Ann, Love Tom (1978) A review and evaluation of software science. ACM Comput Surv (CSUR) 10(1):3–18

    Article  MATH  Google Scholar 

  • Hamer PG, Frewin GD (1982) MH Halstead’s software science-a critical examination.In: Proceedings of the 6th international conference on software engineering. IEEE Computer Society Press, Washingon

  • Harrison Warren (1992) An entropy-based measure of software complexity. IEEE Trans Softw Eng 18(11):1025–1029

    Article  Google Scholar 

  • Henry Sallie, Kafura Dennis (1981) Software structure metrics based on information flow. IEEE Trans Softw Eng 5:510–518

    Article  Google Scholar 

  • Jung W-S et al (2011) An entropy-based complexity measure for web applications using structural information. J Inf Sci Eng 27(2):595–619

    MathSciNet  Google Scholar 

  • McCabe TJ (1976) A complexity measure. IEEE Trans Softw Eng 4:308–320

    Article  MathSciNet  MATH  Google Scholar 

  • McCall JA (1977) Factors in software quality. US Rome Air development center reports

  • Mens T (2016) Research trends in structural software complexity. arXiv:1608.01533

  • Mills HD (1999) The management of software engineering, Part I: principles of software engineering. IBM Syst J 38(2.3):289–295

    Article  Google Scholar 

  • Oviedo EI (1980) Control flow, data flow and program complexity. In: Proceedings of IEEE COMPSAC, Chicago, IL, pp 146–152

  • Puschner Peter, Koza Ch (1989) Calculating the maximum execution time of real-time programs. Real-time Syst 1(2):159–176

    Article  Google Scholar 

  • Roca JL (1996) An entropy-based method for computing software structural complexity. Microelectron Reliab 36(5):609–620

    Article  Google Scholar 

  • Selvarani R et al (2009) Software metrics evaluation based on entropy. In: Ramachandran M (ed) Handbook of research on software engineering and productivity technologies: implications of globalization: implications of globalization. IGI Global, Hershey, p 139

    Google Scholar 

  • Shannon CE, Weaver W, Burks AW (1951) The mathematical theory of communication. Wiley, New York

    Google Scholar 

  • Snider G (2001) Measuring the entropy of large software systems. HP Laboratories Palo Alto, Tech. Rep, Burbank

    Google Scholar 

  • Solé RV, Valverde S (2004) Information theory of complex networks: On evolution and architectural constraints. In: Ben-Naim E, Frauenfelder H, Toroczkai Z (eds) Complex networks. Lecture notes in physics, vol 650. Springer, Berlin, Heidelberg

    Chapter  Google Scholar 

  • Van Vliet H, Van Vliet H, Van Vliet JC (1993) Software engineering: principles and practice, vol 3. Wiley, New York

    MATH  Google Scholar 

  • Venkatachalam S, Sairam N, Srinivasan B (2012) Code optimization using graph mining. Res J Appl Sci Eng Technol 4(19):3618–3622

    Google Scholar 

  • Wallace D, Watson AH, Mccabe TJ (1993) Structured testing: A testing methodology using the cyclomatic complexity metric. No. Special Publication (NIST SP)-500-235

  • Web.mit.edu, MATLAB Teaching Codes. [online] http://web.mit.edu/18.06/www/Course-Info/Tcodes.html. Accessed 14 July 2014

  • Weyuker Elaine J (1988) Evaluating software complexity measures. IEEE Trans Softw Eng 14(9):1357–1365

    Article  MathSciNet  Google Scholar 

  • Woodfield SN (1979) An experiment on unit increase in problem complexity. IEEE Trans Softw Eng 2:76–79

    Article  MATH  Google Scholar 

  • The Simplest Way to Create Flowcharts. code2flow - Online Interactive Code to Flowchart Converter, code2flow.com

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Aditya Akundi.

Ethics declarations

Conflict of interest

The author(s) declare(s) that there is no conflict of interest.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Akundi, A., Smith, E. & Tseng, TL. Information entropy applied to software based control flow graphs. Int J Syst Assur Eng Manag 9, 1080–1091 (2018). https://doi.org/10.1007/s13198-018-0740-y

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s13198-018-0740-y

Keywords