In early stages of software engineering projects, several fundamental decisions must be made. At the same time, there exists a number of potentially antagonistic goals and/or requirements. If these decisions are not simply yes/no decisions, but are numerical in nature, then it is necessary to find an optimal configuration in the design space. Here, we develop methods that automatically calculate sets of „best compromises“ and thus support engineers in system development. One example is the calculation of all best tradeoffs between system cost, reliability and performance in a cloud-based application.