Software reliability as a function of user execution patterns

Assessing the reliability of a software system has always been an elusive target. A program may work very well for a number of years and this same program may suddenly become quite unreliable if its mission is changed by the user. This has led to the conclusion that the failure of a software system is dependent only on what the software is currently doing. If a program is always executing a set of fault free modules, it will certainly execute indefinitely without any likelihood of failure. A program may execute a sequence of fault prone modules and still not fail. In this particular case, the faults may lie in a region of the code that is not likely to be expressed during the execution of that module. A failure event can only occur when the software system executes a module that contains faults. If an execution pattern that drives the program into a module that contains faults is ever selected, then the program will never fail. Alternatively, a program may execute successfully a module that contains faults just as long as the faults are in code subsets that are not executed. The reliability of the system then, can only be determined with respect to what the software is currently doing. Future reliability predictions will be bound in their precision by the degree of understanding of future execution patterns. We investigate a model that represents the program sequential execution of nodules as a stochastic process. By analyzing the transitions between modules and their failure counts, we may learn exactly where the system is fragile and under which execution patterns a certain level of reliability can be guaranteed.

[1]  M. Degroot Optimal Statistical Decisions , 1970 .

[2]  H. Raiffa,et al.  Applied Statistical Decision Theory. , 1961 .

[3]  Howard Raiffa,et al.  Applied Statistical Decision Theory. , 1961 .

[4]  J.C. Munson,et al.  Designing reliable software , 1993, Proceedings of 1993 IEEE International Symposium on Software Reliability Engineering.

[5]  J. C. Munson A software blackbox recorder , 1996, 1996 IEEE Aerospace Applications Conference. Proceedings.

[6]  John C. Munson A functional approach to software reliability modeling , 1996, Quality of Numerical Software.

[7]  Thomas A. Mazzuchi,et al.  A Bayes method for assessing product-reliability during development testing , 1993 .

[8]  J. Nunamaker,et al.  Proceedings of the 32nd Hawaii International Conference on System Sciences , 1999 .

[9]  John C. Munson,et al.  Usage patterns: extracting system functionality from observed profiles , 1997 .

[10]  J. C. Munson,et al.  Software risk assessment through software measurement and modeling , 1998, 1998 IEEE Aerospace Conference Proceedings (Cat. No.98TH8339).

[11]  R. F.,et al.  Mathematical Statistics , 1944, Nature.

[12]  John C. Munson Software measurement: Problems and practice , 1995, Ann. Softw. Eng..

[13]  Sarah Brocklehurst,et al.  New Ways to Get Accurate Reliability Measures , 1992, IEEE Softw..

[14]  B. Littlewood Software Reliability Model for Modular Program Structure , 1979, IEEE Transactions on Reliability.

[15]  Taghi M. Khoshgoftaar,et al.  The Detection of Fault-Prone Programs , 1992, IEEE Trans. Software Eng..

[16]  John D. Musa,et al.  The operational profile in software reliability engineering: an overview , 1992, [1992] Proceedings Third International Symposium on Software Reliability Engineering.