Software Evolution and the Constructal Law

  • S. PérinEmail author
Part of the Understanding Complex Systems book series (UCS)


This chapter investigates the evolution in time of the number of lines of the Java source code of the Java Development Kit (JDK). We show that the rank-size distributions of the JDK source files developed characteristic evolutionary patterns during the last fifteen years, such as parabolic fractal distributions, and a sigmoid shape of the cumulated lines of code. In order to explain the emergence of these patterns, we propose here to consider the constructal tree-shaped invasion of a territory combined with the constructal rank-size distribution of a growing population as the mechanism potentially generating a wide variety of population distributions. In the case of the JDK, the functional scope addressed by the successive versions of the platform, assimilated to a functional space to invade, continuously increased in time. The development of the JDK‘s functional packages hierarchy is interpreted as the constructal tree-structure followed by the invasive flow. We propose in conclusion to consider the Constructal Law as the main driver behind software evolution.


Source Code Constructal Theory Software Metrics Source File Software Development Project 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Lehman MM, Belady LA. Program evolution; processes of software change, A.P.I.C. Studies in Data Processing. Vol. 27. Academic; 1985.Google Scholar
  2. 2.
    Fernandez-Ramil et al, Empirical studies of open source evolution, Empirical studies of open source evolution, T. Mens and S. Demeyer eds., Software Evolution, Berlin, Springer, 2008, pp. 263–288.Google Scholar
  3. 3.
    Mens T, et al. Software Evolution, Guest Editor Introduction, Software Evolution. IEEE Software. 2010;27(4):22–5.MathSciNetCrossRefGoogle Scholar
  4. 4.
    Bejan A. Shape and Structure, from Engineering to Nature. Cambridge: Cambridge University Press; 2000.zbMATHGoogle Scholar
  5. 5.
    Bejan A, Lorente S. Design with constructal theory. Wiley; 2008.Google Scholar
  6. 6.
    Bejan A. Constructal-theory network of conducting paths for cooling a heat generating volume. Int J Heat Mass Transfer. 1996;40:799.CrossRefGoogle Scholar
  7. 7.
    Bejan A. Advanced Engineering Thermodynamics. 2nd ed. New York: Wiley; 1997. p. 807.Google Scholar
  8. 8.
    Bejan A, Lorente S. The constructal law origin of the logistics S curve. J Appl Phys. 2011;110(2):024901.CrossRefGoogle Scholar
  9. 9.
    Ohloh, Compare Languages, 2011. Accessed 10 Sept. 2011
  10. 10.
    TIOBE Software, TIOBE Programming Community Index for September, 2011. Accessed 10 Sept. 2011
  11. 11.
    Conway D. Ranking the popularity of programming languages, Accessed 10 sept. 2011.
  12. 12.
    Gosling J. A brief history of the green project. Accessed October 1998.
  13. 13.
    FirstPerson, Inc., Oak Language Specification, Palo Alto, CA 1994.Google Scholar
  14. 14.
    Byous J. Java technology: an early history. 1998. Accessed 05 Sept. 2011
  15. 15.
    Henderson-Sellers B. Object-oriented metrics: measures of complexity. Prentice Hall Inc., Upper Saddle River, NJ; 1995.Google Scholar
  16. 16.
    Laherrere J. Distributions de type fractal parabolique dans la Nature. Comptes-Rendus de l’Académie des Sciences, Série IIa n°7-4. 1996;322:535–41.Google Scholar
  17. 17.
    Laherrere J, Sornette D. Stretched exponential distributions in nature and economy: “fat tails” with characteristic scales. Eur Phys J B. 1998;2:525–39.CrossRefGoogle Scholar
  18. 18.
    Maillart T, et al. Empirical Tests of Zipf's Law Mechanism in Open Source Linux Distribution. Phys Rev Lett. 2008;101(21):218701.CrossRefGoogle Scholar
  19. 19.
    Wheeldon R, Counsell S. Power law distributions in class relationships, eprint arXiv:cs/0305037, To appear in proceedings of third IEEE international workshop on source code analysis and manipulation, 2003, 0:45–54Google Scholar
  20. 20.
    Anderson DJ. Using cumulative flow diagrams, Borland Developer Network, 2004., Accessed 25 July 2011
  21. 21.
    Anderson DJ. The S-curve explained, Agile Management, Borland Developer Network, 2004., Accessed 25 July 2011
  22. 22.
    Queiros-Conde D, et al. Parabolic scaling of tree-shaped constructal network. Physica A: Statistical Mechanics and its Applications. 2007;384(2):719–24.CrossRefGoogle Scholar
  23. 23.
    Bejan A, et al. Section 13.4 Constructal theory of distribution of city sizes. In: Advanced engineering thermodynamics. 3rd ed. Wiley, New York: 2006, p. 774–82.Google Scholar
  24. 24.
    Queiros-Conde D, Feidt M. Constructal theory and multi-scale geometries; theory and applications in energetics, chemical engineering and materials. Les Actes, ENSTA, 2010, p. 117–30Google Scholar
  25. 25.
    Reis AH. Constructal view of scaling laws of river basins. Geomorphology. 2006;78(3–4):201–6.CrossRefGoogle Scholar
  26. 26.
    Bejan A, et al. Constructal distribution of river sizes. In: Advanced engineering thermodynamics. 3rd ed. Wiley, New York; 2006, p. 779–82.Google Scholar
  27. 27.
    Zend Technologies Ltd., Zend Framework Download, Every public release of Zend Framework, all in one place, 2011. Accessed 18 Oct. 2011
  28. 28.
    Weier O'Phinney M, Schindler R. Introducing Zend Framework 2.0, 2010. Accessed 18 Oct. 2011
  29. 29.
    Beck K. The inevitability of evolution, software evolution. IEEE Software. 2010;27(4):28–9.Google Scholar

Copyright information

© Springer Science+Business Media New York 2013

Authors and Affiliations

  1. 1.OCTO TechnologyParisFrance

Personalised recommendations