Thank you to our speakers for kindly agreeing to make these papers and slides available freely online.

Energy Optimisation via Genetic Improvement (Camera-Ready PDF) (Slides)

Bobby R. Bruce (University College London)

The discipline of Software Engineering has arisen during a time in which developers rarely concerned themselves with the energy efficiency of their software. Due to the growth in both mobile devices and large server clusters this period is undoubtedly coming to an end and, as such, new tools for creating energy-efficient software are required. This paper takes the position that Genetic Improvement, a Search-Based Software Engineering technique, has the potential to aid developers in refactoring their software to a more energy-efficient state; allowing focus to remain on functional requirements while leaving concerns over energy consumption to an automated process.

Genetic Improvement using Higher Order Mutation (Camera-Ready PDF)  (Slides)

Yue Jia (University College London); Fan Wu (University College London); Mark Harman (University College London); Jens Krinke (University College London)

This paper presents a brief outline of a higher-order mutation based framework for Genetic Improvement (GI). We argue that search-based higher-order mutation testing can be used to implement a form of genetic programming (GP) to increase the search granularity and testability of GI.

GI4GI: Improving Genetic Improvement Fitness Functions (Camera-Ready PDF) (Slides)

Mark Harman (University College London); Justyna Petke (University College London)

Genetic improvement (GI) has been successfully used to optimise non-functional properties of software, such as execution time, by automatically manipulating program’s source code. Measurement of non-functional properties, however, is a non-trivial task; energy consumption, for instance, is highly dependant on the hardware used. Therefore, we propose the GI4GI framework (and two illustrative applications). GI4GI first applies GI to improve the fitness function for the particular environment within which software is subsequently optimised using traditional GI.

Grow and Graft a better CUDA pknotsRG for RNA pseudoknot free energy calculation (Camera-Ready PDF) (Slides)

William B. Langdon (University College London); Mark Harman (University College London)

Grow and graft genetic programming greatly improves GPGPU dynamic programming software for predicting the minimum binding energy for folding of RNA molecules. The parallel code inserted into the existing CUDA version of pknots was “grown” using a BNF grammar. On an nVidia Tesla K40 GPU GGGP gives a speed up of up to 10 000 times.

Repairing COTS Router Firmware without Access to Source Code or Test Suites: A Case Study in Evolutionary Software Repair (Camera-Ready PDF) (Slides)

Eric Schulte (GrammaTech); Westley Weimer (University of Virginia); Stephanie Forrest (University of New Mexico)

Rethinking Genetic Improvement Programming  (Camera-Ready PDF) (Slides)

David R. White (University of Glasgow); Jeremy Singer (University of Glasgow)

We re-examine the central motivation behind Genetic Improvement Programming (GIP), and argue that the most important insight is the concept of applying Genetic Programming to existing software. This viewpoint allows us to make several observations about potential directions for GIP research.

Embedding Adaptivity in Software Systems using the ECSELR framework (Camera-Ready PDF) (Slides)

Kwaku Yeboah-Antwi (INRIA); Benoit Baudry (INRIA)

ECSELR is an ecologically-inspired approach to software evolution that enables environmentally driven evolution at runtime in extant software systems without relying on any offline components or management. ECSELR embeds adaptation and evolution inside the target software system enabling the system to transform itself via darwinian evolutionary mechanisms and adapt in a self contained manner. This allows the software system to benefit autonomously from the useful emergent byproducts of evolution like adaptivity and bio-diversity, avoiding the problems involved in engineering and maintaining such properties. ECSELR enables software systems to address changing environments at runtime, ensuring benefits like mitigation of attacks and memory-optimization among others while avoiding time consuming and costly maintenance and downtime. ECSELR differs from existing work in that,  1) adaptation is embedded in the target system,  2) evolution and adaptation happens online(i.e. in-situ at runtime) and 3) ECSELR is able to embed adaptation inside systems that have already been started and are in the midst of execution. We demonstrate the use of ECSELR and present results on using the ECSELR framework to slim a software system.