Skip to main content

A Language Framework for Expressing Checkable Properties of Dynamic Software

  • Conference paper

Part of the Lecture Notes in Computer Science book series (LNCS,volume 1885)

Abstract

Research on how to reason about correctness properties of software systems using model checking is advancing rapidly. Work on extracting finite-state models from program source code and on abstracting those models is focused on enabling the tractable checking of program properties such as freedom from deadlock and assertion violations. For the most part, the problem of specifying more general program properties has not been considered.

In this paper, we report on the support for specifying properties of dynamic multi-threaded Java programs that we have built into the Bandera system. Bandera extracts finite-state models, in the input format of several existing model checkers, from Java code based on the property to be checked. The Bandera Specification Language (BSL) provides a language for defining general assertions and pre/post conditions on methods. It also supports the definition of observations that can be made of the state of program objects and the incorporation of those observations as predicates that can be instantiated in the scope of object quantifiers and used in describing common forms of state/event sequencing properties. We describe BSL and illustrate it on an example analyzed with Bandera and the Spin model checker.

Keywords

  • Model Check
  • Temporal Logic
  • Object Constraint Language
  • Java Program
  • Temporal Formula

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 work supported in part by NSF under grants CCR-9633388, CCR-9703094, CCR-9708184, and CCR-9701418 and DARPA/NASA under grant NAG 21209.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/10722468_13
  • Chapter length: 19 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   84.99
Price excludes VAT (USA)
  • ISBN: 978-3-540-45297-3
  • 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   109.00
Price excludes VAT (USA)

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bal, T., Rajamani, S.K.: Boolean programs: A model and process for software analysis. Technical Report 2000-14, Microsoft Research (2000)

    Google Scholar 

  2. Browne, I.A., Manna, Z., Sipma, H.B.: FSTTCS 1995. LNCS, vol. 1026. Springer, Heidelberg (1995)

    Google Scholar 

  3. Cimatti, A., Clarke, E., Giunchiglia, F., Roveri, M.: NuSMV: a new symbolic model checker. International Journal on Software Tools for Technology Transfer (2000) (to appear)

    Google Scholar 

  4. Corbett, J.C., Dwyer, M.B., Hatcliff, J., Laubach, S., Păsăreanu, C.S., Robby, Zheng, H.: Bandera: Extracting finite-state models from Java source code. In: Proceedings of the 22nd International Conference on Software Engineering (June 2000)

    Google Scholar 

  5. Corbett, J.C., Dwyer, M.B., Hatcliff, J., Robby: Bandera: A source-level interface for model checking Java programs. In: Proceedings of the 22nd International Conference on Software Engineering (June 2000)

    Google Scholar 

  6. Darimont, R., van Lamsweerde, A.: Formal refinement patterns for goal-driven requirements elaboration. In: Proceedings of the Fourth ACM SIGSOFT Symposium on Foundations of Software Engineering, October 1996, pp. 179–190 (1996)

    Google Scholar 

  7. Demartini, C., Iosif, R., Sisto, R.: A deadlock detection tool for concurrent Java programs. Software - Practice and Experience 29(7), 577–603 (1999)

    CrossRef  Google Scholar 

  8. Demartini, C., Iosif, R., Sisto, R.: dspin: A dynamic extension of SPIN. In: Dams, D.R., Gerth, R., Leue, S., Massink, M. (eds.) SPIN 1999. LNCS, vol. 1680, p. 261. Springer, Heidelberg (1999)

    CrossRef  Google Scholar 

  9. Dillon, L.K., Kutty, G., Moser, L.E., Melliar-Smith, P.M., Ra- makrishna, Y.S.: A graphical interval logic for specifying concurrent systems. ACM Transactions on Software Engineering and Methodology 3(2), 131–165 (1994)

    CrossRef  Google Scholar 

  10. Dwyer, M.B., Avrunin, G.S., Corbett, J.C.: Property specification patterns for finite-state verification. In: Ardis, M. (ed.) Proceedings of the Second Workshop on Formal Methods in Software Practice, March 1998, pp. 7–15 (1998)

    Google Scholar 

  11. Dwyer, M.B., Pasareanu, C.S., Corbett, J.C.: Translating Ada programs for model checking: A tutorial. Technical Report 98-12, Kansas State University, Department of Computing and Information Sciences (1998)

    Google Scholar 

  12. Dwyer, M.B., Avrunin, G.S., Corbett, J.C.: A System of Specification Patterns (1998), http://www.cis.ksu.edu/santos/spec-patterns

  13. Dwyer, M.B., Avrunin, G.S., Corbett, J.C.: Patterns in property specifications for finite-state verification. In: Proceedings of the 21st International Conference on Software Engineering (May 1999)

    Google Scholar 

  14. Grove, D.P.: Effective Interprocedural Optimization of Object-oriented Lan- guages. PhD thesis, University of Washington (1998)

    Google Scholar 

  15. Hatcliff, J., Corbett, J.C., Dwyer, M.B., Sokolowski, S., Zheng, H.: A formal study of slicing for multi-threaded programs with JVM concurrency primitives. In: Cortesi, A., Filé, G. (eds.) SAS 1999. LNCS, vol. 1694, p. 1. Springer, Heidelberg (1999)

    CrossRef  Google Scholar 

  16. Havelund, K., Pressburger, T.: Model checking Java programs using Java PathFinder. International Journal on Software Tools for Technology Transfer (1999)

    Google Scholar 

  17. Holzmann, G.J.: The model checker SPIN. IEEE Transactions on Software Engineering 23(5), 279–294 (1997)

    CrossRef  MathSciNet  Google Scholar 

  18. Holzmann, G.J., Smith, M.H.: Software model checking: Extracting verification models from source code. In: Proceedings of FORTE/PSTV 1999 (November 1999)

    Google Scholar 

  19. Iosif, R., Sisto, R.: On the specification and semantics of source level properties in java. In: Proceedings of the First International Workshop on Automated Program Analysis Testing and Verification (June 2000), Held in conjunction with the 2000 Internation Conference on Software Engineering

    Google Scholar 

  20. Jackson, D.: Alloy: A lightweight object modelling notation

    Google Scholar 

  21. Kramer, R.: iContract|the Java Design by Contract tool. In: Proceedings of Technology of Object-Oriented Languages and Systems, TOOLS-USA. IEEE Press, Los Alamitos (1998)

    Google Scholar 

  22. Leavens, G.T., Baker, A.L., Ruby, C.: JML: a Java modeling lan- guage. In: Reflection and Software Engineering (1998)

    Google Scholar 

  23. Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems: Specification. Springer, Heidelberg (1991)

    MATH  Google Scholar 

  24. Warmer, J., Kleppe, A.: The Object Constraint Language: Precise Mode- ling with UML. Addison-Wesley, Reading (1998)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Corbett, J.C., Dwyer, M.B., Hatcliff, J., Robby (2000). A Language Framework for Expressing Checkable Properties of Dynamic Software. In: Havelund, K., Penix, J., Visser, W. (eds) SPIN Model Checking and Software Verification. SPIN 2000. Lecture Notes in Computer Science, vol 1885. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10722468_13

Download citation

  • DOI: https://doi.org/10.1007/10722468_13

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41030-0

  • Online ISBN: 978-3-540-45297-3

  • eBook Packages: Springer Book Archive