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.
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
Bjøorner, D.: Software Engineering 1: Abstraction and Modelling. Springer, Heidelberg (2006)
Hall, A.: Seven Myths of Formal Methods. IEEE Software 7(5), 11–19 (1990)
Bowen, J.P., Hinchey, M.G.: Ten Commandments of Formal Methods. IEEE Computer 28(4), 56–62 (1995)
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)
Bowen, J.P., Hinchey, M.G.: Ten Commandments of Formal Methods.. Ten Years Later. IEEE Computer 39(1), 40–48 (2006)
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)
Glass, R.L.: The Mystery of Formal Methods Disuse. Communications of the ACM 47(8), 15–17 (2004)
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)
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)
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)
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)
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)
Plat, N., Larsen, P.G.: An Overview of the ISO/VDM-SL Standard. Sigplan Notices 27(8), 76–82 (1992)
Larsen, P.G., Pawłiowski, W.: The Formal Semantics of ISO VDM-SL. Computer Standards and Interfaces 17(5-6), 585–602 (1995)
Bicarregui, J., Fitzgerald, J., Lindsay, P., Moore, R., Ritchie, B.: Proof in VDM: A Practitioner’s Guide. In: FACIT, Springer, Heidelberg (1994)
Larsen, P.G., Fitzgerald, J., Brookes, T.: Applying Formal Specification in Industry. IEEE Software 13(3), 48–56 (1996)
Fitzgerald, J., Larsen, P.G.: Modelling Systems – Practical Tools and Techniques in Software Development, The Edinburgh Building. Cambridge University Press, Cambridge (1998)
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)
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)
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
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
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)
CSK: VDMTools homepage. http://www.vdmtools.jp/en/ (2007)
Overture-Core-Team: Overture Web site. http://www.overturetool.org (2007)
Fitzgerald, J., Larsen, P.G., Mukherjee, P., Plat, N., Verhoef, M.: Validated Designs for Object–oriented Systems. Springer, New York (2005)
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)
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/
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)
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)
Holloway, M., Butler, R.W.: Impediments to Industrial Use of Formal Methods. IEEE Computer 29(4), 25–26 (1996)
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
Woodcock, J., Davies, J.: Using Z – Specification, Refinement, and Proof. Prentice Hall International Series in Computer Science, Englewood Cliffs (1996)
Abrial, J.R.: The B Book - Assigning Programs to Meanings. Cambridge University Press, Cambridge (1996)
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)
Mukherjee, P.: Computer-aided Validation of Formal Specifications. Software Engineering Journal, 133–140 (July 1995)
Larsen, P.G.: Ten Years of Historical Development: “Bootstrapping” VDMTools. Journal of Universal Computer Science 7(8), 692–709 (2001)
Houston, I.: The IBM Z Tool. In: Prehn, S., Toetenel, H. (eds.) VDM 1991. LNCS, vol. 552, pp. 691–692. Springer, Heidelberg (1991)
Saaltink, M.: Z and EVES. In: Nicholls, J. (ed.) Z User Workshop, York, 1991. Workshops in Computing, pp. 223–242. Springer, Heidelberg (1991)
Toyn, I., J.: CADiZ: an Architecture for Z tools and its Implementation. Softw.-Pract. Exp (UK) 25(3), 305–330 (1995)
Lee, M., Sørensen, I.: B-tool. In: Prehn, S., Toetenel, W. (eds.) VDM 1991. LNCS, vol. 552, pp. 695–696. Springer, Heidelberg (1991)
Clearsy: Atelier B Web site (2007), http://www.atelierb.societe.com/index_uk.htm
Johnson, S.: Lint, a C Program Checker. Computer Science 65, Bell Laboratories (December 1977)
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)
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)
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)
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)
Pierce, B.C. (ed.) Advanced Topics in Types and Programming Languages. MIT Press, Cambridge (2005)
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)
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)
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)
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)
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)
McMillan, K.L.: Symbolic Model Checking. PhD thesis, Carnegie Mellon University, School of Computer Science. Kluwer Academic Publishers, Dordrecht (1992)
Jackson, D.: Software Abstractions: Logic, Language, and Analysis. MIT Press, Cambridge (2006)
Hayes, I., Jones, C.: Specifications are not (Necessarily) Executable. Software Engineering Journal, 330–338 (November 1989)
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)
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)
Fröhlich, B.: Towards Executability of Implicit Definitions. PhD thesis, TU Graz, Institute of Software Technology (September 1998)
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)
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)
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)
TestingFaqs.org: Test Coverage Tools (2007), http://www.testingfaqs.org/t-eval.html
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)
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)
Carrington, D., Hayes, I., Nickson, R., Watson, G., Welsh, J.: A Review of Existing Refinement Tools. SVRC TR-94-8, University of Queensland (1994)
Jones, C.B.: Systematic Software Development Using VDM, 2nd edn. Prentice-Hall International, Englewood Cliffs, New Jersey (1990)
Ah-Kee, J.: Operation Decomposition Proof Obligations. PhD thesis, University of Manchester (1989)
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)
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)
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)
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)
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)
Harper, R.: Proof-directed debugging. Journal of Functional Programming 9(4), 463–469 (1999)
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)
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)
Terada, N., Fukuda, M.: Application of Formal Methods to the Railway Signaling Systems. Quarterly Report of RTRI 43(4), 169–174 (2002)
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)
Snook, C., Butler, M.: UML-B: Formal modeling and design aided by UML. ACM Trans. Softw. Eng. Methodol. 15(1), 92–122 (2006)
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)
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)
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)
McParland, P.J.: Software Tools to Support Formal Methods. PhD thesis, Queen’s University Belfast (October 1989)
RODIN-Project-Members: RODIN (2007), http://rodin.cs.ncl.ac.uk/
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)
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)
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)
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)
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)
Kramer, J.: Is Abstraction the Key to Computing? Communications of the ACM 50(4), 37–42 (2007)
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)
Wing, J.: Weaving Formal Methods into the Undergraduate Computer Science Curriculum. In: Rus, T. (ed.) AMAST 2000. LNCS, vol. 1816, Springer, Heidelberg (2000)
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)
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)
Author information
Authors and Affiliations
Editor information
Rights 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)