This knowledge is stored in a library of standard clichs that represent a model for the domain of computer programming. Another facet of software development that automated programming systems must address is the iterative nature of the process. Development usually moves from vague concepts toward a software solution in iterative cycles that get closer and closer to an acceptable solution. Automatic programming systems will have to explain what they have done and why. Early automatic programming systems have not handled this interaction and iteration particularly well.
Some approaches being investigated include scripting languages and visual scripting tools.
Adequate support for composition tools will probably require knowledge based systems such as those envisioned by Rich and Waters. Rich and Waters advocate a hybrid approach to software development from reusable components. The ranked list is shown to the user as described in Section 3.3. Therefore, Case Based techniques constitute a natural approach to represent the experience acquired in the design of past applications. Computer, August 1988, 40-51.