This thesis describes a methodology for automating routine design problems. The research applied for developing this methodology consisted in three steps. Firstly, different types of complexity in routine design were investigated. Secondly, methods were developed to manage each type of complexity. Thirdly, the obtained methods were integrated into one methodology for routine design automation. The resulting methodology consists of the following five steps: 1. Determine a formal model of the components, parameters and relations of the design problem to automate. 2. Decompose the design problem into different levels of detail by analyzing its functional and physical structure. 3. Translate the obtained problem model into a TARD representation. TARD representations were developed in this research as a means of describing how components, relations and parameters can be used for designing an artifact. 4. Determine the Topology System of Equations (ToSE) of the model. ToSE was developed with the goal of having algebraic equations that determine how the instantiation of one component is constrained by the instantiation of other components. 5. Apply a constraint solving algorithm to ToSE and a grammar generation method to TARD to determine the design's problem automation strategy. The constraint solving algorithm determines which components to instantiate by solving the ToSE equations. The grammar method further specifies how to generate a network of components. Furthermore, the constraint solving algorithm also determines the order in which the design parameters are solved. The last two steps of this approach have been implemented into software applications. One tool is an specific software implementation for the design problem of cooling systems for injection molding. This tool is capable of determining synthesis strategies, which in combination with other algorithms, allows the automatic generation of cooling systems. The second implementation is rather generic. Here, a designer enters as input a TARD model of a routine design problem and the system, in combination with a random generation algorithm, generates candidate solutions.