Susan S. Brilliant

Learn More
We have identified a difficulty in the implementation of N-version programming. The problem, which we call the Consistent Comparison Problem, arises for applications in which decisions are based on the results of comparisons of finite-precision numbers. We show that when versions make comparisons involving the results of finite-precision calculations, it is(More)
In recent years there has been increasing controversy surrounding the choice of a language for introducing programming to computer science majors. The issue has been complicated by the increasing acceptance of the importance of non-procedural paradigms. This paper compares the available vehicles for teaching programming to beginners. These comparisons are(More)
We have conducted a large-scale experiment in N-version programming. A total of 27 versions of a program were prepared independently from the same specification at two universities. The results of executing the versions revealed that the versions were individually extremely reliable but that the number of input cases in which more than one failed was(More)
Measurement of software reliability by life testing involves executing the software on large numbers of test cases and recording the results. The number of failures observed is used to bound the failure probability even if the number of failures observed is zero. Typical analyses assume that all failures that occur are observed, but, in practice, failures(More)
which could have Centers oriented more towards software~ with appropriate industry participation as a success criterion. • The State of Califorrda's Micro program, which provides matching funds for industry-supported university research. • Establishing and coordinating counterpart initiatives for experimentation with advanced research concepts and(More)
Multi-version or <i>N</i>-version programming [5] has been proposed as a method of providing fault tolerance in software. The approach requires the separate, independent preparation of multiple (<i>i.e.</i> <i>"N"</i>) versions of a piece of software for some application. These versions are executed in parallel in the application environment; each receives(More)
  • 1