Issue No. 01 - Jan. (1986 vol. 12)
Janet R. Dunham , Center for Digital Systems Research, Research Triangle Institute, Research Triangle Park, NC 27709
Digital computers are being used more frequently for process control applications in which the cost of system failure is high. Consideration of the potentially life-threatening risk, resulting from the high degree of functionality being ascribed to the software components of these systems, has stimulated the recommendation of various designs for tolerating software faults. Such designs are not panaceas, for they still entail — as did the fault intolerant designs they are superceding-an unknown probability of failure. The paper discusses four reliability data gathering experiments which were conducted using a small sample of programs for two problems having ultrareliability requirements, w-version programming for fault detection, and repetitive run modeling for failure and fault rate estimation. The experimental results agree with those of Nagel and Skrivan in that the program error rates suggest an approximate log-linear pattern and the individual faults occured with significantly different error rates. Additional analysis of the experimental data raises new questions concerning the phenomenon of interacting faults. This phenomenon may provide one explanation for software reliability decay. The fourth experiment underscored the difficulty in distinguishing between observations of deficiencies in the design of the algorithm and observations of software faults for real-time process control software. These experiments are a part of a program of serial experiments being pursued by the System Validation Methods of NASA-Langley Research Center to find a means of credibly performing reliability evaluations of flight control software.
Software, Software reliability, Software measurement, Error analysis, Aerospace control, software reliability, Life-critical software, real-time software, software experiments, software modeling and measurement
J. R. Dunham, "Experiments in software reliability: Life-critical applications," in IEEE Transactions on Software Engineering, vol. 12, no. , pp. 110-123, 1986.