Current software engineering practice is a form of human-led search for solutions which meet needs and constraints under limited resources. Often there will be conflict, both between and within functional and non-functional criteria. Naturally, like other engineers, software engineers search for a near optimal solution. As systems get bigger, more distributed, more dynamic and more critical, this labour-intensive search will hit fundamental limits. We will not be able to continue to develop, operate and maintain systems in the traditional way, without automating or partly automating the search for near optimal solutions. Automated search based solutions have a track record of success in other engineering disciplines, characterised by a large number of potential solutions, where there are many complex, competing and conflicting constraints and where construction of a perfect solution is either impossible or impractical. Software Engineering By Automated SEarch (SEBASE) is an EPSRC funded project that aims to provide a new approach to the way in which software engineering is understood and practised. The purpose is moving software engineering problems from human-based search to machine-based search. As a result, human effort will move up the abstraction chain, to focus on guiding the automated search, rather than performing it.
The work on SEBASE at Birmingham focuses on two aspects: the study of theoretical foundations of search methods and the application of the insights gained to develop more effective and efficient algorithms for large and complex software engineering problems. Research on the former aspect attempts to lay a solid theoretical framework for a deep understanding of the characteristics of software engineering problems and the most appropriate algorithms for tackling them. Such theoretical results can be used by the latter aspect to guide the design of novel search algorithms and, grounded on software engineering problems, provide feedback and empirical evidences to theory. Eventually, the outcomes from this research may lead to a benefit upon the search algorithms community by defining new real-world benchmarks and algorithms that, being originated in a realistic context, can be applied to different problems.