Abstract
The snail's pace of formal methods adoption disappoints those who believe such techniques are important for software engineering. My thesis is that the failure of formal methods to have much impact is a consequence of a general misunderstanding of the engineering paradigm. Most formal methods proponents have backgrounds in science or mathematics, where the rules for adoption of a new system are clear cut and unambiguous. The engineering method, however, is grounded in the use and application of heuristics, several of which relate to the application of science. This paper discusses the role of formal methods in the context of the engineering method. Several approaches to increase the use of formal methods are proposed based on this analysis.
This article was processed using the IIEX macro package with LLNCS style
Preview
Unable to display preview. Download preview PDF.
References
Thomas Allen. Distinguishing engineers from scientists. In Ralph Katz, editor, Managing Professionals in Innovative Organizations. Ballinger Publishing, Cambridge, MA, 1988.
Mary-Frances Blade. Creativity in engineering. In Myron A. Coler, editor, Essays on Creativity in the Sciences. New York University Press, New York, 1963.
Nathaniel S. Borenstein. Programming as if People Mattered: Friendly Programs, Software Engineering and Other Noble Delusions. Princeton University Press, Princeton, New Jersey, 1991.
Edsger Dijkstra. A Discipline of Programming. Prentice-Hall, Englewood Cliffs, NJ, 1976.
Michael Dyer. The Cleanroom Approach to Quality Software Development. John Wiley & Sons, New York, 1992.
B. Fields and M. Elvang-Goransson. A VDM case style in mural. IEEE Transctions on Software Engineering, 18(4):265–278, April 1992.
Samuel C. Florman. The Existential Pleasures of Engineering. St. Martin's Press, New York, 1976.
Joseph Goguen. Parameterized programming. IEEE Transactions on Software Engineering, 10(5):528–543, September 1984.
John Guttag and James Horning. An introduction to LCL, a Larch/C interface language. Technical Report 74, Digital Systems Research Center, July 1991.
John Guttag, James Horning, and Andres Modet. Report on the Larch shared language. Technical Report 58, Digital Systems Research Center, April 1990.
Anthony Hall. Seven myths of formal methods. IEEE Software, 7(5):11–20, September 1990.
Watts Humphrey. Managing the Software Process. Addison-Wesley, Reading, MA, 1989.
Watts Humphrey, David Kitson, and Julia Gale. A comparison of U.S. and Japanese software process maturity. In Proceedings of the 13th International Conference on Software Engineering, pages 38–51, Austin, TX, May 1991.
Paul Johnson. Experience of formal development in CICS. In John A. McDermid, editor, The Theory and Practice of Refinement, pages 59–78. Butterworths, London, 1989.
Cliff B. Jones. Systematic Software Development Using VDM. Prentice Hall, Englewood Cliffs, N.J., 1990.
Billy Vaughn Koen. Definition of the Engineering Method. American Society for Engineering Education, Washington, D.C., 1985.
Burton Leathers. After the divorce: Reflections on using Eiffel at Cognos. In Symposium on Object-Oriented Programming Emphasizing Practical Applications, pages 66–80. Marist College, September 1990.
Barbara Liskov and John Guttag. Abstraction and Specification in Program Design. MIT Press, Cambridge, 1986.
Henry Petroski. To Engineer Is Human: The Role of Failure in Successful Design. St. Martin's Press, New York, 1985.
Ben Potter, Jane Sinclair, and David Till. An Introduction to Formal Specification and Z. Prentice-Hall, Englewood Cliffs, NJ, 1991.
Mary Shaw. Prospects for an engineering discipline of software. IEEE Software, 7(6):15–24, November 1990.
J. M. Spivey. The Z Notation: A Reference Manual. Prentice-Hall, Englewood Cliffs, N.J., 1989.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lutz, M.J. (1992). Formal methods and the engineering paradigm. In: Sledge, C. (eds) Software Engineering Education. SEI 1992. Lecture Notes in Computer Science, vol 640. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-55963-9_44
Download citation
DOI: https://doi.org/10.1007/3-540-55963-9_44
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55963-4
Online ISBN: 978-3-540-47330-5
eBook Packages: Springer Book Archive