The overlap between artificial intelligence and software engineering has been an active area of research for many years. (For other overviews of this area see [Barr and Feigenbaum 82], [Biermann, Guiho, and Kodratoff 84], [Green 85], and [Mostow 85].)
The application of artificial intelligence to software engineering is of interest from at least two perspectives. On the one hand, it is of pragmatic importance to the software engineer. Artificial intelligence techniques hold the promise of achieving order of magnitude improvements in programmer productivity and program reliability.
On the other hand, software engineering has proven to be a stimulating domain for artificial intelligence research. Attempts to apply artificial intelligence ...