Abstract
One of the most important contributory factors of software correctness, hence reliability, is the application of Formal Methods. These methods should be widely used in practice, but their acceptance by industry is well below what it should be. The most commonly mentioned way of improving on this situation is to reform education. This must address two issues. The first is to establish an appropriate concept of Formal Methods, one which is both sound and practicable. The second is to establish the proper way of teaching the appropriate methods. This paper addresses these two issues. First, it proposes a concept of Formal Methods and examines various misconceptions about these methods. The main tenet of the paper is that Formal Methods should give priority to the formalisation of specifications of system components over the production of completely formal proofs. Second, the paper reports on the author’s experience in teaching Formal Methods and related topics at introductory (MSc conversion) level over many years. Examples of simple specifications are given, their contribution to students’ education discussed, and a number of teaching recommendations are proposed.
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
Boehm, B. W. Software Engineering Economics. Prentice Hall, Englewood Cliffs, N.J. (1981)
Bowen, J. P. and Hinchey, M. G. Seven more myths of formal methods. IEEE Software, July (1995)
Bowen, J. and Stavridou V. Safety-critical systems, formal methods and standards. Software Engineering Journal, Vol 8, No 4 (1993) 189–209
Clarke, E. M., Wing, J. M. et al. Formal Methods: State of the art and future directions. ACM Computing Surveys, Vol 28, No 4 (1996)
Cuadrado, J. Teach formal methods. Byte, Vol 19, No 12 (1994) 292
Dean, C. N. and Hinchey, M. G. (Eds). Teaching and Learning Formal Methods. Academic Press, San Diego, Calif. (1996)
Descartes, R. Discours de la MĂ©thode (1637). English translation by F. E. Sutcliffe, Discourse on Method and the Meditations. Penguin Books, Harmondsworth, England (1968)
Dick, J. and Woods, E. Lessons learned from rigorous system software development. Information and Software Technology, Vol 39, No 8 (1997) 551–560
Dix, A. Formal Methods for Interactive Systems. Academic Press, San Diego, Calif. (1991)
Enderton, H. B. A Mathematical Introduction to Logic. Academic Press, New York (1972)
Feijs, L.M.G. and Jonkers, H.B.M. Formal Specification and Design. Cambridge University Press, Cambridge, England (1992)
Floyd, R. Assigning meaning to programs. In Mathematical Aspects of Computer Science, XIX American Mathematical Society (1967) 19–32
Garlan, D. Making formal methods education effective for professionals. Information and Software Technology, Vol 37, No 5–6 (1995) 261–268
Gries, D. The Science of Programming. Springer-Verlag, New York (1981)
Hall, A. Seven myths of Formal Methods. IEEE Software, September (1990)
Halmos, P. R. NaĂŻve Set Theory. Springer-Verlag, New York (1974)
Hoare, C.A.R. and Shepherdson, J.C. Mathematical Logic and Programming Languages. Prentice-Hall International, London (1985)
Ince, D.C. An Introduction to Discrete Mathematics and Formal System Specification. Clarendon Press, Oxford (1988)
Jones, C.B. Systematic Software Development Using VDM. Prentice-Hall International, London (1986)
McDermid, J. A. (Ed). The Theory and Practice of Refinement: Approaches to the Formal Development of Large-Scale Software Systems. Butterworth & Co. (Publishers) Ltd (1989)
Parnas, D. L. On ICSE’s “Most influential” papers. ACM SIGSOFT Software Engineering Notes, Vol 20, No 3 (1995) 29–32
Parnas, D. L. “Formal Methods” Technology Transfer Will Fail. Journal of Systems and Software, Vol 40, No 3 (1998) 195–198
Paulson, L. C. Logic and Computation. Cambridge University Press, Cambridge, England (1987)
PĂłlya G. How to Solve It. 2nd renewed edition, Penguin Books, London (1990)
Ralston, T., Gerhart, S., and Craigen, D. The role of education and training in the industrial application of formal methods. Algebraic methodology and software technology, Lecture Notes in Computer Science, Vol 936 (1995) 41–49
Scheurer, T. Foundations of Computing. Addison-Wesley, Wokingham, England (1994)
Sobel, A. E. K. Applying an operational formal method throughout software engineering education. Information and Software Technology, Vol 40, No 4 (1998) 233–238
Sommerville, I. Software Engineering. 3rd Ed., Addison-Wesley, Wokingham, England (1989)
Spivey, J.M. The Z Notation: A Reference Manual. Prentice-Hall International, London (1989)
Thimbleby, H. Computerised Parkinson’s law. Computing & Control Engineering Journal, Vol 4, No 5 (1993) 197–198
Tse, T. H. Formal or informal, practical or impractical — towards integrating formal methods with informal practices in software engineering-education. Software Engineering Education, IFIP Transactions A — Computer Science and Technology, Vol 40, (1993) 189–197.
Woodcock, J. C. P. Calculating properties of Z specifications. ACM SIGSoft Software-Eng. Notes (1989) 43–54
Wordsworth, J. B. Software Development with Z. Addison-Wesley, Wokingham, England (1992)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Scheurer, T. (2000). Formal Methods: The Problem Is Education. In: Koornneef, F., van der Meulen, M. (eds) Computer Safety, Reliability and Security. SAFECOMP 2000. Lecture Notes in Computer Science, vol 1943. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-40891-6_18
Download citation
DOI: https://doi.org/10.1007/3-540-40891-6_18
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-41186-4
Online ISBN: 978-3-540-40891-8
eBook Packages: Springer Book Archive