Current software development processes are expensive, laborious and error prone. They achieve adaptivity at only a glacial pace, largely through enormous human effort, forcing highly skilled engineers to waste significant time adapting many tedious implementation details. Often, the resulting software is equally inflexible, forcing users to also rely on their innate human adaptivity to find "workarounds". This creates a pressing need for greater automation and adaptivity.
Dynamic Adaptive Automated Software Engineering (DAASE) is an EPSRC funded project that aims to create a new approach to software engineering which places computational search at the heart of the process and products it creates and embeds adaptivity into both. This new approach will produce software that is dynamically adaptive, being not only able to respond to and fix problems that arise before deployment and during operation, but also to continually optimise, re-configure and evolve to adapt to new operating conditions, platforms and environmental challenges. DAASE will create an array of new processes, methods, techniques and tools for this new kind of software engineering, radically transforming both theory and practice of software engineering. As part of it, DAASE will develop a hyper-heuristic approach to adaptive automation. A hyper-heuristic is a methodology for selecting or generating heuristics. Most heuristic methods in the literature operate on a search space of potential solutions to a particular problem. However, a hyper-heuristic operates on a search space of heuristics.
In order to achieve its goals, DAASE counts with teams of researchers from both the Operational Research and Search Based Software Engineering communities. It involves University College London, the University of York, University of Stirling, the University of Birmingham and a growing number of industrial partners.
Our work at the University of Birmingham focuses on the theoretical foundation, which includes analysis of software engineering problems and theory of dynamic computational search. One of the critical underlying themes of the DAASE initiative is to develop theory for the practice, in such a way that theoretical understanding should underpin and inform our programme of research. Moreover, DAASE`s algorithmic achievements will then set new theoretical challenges. The key technical issues that will be addressed are:
Analysis of heuristics for dynamic optimisation: Analysis of computational time of algorithms for different problem instances allows understanding the difficulty of problem instances and the adequacy of algorithms for solving them. Based on theoretical analysis, we will provide (1) a deep understanding of the difficulty of dynamic problem instances, (2) analyses on how effectively and efficiently existing heuristics are to solve them and (3) insight on new heuristics to solve them.
Dynamic search to support adaptive automation: Based on the better understanding on how well different heuristics solve dynamic optimisation problems, the field of hyper-heuristics will be explored and exploited. This will include both the analysis of how well existing hyper-heuristic approaches behave in the context of dynamic adaptive search-based software engineering and the proposal of new hyper-heuristic approaches adequate for dynamic software engineering problems.