Research Topic and Motivation
Search-based software engineering (SBSE) has been well established for some time. The central tenet of SBSE is to consider software engineering problems as complex search and optimisation problems and to rephrase them such that automated optimisation and search techniques can be applied. This has been applied with great success in a number of software engineering fields—for example, to the generation of test cases or the use of test suites to automatically correct bugs in software.
All of these applications of SBSE share one major challenge: applying the current state of the art in optimisation and search to specific problems requires substantial expertise both in the problem domain and in optimisation research. Problem encodings are not usually naturally derived from domain knowledge, but require substantial conceptual transformation of the original problem to make it tractable by existing search algorithms. Of course, search and optimisation can be applied to a large number of problems outside of software engineering, too, where the above problem is, if anything, even more pronounced.
In Model-Driven Engineering (MDE), another sub-discipline of software engineering, software is developed not in technically-oriented general-purpose programming languages, but using high-level domain-specific modelling languages (DSMLs) focused on the needs of the domain expert rather than the needs of the computer. This has shown great benefits for productivity and quality of the resulting software.
Search-Based Model Engineering (SBME) aims to lower the access barrier to SBSE (and search approaches in general), by combining SBSE with techniques from MDE. In particular, SBME aims to enable search over models expressed in DSMLs. This enables domain experts to express optimisation problems using concepts familiar to them and specific to the problem domain without requiring extensive expertise in optimisation and search.