Revolutionising the Process of Software Development

Talk by Justyna Petke (University College London)
Time: 14:00-14:30
Slides
More info

Abstract

Nowadays a lot of programmers’ effort is spent on testing and optimising software. If you take multiple non-functional properties into account, such as energy and memory consumption, finding the best compromise between such optimisation objectives becomes not only time consuming but also extremely difficult even for the most skilful programmers. The need for automated techniques for improvement of existing software led to the development of the new field of research called genetic improvement (GI). This paradigm has already been successfully used to optimise software efficiency, for instance, it led to a 70x speed-up of a particular bio-informatics system. Our group has also used genetic improvement techniques to reduce energy consumption and in award-winning work on software specialisation and software transplantation. In particular, we improved the efficiency of MiniSAT, a popular Boolean satisfiability solver, by specialising it for a particular set of benchmarks using GI. Furthermore, we autotransplanted a video encoding functionality from one system to the popular VLC media player within 26 hours of computation time compared to 20 days of elapsed time taken by human programmers.