1. A method of modeling a predetermined device in software, said method comprising: receiving device data that defines known parameters of a predetermined device; receiving desired device parameters that define desired characteristics of an improved predetermined device; modeling a plurality of improved predetermined devices based on the device data and the desired device data, the modeling resulting in the generation of parameters for each modeled device; and selecting the modeled device that best fits the desired device parameters.