Rules and Tools for Software Evolution Planning and Management

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.

[1]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[2]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[3]  Dewayne E. Perry,et al.  On evidence supporting the FEAST hypothesis and the laws of software evolution , 1998, Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262).

[4]  Meir M. Lehman Programs, life cycles, and laws of software evolution , 1980 .

[5]  W. Baumol,et al.  MACROECONOMICS OF UNBALANCED GROWTH: THE ANATOMY OF THE URBAN CRISES , 1967 .

[6]  Meir M. Lehman Uncertainty in computer application and its control through the engineering of software , 1989, J. Softw. Maintenance Res. Pract..

[7]  Watts S. Humphrey,et al.  Predicting (Individual) Software Productivity , 1991, IEEE Trans. Software Eng..

[8]  Meir M. Lehman,et al.  Modelling a Software Evolution Process , 1999 .

[9]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[10]  Meir M. Lehman,et al.  Laws of Software Evolution Revisited , 1996, EWSPT.

[11]  Martin Shepperd Dynamic Models Of Maintenance Behaviour , 2000 .

[12]  George E. Stark,et al.  Software maintenance management strategies: observations from the field , 1997 .

[13]  Meir M. Lehman,et al.  Approach to a Theory of Software Process and Software Evolution , 2000 .

[14]  Norman E. Fenton,et al.  A Critique of Software Defect Prediction Models , 1999, IEEE Trans. Software Eng..

[15]  John J. Marciniak,et al.  Encyclopedia of Software Engineering , 1994, Encyclopedia of Software Engineering.

[16]  J. Forrester Industrial Dynamics , 1997 .

[17]  Meir M. Lehman,et al.  Experiences with Behavioural Process Modelling in FEAST, and Some of Its Practical Implications , 2001, EWSPT.

[18]  William M. Thomas,et al.  Maintenance of COTS-intensive software systems , 1997 .

[19]  Joseph S. Sherif,et al.  Development and application of composite complexity models and a relative complexity metric in a software maintenance environment , 1995, Wescon/96.

[20]  Michael W. Godfrey,et al.  Evolution in open source software: a case study , 2000, Proceedings 2000 International Conference on Software Maintenance.

[21]  Meir M. Lehman,et al.  On understanding laws, evolution, and conservation in the large-program life cycle , 1984, J. Syst. Softw..

[22]  F KemererChris,et al.  An Empirical Approach to Studying Software Evolution , 1999 .

[23]  Colin Potts,et al.  Studying the evolution and enhancement of software features , 2000, Proceedings 2000 International Conference on Software Maintenance.

[24]  Frederick W. Faltin,et al.  Statistical Control by Monitoring and Feedback Adjustment , 1999, Technometrics.

[25]  Dewayne E. Perry,et al.  Why is it so Hard to Find Feedback Control in Software Processes? Invited Talk , 1996 .

[26]  Ned Chapin,et al.  Types of software evolution and software maintenance , 2001, J. Softw. Maintenance Res. Pract..

[27]  Meir M. Lehman,et al.  Metrics of software evolution as effort predictors - a case study , 2000, Proceedings 2000 International Conference on Software Maintenance.

[28]  Meir M. Lehman,et al.  The FEAST Approach to Quantitative Process Modelling of Software Evolution Processes , 2000, PROFES.

[29]  Robert S. Arnold,et al.  Software Change Impact Analysis , 1996 .

[30]  Meir M. Lehman Feedback in the software evolution process , 1996, Inf. Softw. Technol..

[31]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

[32]  Larry Wall,et al.  Programming Perl , 1991 .

[33]  Keith H. Bennett,et al.  A Staged Model for the Software Life Cycle , 2000, Computer.

[34]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[35]  Wladyslaw M. Turski Essay on Software Engineering at the Turn of Century , 2000, FASE.

[36]  M.M. Lehman,et al.  Programs, life cycles, and laws of software evolution , 1980, Proceedings of the IEEE.

[37]  C. Murray Woodside A mathematical model for the evolution of software , 1980, J. Syst. Softw..

[38]  Wladyslaw M. Turski Reference Model for Smooth Growth of Software Systems(003)5402022 , 1996, IEEE Transactions on Software Engineering.

[39]  Meir M. Lehman,et al.  Towards a theory of software evolution - and its practical impact , 2000, Proceedings International Symposium on Principles of Software Evolution.

[40]  Meir M. Lehman,et al.  Software's future: managing evolution , 1998, IEEE Software.

[41]  William M. Thomas,et al.  Maintenance of COTS-intensive software systems , 1997, J. Softw. Maintenance Res. Pract..

[42]  Rachel Harrison,et al.  Software evolution and software evolvability , 2003 .

[43]  Shari Lawrence Pfleeger The Nature of System Change , 1998, IEEE Softw..

[44]  M. M. Lehman,et al.  Software process white box modelling for FEAST/1 , 1999, J. Syst. Softw..

[45]  Meir M. Lehman TheSE-An Approach to a Theory of Software Evolution , 2000 .

[46]  Ian Sommerville,et al.  Software engineering (6th ed.) , 2001 .

[47]  Meir M. Lehman,et al.  Feedback, evolution and software technology , 1996, Proceedings 10th International Software Process Workshop.

[48]  Tom Gilb,et al.  Evolutionary development , 1981, SOEN.

[49]  Meir M. Lehman Programs, Cities, Students— Limits to Growth? , 1978 .

[50]  Barry Boehm,et al.  Characteristics of software quality , 1978 .

[51]  M. M. Lehman Technical correspondence: uncertainty in computer application , 1990 .

[52]  Goel Kahen,et al.  Dynamic Modelling in the Investigation of Policies for E-type Software Evolution , 2000 .

[53]  Władysław Turski,et al.  The specification of computer programs , 1987 .

[54]  M LehmanMeir,et al.  Rules and Tools for Software Evolution Planning and Management , 2001 .

[55]  M. J. Lawrence,et al.  An examination of evolution dynamics , 1982, ICSE '82.