The toughest kind of system to build involves safety-critical software, where the reliability requirements are extremely strict. We can never guarantee that our software will never fail, but we can take several serious steps to reduce the risk of failure: inspection, static analysis, hazard analysis, configuration management, and more. Can careful application of these techniques enable us to build software whose failure puts many lives at risk? We look at what “solid software” means in the context of the proposed National Missile Defense System.
展开▼