Search Based Software Engineering
Engineering is about optimisation. Until comparatively recently there was some doubt as to whether software really was an engineering material; why would one want to optimise something that could be made perfect by pure logical reasoning? A consequence of this doubt was that some wondered whether there was even such a thing as “Software Engineering”. More recently, many have come to realise that, above a certain scale, reasoning about programs gives way to reasoning about software; while small programs may be, in some sense, perfect, software is unlikely ever to be. Neither software products nor the processes that produce them are perfect, because the world is not perfect. Nevertheless they must be relied upon. How can we manage this situation? In this talk, I will explain one approach to Software Engineering, grounded strongly in an optimisation world-view of engineering that has come to be known as “Search Based Software Engineering" (SBSE).