Skip to main content

Automatic Generation of Runtime Failure Detectors from Property Templates

  • Chapter

Part of the Lecture Notes in Computer Science book series (LNPSE,volume 5525)

Abstract

Fine grained error or failure detection is often indispensable for precise, effective, and efficient reactions to runtime problems. In this chapter we describe an approach that facilitates automatic generation of efficient runtime detectors for relevant classes of functional problems. The technique targets failures that commonly manifest at the boundaries between the components that form the system. It employs a model-based specification language that developers use to capture system-level properties extracted from requirements specifications. These properties are automatically translated into assertion-like checks and inserted in all relevant locations of the systems code.

The main goals of our research are to define useful classes of system-level properties, identify errors and failures related to the violations of those properties, and produce assertions capable of detecting such violations. To this end we analyzed a wide range of available software specifications, bug reports for implemented systems, and other sources of information about the developers intent, such as test suites. The collected information is organized in a catalog of requirements-level property descriptions. These properties are used by developers to annotate their system design specifications, and serve as the basis for automatic assertion generation.

Keywords

  • Service Level Agreement
  • Automatic Generation
  • Failure Detector
  • Translation Rule
  • Containment Relation

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/978-3-642-02161-9_12
  • Chapter length: 18 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
eBook
USD   64.99
Price excludes VAT (USA)
  • ISBN: 978-3-642-02161-9
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book
USD   84.99
Price excludes VAT (USA)

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Koren, I., Krishna, C.M.: Fault-Tolerant Systems. Morgan Kaufmann, San Francisco (2007)

    MATH  Google Scholar 

  2. Laprie, J.C., Avizienis, A., Kopetz, H. (eds.): Dependability: Basic Concepts and Terminology. Springer, New York (1992)

    MATH  Google Scholar 

  3. Kephart, J.O., Chess, D.M.: The vision of autonomic computing. IEEE Computer 36(1), 41–50 (2003)

    CrossRef  Google Scholar 

  4. Rosenblum, D.S.: A practical approach to programming with assertions. IEEE Transactions on Software Engineering 21(1), 19–31 (1995)

    CrossRef  Google Scholar 

  5. Das, M.: Formal specifications on industrial-strength code—from myth to reality. In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, p. 1. Springer, Heidelberg (2006) (invited talk)

    CrossRef  Google Scholar 

  6. Machado, P.D.L.: Testing from Structured Algebraic Specifications: The Oracle Problem. PhD thesis, University of Edinburgh (2000)

    Google Scholar 

  7. Richardson, D.J., Aha, S.L., O’Malley, T.O.: Specification-based test oracles for reactive systems. In: Proceedings of the 14th International Conference on Software Engineering, ICSE 1992, pp. 105–118 (1992)

    Google Scholar 

  8. Ciupa, I., Meyer, B., Oriol, M., Pretschner, A.: Finding faults: Manual testing vs. random testing+ vs. user reports. Technical Report 595, Department of Computer Science, ETH Zurich, Switzerland (2008)

    Google Scholar 

  9. Voas, J.M., Miller, K.W.: Putting assertions in their place. In: Proceedings of the 5th International Symposium on Software Reliability Engineering, pp. 152–157 (1994)

    Google Scholar 

  10. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Reading (1994)

    MATH  Google Scholar 

  11. Wuttke, J.: Property classes and assertions supporting runtime failure detection. Technical report, University of Lugano, Switzerland (2008)

    Google Scholar 

  12. Dwyer, M.B., Avrunin, G.S., Corbett, J.C.: Patterns in property specifications for finite-state verification. In: Proceedings of the 1999 International Conference on Software Engineering, ICSE 1999, pp. 411–420 (1999)

    Google Scholar 

  13. Cobleigh, R.L., Avrunin, G.S., Clarke, L.A.: User guidance for creating precise and accessible property specifications. In: Proceedings of the 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering, SIGSOFT 2006/FSE-14 2006, pp. 208–218 (2006)

    Google Scholar 

  14. Zibin, Y., Potanin, A., Ali, M., Artzi, S., Kieżun, A., Ernst, M.D.: Object and reference immutability using java generics. In: ESEC-FSE 2007: Proceedings of the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp. 75–84. ACM, New York (2007)

    Google Scholar 

  15. Unkel, C., Lam, M.S.: Automatic inference of stationary fields: a generalization of java’s final fields. In: Proceedings of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2008, pp. 183–195 (2008)

    Google Scholar 

  16. Boyland, J.T., Retert, W.: Connecting effects and uniqueness with adoption. SIGPLAN Notices 40(1), 283–295 (2005)

    CrossRef  Google Scholar 

  17. Beckman, N.E., Bierhoff, K., Aldrich, J.: Verifying correct usage of atomic blocks and typestate. In: Proceedings of the 23rd ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA 2008, pp. 227–244 (2008)

    Google Scholar 

  18. Chan, E.C., Boyland, J.T., Scherlis, W.L.: Promises: Limited specifications for analysis and manipulation. In: Proceedings of the 20th International Conference on Software Engineering, ICSE 1998 (1998)

    Google Scholar 

  19. Qin, F., Tucek, J., Sundaresan, J., Zhou, Y.: Rx: Treating bugs as allergies — a safe method to survive software failures. In: Proceedings of the 20th ACM Symposium on Operating Systems Principles, SOSP 2005, pp. 235–248 (2005)

    Google Scholar 

  20. Goldstein, M., Shehory, O., Weinsberg, Y.: Can self-healing software cope with loitering? In: Proceedings of the 4th International Workshop on Software Quality Assurance, SoQUA 2007, pp. 1–8 (2007)

    Google Scholar 

  21. Candea, G., Kawamoto, S., Fujiki, Y., Friedman, G., Fox, A.: Microreboot - a technique for cheap recovery. In: Proceedings of the 6th Symposium on Operating Systems Design and Implementation (2004)

    Google Scholar 

  22. Antoy, S., Hamlet, R.: Automatically checking an implementation against its formal specification. IEEE Transactions on Software Engineering 26(1), 55–69 (2000)

    CrossRef  Google Scholar 

  23. Barnett, M., Leino, K.R.M., Schulte, W.: The Spec# programming system: An overview. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) CASSIS 2004. LNCS, vol. 3362, pp. 49–69. Springer, Heidelberg (2005)

    CrossRef  Google Scholar 

  24. Cheon, Y., Leavens, G.T.: The JML and JUnit way of unit testing and its implementation. Technical Report TR #04-02, Department of Computer Science – Iowa State University (2004)

    Google Scholar 

  25. Hangal, S., Lam, M.S.: Tracking down software bugs using automatic anomaly detection. In: Proceedings of the 24th International Conference on Software Engineering, ICSE 2002, pp. 291–301. ACM, New York (2002)

    CrossRef  Google Scholar 

  26. Baah, G.K., Gray, A., Harrold, M.J.: On-line anomaly detection of deployed software: a statistical machine learning approach. In: Proceedings of the 3rd International Workshop on Software Quality Assurance, SOQUA 2006, pp. 70–77. ACM, New York (2006)

    Google Scholar 

  27. Lorenzoli, D., Mariani, L., Pezzè, M.: Automatic generation of software behavioral models. In: Proceedings of the 30th International Conference on Software Engineering, ICSE 2008, pp. 501–510. ACM, New York (2008)

    Google Scholar 

  28. Skene, J., Lamanna, D.D., Emmerich, W.: Precise service level agreements. In: Proceedings of the 26th International Conference on Software Engineering, pp. 179–188 (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Pezzè, M., Wuttke, J. (2009). Automatic Generation of Runtime Failure Detectors from Property Templates. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds) Software Engineering for Self-Adaptive Systems. Lecture Notes in Computer Science, vol 5525. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02161-9_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-02161-9_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-02160-2

  • Online ISBN: 978-3-642-02161-9

  • eBook Packages: Computer ScienceComputer Science (R0)