On the criteria to be used in decomposing systems into modules
Communications of the ACM
Theoretical and empirical studies of program testing
ICSE '78 Proceedings of the 3rd international conference on Software engineering
An analysis of errors and their causes in system programs
Proceedings of the international conference on Reliable software
On the Design and Development of Program Families
IEEE Transactions on Software Engineering
Observations of Fallibility in Applications of Modern Programming Methodologies
IEEE Transactions on Software Engineering
A method of programming measurement and estimation
IBM Systems Journal
Hi-index | 0.00 |
In software engineering, it is easy to propose techniques for improving software development but difficult to test the claims made for such techniques. This paper suggests an error analysis technique for use in gathering data concerning the effectiveness of different software development methodologies. The principal features of the error analysis technique described are the formulation of questions of interest and a data classification scheme before data collection begins, and interviews of system developers concomitant with the development process to verify the accuracy of the data. The data obtained by using this technique during the development of a medium-size software development project is presented. This project was known as the Architecture Research Facility (ARF) and took about 10 months and 192 man-weeks of effort to develop. The ARF designers used the information hiding principle to modularize the system, and interface specifications and high-level language coding specifications to express the design. Several error detection aids were designed into the system to help detect run-time errors. In addition, quality control rules were established that required review of specifications before coding, and review of code after compilation but prior to testing. A total of 143 errors was reported. Analysis of these errors showed that there were few problems caused by intermodule interfaces, that error corrections rarely required knowledge of more than one module, that most errors took less than a few hours to fix, and that the error detection aids detected more than half of the errors that were potentially detectable by them.