After initial production, improvements are often made to components of a system, to upgrade system performance; for example, when designing a later version or release. This paper presents an optimization model that identifies the types of component improvements and the level of effort spent on those improvements to maximize one or more performance measures (e.g., system reliability or availability) subject to constraints (e.g., cost) in the presence of uncertainty about the component failure rates. For each component failure mode, some possible improvements are identified along with their cost and the resulting improvement in failure rates for that failure mode. The objective function is defined as a stochastic function of the performance measure of interest-in this case, 5/sup th/ percentile of the mean time-between-failure distribution. The problem formulation is combinatorial and stochastic. Genetic algorithms are used as the solution method. Our approach is demonstrated on a case study of a personal computer system. Results and comparison with enumeration of the configuration space show that genetic algorithms perform very favorably in the face of noise in the output: they are able to find the optimum over a complicated, high dimensional, nonlinear space in a tiny fraction of the time required for enumeration. The integration of genetic algorithm optimization capabilities with reliability analysis can provide a robust, powerful design-for-reliability tool. >