A Brief Introduction to the FEAST Hypothesis and Projects

(Feedback, Evolution And Software Technology)

 

 

FEAST/1 Home Page --------------------------- FEAST/2 Home Page

Click here to go directly to FEAST Publications & Presentations

Based on an observation first made in 1971 [leh85] and three international workshops in 1993 and 1994, the FEAST/1 project was set up to explore the hypothesis that to improve real world software processes one must take into account the multi loop feedback structure of such processes. With the successful conclusion of this project, a second project, FEAST/2, was initiated to broaden and extend the conclusions. The FEAST projects terminated officially in March 2001, FEAST/1 [leh96] having run from October 1996 to September 1998 and FEAST/2 [leh98b] from April 1999 to March 2001 but group activity continued till September 2001. A fourth international workshop with 40 participants from 11 countries took place in July 2000.

Though initially intended to investigate the FEAST hypothesis, the projects were broadened to study software evolution as a phenomenon in its own right [leh94,98a]. As evidenced by the observed regularities in patterns and trends of evolutionary attributes, the FEAST observations support the hypothesis that process behaviour is constrained by its system dynamics [for61]. The latter relates to the feedback mechanisms and loop-structures of the full process [leh94,98a] that involves analysts, developers, domain specialists, support personnel, marketeers, managers, other agents, methods applied, tools used, users, etc. Success depends on their aggregated activity and is ultimately reflected in stakeholder satisfaction. Sustainable improvement requires feedback mechanisms to be tuned. In the software process this is, however, rarely done. Thus, the complex communication and control loop-structure with its many forward and feedback paths, implies amongst other things, that the scope for manoeuvre, in terms of achievable system growth or evolution rate for example, is more constrained than is normally assumed.

The presence of feedback phenomenona in software - and other - processes is clear; practical means for its mastery are less obvious. It requires, inter alia, the use of metrics, models, interpretations that facilitate reasoning about process-feedback-loop structures. This is illustrated by, for example, the FEAST use of simulation models to assess the impact of alternative evolution strategies [kah01]. The 35 management rules and guidelines [leh01a] derived from the FEAST observations provide another example. These have a potential to significantly increase prospects for stakeholder satisfaction over application lifetime. These, and many other, FEAST results were derived by analysis of data received from some of the collaborators (collaborators were BT (FEAST/2 only), DERA, ICL, Logica, Matra-BAe Dynamics, Lucent Technologies (de facto)), and from their contributions at the quarterly project workshops. Despite the fact that the systems analysed came from diverse application and implementation domains and that they displayed some differences in the detail of their evolutionary behaviour, the general behaviour was remarkably similar, largely replicating that observed in the 1970s studies [leh85]. The newer results necessitated only minor modification of earlier observations as encapsulated, for example, in the laws of software evolution [leh85,98c].

