Systematic software development using VDM
Systematic software development using VDM
Logic and computation: interactive proof with Cambridge LCF
Logic and computation: interactive proof with Cambridge LCF
The Z notation: a reference manual
The Z notation: a reference manual
An introduction to discrete mathematics and formal system specification
An introduction to discrete mathematics and formal system specification
Properties of Z specifications
ACM SIGSOFT Software Engineering Notes
Formal specification and design
Formal specification and design
On ICSE's “most influential” papers
ACM SIGSOFT Software Engineering Notes
Formal methods: state of the art and future directions
ACM Computing Surveys (CSUR) - Special ACM 50th-anniversary issue: strategic directions in computing research
“Formal methods” technology transfer will fail
Journal of Systems and Software - Special issue on formal methods technology transfer
Software Engineering
Theory and Practice of Refinement: Approaches to the Formal Development of Large-Scale Software Systems
The Science of Programming
Software Engineering Economics
Software Engineering Economics
IEEE Software
Seven More Myths of Formal Methods
IEEE Software
The Role of Education and Trainig in the Industrial Application of Formal Methods
AMAST '95 Proceedings of the 4th International Conference on Algebraic Methodology and Software Technology
Proceedings of the IFIP WG3.4/SEARCC (SRIG on Education and Training) Working Conference on Software Engineering Education
Lessons learned from rigorous system software development
Information and Software Technology
Hi-index | 0.00 |
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 student's education discussed, and a number of teaching recommendations are proposed.