Skip to main content
Log in

Rules and Tools for Software Evolution Planning and Management

  • Published:
Annals of Software Engineering

Abstract

When first formulated in the early seventies, the laws of software evolution were, for a number of reasons, not widely accepted as relevant to software engineering practice. Over the years, however, they have gradually become recognised as providing useful inputs to understanding of the software process. Now eight in number, they have been supplemented by the software uncertainty principle and the FEAST (Feedback, Evolution And Software Technology) hypothesis. Based on all these and on the further results of the FEAST research projects this paper develops and presents some fifty rules for application in software system process planning and management and indicates tools available or that could usefully be developed to support their application. The listing is structured according to the laws that encapsulate the observed phenomena and that lead to the recommendations. Each sublist is preceded by a textual discussion providing at least some of the reasoning that has led to the recommended procedures. The references direct the interested reader to the literature that records observed behaviours, interpretations, models and metrics obtained from industrially evolved systems, and from which the recommendations were derived.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Baumol, W.J. (1967), “Macro-Economics of Unbalanced Growth-The Anatomy of Urban Cities,” American Economics Review, 415-426.

  • Belady*, L.A. and M.M. Lehman (1972), “An Introduction to Program Growth Dynamics,” In Statistical Computer Performance Evaluation, W. Freiburger, Ed., Academic Press, New York, pp. 503-511.

    Google Scholar 

  • Boehm, B. (1981), Software Engineering Economics, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Boehm, B. (2000), “Value-Based Feedback in Software/IT Systems,” In ProSim 2000 and FEAST 2000 Workshops, Joint Invited Keynote Presentation, 12 July, Imperial College, London, UK, available from http://www.doc.ic.ac.uk/~mml/f2000/program\#presentations.

    Google Scholar 

  • Boehm, B., J.R. Brown, J.R. Kaspar, M. Lipow, C.J. MacCleod and M.J. Merritt (1978), Characteristics of Software Quality, North-Holland, Amsterdam.

    Google Scholar 

  • Bohner, S.A. and R.S. Arnold, Eds. (1996), Software Change Impact Analysis, IEEE Computer Soc. Press, Los Alamitos, CA.

    Google Scholar 

  • Box, G. and A. Luceño (1997), Statistical Control by Monitoring and Feedback Adjustment, Wiley, New York.

    Google Scholar 

  • E.html.

  • Chapin, N., J.E. Hale, K.M. Khan, J.F. Ramil and W.G. Tan (2001), “Types of Software Evolution and Software Maintenance,” Journal of Software Maintenance and Evolution: Research and Practice 13, 1, 1-30.

    Google Scholar 

  • Chatters, B.W. et al. (1999), “Modelling a Software Evolution Process, ” In Proceedings of ProSim'99, Software Process Modelling and Simulation Workshop, Silver Falls, OR, 28-30 June, A revised version as “Modelling a Long Term Software Evolution Process," Journal of Software Process-Improvement and Practice 5, 2/3 (July 2000) 95-102.

    Google Scholar 

  • Cook S., H. Ji and R. Harrison (2000), “Software Evolution and Software Evolvability," Working paper, University of Reading.

  • Cusumano, M.A. and R.W. Selby (1995), Microsoft Secrets, The Free Press, New York, p. 512.

    Google Scholar 

  • FEAST (2001), Feedback, Evolution And Software Technology, Projects Web Site, Department of Computing, Imperial College, London, UK, http://www.doc.ic.ac.uk/~mml/feast/.

    Google Scholar 

  • Fenton, N.E. and M. Neil (1999), A Critique of Software Defect Prediction Models, IEEE Transactions on Software Engineering 25, 3.

  • FFSE (2001), Internat. Session on Formal Foundations of Software Evolution, FFSE 2000, Lisbon, 13 March, http://prog.vub.ac.be/poolresearch/FFSE/.

  • Forrester, J.W. (1961), Industrial Dynamics, MIT Press, Cambridge, MA.

    Google Scholar 

  • Fowler, M. (1999), Refactoring: Improving the Design of Code, Addison-Wesley, New York.

    Google Scholar 

  • GCSE (2000), Internat. Symp. on Generative and Component Based Software Engineering, 9-12 October, Erfurt, Germany, http://www.netobjectdays.org/node00/en/Authors/cfp-gcse. html.

  • Gilb, T. (1981), “Evolutionary Development, ” ACM Software Engineering Notes.

  • Godfrey, M.W. and Q. Tu (2000), “Evolution in Open Source Software: A Case Study, ” In Proceedings of the International Conference on Software Maintenance, ICSM 2000, 11-14 October, San Jose, CA, pp. 131-142.

  • Hops, J.M. and J.S. Sherif (1995), “Development and Application of Composite Complexity Models and a Relative Complexity Metric in a Software Maintenance Environment,” Journal of Systems and Software 31, 2, 157-169.

    Google Scholar 

  • Hsi, I. and C. Potts (2000), “Studying the Evolution and Enhancement of Software Features, ” In Proceedings of the International Conference on Software Maintenance, ICSM 2000, 11-14 October, San Jose, CA, pp. 143-151.

  • Humphrey, W.S. and N.D. Singpurwalla (1991), “Predicting (Individual) Software Productivity,” IEEE Transactions on Software Engineering 17, 2, 196-207.

    Google Scholar 

  • Hybertson, D.W., D.T. Anh and W.M. Thomas (1997), “Maintenance of COTS-intensive Software Systems,” Journal of Software Maintenance: Research and Practice 9, 203-216.

    Google Scholar 

  • JSS (1999), Special Issue on Software Process Simulation Modelling, Journal of Systems and Software, 46, 2/3.

    Google Scholar 

  • Kahen, G., M.M. Lehman, J.F. Ramil and P.D. Wernick (2000), “Dynamic Modelling in the Investigation of Policies for E-type Software Evolution,” ProSim 2000, Imperial College, London, UK, 12-14 July, A revised version to appear in Journal of Systems and Software (2001).

    Google Scholar 

  • Kemerer, C.F. and S. Slaughter (1999), “An Empirical Approach to Studying Software Evolution,” IEEE Transactions on Software Engineering 25, 4, 493-509.

    Google Scholar 

  • Kitchenham, B. (1982), “System Evolution Dynamics of VME/B, ” ICL Technical Journal, 42-57.

  • Lawrence, M.J. (1982), “An Examination of Evolution Dynamics, ” In Proceedings of the 6th Internat. Conference on Software Engineering, Tokyo, Japan, 13-16 September, IEEE Computer Society, pp. 188-196.

  • Lehman*, M.M. (1969), “The Programming Process,” IBM Research Report RC 2722, IBM Research Centre, Yorktown Heights, New York.

    Google Scholar 

  • Lehman*, M.M. (1974), “Programs, Cities, Students, Limits to Growth?,” Inaugural Lecture, In Imperial College of Science and Technology Inaugural Lecture Series, Vol. 9 (1970, 1974) pp. 211-229; also in Programming Methodology, D. Gries, Ed. (1978) Springer, Berlin, pp. 42-62.

    Google Scholar 

  • Lehman, M.M. (1976), “Human Thought and Action as an Ingredient of System Behaviour, ” Imperial College of Science Technology, CCD Research Report 76/12, July; also in (1977) Encyclopaedia of Ignorance, Duncan, R. and M. Weston-Smith, Eds., Pergamon Press, Oxford, pp. 397-354.

    Google Scholar 

  • Lehman*, M.M. (1978), “Laws of Program Evolution-Rules and Tools for Programming Management, ” In Proceedings Infotech State of the Art Conference, Why Software Projects Fail?, April, pp. 11/1-11/25.

  • Lehman, M.M. (1979), “The Environment of Design Methodology,” Keynote Address, In Proceedings of Symposium on Formal Design Methodology, T.A. Cox, Ed., Cambridge, UK, 9-12 April, published by STL Ltd, Harlow, Essex, UK (1980) pp. 17-38.

    Google Scholar 

  • Lehman*, M.M. (1980a), “On Understanding Laws, Evolution, and Conservation in the Large Program Life Cycle,” Journal of Systems and Software 1, 3, 213-221.

    Google Scholar 

  • Lehman*, M.M. (1980b), “Programs, Life Cycles and Laws of Software Evolution, ” In Proceedings of IEEE Special Issue on Software Engineering, pp. 1060-1076. With more detail as “Programs, Programming and the Software Life-Cycle," In System Design, Infotech State of the Art, Rep. Se 6, No 9, Pergamon Infotech Ltd, Maidenhead (1981) pp. 263-291.

    Google Scholar 

  • Lehman, M.M. (1989), “Uncertainty in Computer Application and Its Control through the Engineering of Software,” Journal of Software Maintenance: Research and Practice 1, 3-27.

    Google Scholar 

  • Lehman, M.M. (1990), “Uncertainty in Computer Application, ” Technical Letter, Communications of the ACM 33, 5, 584.

    Google Scholar 

  • Lehman, M.M. (1994), “Feedback in the Software Evolution Process,” Keynote Address, CSR 11th Annual Workshop on Software Evolution: Models and Metrics, Dublin, Ireland, 7-9 September; and in Special issue on Software Maintenance of Information and Software Technology 38, 11 (1996) 681-686.

    Google Scholar 

  • Lehman, M.M. (1997), “Laws of Software Evolution Revisited,” In Proceedings of EWSPT'96, Nancy, Lecture Notes in Computer Science, Vol. 1149, Springer, New York, pp. 108-124.

    Google Scholar 

  • Lehman, M.M. (1998a), “The Future of Software-Managing Evolution,” Invited Contribution, IEEE Software 15, 1, 40-44.

    Google Scholar 

  • Lehman, M.M. (1998b), “FEAST/2: Case for Support,” Department of Computing, Imperial College, London, UK, available from links at the FEAST project web site http://www.doc.ic.ac.uk/~mml/ feast.

    Google Scholar 

  • Lehman, M.M. (2000a), “Rules and Tools for Software Evolution Planning and Management” (position paper), In FEAST 2000 Workshop, Imperial College, London, UK, 10-12 July, available from links at http://wwwdoc.ic.ac.uk/~mml/f2000.

    Google Scholar 

  • Lehman, M.M. (2000b), “TheSE-An Approach to a Theory of Software Evolution,” Project Proposal, Department of Computing, Imperial College, London, UK.

    Google Scholar 

  • Lehman, M.M. and L.A. Belady, Eds. (1985), Program Evolution-Processes of Software Change, Academic Press, London.

    Google Scholar 

  • Lehman, M.M., D.E. Perry, and J.F. Ramil (1998), “On Evidence Supporting the FEAST Hypothesis and the Laws of Software Evolution, ” In '98, Bethesda, MD, 20-21 November.

  • Lehman, M.M. and J.F. Ramil (1998), “Implications of Laws of Software Evolution on Continuing Successful Use of COTS Software,” Technical Report 98/8, Department of Computing, Imperial College, London, UK, incl. panel pos. statement, ICSM '98, Washington, DC, 16-18 November. A revised version as “Software Evolution in the Age of Component Based Software Engineering," Special Issue on Component Based Software Engineering of IEE Proceedings-Software 147, 6, 249-255 (2000).

    Google Scholar 

  • Lehman, M.M. and J.F. Ramil (2000), “Towards a Theory of Software Evolution-and Its Practical Impact, ” Invited lecture, In Preprints of the Internat. Symposium on Principles of Software Evolution, ISPSE 2000, Kanazawa, Japan, 1-2 November, pp. 1-9.

  • Lehman, M.M. and J.F. Ramil (2001), “Software Evolution, ” Invited Keynote Lecture, Preprints IWPSE 2001, Vienna, September 10-11; a revised and extended version of an article to appear in Marciniak J., Ed., Encyclopedia of Software Engineering, 2nd Edition, Wiley, 2002.

  • Lehman, M.M., J.F. Ramil and G. Kahen (2001), “Experiences with Behavioural Process Modelling in FEAST, and some of Its Practical Implications”, In Proceedings of the 8th European Workshop on Software Process Technology, EWSPT-8, Haus Bommerholz, Witten, Dortmund, Germany, 19-21 June, Lecture Notes in Computer Science, Vol. 2077, Springer, New York, pp. 47-62.

    Google Scholar 

  • Lehman, M.M., J.F. Ramil and P.D. Wernick (2000), “Metrics-Based Process Modelling with Illustrations from the FEAST/1 Project, ” as chapter 10 In Systems Modelling for Business Process Improvement, D. Bustard, P. Kawalek and M. Norris, Eds., Artech House.

  • Lehman, M.M., and V. Stenning (1996), “FEAST/1: Case for Support,” Project Proposal, Department of Computing, Imperial College, London, UK, available from links at the FEAST project web site http://www.doc.ic.ac.uk/~mml/feast.

    Google Scholar 

  • Pfleeger, S.L. (1998a), Software Engineering-Theory and Practice, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Pfleeger, S.L. (1998b), “The Nature of System Change,” IEEE Software 15, 3, 87-90.

    Google Scholar 

  • ProSim (2000), Workshop on Software Process Simulation and Modelling, 12-14 July 2000, Imperial College, London, UK, http://www.prosim.org.

    Google Scholar 

  • PSE (1998-2001), Preprints/Proceedings of the International Workshops/Symposium on the Principles of Software Evolution, 1998, 1999, 2000 (Symp.), 2001.

  • Rajlich, V.T. and K.H. Bennett (2000), “A Staged Model for the Software Life Cycle, ” Computer, 66-71.

  • Ramil, J.F. and M.M. Lehman (2000), “Metrics of Software Evolution as Effort Predictors-A Case Study, ” In Proceedings Internat. Conference on Software Maintenance, 11-14 October, San Jose, CA, pp. 163-172.

  • Ramil, J.F., M.M. Lehman and G. Kahen (2000), “The FEAST Approach to Quantitative ProcessModelling of Software Evolution Processes,” In Proceedings PROFES'2000, 2nd Internat. Conference on Product Focused Software Process Improvement, Oulu, Finland, 20-22 June, Lecture Notes in Computer Science, Vol. 1840, Springer, New York, pp. 311-325.

    Google Scholar 

  • Shepperd, M. (2000), “Dynamic Models of Maintenance Behaviour, ” In Workshop on Empirical Studies of Software Maintenance, WESS 2000, 14 October, San Jose, CA, available from http://members. aol.com/_ht_a/geshome/wess2000/metricsandmodels.htm.

  • Sommerville, I. (2001), Software Engineering, 6th Edition, Addison-Wesley & Pearson Education Limited, Harlow, UK, chapter 24.

    Google Scholar 

  • Turski, W.M. (1996), “Reference Model for Smooth Growth of Software Systems,” IEEE Transactions on Software Engineering 22, 8.

    Google Scholar 

  • Vensim (1995), Vensim Reference Manual (1995), Ver. 1.62, Ventana Systems Inc., Belmont, MA.

    Google Scholar 

  • Wall, L., T. Christiansen and R.L. Schwartz (1996), Programming Perl, O'Reilly & Associates, Sebastopol, CA.

    Google Scholar 

  • Wernick, P. and M.M. Lehman (1999), “Software Process Dynamic Modelling for FEAST/1,” Journal of Systems and Software 46, 193-201.

    Google Scholar 

  • Woodside*, C.M. (1980), “A Mathematical Model for the Evolution of Software,” Journal of Systems and Software 1, 4, 337-345.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Lehman, M.M., Ramil, J.F. Rules and Tools for Software Evolution Planning and Management. Annals of Software Engineering 11, 15–44 (2001). https://doi.org/10.1023/A:1012535017876

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1012535017876

Navigation