Using Human Error Models to Improve the Quality of Software Requirements
View/ Open
Abstract
Creating high quality software is a primary concern for software development organizations. Researchers have devoted considerable effort in developing quality improvement methods that help software engineers detect faults early in the development lifecycle (when the faults are cheapest to detect and repair). While useful, the available approaches still cannot make sure that Software developers are able to identify all or even a significantly large portion of faults. This is because they do not help software developers identify errors (i.e., underlying cause of faults) that may have led to the insertion of the faults (i.e., manifestation of error). This lack of focus on errors causes some faults to be overlooked which impacts quality of software produced. Requirements engineering is the most people-intensive phase of software development. Thus, requirements engineering is more prone to human error when compared to other phases of software development. To that end, this dissertation focuses on understanding the human error causes of requirements faults. The central idea that drives this dissertation is that, knowledge of errors that commonly occur during the requirements engineering process can help software developers in detecting faults that are otherwise overlooked when using traditional approaches and also help them to avoid making errors when developing requirements. Human error research focuses on understanding and classifying the fallibilities of human cognition. This dissertation combines requirements error information (gathered from Software Engineering literature) with the general accounts of human error and human error models (gathered from the Psychology literature). There are three steps to this work: development of a requirements phase human error taxonomy, empirical validation of the taxonomy’s usefulness for understanding requirements faults and errors, and development and subsequent validation of a formal software inspection technique based on the taxonomy. As a result of this dissertation, a structured Human Error Taxonomy (HET) that classifies requirements phase errors was created with direct ties to the existing human error theories. Several empirical validations of the taxonomy have helped in: successfully demonstrating the taxonomy’s usefulness for understanding requirements faults and errors, and developing a formal HET-based Error Abstraction and Inspection (EAI) approach and supplementary human error investigation tools.