published in 1986 in Ph.D. dissertation, Massachusetts Institute of Technology
A theory of designing is proposed, developed, and illustrated with examples from the domain of physical form. Designing is seen as the exploration of alternative sets of constraints and of the regions of alternative solutions they bound. Designers with different objectives reach different solutions within the same set of constraints, as do designers with the same objectives operating under different constraints. Constraints represent design rules, relations, conventions, and natural laws to be maintained. Some constraints and objectives are given at the outset of a design but many more are adopted along the way. Varying the constraints and the objectives is part of the design process. The theory accounts for various kinds of expertise in designing: knowledge of particular constraints in a design domain; inference--calculating the consequences of design decisions; preference--using objectives to guide decision-making; and partitioning--skill in dividing a large and complicated design into sets of simpler pieces, and understanding the dependencies between decisions. The ability to manage ambiguity and vagueness is an important aspect of design expertise.
A computational model supporting the theory is proposed and its implementation discussed briefly. The constraint explorer, a computational environment for designing based on constraint descriptions is described. We see how the constraint explorer might be used in connection with a simple space-planning problem. The problem is taken from the procedures of the Stichting Architecten Research (S.A.R.), a specific architectural design methodology developed to help architects systematically explore layout variability in alternative floorplan designs. Finally, a selected review of related work in constraint-based programming environments, architectural design methods, and the intersection of the two fields is presented.