Complex, safety-critical systems are becoming increasingly software intensive. Software delivers substantial benefits because of it its flexibility. System designs can be changed without retooling or remanufacturing. Software changes do not adversely impact subsystem weight or space constraints. Once developed, the per-copy production cost of software is negligible. Other than memory and performance requirements on the underlying hardware, software imposes no physical constraints on the designs that can be implemented.