Category Archives: Uncategorized

Revolutionising the process of software development

Suppose you wanted to have a new feature in your program, for example, you might want your chat client to provide support for multiple languages. There is already an abundance of language translators freely available online. Thus all that’s left to do is to pick one and adopt it for the chat client at hand. Currently such a task lies upon the shoulders of expert human software developers. As one might imagine, for the most popular pieces of software, like Facebook, there might be hunderds of request for new features coming in everyday. Programmers are then left to do the frequently daunting work of transplanting existing code implementing given functionality from one program to another. What if we could automate this process?


The process of software transplantation has a nice analogy with human organ transplants – you extract an organ (required functionality) from the donor (program) and insert it into the host (program). The key difference is that human organ transplantaion is very costly, whilst software errors in the development process happen on a daily basis. Furthermore, there’s nothing stopping programmers from trying to transplant a feature hundreds if not thousands of times. However, this would keep them away from doing more creative tasks.

We have thus applied a technique for automated software transplantation called genetic improvement and obtained award-winning results. GI was used to transplant a linguistic translation feature into the Pidgin instant messaging system that simultaneously translates the user’s English language instant messages into Portuguese and Korean [1]. We have also used it to automatically specialise software for a concrete application [2] as well as transplant a video encoding feature into the popular VLC media player [3]. This work has also been covered by WIRED.

We envision a future where expert software developers can be relieved of the task of transplanting existing code, leaving them more time to develop new and exciting software.


[1] Mark Harman,W B Langdon and Yue Jia. “Babel Pidgin: SBSE can grow and graft entirely new functionality into a real world system”. Symposium on Search-Based Software Engineering (SSBSE) 2014.

[2] Justyna Petke, Mark Harman, William B. Langdon and Westley Weimer. “Using Genetic Improvement & Code Transplants to Specialise a C++ Program to a Problem Class”. European Conference on Genetic Programming (EuroGP) 2014.

[3] Earl T. Barr, Mark Harman, Yue Jia, Alexandru Marginean and Justyna Petke. “Automated Software Transplantation”. International Symposium on Software Testing and Analysis (ISSTA) 2015.

Advisory Board Live Blog

Professor Mark Harman welcomes everyone to the meeting and asks us all to introduce ourselves.

DAASE Advisory Board attendees

Professor Harman introduces the project:

DAASE project motivation relates to the nature of programming, for the majority of time computers were people, eg. Pickering’s Harem. We would take the brightest people we have and get them to do really repetitive, mechanical tasks. That’s what a lot of programmers spend their time doing today.

The DAASE project is funded £6.8 million from EPSRC brought up to approx £12 million by the universities involved in matched funding.

Four sites: UCL, Birmingham, York and Stirling

Details of the DAASE: Dynamic Adaptive Automated Software Engineering EPSRC grant and project partners.

The universities involved have committed to funding 26 PhD students, EPSRC are funding 22 post doc researchers and some funding to bring in secondments and sabbatical staff.

The essential idea of the project is to take search based software engineering and use it to create dynamic adaptive systems.

Its a huge task to balance all the necessary functional and non-functional properties needed in modern software, multiple devices, multiple objectives etc. Why are we using humans to do this, it is too complicated. Why not use a machine to optimise this? Use optimisation techniques to continually optimise and adapt rather than using people.

Would like also to investigate the functional properties themselves, why can’t we use optimisation techniques to test functional properties? This wouldn’t be appropriate in safety critical software, but perhaps in other situations like battery life on a mobile phone.

Is there any evidence that SBSE can be used in dynamic adaptive approaches to software engineering?

The original program can serve as an oracle, code can be re-evolved for a new environment, functional and non-functional objectives can be combined.

Software uniqueness, with 500 million LOC you only have to write 6 statements before you are writing unique code. The space of candidate programs is smaller that you might imagine.

Dynamically discovering static truths: a small amount of dynamic information is sufficient to approximate static information.

Professor Harman introduces the DAASE team. Principal Investigator is Professor Harman. Co Investigators are: Edmund Burke, Xin Yao and John Clark.

The team have already had many visits to academic and industrial sites, and have given several keynotes and workshops around the world and have hosted visits which have already led to 37 publications and there are 19 to appear.

