1 Introduction --; 1.1 Real-time software and the real world --; 1.2 The characteristics of real-time software --; 1.3 Problems of real-time software --; 1.4 Experience to date --; 1.5 Design for reliability --; 1.6 Outline of this report --; 2 Software Reliability and the Software Life Cycle --; 2.1 Real-time system development environments --; 2.2 Traditional system development phases --; 2.3 Verification and validation --; 2.4 Unified system development environments --; 2.5 Current real-time application examples --; 2.6 Conclusions --; 3 Structural Analysis and Proof --; 3.1 Structural analysis --; 3.2 Proving techniques --; 3.3 Fault tree analysis --; 3.4 Review techniques --; 3.5 Conclusions --; 4 Systematic Testing --; 4.1 Practical aspects of testing real time programs --; 4.2 Glass box testing --; 4.3 Black box testing --; 4.4 Hierarchic testing --; 4.5 Test data --; 4.6 Test evaluation --; 4.7 Use of tools --; 4.8 Conclusion --; 5 Statistical Testing of Real Time Software --; 5.1 When to apply statistical testing techniques --; 5.2 The statistical test aim --; 5.3 Simple cases --; 5.4 Reliability growth models --; 5.5 Testing large systems --; 5.6 Testing of diverse systems --; 5.7 Problems with large tests --; 5.8 Conclusions --; 6 Simulation and System Validation --; 6.1 Simulation of plant as a testing aid --; 6.2 Simulation of the system itself --; 6.3 Conclusion --; 7 Conclusion --; 7.1 Review of the problem --; 7.2 The methods reported --; 7.3 Hints for practical use --; 7.4 Final remark --; References --; Appendix I Proof of formula 5.7 --; Appendix II Derivation of formulae 5.8 through 5.11 --; Appendix III Proofs of formulae 5.14 through 5.17.
SUMMARY OR ABSTRACT
Text of Note
W.J. Quirk 1.1 Real-time software and the real world Real-time software and the real world are inseparably related. Real time cannot be turned back and the real world will not always forget its history. The consequences of previous influences may last for a long time and the undesired effects may range from being inconvenient to disastrous in both economic and human terms. As a result, there is much pressure to develop and apply techniques to improve the reliability of real-time software so that the frequency and consequences of failure are reduced to a level that is as low as reasonably achievable. This report is about such techniques. After a detailed description of the software life cycle, a chapter is devoted to each of the four principle categories of technique available at present. These cover all stages of the software development process and each chapter identifies relevant techniques, the stages to which they are applicable and their effectiveness in improving real-time software reliability. 1.2 The characteristics of real-time software As well as the enhanced reliability requirement discussed above, real-time software has a number of other distinguishing characteristics. First, the sequencing and timing of inputs are determined by the real world and not by the programmer. Thus the program needs to be prepared for the unexpected and the demands made on the system may be conflicting. Second, the demands on the system may occur in parallel rather than in sequence.