An approach to automatic detection of software failures in real-time systems

Software supervision is an approach to automatic detection of software failures. A software supervisor observes the inputs and outputs of a target system. It uses a model of correct behavior, derived from the target system's requirements specification. Discrepancies between specified and observed behaviors are reported as failures. The tradeoff between the computational complexity of supervision and the latency of failure reporting is discussed in this paper. Supervisor computational complexity can be significantly reduced at the expense of increased failure reporting latency. For applications such as software testing, this is a practical tradeoff. Such a supervisor is called an out-of-time supervisor. This paper describes the data, flows, algorithms, operation and evaluation of an out-of-time supervisor for communicating finite state machine based requirements specifications. A prototype supervisor was used to monitor the operation a small telephone exchange control program. For a failure reporting latency equal to the worst-case response time of the target system, a reduction in computational complexity of several orders of magnitude was measured.

[1]  Hans G. Holland,et al.  The 5ESS-2000 switch: Exceeding customer expectations , 1994, AT&T Technical Journal.

[2]  Sriram Sankar,et al.  Concurrent runtime monitoring of formally specified programs , 1993, Computer.

[3]  Rudolph E. Seviora,et al.  Improving the efficiency of supervision by software through state aggregation , 1995, Proceedings Real-Time Technology and Applications Symposium.

[4]  Guy Juanole,et al.  Observer-A Concept for Formal On-Line Validation of Distributed Systems , 1994, IEEE Trans. Software Eng..

[5]  太田 泰弘,et al.  海外のドクメンテーション活動(VI) : International Organization for Standardizationとドクメンテーションの標準化 , 1964 .

[6]  R. E. Seviora,et al.  A real-time software supervision approach for automatic failure detection , 1996 .

[7]  Deepinder P. Sidhu,et al.  Formal Methods for Protocol Testing: A Detailed Study , 1989, IEEE Trans. Software Eng..

[8]  Dieter Hogrefe,et al.  SDL - with applications from protocol specification , 1991, BCS practitioner series.

[9]  Debra J. Richardson,et al.  Specification-based test oracles for reactive systems , 1992, International Conference on Software Engineering.

[10]  Robert F. Roggio,et al.  An automated oracle for software testing , 1992 .

[11]  Rudolph E. Seviora,et al.  An approach to automatic detection of software failures , 1995, Proceedings of Sixth International Symposium on Software Reliability Engineering. ISSRE'95.

[12]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[13]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[14]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.