We dream of a way in which software can be quickly or even automatically produced. In the past, we achieved some success in some areas; however, we continue to face an excess of software demand over supply in general. The reason is obvious: Software is needed by not only home and commercial computers, but by almost every kind of electronic device, such as mobile phones, digital diaries, digital cameras, TVs, cars, and so on (Rischpater, 2001; Sapaty, 1999).