Software Evolution and the Constructal Law
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.
- 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.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
- 5.Bejan A, Lorente S. Design with constructal theory. Wiley; 2008.Google Scholar
- 7.Bejan A. Advanced Engineering Thermodynamics. 2nd ed. New York: Wiley; 1997. p. 807.Google Scholar
- 9.Ohloh, Compare Languages, 2011. http://www.ohloh.net/languages/compare. Accessed 10 Sept. 2011
- 10.TIOBE Software, TIOBE Programming Community Index for September, 2011. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html. Accessed 10 Sept. 2011
- 11.Conway D. Ranking the popularity of programming languages, dataist.com. http://www.dataists.com/2010/12/ranking-the-popularity-of-programming-langauges/. Accessed 10 sept. 2011.
- 12.Gosling J. A brief history of the green project. http://java.sun.com/people/jag/green/index.html. Accessed October 1998.
- 13.FirstPerson, Inc., Oak Language Specification, Palo Alto, CA 1994.Google Scholar
- 14.Byous J. Java technology: an early history. 1998. http://java.sun.com/features/1998/05/birthday.html. Accessed 05 Sept. 2011
- 15.Henderson-Sellers B. Object-oriented metrics: measures of complexity. Prentice Hall Inc., Upper Saddle River, NJ; 1995.Google Scholar
- 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
- 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
- 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.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
- 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.Zend Technologies Ltd., Zend Framework Download, Every public release of Zend Framework, all in one place, 2011. http://framework.zend.com/download/archives. Accessed 18 Oct. 2011
- 28.Weier O'Phinney M, Schindler R. Introducing Zend Framework 2.0, 2010. http://www.slideshare.net/weierophinney/introducing-zend-framework-20. Accessed 18 Oct. 2011
- 29.Beck K. The inevitability of evolution, software evolution. IEEE Software. 2010;27(4):28–9.Google Scholar