Abstract
Based on my experience in teaching formal methods to practicing and aspiring software engineers, I present some of the common stumbling blocks faced when writing formal specifications. The most conspicuous problem is learning to abstract. I address all these problems indirectly by giving a list of hints to specifiers. Thus this paper should be of interest not only to teachers of formal methods but also to their students.
This research is sponsored by the Wright Laboratory, Aeronautical Systems Center, Air Force Materiel Command, USAF, and the Advanced Research Projects Agency (ARPA) under grant number F33615-93-1-1330. Views and conclusions contained in this document are those of the authors and should not be interpreted as necessarily representing official policies or endorsements, either expressed or implied, of Wright Laboratory or the United States Government.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
DIS 8807. Information systems processing-open systems interconnection-lotos. Technical report, International Standards Organization, 1987.
H. G. Baker. List Processing in Real Time on a Serial Computer. Communications of the ACM, 21(4):280–294, 1978.
W.R. Bevier, W.A. Hunt, Jr., J. S. Moore, and W.D. Young. An approach to systems verification. Journal of Automated Reasoning, 5:411–428, 1989.
M. Burrows, M. Abadi, and R. Needham. A logic of authentication. ACM Transactions on Computer Systems, 8(1):18–36, February 1990.
D. Garlan. Preconditions for understanding. In Proceedings of the Sixth Int'l Conf. on Software Specification and Design, pages 242–245, October 1991.
D. Garlan, G. Abowd, D. Jackson, J. Tomayko, and J.M. Wing. The CMU Master of Software Engineering Core Curriculum. In Proceedings of the Eighth SEI Conference on Software Engineering Education (CSEE). Springer-Verlag, 1995.
D. Garlan, A. Brown, D. Jackson, J. Tomayko, and J. Wing. The CMU Masters in Software Engineering Core Curriculum. Technical Report CMU-CS-93-180, Carnegie Mellon Computer Science Department, August 1993.
C.A.R. Hoare. Communicating Sequential Processes, Prentice-Hall International, 1985.
J.J. Horning, J.V. with S.J. Garland Guttag, K.D. Jones, A. Modet, and J.M. Wing. Larch: Languages and Tools for Formal Specification. Springer-Verlag, New York, 1993.
C.B. Jones. Systematic Software Development Using VDM, chapter 15. Prentice-Hall International, 1986.
Deepak Kapur. Towards a theory of abstract data types. Technical Report 237, MIT LCS, June 1980. Ph.D. Thesis.
B. Lampson, W. Weihl, and U. Maheshwari. Principles of computer systems. Technical Report MIT/LCS/RSS-22, MIT Lab. for Comp. Science, 1993. Lecture Notes for 6.826, Fall 1992.
B. Liskov and J. Guttag. Abstraction and Specification in Program Development. McGraw-Hill/MIT Press, 1986.
N. Lynch and M. Tuttle. Hierarchical correctness proofs for distributed algorithms. Technical report, MIT Laboratory for Computer Science, Cambridge, MA, April 1987.
A.J.R.G. Milner. A Calculus of Communicating Systems, volume 92 of Lecture Notes in Computer Science. Springer-Verlag, 1980.
L. Mummert, J.M. Wing, and M. Satyanarayanan. Using belief to reason about cache coherence. In Proceedings of the Symposium on Principles of Distributed Computing, pages 71–80, August 1994. Also CMU-CS-94-151, May 1994.
Scott M. Nettles and James W. O'Toole. Real-Time Replication Garbage Collection. In SIGPLAN Symposium on Programming Language Design and Implementation. ACM, June 1993.
John Scheid and Steven Holtsberg. Ina Jo specification language reference manual. Technical Report TM-6021/001/06, Paramax Systems Corporation, A Unisys Company, June 1992.
J.M. Spivey. Introducing Z: a Specification Language and its Formal Semantics. Cambridge University Press, 1988.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Wing, J.M. (1995). Teaching mathematics to software engineers. In: Alagar, V.S., Nivat, M. (eds) Algebraic Methodology and Software Technology. AMAST 1995. Lecture Notes in Computer Science, vol 936. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60043-4_44
Download citation
DOI: https://doi.org/10.1007/3-540-60043-4_44
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60043-5
Online ISBN: 978-3-540-49410-2
eBook Packages: Springer Book Archive