The design of certain classes of products can be considered as a multi-stage decision making process. These products tend to be those for which the components are well-defined and where the design can be characterized as one of component specification and selection; that is, modular designs. For this class of designs, dynamic programming can provide the basis for a framework through which design problems can be structured, quantitatively described, analyzed and resolved. This research is directed toward the development, formalization, and implementation of a dynamic programming approach to engineering design problems. A major goal is the creation of a specific framework through which design problems can be structured, decomposed, and resolved. This will entail the development of logic structures, methods of decomposition, quantitative characteristics, and solution procedures.