Some experience with automated aids to the design of large-scale reliable software

Abstract
Summarizes some recent experience in analyzing and eliminating sources of error in the design phase of large software projects. It points out some of the significant differences in software error incidence between large and small software projects. A taxonomy of software error causes, and some analyses of the design error data performed to obtain a better understanding of the nature of large-scale software design errors and to evaluate alternative methods of preventing, detecting, and eliminating them are presented. Based on this analysis of observational data, a hypothesis was derived regarding the potential cost effectiveness of an automated aid to detecting inconsistencies between assertions about the nature of inputs and outputs of the various elements of the software design.