The observed growth trend, a surrogate of system functional growth, constitutes an evolutionary attribute of some interest. Over its first 19 releases OS/360 grew linearly with respect to release sequence numbers, the latter a pseudo-time indicator. Later growth data gathered in FEAST revealed, however, a segmented, decaying growth trend phenomenon. The former is reflected by the fact that improved models were obtained by segmenting available data (10 to 20 years' worth) and fitting separately for each segment. The trends were represented by a discrete inverse square model s(i) = s(i) + e/s(i)2 [tur96] where s(i) is the size the release with sequence number i and e is a model parameter. A related continuous time model is also being studied [leh01b]. This takes the form s(t) = t 1/g where s(t) is the size of the release at system age t (for practical reasons, release sequence numbers instead of real time was used to determine the initial models) and g is a model parameter. Prediction accuracy of variants of the models was between 1.7 and 12 percent when models were fitted to individual segments, and between 5 and 17 percent if fitting was to the full data-set. The decaying trends are consistent with the interpretation that, as suggested by the 2nd law of software evolution, growing system complexity is at least one of the constraints on functional growth. In fact, FEAST observations, models and interpretations provide direct and indirect support for six of the eight laws of software evolution [leh98c]. In regard to the other two, theoretical reasoning supporting the seventh was strengthened. The fourth law has been refined to take observed segmentation in growth and other trends such as elements handled (a surrogate of work-rate) into account. It suggests that over the trend-discontinuity interval, process and/or system changes were instituted in response to a misfit between system and domain, a declining growth rate, increasing difficulty of achieving reliable and responsive evolution and so on. There is, in general, no evidence of conscious management of functional or physical size and these results suggest that primary constraints on system growth stem from the system dynamics, with regulatory mechanisms applied via process feedback loops. Hence, these results provide support for the 8th law.

The FEAST projects contributed significantly to increased understanding of the software evolution phenomenon and to spreading interest in the topic as illustrated by active research groups in the UK, USA, Europe, Australasia and Japan. The increase in interest is exemplified by a change of name of the Journal of Software Maintenance to Journal of Software Maintenance and Evolution and the, now annual, IWPSE workshop at the most recent of which (Kanazawa 2000, Vienna 2001) the FEAST group was invited and gave the Keynote Lectures. In contrast to FEAST, where the focus was on understanding the "what" and "why" of the evolution phenomenon, the emphasis of the majority of the groups is on the "how" of evolution, on methods and tools to change software. Active interest in the former issue is also needed.

Understanding of the phenomenon has now reached a level where formalisation can provide benefits such as, in linking rules and guidelines to phenomenological observations. In this regard, a project proposal, SETh - An Approach to a Theory of Software Evolution [leh01c] has been submitted to EPSRC. The project, including a group of industrial collaborators, expects to initiate formation of a theory based, inter alia, on empirical generalisations suggested by FEAST and other software evolution research.

The FEAST projects were limited to a study of what could be termed the classical software process as variously practised in industry for the last forty years or so. A second project proposal, EPiCS [leh01d], is in the final stages of preparation and collaborators that can offer access to their processes are currently being sought. It is hoped to address the extension of the feedback and evolution studies to software process paradigms such as OO, component and COTS based architecture, open source programming and so on.

Detailed discussion of the software evolution phenomenon, the FEAST results and other information can be found via links from http://www.doc.ic.ac.uk/~mml/feast2/papers.html.

In addition to the undersigned who were Principal Investigator and Research Associate, respectively, Dr. Paul Wernick was a Research Associate in FEAST/1 and Dr. Goel Kahen in FEAST/2. The projects were ably supported by Ms Jane Rakestraw and Mrs Siew F. Lim-Yeo, respectively. Professors Dewayne E Perry and Wlad M Turski were Senior Visiting Fellows for three years, spanning the two projects. The two projects were supported by the UK EPSRC, as were the Senior Visiting Fellows.

 

M M Lehman

J F Ramil

London, Dec. 2001

 

References

[for61] Forrester JW, Industrial Dynamics, Productivity Press, Cambridge, MA, 1961

[kah01] Kahen G, Lehman MM, Ramil JF and Wernick PD, System Dynamics Modelling of Software Evolution Processes for Policy Investigation: Approach and Example, J. of Syst. and Software, v. 59, 2001, pp 271-281

[leh85] Lehman MM and Belady L, Program Evolution – Processes of Software Change, Academic Press, London, 1985

[leh94] Lehman MM, Feedback in the Software Evolution Process, Keynote Address, CSR Eleventh Annual Workshop on Software Evolution: Models and Metrics. Dublin, 7-9 Sept. 1994, Workshop Proc., Information and Software Technology, sp. is. on Software Maintenance, v. 38, n. 11, 1996, Elsevier, 1996, pp. 681-686

[leh96] Lehman MM and Stenning V, FEAST/1: Case for Support, ICSTM, DoC, EPSRC Proposal, Nov. 1995/March 1996, 11 pps

[leh98a] Lehman MM and Ramil JF, The Impact of Feedback in the Global Software Process, Keynote Lect., ProSim '98 Workshop, Silver Falls, OR, 23 Jun. 1998, revised vers. in J. of Sys. and Softw., Vol. 46, No.2/3, 14 Apr. 1999, pp 123-134

[leh98b] Lehman MM, FEAST/2: Case for Support, ICSTM, DoC, EPSRC Proposal, July 1998, 11 pps

[leh98c] Lehman MM, Perry DE and Ramil JF, On Evidence Supporting the FEAST Hypothesis and the Laws of Software Evolution, Proc. Metrics'98, Bethesda, MD, 20-21 Nov. 1998, pp. 84-88

[leh01a] Lehman MM and Ramil J, Rules and Tools for Software Evolution Planning and Management, Annals of Software Eng., spec. iss. on Softw. Manag., vol. 11, 2001, Autumn 2001

[leh01b] Lehman MM, Ramil J and Sandler U, An Approach to Modelling Long-term Growth Trends in Software Systems, Proc. ICSM 2001, Florence, Italy, 6-9 Nov. 2001, pp. 219 - 228

[leh01c] Lehman MM and Ramil J, An Approach to a Theory of Software Evolution, pre-prints IWPSE 2001, Vienna, 10 - 11 Sep. 2001. To be publ. in Proc. IWPSE 2001

[leh01d] id., EPiCS, Evolution Phenomenology in Component-intensive Software, WESS 2001, Florence, 10 Nov. 2001

[tur96] Turski WM, A Reference Model for the Smooth Growth of Software Systems, IEEE Trans. Softw. Eng., v. 22, n. 8, Aug. 1996, pp. 599 – 600


Copyright (c) 2001. All rights reserved.

Updated: 20 Dec 2001