ABSTRACT

Computers do not make mistakes, or so we are told. However, computer software is written by, and hardware systems are designed and assembled by, humans, who certainly do make mistakes.

Errors in a computer system can occur as a result of misunderstood or contradictory requirements, unfamiliarity with the problem, or simply human error during design or coding of the system. Alarmingly, the costs of maintaining software — the costs of rectifying errors and adapting the system to meet changing requirements or changes in the environment of the system — greatly exceed the original implementation costs.