Professor Harman rounds up, welcomes everyone again and says he is really excited to be running the DAASE project and looks forward to the next few years on the project.

Discussion follows involving the academic and industrial advisors.

– Coffee break –

The next session consists of five minute talks from DAASE team members and industry and academic advisory board members.

Professor John Clark, York University speaks about self stabilisation of systems, and tradeoffs

Paul Baker from Visa speaks about what he is doing at Visa, He has been writing software since he was 16 and advocates the use of science to solve problems.

Zoe Baxendale from Northrop Grumman Park Air Systems introduces her company portfolio: air traffic communications, air defence communications, turnkey communication systems, and airport systems.

Yue Jia from UCL talks about hyper heuristics for CIT problems. Yue describes the current state of the art and his recent research in the area.

Dr Sigrid Eldh from Ericsson talks about software testing at Ericsson. In 2010 Ericsson were ranked the 5th largest software company in the world. Ericsson collaborate with many universities worldwide, they apply, deploy and evaluate on real systems and support many PhD students and researchers.

– break –

Professor Xin Yao now talks about learning to predict software defects. The two top ranked techniques in this area are Naive Bayes with log filter and Random Forest. Professor Yao describes his research in using class imbalance learning in software defect prediction.

Marc Shoenauer from the TAO project team at INRIA talks about his background and research in evolutionary computing and continuous and combinatorial optimisation.

Professor Marta Kwiatkowska from Oxford University talks about her work in the area of probabilistic and quantitative model checking and PRISM and the various research projects that she leads at Oxford.

Federica Sarro a DAASE Research Associate from UCL talks about her research into predictive modelling, and multi objective overtime planning for software engineering projects, eg. how much spend on overtime is cost effective on a project?

– Federica Sarro and Mark Harman’s ICSE paper video played to rapturous applause –

– lunch –

Professor Kate Smith-Miles kicks off the afternoon talks with a description of her research interests including how to build a bionic eye and visualising the suitability of optimisation algorithms including the No Free Lunch theorem. Professor Smith-Miles research aims to answer questions like “When will a piece of software fail?”

Jerry Swan from Stirling University gives a talk about his research using an XKCD cartoon about standards proliferation to illustrate a point about error correcting subgraph isomorphism and its application within SBSE.

Joachim Wegener from Berner & Mattner talks about their engineering solutions for automotive electronics, software and mechanics and his interest in software quality assurance for embedded systems.

Leandro Minku from University of Birmingham talks about software effort estimation and using machine learning to create effort estimation models. Leandro’s models are created and trained based on existing completed projects taking input attributes like team experience, programming languages, lines of code etc.

Jeroen Mulder is next, he is a Senior Operations Research Analyst from KLM/Air France. He works on forecasting passenger behaviour, flight schedule optimisation, rostering cabin staff, market demand, and optimising network potential.

Gabriela Ochoa from University of Stirling talks next about how to design good heuristic search algorithms, good algorithms are hybrid and dynamic. Gabriela talks about her research thus far on the DAASE project so far finding new metrics and credit assignment mechanisms.

Tobias Rodemann from Honda talks about research at Honda Research Institutes (HRI) – Innovation Through Science. Their research is in biologically inspired processing, computer vision, dynamic scene processing and cognitive systems, speech recognition and fast sensory processing. Thomas is particulalrly interested in evolutionary optimisation and gives us some details of his research.

– break –

Professor Mike Holcombe from Sheffield University says its not the technology, its the people that cause issues in software projects and then goes on to talk about his research in Computational Systems Biology and economic simulation models. Mike set up Genesys Solutions, a student run software development company which works mainly on web applications and small system development.

Simon Poulding from University of York talks about his research into efficient test coverage in software engineering using stochastic context-free grammars, he describes a case study on robot behaviour which used Lego Mindstorms robots.

Professor Erwin Pesch from Universität Siegen talked about his research in time and resource scheduling, logistics and planning in several areas such as airlines, hospital and the automotive industry.

John Woodward from University of Stirling talks about Dynamic Adaptive Automated Software Engineering and genetic programming.

Professor John Clark asks everyone for feedback on the day and thanks everyone for attending.

– end –

Homage to Ada Augusta Lovelace: DAASE weaves optimisation and operation



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.

See also:

Five Minute Audioboo interview of Mark Harman by Sue Black about Ada Lovelace