The Challenge of Software Complexity

  • Kevin MooreEmail author
  • Michel Wermelinger
Part of the Springer Proceedings in Complexity book series (SPCOM)


Given the interdisciplinary nature of complex network studies, there is a practical need for dialogue between theorists proposing graph measurements and those seeking to apply them into a domain. We consider this in the domain of software complexity by highlighting the distinctive nature of networks representing software’s internal structure and also by describing the application of one such proposal, the offdiagonal complexity, against two examples of software. The results showed the promise of using complex networks to measure software complexity but also demonstrated the confounding effects of size. Based on that application we make proposals to improve the dialogue between theory and experiment.


Software complexity Software evolution Graph theory Software metrics Offdiagonal 



We thank Jim Hague, from the Physics Department, and Jozef Siran, from the Mathematics Department, for comments on a draft of this paper.


  1. 1.
    Apache tomcat. Open source software implementation of java servlet and javaserver pages.
  2. 2.
    DependencyFinder. A suite of tools for analyzing compiled java code.
  3. 3.
    Doxygen. A documentation system.
  4. 4.
    Netbeans. The smarter and faster way to code.
  5. 5.
    netMetric. A tool for analysing large java codebases.
  6. 6.
    Anastasiadis A, Costa L, Gonzáles C, Honey C, Széliga M, Terhesiu D (2005) Measures of structural complexity in networks. In: Complex systems summer school, Santa Fe Google Scholar
  7. 7.
    Bird C, Nagappan N, Gall H, Murphy B, Devanbu P (2009) Putting it all together: Using socio-technical networks to predict failures. In: The 20th international symposium on software reliability engineering, ISSRE’09. IEEE Press, New York, pp 109–119 CrossRefGoogle Scholar
  8. 8.
    Brooks FJ (1987) No silver bullet essence and accidents of software engineering. IEEE Comput 20(4):10–19 MathSciNetCrossRefGoogle Scholar
  9. 9.
    Cardoso A, Crespo R, Kokol P (2000) Two different views about software complexity. In: Proceedings of European software conference on metrics (ESCOM). Elsevier, Amsterdam, pp 433–438 Google Scholar
  10. 10.
    Claussen JC (2007) Offdiagonal complexity: a computationally quick complexity measure for graphs and networks. Physica A 375(1):365–373 ADSCrossRefGoogle Scholar
  11. 11.
    Claussen JC (2008) Offdiagonal complexity: a computationally quick network complexity measure—application to protein networks and cell division. In: Mathematical modeling of biological systems, vol II, pp 279–287. arXiv:0712.4216 Google Scholar
  12. 12.
    Concas G, Marchesi M, Pinna S, Serra N (2007) Power-laws in a large object-oriented software system. IEEE Trans Softw Eng 33(10):687–708 CrossRefGoogle Scholar
  13. 13.
    Do H, Elbaum S, Rothermel G (2005) Supporting controlled experimentation with testing techniques: an infrastructure and its potential impact. Empir Softw Eng 10(4):405–435. CrossRefGoogle Scholar
  14. 14.
    Gall H, Jazayeri M, Klosch R, Trausmuth G (1997) Software evolution observations based on product release history. In: Proceedings on the international conference on software maintenance. IEEE Comput Soc, Los Alamitos, p 166 Google Scholar
  15. 15.
    Gao Y, Xu G, Yang Y, Liu J, Guo S (2010) Disassortativity and degree distribution of software coupling networks in object-oriented software systems. In: IEEE international conference on progress in informatics and computing (PIC), vol 2, pp 1000–1004 Google Scholar
  16. 16.
    Godfrey M, Tu Q (2000) Evolution in open source software: a case study. In: Proceedings of the international conference on software maintenance, pp 131–142 CrossRefGoogle Scholar
  17. 17.
    Lehman MM, Fernández-Ramil JC (2006) Rules and tools for software evolution planning and management. In: Madhavji N, Fernández-Ramil J, Perry D (eds) Software evolution and feedback: theory and practice. Wiley, New York, pp 539–563 CrossRefGoogle Scholar
  18. 18.
    Louridas P, Spinellis D, Vlachos V (2008) Power laws in software. ACM Trans Softw Eng Methodol 18(1):2:1–2:26 CrossRefGoogle Scholar
  19. 19.
    Moore K (2011) Evaluating offdiagonal complexity as a metric of software evolution. Master’s thesis, Open University Google Scholar
  20. 20.
    Myers C (2003) Software systems as complex networks: structure, function, and evolvability of software collaboration graphs. Phys Rev E 68:046116 ADSCrossRefGoogle Scholar
  21. 21.
  22. 22.
    Newman M (2002) Assortative mixing in networks. Phys Rev Lett 89(20):208701 ADSCrossRefGoogle Scholar
  23. 23.
    Potanin A, Noble J, Frean M, Biddle R (2005) Scale-free geometry in oo programs. Commun ACM 48(5):99–103 CrossRefGoogle Scholar
  24. 24.
    Solé R, Valverde S (2004) Information theory of complex networks: on evolution and architectural constraints. In: Complex networks, pp 189–207 CrossRefGoogle Scholar
  25. 25.
    Tempero E, Anslow C, Dietrich J, Han T, Li J, Lumpe M, Melton H, Noble J (2010) Qualitas corpus: a curated collection of java code for empirical studies. In: Asia pacific software engineering conference, APSEC2010. Google Scholar
  26. 26.
    Turski W (2006) A simple model of software system evolutionary growth. In: Madhavji N, Fernández-Ramil J, Perry D (eds) Software evolution and feedback: theory and practice. Wiley, New York, pp 131–141 CrossRefGoogle Scholar
  27. 27.
    Valverde S, Cancho R, Sole R (2002) Scale-free networks from optimal design. Europhys Lett 60:512 ADSCrossRefGoogle Scholar
  28. 28.
    Valverde S, Solé R (2003) Hierarchical small worlds in software architecture. Dyn Contin Discrete Impuls Syst 14(suppl):1–11 Google Scholar
  29. 29.
    Vasa R, Lumpe M, Jones A (2010) Helix—software evolution data set.
  30. 30.
    Wermelinger M, Yu Y, Lozano A, Capiluppi A (2011) Assessing architectural evolution: a case study. Empir Softw Eng 16(5):623–666. CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2013

Authors and Affiliations

  1. 1.Computing DepartmentThe Open UniversityMilton KeynesUK

Personalised recommendations