The generation of alternatives and tradeoff decision-making are the two main occupations of the design engineer. Despite the different practices and approaches of the many domains of engineering, viewed from a high-enough level, engineering design always proceeds as iterations of the two subtasks. The design process terminates when the 'convergence' of the two series of specifications and design alternatives are considered satisfactory. Subsequently, the final design is a product of much compromise, or matching, between wishes and possibilities. On the basis of this observation, a generalized computer-aided design system has been developed that models the design process as an interactive multiobjective programming process. The system features the maintenance of a design database that captures the series of specifications and design alternatives generated. Also, the provision of tools for data visualization and interaction supports the designer in the control and monitoring of the convergence, and the identification and making of tradeoff decisions in an informed manner along the way.