Skip to main content

Ten Commandments Ten Years On: Lessons for ASM, B, Z and VSR-net

  • Chapter
Rigorous Methods for Software Construction and Analysis

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

Abstract

Just over a decade ago, a paper Ten Commandments of Formal Methods [16] suggested some guidelines to help ensure the success of a formal methods project. It proposed ten important requirements (or “commandments”) for formal developers to consider and follow, based on our knowledge of several industrial application success stories, most of which have been reported in more detail in two books [32,33]. The paper was surprisingly popular, is still widely referenced, and used as required reading in a number of formal methods courses. However, not all have agreed with some of our commandments, feeling that they may not be valid in the long-term. We re-examine the original commandments over ten years on, and consider their validity in the light of a further decade of industrial best practice and experiences, especially with respect to formal notations like ASM, B and Z. We also cover the activities of the UK Verified Software Repository Network (VSR-net) in the context of UK Grand Challenge 6 on Dependable Systems Evolution.

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 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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abdallah, A.E., Bowen, J.P., Nissanke, N.: Formal methods for safety critical systems. In: Diab, H.B., Zomaya, A.Y. (eds.) Dependable Computing Systems: Paradigms, Performance Issues, and Applications, Part I: Models and Paradigms. Wiley Series on Parallel and Distributed Computing, vol. 9. John Wiley & Sons, Chichester (2005)

    Google Scholar 

  2. Abrial, J.-R.: The B-Bool: Assigning programs to meanings. Cambridge University Press, Cambridge (1996)

    Google Scholar 

  3. Barnett, M., Schulte, W.: Spying on components: A runtime verification technique. In: Workshop on Specification and Verification of Component-Based Systems, Technical Report TR 01-09a, Iowa State University, USA, pp. 7–13 (2001)

    Google Scholar 

  4. Berry, D.M.: Formal methods: The very idea — Some thoughts about why they work when they work. Science of Computer Programming 42(1), 11–27 (2002)

    Article  MATH  Google Scholar 

  5. Beth, E.W.: Formal Methods: An Introduction to Symbolic Logic and to the Study of Effective Operations in Arithmetic and Logic. Synthese Library. Springer, Heidelberg (1970)

    Google Scholar 

  6. Bicarregui, J., Hoare, C.A.R., Woodcock, J.C.P.: The Verified Software Repository: A step towards the verifying compiler. Formal Aspects of Computing 18(2), 143–151 (2006)

    Article  MATH  Google Scholar 

  7. Boiten, E.A., Derrick, J., Smith, G.P. (eds.): IFM 2004. LNCS, vol. 2999. Springer, Heidelberg (2004)

    MATH  Google Scholar 

  8. Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modeling Language User Guide, 2nd edn. Addison-Wesley Object Technology Series (2005)

    Google Scholar 

  9. Börger, E.: The ASM refinement method. Formal Aspects of Computing 15(1–2), 237–257 (2003)

    Article  MATH  Google Scholar 

  10. Börger, E., Cavarra, A., Riccobene, E.: An ASM semantics for UML Activity Diagrams. In: Rus, T. (ed.) AMAST 2000. LNCS, vol. 1816, pp. 293–308. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  11. Börger, E., Cavarra, A., Riccobene, E.: Modeling the dynamics of UML state machines. In: [28], pp. 223–241

    Google Scholar 

  12. Börger, E., Päppinghaus, P., Schmid, J.: Report on a practical application of ASMs in software design. In: [28], pp. 361–366

    Google Scholar 

  13. Börger, E., Stärck, R.: Abstract State Machines: A Method for High-Level System Design and Analysis. Springer, Heidelberg (2003), http://www.di.unipi.it/AsmBook/

    MATH  Google Scholar 

  14. Bowen, J.P.: The ethics of safety-critical systems. Communications of the ACM 43(4), 91–97 (2000)

    Article  Google Scholar 

  15. Bowen, J.P., Bogdanov, K., Clark, J., Harman, M., Hierons, R., Krause, P.: FORTEST: Formal methods and testing. In: Proc. 26th Annual International Computer Software and Applications Conference (COMPSAC 2002), Oxford, UK, August 26–29, pp. 91–101. IEEE Computer Society Press, Los Alamitos (2002)

    Google Scholar 

  16. Bowen, J.P., Hinchey, M.G.: Ten commandments of formal methods. IEEE Computer 28(4), 56–63 (1995)

    Google Scholar 

  17. Bowen, J.P., Hinchey, M.G.: Formal methods. In: Tucker Jr., A.B. (ed.) Computer Science Handbook, 2nd edn. Section XI, Software Engineering, ch. 106, pp. 106-1–106-25. Chapman & Hall / CRC, ACM (2004)

    Google Scholar 

  18. Bowen, J.P., Hinchey, M.G.: Ten commandments revisited: A ten-year perspective on the industrial application of formal methods. In: Margaria, T., Massink, M. (eds.) FMICS 2005: Proceedings of the Tenth International Workshop on Formal Methods for Industrial Critical Systems, Lisbon, Portugal, September 5-6, pp. 8–16. ACM Press, New York (2005)

    Chapter  Google Scholar 

  19. Bowen, J.P., Hinchey, M.G.: Ten commandments of formal methods... ten years later. IEEE Computer 39(1), 40–48 (2006)

    Google Scholar 

  20. Bowen, J.P., Hinchey, M.G.: Ten commandments ten years on: An assessment of formal methods usage. In: Eleftherakis, G. (ed.) SEEFM 2005: 2nd South-East European Workshop on Formal Methods, Formal Methods: Challenges in the Business World, Ohrid, Macedonia, South-East European Research Centre, November 18–19, pp. 1–16 (2005)

    Google Scholar 

  21. Bowen, J.P., Woodcock, J.C.P. (eds.): Grand Challenge 6 Workshop on Dependable Systems Evolution. Workshop in association with the FM 2005 Formal Methods Conference, , University of Newcastle upon Tyne, United Kingdom, July 18 (2005), http://www.fmnet.info/gc6/fm05/proceedings.pdf

  22. Cavarra, A.: Applying Abstract State Machines to Formalize and Integrate the UML Lightweight Method. PhD thesis, University of Catania, Sicily, Italy (2000)

    Google Scholar 

  23. Dehbonie, B., Mejia, F.: Formal development of safety-critical software systems in railway signalling. In: [32], ch. 10, pp. 227–252 (1995)

    Google Scholar 

  24. Derrick, J.: A single complete refinement rule for Z. Journal of Logic and Computation 10(5), 663–675 (2000)

    Article  MathSciNet  MATH  Google Scholar 

  25. Duke, R., Rose, G.: Formal Object-Oriented Specification using Object-Z. Cornerstones of Computing Series. MacMillan Press, Basingstoke (2000)

    Google Scholar 

  26. Frappier, M., Habrias, H. (eds.): Software Specification Methods: An Overview Using a Case Study. ISTE (2006)

    Google Scholar 

  27. George, V., Vaughan, R.: Application of lightweight formal methods in Requirement Engineering1. CrossTalk: The Journal of Defense Software Engineering (January 2003), http://www.stsc.hill.af.mil/crosstalk/2003/01/George.html

  28. Gurevich, Y., Kutter, P., Odersky, M., Thiele, L. (eds.): ASM 2000. LNCS, vol. 1912. Springer, Heidelberg (2000)

    MATH  Google Scholar 

  29. Harman, M., McMinn, P. (eds.): Proceedings of Testing: Academic & Industrial Conference — Practice And Research Techniques (TAICPART), Windsor, United Kingdom, August 29–31, pp. 29–31. IEEE Computer Society Press, Los Alamitos (2006)

    Google Scholar 

  30. Henson, M.C., Reeves, S., Bowen, J.P.: Z logic and its consequences. CAI: Computing and Informatics 22(4), 381–415 (2003)

    MathSciNet  MATH  Google Scholar 

  31. Hierons, R.M., Bowen, J.P., Harman, M. (eds.): FORTEST 2008. LNCS, vol. 4949. Springer, Heidelberg (2008)

    Google Scholar 

  32. Hinchey, M.G., Bowen, J.P. (eds.): Applications of Formal Methods. Prentice Hall International Series in Computer Science (1995)

    Google Scholar 

  33. Hinchey, M.G., Bowen, J.P.: Industrial-Strength Formal Methods in Practice. FACIT series. Springer, Heidelberg (1999)

    Google Scholar 

  34. Hinchey, M.G., Bowen, J.P., Rouff, C.: Introduction to formal methods. In: Rouff, C., Hinchey, M.G., Rash, J., Truszkowski, W., Gordon-Spears, D. (eds.) Agent Technology from a Formal Perspective. NASA Monographs in Systems and Software Engineering, vol. 2, pp. 25–64. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  35. Hoare, C.A.R.: An axiomatic basic for computer programming. Communications of the ACM 12(10), 576–583 (1969)

    Article  MATH  Google Scholar 

  36. Hoare, C.A.R.: The verifying compiler: A grand challenge for computing research. Journal of the ACM 50(1), 63–69 (2003)

    Article  Google Scholar 

  37. Hoare, S.T.: The ideal of verified software. In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 5–16. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  38. Hoare, C.A.R., Milner, R.: Grand challenges for computing research. The Computer Journal 48(1), 49–52 (2005)

    Article  Google Scholar 

  39. ISO. Information Technology — Z Formal Specification Notation — Syntax, Type System and Semantics, ISO/IEC 13568 (2002)

    Google Scholar 

  40. Jackson, D.: Software Abstractions: Logic, Language, and Analysis. MIT Press, Cambridge (2006)

    Google Scholar 

  41. Jones, C.B., O’Hearn, P.W., Woodcock, J.C.P.: Verified software: A grand challenge. IEEE Computer 39(4), 93–95 (2006)

    Google Scholar 

  42. Kapoor, K., Bowen, J.P.: A formal analysis of MCDC and RCDC test criteria. Software Testing, Verification and Reliability 15(1), 21–40 (2005)

    Article  Google Scholar 

  43. Lightfoot, D.: Formal Specification Using Z, 2nd edn. Grassroots Series. Palgrave (2001)

    Google Scholar 

  44. Métayer, C., Abrial, J.-R., Voisin, L.: Event-B Language. Project IST-511599 RODIN (Rigorous Open Development Environment for Complex Systems), Deliverable 3.2, Public Document, May 31 (2005), http://rodin.cs.ncl.ac.uk/deliverables/D7.pdf

  45. Morris, L., Jones, C.B.: An early program proof by Alan Turing. IEEE Annals of the History of Computing 6(2), 129–143 (1984)

    Article  MathSciNet  Google Scholar 

  46. Owe, O., Krogdahl, S., Lyche, T. (eds.): From Object-Orientation to Formal Methods. LNCS, vol. 2635. Springer, Heidelberg (2004)

    MATH  Google Scholar 

  47. Randell, B.: Memories of the NATO software engineering conferences. IEEE Annals of the History of Computing 20(1), 51–54 (1998), http://homepages.cs.ncl.ac.uk/brian.randell/NATO/

    Google Scholar 

  48. Saaltink, M.: The Z/EVES system. In: Till, D., Bowen, J.P., Hinchey, M.G. (eds.) ZUM 1997. LNCS, vol. 1212, pp. 72–85. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  49. Schellhorn, G., Grandy, H., Haneberg, D., Möbius, N., Reif, W.: A systematic verification approach for Mondex electronic purses using ASMs. In: Abrial, J.-R., Glässer, U. (eds.) Börger Festschrift. LNCS, vol. 5115. Springer, Heidelberg (2009)

    Google Scholar 

  50. Schneider, S.: The B-Method: An Introduction. Cornerstones of Computing Series. MacMillan Press, Basingstoke (2001)

    Google Scholar 

  51. Snook, C., Butler, M.: UML-B: Formal modelling and design aided by UML. ACM Transactions on Software Engineering and Methodology 15(1), 92–122 (2006)

    Article  Google Scholar 

  52. Spivey, J.M.: The Z Notation: A Reference Manual, 2nd edn. Prentice Hall International Series in Computer Science (1992), http://spivey.oriel.ox.ac.uk/~mike/zrm/

  53. Veanes, M., Campbell, C., Grieskamp, W., Schulte, W., Tillmann, N., Nachmanson, L.: Model-based testing of object-oriented reactive systems with Spec Explorer. In: [31]

    Google Scholar 

  54. Vilkomir, S.A., Bowen, J.P.: From MC/DC to RC/DC: Formalization and Analysis of Control-Flow Testing Criteria. Formal Aspects of Computing 18(1), 42–62 (2006)

    Article  MATH  Google Scholar 

  55. Weiser, M.: Program slicing. IEEE Transactions on Software Engineering 10, 352–357 (1984)

    Article  Google Scholar 

  56. Woodcock, J.C.P.: First steps in the verified software Grand Challenge. IEEE Computer 39(10), 57–64 (2006)

    Google Scholar 

  57. Woodcock, J., Freitas, L.: Z/Eves and the mondex electronic purse. In: Barkaoui, K., Cavalcanti, A., Cerone, A. (eds.) ICTAC 2006. LNCS, vol. 4281, pp. 15–34. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  58. Chaochen, Z., Hansen, M.R.: Duration Calculus: A Formal Approach to Real-Time Systems. Monographs in Theoretical Computer Science. Springer, Heidelberg (2004)

    MATH  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

Bowen, J.P., Hinchey, M.G. (2009). Ten Commandments Ten Years On: Lessons for ASM, B, Z and VSR-net. In: Abrial, JR., Glässer, U. (eds) Rigorous Methods for Software Construction and Analysis. Lecture Notes in Computer Science, vol 5115. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-11447-2_14

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-11447-2_14

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-11446-5

  • Online ISBN: 978-3-642-11447-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics