A Biologist's View of Software Evolution

The term “software evolution” is generally used as an analogy for biological evolution. This paper explores that analogy in more depth, analyzing software evolution from the biologist’s point of view. I give a basic introduction to genetic algorithms, and describe two major issues that effect evolvability: local optima in the search space, and genotype to phenotype mappings. Aspects and meta-programs address both of these issues. Encapsulation can be seen as a technique for reducing epistasis, while meta-programming can be seen as an analog to morphogenesis.

[1]  F. Eeckman,et al.  Evolution and Biocomputation: Computational Models of Evolution , 1995 .

[2]  李幼升,et al.  Ph , 1989 .

[3]  K. Beck,et al.  Extreme Programming Explained , 2002 .

[4]  John R. Koza,et al.  Genetic programming - on the programming of computers by means of natural selection , 1993, Complex adaptive systems.

[5]  S. Kauffman,et al.  Towards a general theory of adaptive walks on rugged landscapes. , 1987, Journal of theoretical biology.

[6]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[7]  Frédéric Gruau,et al.  Genetic Synthesis of Modular Neural Networks , 1993, ICGA.

[8]  Daniel A. Levinthal Adaptation on rugged landscapes , 1997 .

[9]  Günter P. Wagner,et al.  Complex Adaptations and the Evolution of Evolvability , 2005 .

[10]  이준상,et al.  미래 소프트웨어 개발기술 : Aspect - Oriented Programming과 Subject - Oriented Programming , 2003 .

[11]  Dorothea Heiss-Czedik,et al.  An Introduction to Genetic Algorithms. , 1997, Artificial Life.

[12]  Daniel L. Stein,et al.  Lectures In The Sciences Of Complexity , 1989 .

[13]  Lee Altenberg,et al.  Genome Growth and the Evolution of the Genotype-Phenotype Map , 1995, Evolution and Biocomputation.

[14]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[15]  David E. Goldberg,et al.  Genetic Algorithms in Search Optimization and Machine Learning , 1988 .

[16]  Andrew Tuson,et al.  No optimisation without representation : a knowledge based systems view of evolutionary/neighbourhood search optimisation , 1999 .

[17]  David E. Goldberg,et al.  The Design of Innovation: Lessons from and for Competent Genetic Algorithms , 2002 .

[18]  Jeffrey Horn,et al.  Handbook of evolutionary computation , 1997 .

[19]  Przemyslaw Prusinkiewicz,et al.  The Algorithmic Beauty of Plants , 1990, The Virtual Laboratory.