Simulating the Structural Evolution of Software

  • Benjamin Stopford
  • Steve Counsell
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3966)


As functionality is added to an ageing piece of software, its original design and structure tends to erode. The underlying forces which cause such degradation have been the subject of much research. However, progress in this field is slow due to the difficultly faced in generating empirical data [6] as well as attributing observed effects to the various points in the causal chain [7]. This paper tackles these problems by providing a framework for simulating the structural evolution of software. A complete model is built by incrementally adding modules to the framework, each of which contribute an individual evolutionary effect. These effects are then combined to form a multi-faceted simulation that evolves a fictitious code base approximating real world behavior. Validation of a simple set of evolutionary parameters is provided, demonstrating agreement with current empirical observations.


Evolution Policy Simulation Framework Code Base Execution Path Software Maintenance 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Briand, L.C., Daly, J.W., Wust, J.K.: A Unified Framework for Coupling Measurement in Object-Oriented Systems. IEEE Transactions on Software Engineering 25(1) (January/February 1999)Google Scholar
  2. 2.
    Capiluppi, M., Ramil: Studying the Evolution of Open Source Systems at Different Levels of Granularity. In: Proceedings of the 12th International Workshop on Program Comprehension.Google Scholar
  3. 3.
    Forrester, J.W.: “Urban Dynamics”. Productivity Press, Cambridge (1969)Google Scholar
  4. 4.
    Kellner, M.: Software Process Modeling Support for Management Planning and Control. In: Proceedings of the first international conference on the software process (1991)Google Scholar
  5. 5.
    Kelsen: A Simple Static Model for Understanding the Dynamic Behavior of Programs. In: International Workshop on Program Comprehension (2004)Google Scholar
  6. 6.
    Kemerer, C.F., Slaughter, S.: Need for more Longitudinal Studies of Software Maintenance. In: Proc. Int’l Workshop Empirical Studies Software Maintenance, Monterey Calif. (1996)Google Scholar
  7. 7.
    Kemerer, C.F., Slaughter, S.: An Empirical Approach to Studying Software Evolution. IEEE Transactions on Software Engineering 25(4) (July/August 1999)Google Scholar
  8. 8.
    Lehman, M.: Program, Life Cycle and the Law of Program Evolution. Proceedings of the IEEE 68, 1060–1078 (1980)CrossRefGoogle Scholar
  9. 9.
    Raffo, D.: Modeling Software Processes Quantitatively and Assessing the Impact of Potential Process Changes on Process Performance – PhD Dissertation. Carnegie Mellon University (1996)Google Scholar
  10. 10.
    Wernick, Lehman: Software Process White Box Modeling for FEAST/1. Journal of Software Systems (1999)Google Scholar
  11. 11.
    Lehman, P., Ramil: Implications of Evolution Metrics on Software Maintenance. In: Proc of the 1998 Intl. Conf. of Software Maintenance (ICSM 1998) (1998)Google Scholar
  12. 12.
    Godfrey, Tu: Evolution in Open Source Software: A Case Study. In: Proceedings of the International Conference on Software Maintenance (ICSM 2000) (2000)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Benjamin Stopford
    • 1
  • Steve Counsell
    • 2
  1. 1.School of Computer Science and Information Systems, BirkbeckUniversity of LondonUK
  2. 2.School of Information Systems, Computing and MathematicsBrunel UniversityLondonUK

Personalised recommendations