Optimizing System Designs