During the last decade, software use has grown exponentially in every industry segment and government department in this country. Our money systems, medical systems, defense systems, and even our educational systems are highly dependent on computers. The success of these critical systems requires closely integrated hardware, firmware, and software; problems in any one of these areas can cause problems for an entire system. Increasingly, however, software has come under heaviest fire from critics because of high cost, schedule slippage, and poor quality.
More recently, however, there is an increasing trend toward the development of software using methodologies which could result in software that is certified or warranted to be error free. The ability to create software that meets or approaches these rigid specifications for quality requires that software development abandon its antecedents in the arts.
Software engineering and management processes which are designed for the entire life cycle of a software system, which emphasize development and proving at discrete lower levels as assembly occurs (not unlike good hardware development practices), and which demand "correctness" the first time round are moving to the forefront of the software development arena.
There are several reputable developers of software who have virtually - if not actually - produced error-free software. The methodology used by one of these concerns, Computer Sciences Corporation, is illustrated on the following pages. The information presented is a condensation of the presentation made during the Design Course, with an emphasis on sections related to Software Test, indicated by bold text.