Metrics and Laws of Software Evolution
Meir Manny Lehman, Juan F. Ramil, Paul Wernick · 2000
The process by which real world, E-type, software is developed and evolved to remain satisfactory in a changing operational domain has, over the years, proven most difficult to improve. It is suggested that this may be due to the very nature of the global process, which is a complex, multi-variable, multi-loop, multi-level, feedback controlled system involving humans. This observation was first recorded in the early 70s during an extended study of the evolution of OS/360; a study that ultimately led to Lehman's laws of software evolution. Following the realisation that this observation is relevant to the current interest in software process improvement, it has been formalised in a FEAST hypothesis. If the hypothesis represents a widespread phenomenon, important research issues are raised. Their resolution could lead to significant technological advances. An on-going project, FEAST/1, based on the observation is briefly described. Preliminary conclusions from an, as yet incomplete, study of the Logica plc Fastwire (FW) financial transaction system are outlined and compared with those reached during the earlier OS/360 study. The new analysis supports or, better does not contradict, the laws of software evolution as originally formulated or the more recent FEAST hypothesis, strengthening confidence in their validity. Analysis of the data provides, for example, indications that after some six releases the FW growth trend is largely determined by the dynamics of the process. More generally, the results so far obtained suggest that the 1970s approach to metric analysis of software evolution is still relevant in the 1990s. It is hoped that the two-year FEAST/1 study will provide a solid theoretical and methodological foundation for mastering the feedback aspects of the software evolution process. Continued multi-disciplinary studies and, for example, development of feedback based software process modelling, should open up new paths for major software process improvement.