2. The Search for Dependable Software
Many steps have to be taken to combat the problems of poor software. Proper system specification, defined design methods, high-level language support, and good development tools all contribute toward a solution. However, to appreciate their use (instead of merely knowing what they do), we must understand what they aim to achieve. To answer that, we need to know where, why, and how software problems arise. Then, at least, we can define the features of software and software design that can eliminate such problems.
The aims of this chapter are to:
- Show where, why, and how software errors arise
- Explain why, in the real world, the development of fault-free systems cannot be achieved
- Distinguish between correct, reliable, and safe software
- Establish that dependable software should be a primary design aim
- Highlight the importance and influence of the software operating environment
- Establish the basics of good software...