DAASE researcher Dr Justyna Petke has been awarded a prestigious five year fellowship by the Engineering and Physical Sciences Research Council for her research project: Automated Software Specialisation Using Genetic Improvement.
Dr Petke aims to change the face of software engineering by transferring the task of software specialisation from human to machine. The genetic improvement techniques that will be developed will provide an automated way to speed up computationally intensive calculations within software, saving time and money.
Genetic improvement is a novel field of research that has only arisen as a standalone area in the last few years. Several factors have contributed to the development and success of this field recently including the sheer amount of code now available online and the focus on automated improvement of non-functional properties of software, such as memory consumption.
“This fellowship is a dream come true. It will allow me to start my own small research group and pursue the development of automated software improvement techniques. We have already had a few success stories in our group, yet the area of genetic improvement is still in it’s early stages, leaving lots of research opportunities to explore.”
Dr Justyna Petke
Dr. Petke is a world-leading expert on genetic improvement, publishing award-winning work on automated software specialisation and transplantation. She won two `Humies’ awarded for human-competitive results produced by genetic and evolutionary computation and a distinguished paper award at the International Symposium on Software Testing and Analysis. This work was also widely covered in media, including Wired magazine and BBC Click.
Dr. Petke will collaborate with a UK-based company, called Satalia, which provides the latest optimisation techniques to the industry.
DAASE research Alexandru Marginean describes his research into automated software transplantation
DAASE PhD researcher Matheus Paixao explains his research into architectural decay in software.
DAASE researcher Dr Bill Langdon explains his research using search based software engineering in genetic improvement.
We launched the DAASE project on the 16th October 2012, Ada Lovelace day. What an auspicious day for us to launch our project, concerned as it is, with the problem of optimising software code using automated search techniques. At the meeting we reminded ourselves of Ada Augusta Lovelace’s insights, written nearly two centuries previously:
“The order in which the operations shall be performed in every particular case is a very interesting and curious question, on which our space does not permit us fully to enter. In almost every computation a great variety of arrangements for the succession of the processes is possible, and various considerations must influence the selection amongst them for the purposes of a Calculating Engine. One essential object is to choose that arrangement which shall tend to reduce to a minimum the time necessary for completing the calculation.”
(AAL, Note D on the Analytical Engine, 1837)
How prescient these words have turned out to be. Of course, Lovelace is much better known for the quote from Note A on the analytical engine:
“We may say most aptly, that the Analytical Engine weaves algebraical patterns just as the Jacquard loom weaves flowers and leaves.”
(AAL, Note A on the Analytical Engine, 1837)
Perhaps the notoriety of this quotation is hardly surprisingly, coming as it does from the daughter of a poet and a mathematician. What more evocative statement can there be about the subtlety and delight of programming than this statement, uniting the scientific and aesthetic qualities of software?
However, it is this first quote (Note D) in which Lovelace, not only recognises the vital importance of software, but the critical role played by optimisation on the behaviour of software. Her words, written 175 years before our meeting, remain relevant and important to us today. Perhaps they are even more important to us than they were in her own day, illuminated only by gaslight (Thomas Edison would not be born for another 10 years).
In our project we seek not merely to automatically rearrange the order in which the operations are performed, but also to automatically re-engineer new versions of programs which can meet multiple conflicting and completing objectives.
We wish to change, fundamentally, the perception of software from being a craft-based artefact, produced by the skill of human hands, guided by human brains. To us, software is an engineering material, that can and should produced by automated construction and reconstruction, evolution and revolution. The role of the human brain is retained in the description of the objectives to be met. In our vision, these become translated into fitness functions which guide the construction and post-deployment evolution of the software.
In so doing we address the original goals of the many declarative programming and self-adaptive systems initiatives: leading software engineers away from the messy details of how software should achieve its goals to the more valuable role of describing what those objectives should be so that systems can be truly self-adaptive; reconstructing itself, in situ, to respond to its changing environment.
We seek not merely to reduce to a minimum the time necessary (making software faster), but also to attack a wide range of other so-called “non-functional” properties of software (throughput, power consumption, security attack surface; anything that can be described and measured about the behaviour of a system).
We hope that we should be able to change the way in which software is developed. Instead of writing one program by hand to meet one specific objective, we will seek to deploy the optimisation into the code so that it can re-optimise and re-balance itself as its operating environment changes.
Software engineers are both blessed and cursed by the supreme flexibility of their intangible engineering material. DAASE will focus on the blessing. We may say most aptly, that the DAASE project weaves together optimisation and operation so that software becomes dynamically adaptive.