Skip to main content

Formalizing Requirements Is \(\Diamond \Box \) Hard

  • Chapter
  • First Online:
From Reactive Systems to Cyber-Physical Systems

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 11500))

  • 395 Accesses

Abstract

The use of formal methods in software engineering requires that the user adopt a suitable level of precision in the description of both design artifacts and the properties that should hold for those artifacts. The level of precision must be sufficiently high that the logical consistency of the design and the logic properties can be verified mechanically.

The source code of any well-defined program is itself a formal object, although it typically contains more detail than desirable for effective analysis. But, practitioners often have no problem producing or recognizing an abstracted version of the key features of a design, expressed in the modeling language of a verification tool.

The real problem preventing a broader acceptance of formal methods is that there are no intuitive formalisms that practitioners can use to express logic requirements at the level of precision that is required for formal verification. That problem is the focus of this paper.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

References

  1. Lutz, R.R.: Analyzing software requirements errors in safety-critical embedded systems. In: Proceedings IEEE International Symposium on Requirements Engineering, pp. 126–133. San Diego, CA, January (1993)

    Google Scholar 

  2. Pnueli, A.: The temporal logic of programs. In: Proceedings 18th FOCS, pp. 46–57. Providence, RI, November (1977)

    Google Scholar 

  3. Smith, M.H., Holzmann, G.J., Etessami, K.: Events and constraints a graphical editor for capturing logic properties of programs. In: Proceedings 5th International Symposium on Requirements Engineering, pp. 14–22. Toronto Canada, August (2001)

    Google Scholar 

  4. Holzmann, G.J.: The Spin Model Checker - Primer and Reference Manual. Addison-Wesley, Mass (2004)

    Google Scholar 

  5. Bohn, J., Damm, W., Grumberg, O., Hungar, H., Laster, K.: First-order-CTL model checking. In: Arvind, V., Ramanujam, S. (eds.) FSTTCS 1998. LNCS, vol. 1530, pp. 283–294. Springer, Heidelberg (1998). https://doi.org/10.1007/978-3-540-49382-2_27

    Chapter  Google Scholar 

  6. Havelund, K., Reger, G., Thoma, D., Zălinescu, E.: Monitoring events that carry data. In: Bartocci, E., Falcone, Y. (eds.) Lectures on Runtime Verification. LNCS, vol. 10457, pp. 61–102. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-75632-5_3

    Chapter  Google Scholar 

  7. Savage, S., Burrows, M., Nelson, G., Sobalvarro, P.: Eraser: a dynamic data race detector for multithreaded programs. ACM Trans. Comput. Syst. 15(4), 391–411 (1997)

    Article  Google Scholar 

  8. Rete algorithm. https://en.wikipedia.org/wiki/Rete_algorithm

  9. Clavel, M., Eker, S., Lincoln, P., Meseguer, J.: Principles of maude. In: 1st International Workshop on Rewriting Logic and its Applications. Electronic Notes in Theoretical Computer Science, vol. 4 (1996)

    Article  Google Scholar 

  10. Holzmann, G.J.: Cloud-based verification of concurrent software. In: Jobstmann, B., Leino, K.R.M. (eds.) VMCAI 2016. LNCS, vol. 9583, pp. 311–327. Springer, Heidelberg (2016). https://doi.org/10.1007/978-3-662-49122-5_15

    Chapter  Google Scholar 

  11. Holzmann, G.J.: Cobra: a light-weight tool for static and dynamic program analysis. Innov. Syst. Softw. Eng. NASA J. 13(1), 35–49 (2017). http://spinroot.com/cobra

    Article  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gerard J. Holzmann .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Holzmann, G.J. (2019). Formalizing Requirements Is \(\Diamond \Box \) Hard. In: Bartocci, E., Cleaveland, R., Grosu, R., Sokolsky, O. (eds) From Reactive Systems to Cyber-Physical Systems. Lecture Notes in Computer Science(), vol 11500. Springer, Cham. https://doi.org/10.1007/978-3-030-31514-6_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-31514-6_4

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-31513-9

  • Online ISBN: 978-3-030-31514-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics