Cool and Ripe for Exploitation: Search-Based Software Engineering (SBSE)

By Christopher Simons

Once in a while, a very good idea comes along. When explained, we might wonder why we didn't think of it before. For instance, many software programming tasks involve making trade-off judgments between conflicting needs. Should my code be robust or fast? Should it be rock-solid or is the need to ship to market more pressing? Should the focus be on short- term expediency or respectful of long-term architectural needs? To balance the trade-offs, it's typical for programmers to iterate over many possible solutions and evaluate them, incrementally moving through a number of possibilities until a satisfactory solution is found. With the recognition that what's happening here is a manual search though a space of possibilities, the very good idea is that this search activity can be emulated in software. The purpose of this is not to totally automate programming, replacing the human programmer. Rather, by emulating the search process, the programmer is supported by being shown solutions that they might never have considered because of the sheer quantity of possibilities to explore. In the past five years, there's been an explosion in the number of search-based approaches put forward to support the programmer, and they show great promise. In fact, it turns out that computational search-based approaches have been successfully applied to not only searching source code solutions, but also automatic refactoring, automatic test case generation and even automatic bug-fixing.

This case study starts with an explanation of how search-based approaches work generally, and goes on to provide an insight into some of the fascinating and novel applications of automated search-based software engineering (SBSE) available to the programmer. Finally, the case study offers some signposts for 'quick-win' computational search-based techniques for programmers to exploit and hence develop and improve their programming skills.

Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED

By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED

Settings can be changed at any time from the Cookie Policy page.