1. A system, comprising: a memory operable to store a plurality of target values, each target value associated with a respective design criterion of a computer system to be designed, the computer system associated with one or more domains, each domain associated with a respective function of the computer system; and a processor operable to: determine, based at least in part on a first set of one or more of the plurality of target values, a respective implementation pattern for each of the one or more domains, the one or more determined implementation patterns representing a logical architecture for the computer system; and determine a physical architecture for the computer system by determining a respective solution stack for each of the one or more determined implementation patterns based at least in part on a second set of one or more of the plurality of target values.