Annals of Software Engineering

, Volume 11, Issue 1, pp 15–44 | Cite as

Rules and Tools for Software Evolution Planning and Management

  • Meir M. Lehman
  • Juan F. Ramil
Article

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.

assumptions E-type software FEAST feedback laws of software evolution software management process improvement rules for process planning and management software evolution 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Baumol, W.J. (1967), “Macro-Economics of Unbalanced Growth-The Anatomy of Urban Cities,” American Economics Review, 415-426.Google Scholar
  2. 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
  3. Boehm, B. (1981), Software Engineering Economics, Prentice-Hall, Englewood Cliffs, NJ.Google Scholar
  4. 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
  5. 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
  6. Bohner, S.A. and R.S. Arnold, Eds. (1996), Software Change Impact Analysis, IEEE Computer Soc. Press, Los Alamitos, CA.Google Scholar
  7. Box, G. and A. Luceño (1997), Statistical Control by Monitoring and Feedback Adjustment, Wiley, New York.Google Scholar
  8. 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
  9. 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
  10. Cook S., H. Ji and R. Harrison (2000), “Software Evolution and Software Evolvability," Working paper, University of Reading.Google Scholar
  11. Cusumano, M.A. and R.W. Selby (1995), Microsoft Secrets, The Free Press, New York, p. 512.Google Scholar
  12. 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
  13. Fenton, N.E. and M. Neil (1999), A Critique of Software Defect Prediction Models, IEEE Transactions on Software Engineering 25, 3.Google Scholar
  14. FFSE (2001), Internat. Session on Formal Foundations of Software Evolution, FFSE 2000, Lisbon, 13 March, http://prog.vub.ac.be/poolresearch/FFSE/.Google Scholar
  15. Forrester, J.W. (1961), Industrial Dynamics, MIT Press, Cambridge, MA.Google Scholar
  16. Fowler, M. (1999), Refactoring: Improving the Design of Code, Addison-Wesley, New York.Google Scholar
  17. 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.Google Scholar
  18. Gilb, T. (1981), “Evolutionary Development, ” ACM Software Engineering Notes.Google Scholar
  19. 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.Google Scholar
  20. 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
  21. 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.Google Scholar
  22. Humphrey, W.S. and N.D. Singpurwalla (1991), “Predicting (Individual) Software Productivity,” IEEE Transactions on Software Engineering 17, 2, 196-207.Google Scholar
  23. 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
  24. JSS (1999), Special Issue on Software Process Simulation Modelling, Journal of Systems and Software, 46, 2/3.Google Scholar
  25. 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
  26. 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
  27. Kitchenham, B. (1982), “System Evolution Dynamics of VME/B, ” ICL Technical Journal, 42-57.Google Scholar
  28. 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.Google Scholar
  29. Lehman*, M.M. (1969), “The Programming Process,” IBM Research Report RC 2722, IBM Research Centre, Yorktown Heights, New York.Google Scholar
  30. 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
  31. 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
  32. 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.Google Scholar
  33. 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
  34. 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
  35. 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
  36. 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
  37. Lehman, M.M. (1990), “Uncertainty in Computer Application, ” Technical Letter, Communications of the ACM 33, 5, 584.Google Scholar
  38. 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
  39. 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
  40. Lehman, M.M. (1998a), “The Future of Software-Managing Evolution,” Invited Contribution, IEEE Software 15, 1, 40-44.Google Scholar
  41. 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
  42. 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
  43. Lehman, M.M. (2000b), “TheSE-An Approach to a Theory of Software Evolution,” Project Proposal, Department of Computing, Imperial College, London, UK.Google Scholar
  44. Lehman, M.M. and L.A. Belady, Eds. (1985), Program Evolution-Processes of Software Change, Academic Press, London.Google Scholar
  45. 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.Google Scholar
  46. 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
  47. 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.Google Scholar
  48. 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.Google Scholar
  49. 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
  50. 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.Google Scholar
  51. 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
  52. Pfleeger, S.L. (1998a), Software Engineering-Theory and Practice, Prentice-Hall, Englewood Cliffs, NJ.Google Scholar
  53. Pfleeger, S.L. (1998b), “The Nature of System Change,” IEEE Software 15, 3, 87-90.Google Scholar
  54. ProSim (2000), Workshop on Software Process Simulation and Modelling, 12-14 July 2000, Imperial College, London, UK, http://www.prosim.org.Google Scholar
  55. PSE (1998-2001), Preprints/Proceedings of the International Workshops/Symposium on the Principles of Software Evolution, 1998, 1999, 2000 (Symp.), 2001.Google Scholar
  56. Rajlich, V.T. and K.H. Bennett (2000), “A Staged Model for the Software Life Cycle, ” Computer, 66-71.Google Scholar
  57. 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.Google Scholar
  58. 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
  59. 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.Google Scholar
  60. Sommerville, I. (2001), Software Engineering, 6th Edition, Addison-Wesley & Pearson Education Limited, Harlow, UK, chapter 24.Google Scholar
  61. Turski, W.M. (1996), “Reference Model for Smooth Growth of Software Systems,” IEEE Transactions on Software Engineering 22, 8.Google Scholar
  62. Vensim (1995), Vensim Reference Manual (1995), Ver. 1.62, Ventana Systems Inc., Belmont, MA.Google Scholar
  63. Wall, L., T. Christiansen and R.L. Schwartz (1996), Programming Perl, O'Reilly & Associates, Sebastopol, CA.Google Scholar
  64. Wernick, P. and M.M. Lehman (1999), “Software Process Dynamic Modelling for FEAST/1,” Journal of Systems and Software 46, 193-201.Google Scholar
  65. Woodside*, C.M. (1980), “A Mathematical Model for the Evolution of Software,” Journal of Systems and Software 1, 4, 337-345.Google Scholar

Copyright information

© Kluwer Academic Publishers 2001

Authors and Affiliations

  • Meir M. Lehman
    • 1
  • Juan F. Ramil
    • 1
  1. 1.Department of ComputingImperial CollegeLondonUK

Personalised recommendations