A system is generally designed as an assembly of subsystems, each with its own reliability attributes. The overall system reliability is a function of the subsystem reliability metrics. The cost of the system is the sum of the costs for all the subsystems. This article examines possible approaches to allocate the reliability values such that the total cost is minimized. The problem is very general and is applicable for mechanical systems, electrical systems, and computer hardware and software. The problem involves expressing the system reliability in terms of the subsystem reliability values and specifying the cost function for each subsystem, which allows setting up an optimization problem. Software reliability allocation is examined as a detailed example. The article also examines some preliminary apportionment approaches that have been proposed. In some cases, it is possible to use exact optimization methods. In general, a complex case will require use of iterative approaches.