Simulation Process Modelling for Managing Software Evolution

  • Meir M. Lehman
  • Goel Kahen
  • Juan F. Ramil
Part of the International Series in Software Engineering book series (SOFT, volume 10)


Software that is regularly used for real world problem solving or addressing a real world application must be continually adapted and enhanced to maintain its fitness to an ever changing real world, its applications and application domains. This adaptation and enhancement activities are termed progressive, As progressive activity is undertaken, the complexity (e.g., functional, structural) of the evolving system is likely to increase unless work, termed anti-regressive, is also undertaken in order to control and even reduce complexity. However, with progressive and anti-regressive work naturally competing for the same pool of resources, management will benefit from means to estimate the amount of work and resources to be applied to each of the two types. After providing a necessary background, this chapter describes a systems dynamics model that can serve as a basis of a tool to support decision making regarding the optimal personnel allocation over the system lifetime. The model is provided as an example of the use of process modelling in order to plan and manage long-term software evolution.

Key words

Complexity feedback laws of software evolution process improvement resource estimation System Dynamics 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Lehman MM, Belady LA (eds.). Software Evolution-Processes of Software Change, Academic Press: London, 1985Google Scholar
  2. [2]
    Kemerer C, Slaughter S. An Empirical Approach to Studying Software Evolution. IEEE Transactions on Software Engineering 1999; 25(4): 493–509CrossRefGoogle Scholar
  3. [3]
    Godfrey MW, Qiang T. Evolution in Open Source Software: A Case Study. In Proceedings of the International Conference on Software Maintenance — 2000: IEEE Computer Press; 131–142Google Scholar
  4. [4]
    Rajlich VT, Bennett KH. A Staged Model for the Software Life Cycle, Computer 2000; July: 66–71Google Scholar
  5. [5]
    Feedback, Evolution and Software Technology, [December 2001]Google Scholar
  6. [6]
    Koestler A. The Act of Creation, Pan Books Ltd: London, 1970; 176–177Google Scholar
  7. [7]
    Lehman MM. Process Modelling: Where Next?, Most Influential Paper of ICSE 9 Award, Proceedings 19th International Conference on Software Engineering-1997, Boston; 549–552. Also in Hunter RB, Thayer RH (eds.). Software Process Improvement. IEEE CS Press, 2001Google Scholar
  8. [8]
    Lehman MM. The Programming Process. IBM Res. Rep. RC 2722. IBM Res. Centre: Yorktown Heights, NY 10594; Sept. 1969Google Scholar
  9. [9]
    Lehman MM. Programs, Cities, Students, Limits to Growth?, Inaugural Lecture, Imperial College, London, 14 May 1974. In Imperial College of Science and Technology Inaugural Lecture Series 1970–74; 9: 211–229. Also in Gries D (ed.), Programming Methodology, Springer, 1978: 42–62Google Scholar
  10. [10]
    Lehman MM, Ramil JF. Rules and Tools for Software Evolution Planning and Management. Annals of Software Engineering 2001, special issue on Software Management; 11(1), 2001: 15–44CrossRefGoogle Scholar
  11. [11]
    Ramil JF. id. Software Uncertainty. In Bustard D, Liu W and Sterritt R (eds.), Soft-Ware 2002, LNCS 2311, Springer: Berlin, 2002; 174–190Google Scholar
  12. [12]
    Lehman MM. Feedback in the Software Process. Information and Software Technology 1996. Special issue on Software Maintenance; 38(11): 681–686MathSciNetCrossRefGoogle Scholar
  13. [13]
    Lehman MM, Ramil JF. Towards a Theory of Software Evolution-And its Practical Impact, invited lecture, Proceedings of International Symposium on the Principles of Software Evolution ISPSE 2000; Kanazawa, Japan, Nov. 1–2Google Scholar
  14. [14]
    Osterweil L. Software Processes are Software too. Proceedings 9th International Conference on Software Engineering-1987. Monterey, CA; 2–12Google Scholar
  15. [15]
    Osterweil L. Software Processes are Software too, Revisited: An Invited Talk on the Most Influential Paper of ICSE 9. Proceedings 19th International Conference on Software Engineering-1997. Boston, MA: 540–548Google Scholar
  16. [16]
    Podoroznhy RM, Osterweil LJ. The Criticality of Modeling Formalisms in Software Design Method Comparison. Proceedings 19th International Conference on Software Engineering-1997. Boston MA: 303–313Google Scholar
  17. [17]
    Wirtz G. Using a Visual Software Engineering Language for Specifying and Analysing Workflows. IEEE International Symposium on Visual Languages 2000: 97–98Google Scholar
  18. [18]
    Boehm BW, Sullivan KJ. Software Economics: A Roadmap. In Finkelstein A (ed.). The Future of Software Engineering. IEEE Computer Press, 2000: 321–343Google Scholar
  19. [19]
    Kellner MI, Madachy RJ, Raffo DM. Software Process Simulation Modelling: Why? What? How?, Journal of Systems and Software 1999; 46(2/3): 91–106CrossRefGoogle Scholar
  20. [20]
    Forrester JW. Industrial Dynamics, MIT Press: Cambridge, MA; 1961Google Scholar
  21. [21]
    Forrester JW, Senge P. Tests for Building Confidence in System Dynamics Models, In Legasto AA Jr., Forrester JW, Lyneis JM (eds.). System Dynamics. TIMS Studies in the Management Sciences 14. North Holland: New York; 1980, 209–228Google Scholar
  22. [22]
    Coyle RG. System Dynamics Modelling-A Practical Approach. Chapman & Hall: London, 1996; 413 pp.Google Scholar
  23. [23]
    Abdel-Hamid T, Madnick S. Software Project Dynamics-An Integrated Approach, Prentice-Hall: Englewood Cliffs, NJ, 1991Google Scholar
  24. [24]
    Vensim — The Ventana Simulation Environment, Version PLE32 Version 5.0b, Harvard, MA, 2002, Personal Learning Edition (PLE) downloadable from [July 2002]Google Scholar
  25. [25]
    Zurcher FW, Randell B. Iterative Multi-Level Modeling-A Methodology for Computer System Design. Proceedings IFIP Congress 1968, Edinburgh, Aug 5–10: D-138–142Google Scholar
  26. [26]
    Wirth N. Program Development by Stepwise Refinement, Communications of the ACM 1971; 14(4): 221–227MATHCrossRefGoogle Scholar
  27. [27]
    Lehman MM and Ramil JF. Software Evolution and Software Evolution Processes, Annals of Software Engineering 2002. Special issue on Process-based Software Engineering, 14. In press.Google Scholar
  28. [28]
    Baumol WJ. Macro-Economics of Unbalanced Growth-The Anatomy of Urban Cities, Am. Econ. Review 1967; June: 415–426Google Scholar
  29. [29]
    Griswold WG. Program Restructuring as an Aid to Software Maintenance. Doctoral dissertation. Department of Computer Science and Engineering. University of Washington. 1991Google Scholar
  30. [30]
    Fowler M. Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman: New York; 1999, 461 pp.Google Scholar
  31. [31]
    Zuse H. Software Complexity Measures and Models. De Gruyter: NY; 1990Google Scholar
  32. [32]
    Riordan JS. An Evolution Dynamics Model of Software Systems Development. In Software Phenomenology-Working Papers of the (First) SLCM Workshop-Aug. 1977, Airlie, Virginia. Pub ISRAD/AIRMICS, Comp. Sys. Comm. US Army, Fort Belvoir VI, Dec 1977; 339–360Google Scholar
  33. [33]
    Aoyama M. Metrics and Analysis of Software Architecture Evolution with Discontinuity. In Aoyama M et al. (eds.), Proc. 5th Intl. Workshop on Principles of Software Evolution, IWPSE 2002, in association with ICSE 02, May 19–20, Orlando, FL.: 103–107Google Scholar
  34. [34]
    Chapin N et al. Types of Software Evolution and Software Maintenance, J. of Software Maintenance and Evolution: Res. and Practice 2001, 13(1); 1–30MATHCrossRefGoogle Scholar
  35. [35]
    Christie AM. Simulation in Support of CMM-based Process Improvement, J. of Systems and Software 1999, 46(2/3): 107–112CrossRefGoogle Scholar
  36. [36]
    Goldenson DR, El Eman K, Herbsleb J, Deephouse C. Empirical Studies of Software Process Assessment Methods, in El Eman K and Madhavji N H, Elements of Software Process Assessment & Improvement, IEEE Computer Society, Los Alamitos, California 1999: 177–218Google Scholar
  37. [37]
    Wernick P, Lehman MM. Software Process White Box Modelling for FEAST/1, Journal of Systems and Software 1999, 46(2–3): 193–201CrossRefGoogle Scholar
  38. [38]
    Chatters BW et al. Modelling A Software Evolution Process: A Long-term Case Study. J. of Software Process: Improvement and Practice 2000; 5(2–3): 95–102Google Scholar
  39. [39]
    Kahen G, Lehman MM, Ramil JF, Wernick PD. System Dynamics Modelling of Software Evolution Processes for Policy Investigation: Approach and Example. Journal of Systems and Software 2001; 59(3): 271–281CrossRefGoogle Scholar
  40. [40]
    Aranda R et al. Quality Microworlds: Modeling the Impact of Quality Initiatives over the Software Product Life Cycle. Am. Programmer 1993; 6(5): 52–61Google Scholar
  41. [41]
    Ramil JF, Smith N. Qualitative Simulation of Models of Software Evolution, Journal of Software Process: Improvement and Practice 2002; 7: 95–112CrossRefGoogle Scholar
  42. [42]
    Ruiz M, Ramos I. A Dynamic Estimation Model for the Early Stages of a Software Project, Proceedings of Workshop on Software Process Simulation and Modelling Prosim 2000, Imperial College, London, 12–14 JulyGoogle Scholar
  43. [43]
    Ramil JF. Laws of Software Evolution and their Empirical Support, Invited Panel Statement, Proc. ICSM2002, Montreal, Canada, 3 — 6 Oct 2002: 71Google Scholar

Copyright information

© Springer Science+Business Media, Inc. 2005

Authors and Affiliations

  • Meir M. Lehman
    • 1
  • Goel Kahen
    • 2
  • Juan F. Ramil
    • 3
  1. 1.School of Computing ScienceMiddlesex UniversityLondonUK
  2. 2.Crown Poly, Inc.Huntington ParkUSA
  3. 3.Computing Department, Faculty of Maths and ComputingThe Open UniversityUK

Personalised recommendations