EPSRC Network on Evolvability in Biology & Software Systems

Software Evolution and Evolutionary Computation Symposium Abstracts

University of Hertfordshire, Hatfield, U.K.

7-8 February 2002


Analogies for Software Evolution: Darwin or Lamarck?

Analogies for Software Evolution: Darwin or Lamarck?

PAUL WERNICK


University of Hertfordshire College Lane Hatfield AL10 9AB, UK

p.d.wernick@herts.ac.uk

The term `Software Evolution' is used to describe a number of different phenomena observed in the lifetimes of software products. These form a temporal hierarchy, from the transition of a software product from one release to the next, via changes made in a software system over its lifetime, to the history of one software product type such as all word processors. These definitions share the idea of change over time, but the timescales and issues of concern differ. The definition adopted here is that of the long-term change of a long-lived individual software product to meet the changing requirements of its environment.

The term `Software Evolution' suggests that analogies from biology might be useful in explaining software evolution phenomena. Two relevant theories of biological change are those of Darwin and Lamarck. For Darwin, a species is not permanently stable; random/chance mutations can occur in individuals. `Natural selection' acts on these individuals to determine which are more useful; those advantaged by their modifications are more likely to survive to reproduce. Crucially, the environment can result in modifications to a specific individual to help it to adapt, but these changes cannot be passed on directly to that individual's offspring (Weismann's Barrier). The entire process is slow, with periods of stability within a species between changes. Weismann's Barrier makes the system an open-loop one; there is no feedback between environment and species.

According to Lamarck's theory, an individual in a species can acquire advantageous modifications directly from interaction with its environment. These modifications can be passed on to individuals in following generations, which in turn can interact further with their (possibly changed) environment. Thus there is a potential for an on-going feedback cycle between the individuals and their environment, with each generation having the characteristics of its parents, including any changes in the parents, and potentially acquiring more. As a result, rapid changes in a species over a few generations can be triggered by equivalently rapid changes in the environment, as the individuals adapt to meet environmental changes and pass these changes on to their offspring. The more recent neo-Lamarckianism addresses the evolution of entities which do not reproduce sexually.

A critique of the commonly-seen Darwinian analogy for software evolution can be made on the following grounds:

A Lamarckian analogy for software evolution makes for a better, if still not perfect, parallel than the Darwinian:

Whilst not a perfect fit the Lamarckian analogy, probably in the form of the neo- Lamarckian theory, provides a more accurate parallel with software evolution than that of Darwin.