Abstract
This paper presents an approach based on assume-guarantee style reasoning for automatic detection of software failures. Reasoning about failures requires knowing the expected behavior. The paper considers the case when the requirement specification of the behavior of the target system is available, and expressed in a formalism based on communicating finite state machines. The failure detector observes the external inputs and outputs, and receives partial information about the internal state of the target system. Using this information, it interprets the specification, and determines whether a failure has occurred. A key issue in the interpretation of the specification is the efficiency of handling of inherent nondeterminism present in the specification. The paper describes, in a step by step manner, a compositional approach for online failure detection which reduces the computational costs of dealing with non-determinism. The details of the algorithms required in each of the steps are provided. To evaluate the algorithms described, a prototype failure detector was used to detect failures of the control program of a small telephone exchange. We present some of the results obtained.
Keywords
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
C.A.R. Hoare, “How did software get so reliable without proof,” Lecture Notes in Computer Science, vol. 1051, Springer-Verlag, 1996.
R. Glass, “Persistent Software Errors,” IEEE Transactions on Software Engineering, 7(2), pp. 162–168, March 1981.
D. Kuhn, “Sources of Failure in the Public Switched Telephone Network,” IEEE Computer, vol. 30, no. 4, pp. 31–36, April 1997.
W. P. de Roever, “The Need for Compositional Proof Systems: A Survey,” Lecture Notes in Computer Science, vol. 1536, pp. 1–22, Springer-Verlag, 1997.
J. Misra and K. Chandy, “Proofs of Networks of Processes,” IEEE Transactions on Software Engineering, 7(4), pp. 417–426, July 1981.
C. B. Jones, “Tentative steps towards a development method for interfering programs,” ACM Trans. on Programming Languages and Systems, 5(4):596–619, 1983.
N. Shankar, “Lazy Compositional Verification,” Lecture Notes in Computer Science, vol. 536, Springer-Verlag, 1997.
IEEE, Software Engineering: Customer and Terminology Standards, vol. 1, IEEE, 1999.
J. C. Laprie, Dependability: Basic Concepts and Terminology-English, French, German, and Japanese, Vienna, Springer-Verlag, 1992.
M. Barnett and W. Schulte, “Spying on Components: A Runtime Verification Technique in Specification and Verification of Component-Based Systems,” Proc. of the Workshop on Specification and Verification of Component Based Systems-OOP-SLA’ 2001, Tampa, Florida, USA, October, 2001.
M. Barnett, L. Nachmanson, and W. Schulte, “Conformance Checking of Components Against Their Non-deterministic Specifications”, Technical Report MSR-TR-2001-56, Microsoft Research, June 2001.
C. Pasareanu, M. Dwyer, and M. Huth, “Assume-Guarantee Model Checking of Software: A Comparative Case Study,” Lecture Notes in Computer Science, vol. 680, Springer-Verlag, September 1999.
M. Zulkernine and R. Seviora, “Stable States Based Monitoring of Real-Time Software Systems,” Proc. of the 8th Intl. Conference on Real-Time Computing Systems and Applications, Tokyo, Japan, March 2002.
T. Savor and R. Seviora, “Toward Automatic Detection of Software Failures,” IEEE Computer, vol. 21, no. 8, pp. 68–74, August 1998.
J. Li and R. Seviora, “Automatic Failure Detection with Conditional Belief Supervisors,” Proc. of the 7th International Symposium on Software Reliability Engineering, IEEE CS Press, pp. 4–13, October 1996.
ITU-T, Recommendation Z.100, Specification and Description Language-SDL, ITU-Telecommunication Standardization Sector, Geneva, Switzerland, 2000.
ITU-T, Recommendation Z.109, SDL Combined with UML, ITU-Telecommunication Standardization Sector, Geneva, Switzerland, 2000.
D. Bear, Principles of Telecommunication-Traffic Engineering, IEE Telecommunication Series 2, Peter Peregrinus Ltd., pp. 192–200, London, England, 1988.
M. Diaz, G. Juanole, and J. Courtiat, “Observer-a concept for formal on-line validation of distributed systems,” IEEE Transactions on Software Engineering, vol. 20, no. 12, pp. 900–913, December 1994.
C. Wang and M. Schwartz, “Fault Detection with multiple observers,” IEEE/ACM Transactions on Networking, vol. 1, no. 1, pp. 48–55, February 1993.
D. Lee, A Netravali, K. Sabnani, B. Sugla, and A. John, “Passive Testing and Applications to Network Management,” Proc. of the IEEE International Conference on Network Protocols, pp. 113–122, October 1997.
M. Tabourier, A. Cavalli, and M. Ionescu, “A GSM-MAP Protocol Experiment Using Passive Testing,” Lecture Notes in Computer Science, vol. 1708, pp. 915–934, Springer-Verlag, 1999.
S. Sankar and M. Mandal, “Concurrent runtime monitoring of formally specified programs,” IEEE Computer, pp. 32–41, March 1993.
M. Blum and H. Wasserman, “Software Reliability via Run-Time Result-Checking,” Journal of the ACM, vol. 44, no. 6, pp. 826–849, November 1997.
D. Brown, R. Roggio, J. Cross, and C. McCreary, “An Automated Oracle for Software Testing,” IEEE Trans. on Reliability, vol. 41, no. 2, pp. 272–279, 1992.
John R. Connet, Edward J. Pasternak, and Brude D. Wagner, “Software Defenses in Real-time Control Systems,” Proc. of the IEEE Fault-Tolerant Computing Symposium, pp. 94–99, June 1972.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Zulkernine, M., Seviora, R.E. (2002). Assume-Guarantee Algorithms for Automatic Detection of Software Failures. In: Butler, M., Petre, L., Sere, K. (eds) Integrated Formal Methods. IFM 2002. Lecture Notes in Computer Science, vol 2335. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47884-1_6
Download citation
DOI: https://doi.org/10.1007/3-540-47884-1_6
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43703-1
Online ISBN: 978-3-540-47884-3
eBook Packages: Springer Book Archive