Genetic Programming and Evolvable Machines

, Volume 18, Issue 1, pp 83–109 | Cite as

Online Genetic Improvement on the java virtual machine with ECSELR

  • Kwaku Yeboah-Antwi
  • Benoit Baudry


Online Genetic Improvement embeds the ability to evolve and adapt inside a target software system enabling it to improve at runtime without any external dependencies or human intervention. We recently developed a general purpose tool enabling Online Genetic Improvement in software systems running on the java virtual machine. This tool, dubbed ECSELR, is embedded inside extant software systems at runtime, enabling such systems to self-improve and adapt autonomously online. We present this tool, describing its architecture and focusing on its design choices and possible uses.


Genetic improvement Evolutionary computation Genetic programming Artificial intelligence Software engineering 



This work is partially supported by the EU FP7-ICT-2011-9 No. 600654 DIVERSIFY project.


  1. 1.
    M. Arlitt, T. Jin, Workload characterization of the 1998 world cup web site. IEEE Netw. 14(3), 30–37 (1999)CrossRefGoogle Scholar
  2. 2.
    N. Burles, J. Swan, E. Bowles, A.E., Brownlee, Z.A., Kocsis, N., Veerapen, Embedded dynamic improvement. In: Proceedings of the Companion Publication of the 2015 Annual Conference on Genetic and Evolutionary Computation, ACM, Madrid, Spain, GECCO Companion ’15, pp 831–832, doi: 10.1145/2739482.2768423 (2015)
  3. 3.
    G. Fraser, A. Arcuri, Evosuite: automatic test suite generation for object-oriented software. In: Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering, ACM, Szeged, Hungary, ESEC/FSE ’11, pp 416–419, doi: 10.1145/2025113.2025179 (2011)
  4. 4.
    J. Gustavsson, A classification of unanticipated runtime software changes in java. In: Proceedings of the International Conference on Software Maintenance, IEEE Computer Society, Amsterdam, Netherlands, ICSM ’03, p. 4, (2003)
  5. 5.
    M. Harman, E. Burke, J. Clark, X. Yao, Dynamic adaptive search based software engineering. In: Proceedings of the ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, ACM, Lund, Sweden, ESEM ’12, pp 1–8, doi: 10.1145/2372251.2372253 (2012a)
  6. 6.
    M. Harman, W.B. Langdon, Y. Jia, D.R. White, A. Arcuri, J.A. Clark, The gismoe challenge: Constructing the pareto program surface using genetic programming to find better programs (keynote paper). In: Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering, ACM, Essen, Germany, ASE 2012, pp 1–14, doi: 10.1145/2351676.2351678 (2012b)
  7. 7.
    M. Harman, W. Langdon, W. Weimer, Genetic programming for reverse engineering. In: Reverse Engineering (WCRE), 2013 20th Working Conference on, pp. 1–10, doi: 10.1109/WCRE.2013.6671274 (2013)
  8. 8.
    M. Harman, Y. Jia, W.B. Langdon, J. Petke, I.H. Moghadam, S. Yoo, F. Wu, Genetic improvement for adaptive software engineering (keynote). In: Proceedings of the 9th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, ACM, Hyderabad, India, SEAMS 2014, pp. 1–4, doi: 10.1145/2593929.2600116 (2014)
  9. 9.
    M.Y. Hou, X.Y. Liu, H.H. Liu, Fifi: An architecture to realize self-evolving of java program (2006)Google Scholar
  10. 10.
    W.B. Langdon, Genetically improved software. In: Gandomi AH, Alavi AH, Ryan C (eds) Handbook of Genetic Programming Applications, Springer, chap 8, pp. 181–220, doi:10.1007/978-3-319-20883-1_8, (2015)
  11. 11.
    W.B. Langdon, M. Harman, Optimising existing software with genetic programming. IEEE Transactions on Evolutionary Computation (2013). doi:10.1109/TEVC.2013.2281544,, accepted
  12. 12.
    M. Orlov, M. Sipper, Flight of the finch through the java wilderness (2010)Google Scholar
  13. 13.
    J. Petke, M. Harman, W.B. Langdon, W. Weimer, Using genetic improvement and code transplants to specialise a C++ program to a problem class. In: Nicolau M, Krawiec K, Heywood MI, Castelli M, Garcia-Sanchez P, Merelo JJ, Rivas Santos VM, Sim K (eds) 17th European Conference on Genetic Programming, Springer, Granada, Spain, LNCS, vol 8599, pp 137–149, doi:10.1007/978-3-662-44303-3_12, (2014)
  14. 14.
    E. Schulte, S. Forrest, W. Weimer, Automated program repair through the evolution of assembly code. In: Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, ACM, Antwerp, Belgium, ASE ’10, pp 313–316, doi: 10.1145/1858996.1859059 (2010)
  15. 15.
    J. Swan, N. Burles, Templar: a framework for template-method hyper-heuristics. In: Machado P, Heywood MI, McDermott J, Castelli M, Garcia-Sanchez P, Burelli P, Risi S, Sim K (eds) 18th European Conference on Genetic Programming, Springer, Copenhagen, LNCS, vol 9025, pp 205–216, doi:  10.1007/978-3-319-16501-1_17 (2015)
  16. 16.
    J. Swan, M. Epitropakis, J.R. Woodward, Gen-o-fix: An embeddable framework for dynamic adaptive genetic improvement programming. Tech. rep., Technical Report January, Department of Computing Science and Mathematics, University of Stirling, Stirling, UK (2014)Google Scholar

Copyright information

© European Union 2016

Authors and Affiliations

  1. 1.INRIARennesFrance

Personalised recommendations