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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
Abrial, J.-R.: The B-Bool: Assigning programs to meanings. Cambridge University Press, Cambridge (1996)
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)
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)
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)
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)
Boiten, E.A., Derrick, J., Smith, G.P. (eds.): IFM 2004. LNCS, vol. 2999. Springer, Heidelberg (2004)
Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modeling Language User Guide, 2nd edn. Addison-Wesley Object Technology Series (2005)
Börger, E.: The ASM refinement method. Formal Aspects of Computing 15(1–2), 237–257 (2003)
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)
Börger, E., Cavarra, A., Riccobene, E.: Modeling the dynamics of UML state machines. In: [28], pp. 223–241
Börger, E., Päppinghaus, P., Schmid, J.: Report on a practical application of ASMs in software design. In: [28], pp. 361–366
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/
Bowen, J.P.: The ethics of safety-critical systems. Communications of the ACM 43(4), 91–97 (2000)
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)
Bowen, J.P., Hinchey, M.G.: Ten commandments of formal methods. IEEE Computer 28(4), 56–63 (1995)
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)
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)
Bowen, J.P., Hinchey, M.G.: Ten commandments of formal methods... ten years later. IEEE Computer 39(1), 40–48 (2006)
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)
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
Cavarra, A.: Applying Abstract State Machines to Formalize and Integrate the UML Lightweight Method. PhD thesis, University of Catania, Sicily, Italy (2000)
Dehbonie, B., Mejia, F.: Formal development of safety-critical software systems in railway signalling. In: [32], ch. 10, pp. 227–252 (1995)
Derrick, J.: A single complete refinement rule for Z. Journal of Logic and Computation 10(5), 663–675 (2000)
Duke, R., Rose, G.: Formal Object-Oriented Specification using Object-Z. Cornerstones of Computing Series. MacMillan Press, Basingstoke (2000)
Frappier, M., Habrias, H. (eds.): Software Specification Methods: An Overview Using a Case Study. ISTE (2006)
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
Gurevich, Y., Kutter, P., Odersky, M., Thiele, L. (eds.): ASM 2000. LNCS, vol. 1912. Springer, Heidelberg (2000)
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)
Henson, M.C., Reeves, S., Bowen, J.P.: Z logic and its consequences. CAI: Computing and Informatics 22(4), 381–415 (2003)
Hierons, R.M., Bowen, J.P., Harman, M. (eds.): FORTEST 2008. LNCS, vol. 4949. Springer, Heidelberg (2008)
Hinchey, M.G., Bowen, J.P. (eds.): Applications of Formal Methods. Prentice Hall International Series in Computer Science (1995)
Hinchey, M.G., Bowen, J.P.: Industrial-Strength Formal Methods in Practice. FACIT series. Springer, Heidelberg (1999)
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)
Hoare, C.A.R.: An axiomatic basic for computer programming. Communications of the ACM 12(10), 576–583 (1969)
Hoare, C.A.R.: The verifying compiler: A grand challenge for computing research. Journal of the ACM 50(1), 63–69 (2003)
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)
Hoare, C.A.R., Milner, R.: Grand challenges for computing research. The Computer Journal 48(1), 49–52 (2005)
ISO. Information Technology — Z Formal Specification Notation — Syntax, Type System and Semantics, ISO/IEC 13568 (2002)
Jackson, D.: Software Abstractions: Logic, Language, and Analysis. MIT Press, Cambridge (2006)
Jones, C.B., O’Hearn, P.W., Woodcock, J.C.P.: Verified software: A grand challenge. IEEE Computer 39(4), 93–95 (2006)
Kapoor, K., Bowen, J.P.: A formal analysis of MCDC and RCDC test criteria. Software Testing, Verification and Reliability 15(1), 21–40 (2005)
Lightfoot, D.: Formal Specification Using Z, 2nd edn. Grassroots Series. Palgrave (2001)
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
Morris, L., Jones, C.B.: An early program proof by Alan Turing. IEEE Annals of the History of Computing 6(2), 129–143 (1984)
Owe, O., Krogdahl, S., Lyche, T. (eds.): From Object-Orientation to Formal Methods. LNCS, vol. 2635. Springer, Heidelberg (2004)
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/
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)
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)
Schneider, S.: The B-Method: An Introduction. Cornerstones of Computing Series. MacMillan Press, Basingstoke (2001)
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)
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/
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]
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)
Weiser, M.: Program slicing. IEEE Transactions on Software Engineering 10, 352–357 (1984)
Woodcock, J.C.P.: First steps in the verified software Grand Challenge. IEEE Computer 39(10), 57–64 (2006)
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)
Chaochen, Z., Hansen, M.R.: Duration Calculus: A Formal Approach to Real-Time Systems. Monographs in Theoretical Computer Science. Springer, Heidelberg (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)