1 - Introduction and Overview
Published online by Cambridge University Press: 05 October 2015
Summary
Software is critical to many aspects of our lives. It comes in many forms. The applications we install and run on our computers and smart phones are easily recognized as software. Other software, such as that controlling the amount of fuel injected into a car's engine, is not so obvious to its users. Much of the software we use lacks adequate quality. A report by the National Institute of Standards and Technology (NIST, 2002) indicated that poor quality software costs the United States economy more than $60 billion per year. There is no evidence to support any improvement in software quality in the decade since that report was written.
Most of us expect our software to fail. We are never surprised and rarely complain when our e-mail program locks up or the font changes we made to our word processing document are lost. The typical “solution” to a software problem of turning the device off and then on again is so encultured that it is often applied to problems outside of the realm of computers and software. Even our humor reflects this view of quality. A classic joke is the software executive's statement to the auto industry, “If GM had kept up with the computing industry we would all be driving $25 cars that got 1,000 miles per gallon,” followed by the car maker's list of additional features that would come with such a vehicle:
For no apparent reason, your car would crash twice a day.
Occasionally, your engine would quit on the highway. You would have to coast over to the side of the road, close all of the windows, turn off the ignition, restart the car, and then reopen the windows before you could continue.
Occasionally, executing a maneuver, such as slowing down after completion of a right turn of exactly 97 degrees, would cause your engine to shut down and refuse to restart, in which case you would have to reinstall the engine.
Occasionally, your car would lock you out and refuse to let you in until you simultaneously lift the door handle, turn the key, and kick the door (an operation requiring the use of three of your four limbs).
Why do we not care about quality? The simple answer is that defective software works “well enough.”
- Type
- Chapter
- Information
- Building High Integrity Applications with SPARK , pp. 1 - 17Publisher: Cambridge University PressPrint publication year: 2015