2.2 Software Errors
2.2.1 Overview
In this text, a software error is defined to be "any feature of a program that produces a system malfunction." This is a very broad definition and really quite unfair to software developers. In many instances of system misbehavior, the code is blameless; however, we still talk of "faulty software." What it does, though, is emphasize that it isn't sufficient to eliminate errors at the software design stage; other factors need to be taken into account (Figure 2.3). These are explored further in more detail.
2.2.2 System Design Errors
System design takes place right at the frontend of a project. Quite often, software engineers are excluded from this stage. Many system designers have the attitude of "well, we'll go out and buy a box to control the plant (once we've worked out how to put it together)." Mistakes made here usually show only when system trials begin (or, worse still, when the system is...