Design problem solving is a complex activity involving a number of subtasks and a number of alternative methods potentially available for each subtask. The structure of tasks has been a key concern of recent research in task-oriented methodologies for knowledge-based systems (Chandrasekaran 1986; Clancey 1985; Steels 1990; McDermott 1988). One way to conduct a task analysis is to develop a task structure (Chandrasekaran 1989) that lays out the relation between a task, applicable methods for it, the knowledge requirements for the methods, and the subtasks set up by them. I propose a task structure for design by analyzing a general class of methods that I call proposecritique-modify methods. The task structure is constructed by identifying a range of methods for each task.
I propose a task structure for design by analyzing a general class of methods that I call propose-critique-modify methods. The task structure is constructed by identifying a range of methods for each task. For each method, the knowledge needed and the subtasks that it sets up are identified. This recursive style of analysis provides a framework in which we can understand a number of particular proposals for design problem solving as specific combinations of tasks, methods, and subtasks. Most of the subtasks are not really specific to design as such. The analysis shows that there is no one ideal method for design, and good design problem solving is a result of recursively selecting methods based on a number of criteria, including knowledge availability. How the task analysis can help in knowledge acquisition and system design is discussed.
Studies in design methodology provide various structured approaches to the design process. Many books provide definitions and elaborations of the design process: In the structural engineering field, such books include Holgate (1986) and Lin and Stotesbury (1981). More generally, various design methods and techniques are described in Alexander (1964) and Jones (1970). These design methods share the characteristic of prescribing a general set of tasks to be performed by the designer. One problem with design methodologies is that such approaches prescribe what a designer should do but not how.
Models of design processes provide guidance in the development of knowledge-based systems for design. The basis for such models comes from research in design theory and methodology as well as problem solving in AI. Three models are presented: decomposition, case-based reasoning, and transformation. Each model provides a formalism for representing design knowledge and experience in distinct and complementary forms.
The relationship between an object lower in the hierarchy with one higher is that it is less abstract, that it is a type of the higher one, and that it has all the properties of the higher one. Abstraction is useful in problem-solving to implement a least-commitment strategy, to allow a topdown strategy, to allow refinement guided by constraints, and to avoid the combinatorics produced by considering excessive detail too early. Refinement can easily be implemented by moving down the hierarchy, making decisions about which more specific lower thing to choose. These choices can produce constraints. These constraints can lead to more choices: hence, constraint-guided.