The study of defects is a principal topic of software systems, af-fecting all phases of a system's lifecycle. Defects are the cause of errors and service degradations. Unresolved errors cause failures. If defects cannot be prevented effectively, then error control me-chanisms must be evaluated.
We introduce a model to distinguish between defects, errors, and service degradations. A two-dimensional classification scheme is developed for defects, defined by the types of process interaction and software corruption that are involved. A third dimension is added to this taxonomy for defects that cause service degradation, based on the deviations in service quality that are tolerated. We investigate the role of service degradation in error prevention.