Skip to main content

Balancing Insight and Effort: The Industrial Uptake of Formal Methods

  • Chapter
Formal Methods and Hybrid Real-Time Systems

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

Abstract

Our goal is to help the developers of computer-based systems to make informed design decisions on the basis of insights gained from the rigorous analysis of abstract system models. The early work on model-oriented specification has inspired the development of numerous formalisms and tools supporting modelling and analysis. There are also many stories of successful industrial application, often driven by a few champions possessing deep a priori understanding of formalisms. There are fewer cases of successful take-up or adoption of the technology in the long term. We argue that successful industrial adoption of this technology requires that potential users strike a balance between the effort expended in producing and analysing a model and insight gained. In order to support this balancing act, tools need to offer a range of levels of effort and insight. Further, educators need to recognise that training in formal development techniques must support this trade-off process.

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. Bjøorner, D.: Software Engineering 1: Abstraction and Modelling. Springer, Heidelberg (2006)

    Google Scholar 

  2. Hall, A.: Seven Myths of Formal Methods. IEEE Software 7(5), 11–19 (1990)

    Article  Google Scholar 

  3. Bowen, J.P., Hinchey, M.G.: Ten Commandments of Formal Methods. IEEE Computer 28(4), 56–62 (1995)

    Google Scholar 

  4. Tretmans, J., Wijbrans, K., Chaudron, M.: Software Engineering with Formal Methods: The Development of a Storm Surge Barrier Control System Revisiting Seven Myths of Formal Methods. Form. Methods Syst. Des. 19(2), 195–215 (2001)

    Article  MATH  Google Scholar 

  5. Bowen, J.P., Hinchey, M.G.: Ten Commandments of Formal Methods.. Ten Years Later. IEEE Computer 39(1), 40–48 (2006)

    Google Scholar 

  6. Larsen, P.G.: On the Industrial Value of Models. In: Duke, D., Evans, A. (eds.) 2nd BCS-FACS Norhern Formal Methods Workshop, Ilkley, BCS-FACS, Springer, Heidelberg (1997)

    Google Scholar 

  7. Glass, R.L.: The Mystery of Formal Methods Disuse. Communications of the ACM 47(8), 15–17 (2004)

    Article  Google Scholar 

  8. Dan Craigen, S.G., Ralston, T.: An International Survey of Industrial Applications of Formal Methods. vol. 1, Purpose, Approach, Analysis and Conclusions. U.S. Department of Commerce, Technology Administration, National Institute of Standards and Technology, Computer Systems Laboratory, Gaithersburg, MD 20899, USA (March 1993)

    Google Scholar 

  9. Rushby, J.: Formal Methods and the Certification of Critical Systems. Technical Report CSL-93-7, Computer Science Laboratory, Menlo Park CA 94025 USA (December 1993)

    Google Scholar 

  10. Fitzgerald, J.S., Larsen, P.G.: Triumphs and Challenges for the Industrial Application of Model-Oriented Formal Methods. In: Margaria, T., Philippou, A., Steffen, B. (eds.) Proc. 2nd Intl. Symp. on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA 2007) (2007) (Also Technical Report CS-TR-999, School of Computing Science, Newcastle University)

    Google Scholar 

  11. Jones, C.B.: Scientific Decisions which Characterize VDM. In: Wing, J.M., Woodcock, J.C.P., Davies, J. (eds.) FM 1999. LNCS, vol. 1708, pp. 28–47. Springer, Heidelberg (1999)

    Google Scholar 

  12. Larsen, P.G., Hansen, B.S., Brunn, H., Plat, N., Toetenel, H., Andrews, D.J., Dawes, J., Parkin, G., et al.: Information technology – Programming languages, their environments and system software interfaces – Vienna Development Method – Specification Language – Part 1: Base language (December 1996)

    Google Scholar 

  13. Plat, N., Larsen, P.G.: An Overview of the ISO/VDM-SL Standard. Sigplan Notices 27(8), 76–82 (1992)

    Article  Google Scholar 

  14. Larsen, P.G., Pawłiowski, W.: The Formal Semantics of ISO VDM-SL. Computer Standards and Interfaces 17(5-6), 585–602 (1995)

    Article  Google Scholar 

  15. Bicarregui, J., Fitzgerald, J., Lindsay, P., Moore, R., Ritchie, B.: Proof in VDM: A Practitioner’s Guide. In: FACIT, Springer, Heidelberg (1994)

    Google Scholar 

  16. Larsen, P.G., Fitzgerald, J., Brookes, T.: Applying Formal Specification in Industry. IEEE Software 13(3), 48–56 (1996)

    Article  Google Scholar 

  17. Fitzgerald, J., Larsen, P.G.: Modelling Systems – Practical Tools and Techniques in Software Development, The Edinburgh Building. Cambridge University Press, Cambridge (1998)

    Google Scholar 

  18. Devauchelle, L., Larsen, P.G., Voss, H.: PICGAL: Practical Use of Formal Specification to Develop a Complex Critical System. In: Jones, C.B. (ed.) FME 1997. LNCS, vol. 1313, pp. 221–236. Springer, Heidelberg (1997)

    Google Scholar 

  19. Fitzgerald, J., Jones, C.: Proof in the validation of a formal model of a tracking system for a nuclear plant. In: Bicarregui, J. (ed.) Proof in VDM: Case Studies. FACIT Series, Springer, Heidelberg (1998)

    Google Scholar 

  20. Smith, P.R., Larsen, P.G.: Applications of VDM in Banknote Processing. In: Fitzgerald, J.S., Larsen, P.G. (eds.) VDM in Practice: Proc. First VDM Workshop 1999, (September 1999), available at www.vdmportal.org

  21. Mukherjee, P., Bousquet, F., Delabre, J., Paynter, S., Larsen, P.G.: Exploring Timing Properties Using VDM++ on an Industrial Application. In: Bicarregui, J., Fitzgerald, J. (eds.) Proceedings of the Second VDM Workshop (September 2000), available at www.vdmportal.org

  22. Elmstrøm, R., Larsen, P.G., Lassen, P.B.: The IFAD VDM-SL Toolbox: A Practical Approach to Formal Specifications. ACM Sigplan Notices 29(9), 77–80 (1994)

    Article  Google Scholar 

  23. CSK: VDMTools homepage. http://www.vdmtools.jp/en/ (2007)

  24. Overture-Core-Team: Overture Web site. http://www.overturetool.org (2007)

  25. Fitzgerald, J., Larsen, P.G., Mukherjee, P., Plat, N., Verhoef, M.: Validated Designs for Object–oriented Systems. Springer, New York (2005)

    MATH  Google Scholar 

  26. Verhoef, M., Larsen, P.G., Hooman, J.: Modeling and Validating Distributed Embedded Real-Time Systems with VDM++. In: Misra, J., Nipkow, T., Sekerinski, E. (eds.) FM 2006. LNCS, vol. 4085, pp. 147–162. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  27. Verhoef, M., Larsen, P.G.: Interpreting Distributed System Architectures Using VDM++ – A Case Study. In: Sauser, B., Muller, G. (eds.) 5th Annual Conference on Systems Engineering Research (March 2007), http://www.stevens.edu/engineering/cser/

  28. Fitzgerald, J., Larsen, P.G., Tjell, S., Verhoef, M.: Validation Support for Distributed Real-Time Embedded Systems in VDM++. Technical Report CS-TR:1017, School of Computing Science, Newcastle University (April 2007)

    Google Scholar 

  29. Kurita, T., Oota, T., Nakatsugawa, Y.: Formal specification of an embedded IC for cellular phones. In: Proceedings of Software Symposium 2005, Software Engineers Associates of Japan, pp. 73–80 (June 2005) (in Japanese)

    Google Scholar 

  30. Holloway, M., Butler, R.W.: Impediments to Industrial Use of Formal Methods. IEEE Computer 29(4), 25–26 (1996)

    Google Scholar 

  31. Fitzgerald, J., Larsen, P.: Formal Specification Techniques in the Commercial Development Process. In: Wirsing, M. (ed.) Position Papers from the Workshop on Formal Methods Application in Software Engineering Practice, International Conference on Software Engineering (ICSE-17), Seattle (1995), http://home0.inet.tele.dk/pgl/icse.pdf

  32. Woodcock, J., Davies, J.: Using Z – Specification, Refinement, and Proof. Prentice Hall International Series in Computer Science, Englewood Cliffs (1996)

    Google Scholar 

  33. Abrial, J.R.: The B Book - Assigning Programs to Meanings. Cambridge University Press, Cambridge (1996)

    MATH  Google Scholar 

  34. Larsen, P.G., Lassen, P.B.: An Executable Subset of Meta-IV with Loose Specification. In: VDM 1991: Formal Software Development Methods, VDM Europe, Springer, Heidelberg (1991)

    Google Scholar 

  35. Mukherjee, P.: Computer-aided Validation of Formal Specifications. Software Engineering Journal, 133–140 (July 1995)

    Google Scholar 

  36. Larsen, P.G.: Ten Years of Historical Development: “Bootstrapping” VDMTools. Journal of Universal Computer Science 7(8), 692–709 (2001)

    MATH  Google Scholar 

  37. Houston, I.: The IBM Z Tool. In: Prehn, S., Toetenel, H. (eds.) VDM 1991. LNCS, vol. 552, pp. 691–692. Springer, Heidelberg (1991)

    Google Scholar 

  38. Saaltink, M.: Z and EVES. In: Nicholls, J. (ed.) Z User Workshop, York, 1991. Workshops in Computing, pp. 223–242. Springer, Heidelberg (1991)

    Google Scholar 

  39. Toyn, I., J.: CADiZ: an Architecture for Z tools and its Implementation. Softw.-Pract. Exp (UK) 25(3), 305–330 (1995)

    Google Scholar 

  40. Lee, M., Sørensen, I.: B-tool. In: Prehn, S., Toetenel, W. (eds.) VDM 1991. LNCS, vol. 552, pp. 695–696. Springer, Heidelberg (1991)

    Google Scholar 

  41. Clearsy: Atelier B Web site (2007), http://www.atelierb.societe.com/index_uk.htm

  42. Johnson, S.: Lint, a C Program Checker. Computer Science 65, Bell Laboratories (December 1977)

    Google Scholar 

  43. Rushby, J.: Model Checking and Other Ways of Automating Formal Methods. In: Software Quality Week, San Francisco, CA (May 1995) (Position paper for panel on Model Checking for Concurrent Programs)

    Google Scholar 

  44. Heitmeyer, C.L.: On the Need for Practical Formal Methods. In: Ravn, A.P., Rischel, H. (eds.) FTRTFT 1998. LNCS, vol. 1486, pp. 18–26. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  45. Heitmeyer, C.: A Panacea or Academic Poppycock: Formal Methods Revisited. In: High-Assurance Systems Engineering, 2005. HASE 2005. Ninth IEEE International Symposium, pp. 3–7. IEEE, Los Alamitos (2005)

    Google Scholar 

  46. Heitmeyer, C.: Developing Safety-Critical Systems: the Role of Formal Methods and Tools. In: SCS 2005: Proceedings of the 10th Australian Workshop on Safety Critical Systems and Software, Darlinghurst, Australia, pp. 95–99. Australian Computer Society, Inc., Australia (2006)

    Google Scholar 

  47. Pierce, B.C. (ed.) Advanced Topics in Types and Programming Languages. MIT Press, Cambridge (2005)

    MATH  Google Scholar 

  48. Aichernig, B.K., Larsen, P.G.: A Proof Obligation Generator for VDM-SL. In: Jones, C.B. (ed.) FME 1997. LNCS, vol. 1313, pp. 338–357. Springer, Heidelberg (1997)

    Google Scholar 

  49. Luckham, D.C., von Henke, F.W.: An Overview of Anna, A Specification Language for Ada. In: IEEE Software, pp. 9–22. IEEE Computer Society Press, Los Alamitos (1985)

    Google Scholar 

  50. Burdy, L., Cheon, Y., Cok, D., Ernst, M.D., Kiniry, J.R., Leavens, G.T., Leino, K.R.M., Poll, E.: An overview of JML Tools and Applications. Intl. Journal of Software Tools for Technology Transfer 7, 212–232 (2005)

    Article  Google Scholar 

  51. Chalin, P., Hurlin, C., Kiniry, J.: Integrating Static Checking and Interactive Verification: Supporting Multiple Theories and Provers in Verification. In: Proceedings of Verified Software: Tools, Technologies, and Experiences (VSTTE) (2005)

    Google Scholar 

  52. Clarke, E., Emerson, E., Sistla, A.: Automatic Verification of Finite-State Concurrent Systems Using Temporal Logic Specifications. ACM Transactions on Programming Languages and Systems 8(2), 244–263 (1986)

    Article  MATH  Google Scholar 

  53. McMillan, K.L.: Symbolic Model Checking. PhD thesis, Carnegie Mellon University, School of Computer Science. Kluwer Academic Publishers, Dordrecht (1992)

    Google Scholar 

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

    Google Scholar 

  55. Hayes, I., Jones, C.: Specifications are not (Necessarily) Executable. Software Engineering Journal, 330–338 (November 1989)

    Google Scholar 

  56. Kneuper, R.: Symbolic Execution as a Tool for Validation of Specifications. PhD thesis, Department of Computer Science, Univeristy of Manchester (March, Technical Report Series UMCS-89-7-1 (1989)

    Google Scholar 

  57. Andersen, M., Elmstrøom, R., Lassen, P.B., Larsen, P.G.: Making Specifications Executable – Using IPTES Meta-IV. Microprocessing and Microprogramming 35(1-5), 521–528 (1992)

    Article  Google Scholar 

  58. Fröhlich, B.: Towards Executability of Implicit Definitions. PhD thesis, TU Graz, Institute of Software Technology (September 1998)

    Google Scholar 

  59. Dick, J., Faivre, A.: Automating the Generation and Sequencing of Test Cases from Model-Based Specifications. In: Larsen, P.G., Woodcock, J.C.P. (eds.) FME 1993. LNCS, vol. 670, pp. 268–284. Springer, Heidelberg (1993)

    Chapter  Google Scholar 

  60. Gaudel, M.C.: Testing can be formal, too. In: Mosses, P., Schwartzbach, M., Nielsen, M. (eds.) CAAP 1995, FASE 1995, and TAPSOFT 1995. LNCS, vol. 915, pp. 82–96. Springer, Heidelberg (1995)

    Google Scholar 

  61. Burdonov, I., Kossatchev, A., Petrenko, A., Galter, D.: KVEST: Automated Generation of Test Suites from Formal Specifications. In: Wing, J.M., Woodcock, J.C.P., Davies, J. (eds.) FM 1999. LNCS, vol. 1708, pp. 608–621. Springer, Heidelberg (1999)

    Google Scholar 

  62. TestingFaqs.org: Test Coverage Tools (2007), http://www.testingfaqs.org/t-eval.html

  63. van Lamsweerde, A.: Formal Specification: a Roadmap. In: ICSE 2000: Proceedings of the Conference on The Future of Software Engineering, pp. 147–159. ACM Press, New York (2000)

    Chapter  Google Scholar 

  64. Back, R.J.: On the Correctness of Refinement Steps in Program Development. PhD thesis, Åbo Akademi, Department of Computer Science, Helsinki, Finland Report A–1978–4 (1978)

    Google Scholar 

  65. Carrington, D., Hayes, I., Nickson, R., Watson, G., Welsh, J.: A Review of Existing Refinement Tools. SVRC TR-94-8, University of Queensland (1994)

    Google Scholar 

  66. Jones, C.B.: Systematic Software Development Using VDM, 2nd edn. Prentice-Hall International, Englewood Cliffs, New Jersey (1990)

    MATH  Google Scholar 

  67. Ah-Kee, J.: Operation Decomposition Proof Obligations. PhD thesis, University of Manchester (1989)

    Google Scholar 

  68. Badeau, F., Amelot, A.: Using B as a High Level Programming Language in an Industrial Project: Roissy VAL. In: Z to B Conference / Nantes, pp. 334–354 (2005)

    Google Scholar 

  69. Burdy, L., J.M.: Automatic Refinement. In: Woodcock, J.C.P., Davies, J., Wing, J.M. (eds.) FM 1999. LNCS, vol. 1709, Springer, Heidelberg (1999)

    Google Scholar 

  70. Leavens, G.T., Abrial, J.R., Batory, D., Butler, M., Coglio, A., Fisler, K., Hehner, E., Jones, C., Miller, D., Peyton-Jones, S., Sitaraman, M., Smith, D.R., Stump, A.: Roadmap for Enhanced Languages and Methods to aid Verification. In: Proceedings of the 5th International Conference on Generative Programming and Component Engineering, pp. 221–236. ACM Press, New York (2006)

    Chapter  Google Scholar 

  71. Owre, S., Rushby, J.M., Shankar, N.: PVS: A Prototype Verification System. In: Kapur, D. (ed.) Automated Deduction - CADE-11. LNCS, vol. 607, pp. 748–752. Springer, Heidelberg (1992)

    Google Scholar 

  72. Paulson, L.C.: Generic automatic proof tools. In: Veroff, R. (ed.) Automated Reasoning and its Applications: Essays in Honor of Larry Wos, pp. 23–47. MIT Press, Cambridge (1997)

    Google Scholar 

  73. Harper, R.: Proof-directed debugging. Journal of Functional Programming 9(4), 463–469 (1999)

    Article  MATH  Google Scholar 

  74. Dennis, L.A., Monroy, R., Nogueira, P.: Proof-directed Debugging and Repair. In: Nilsson, H., van Eekelen, M. (eds.) Seventh Symposium on Trends in Functional Programming 2006, pp. 131–140 (2006)

    Google Scholar 

  75. Dennis, L.A., Collins, G., Norrish, M., Boulton, R., Slind, K., Robinson, G., Gordon, M., Melham, T.: The PROSPER Toolkit. In: Schwartzbach, M.I., Graf, S. (eds.) ETAPS 2000 and TACAS 2000. LNCS, vol. 1785, Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  76. Terada, N., Fukuda, M.: Application of Formal Methods to the Railway Signaling Systems. Quarterly Report of RTRI 43(4), 169–174 (2002)

    Article  Google Scholar 

  77. Dion, B., Gartner, J.: Efficient Development of Embedded Automotive Software with IEC 61508 Objectives using SCADE Drive. In: VDI 12th International Conference: Electronic Systems for Vehicles, VDI (October 2005)

    Google Scholar 

  78. Snook, C., Butler, M.: UML-B: Formal modeling and design aided by UML. ACM Trans. Softw. Eng. Methodol. 15(1), 92–122 (2006)

    Article  Google Scholar 

  79. Verhoef, M., Peter Visser, J.H., Broenink, J.: Co-simulation of Real-time Embedded Control Systems. In: IFM 2007: Integrated Formal Methods. LNCS, Springer, Heidelberg (2007)

    Google Scholar 

  80. Fröhlich, B., Larsen, P.G.: Combining VDM-SL Specifications with C++ Code. In: Gaudel, M.-C., Woodcock, J. (eds.) FME 1996. LNCS, vol. 1051, pp. 179–194. Springer, Heidelberg (1996)

    Google Scholar 

  81. Hekmatpour, S., Ince, D.C.: A Formal Specification-Based Prototyping System. In: Barnes, D., Brown, P. (eds.) Software Engineering 1986, pp. 317–335. Peter Peregrinus Ltd., London (1986)

    Google Scholar 

  82. McParland, P.J.: Software Tools to Support Formal Methods. PhD thesis, Queen’s University Belfast (October 1989)

    Google Scholar 

  83. RODIN-Project-Members: RODIN (2007), http://rodin.cs.ncl.ac.uk/

  84. Sobel, A.E.K., Clarkson, M.R.: Formal Methods Application: An Empirical Tale of Software Development. IEEE Trans. Software Engineering 28(3), 308–320 (2002)

    Article  Google Scholar 

  85. Berry, D.M., Tichy, W.F.: Comments on Formal Methods Application: An Empirical Tale of Software Development. IEEE Transactions on Software Engineering 29(6), 567–571 (2003)

    Article  Google Scholar 

  86. Sobel, A.E.K., Clarkson, M.R.: Response to Comments on Formal Methods Application: An Empirical Tale of Software Development. IEEE Trans. Software Engineering 29(6), 572–575 (2003)

    Article  Google Scholar 

  87. Sobel, A.E.K.: Empirical Results of a Software Engineering Curriculum Incorporating Formal Methods. In: Proceedings of SIGCSE 2000, pp. 157–161. ACM Press, New York (2000)

    Chapter  Google Scholar 

  88. Larsen, P.G., Fitzgerald, J.S., Riddle, S.: Learning by Doing: Practical Courses in Lightweight Formal Methods using VDM++. Technical Report CS-TR:992, School of Computing Science, Newcastle University (December 2006)

    Google Scholar 

  89. Kramer, J.: Is Abstraction the Key to Computing? Communications of the ACM 50(4), 37–42 (2007)

    Article  Google Scholar 

  90. Barnett, M., Leino, 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, Springer, Heidelberg (2005)

    Google Scholar 

  91. Wing, J.: Weaving Formal Methods into the Undergraduate Computer Science Curriculum. In: Rus, T. (ed.) AMAST 2000. LNCS, vol. 1816, Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  92. Palmer, T.V., Pleasant, J.C.: Attitudes Toward the Teaching of Formal Methods of Software Development in the Undergraduate Computer Science Curriculum: a Survey. SIGCSE Bulletin 27(3), 53–59 (1995)

    Article  Google Scholar 

  93. Skevoulis, S., Makarov, V.: Integrating Formal Methods Tools into Undergraduate Computer Science Curriculum. In: Frontiers in Education Conference, 36th Annual, ASEE, pp. 1–6. IEEE Computer Society Press, Los Alamitos (2006)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Cliff B. Jones Zhiming Liu Jim Woodcock

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Fitzgerald, J., Larsen, P.G. (2007). Balancing Insight and Effort: The Industrial Uptake of Formal Methods. In: Jones, C.B., Liu, Z., Woodcock, J. (eds) Formal Methods and Hybrid Real-Time Systems. Lecture Notes in Computer Science, vol 4700. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-75221-9_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-75221-9_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-75220-2

  • Online ISBN: 978-3-540-75221-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics