Formal methods and the engineering paradigm

  • Michael J. Lutz
Session 4: Formal Methods and Engineering Instruction
Part of the Lecture Notes in Computer Science book series (LNCS, volume 640)


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.


Software Development Software Engineering Formal Method Engineering Method Engineering Discipline 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Thomas Allen. Distinguishing engineers from scientists. In Ralph Katz, editor, Managing Professionals in Innovative Organizations. Ballinger Publishing, Cambridge, MA, 1988.Google Scholar
  2. 2.
    Mary-Frances Blade. Creativity in engineering. In Myron A. Coler, editor, Essays on Creativity in the Sciences. New York University Press, New York, 1963.Google Scholar
  3. 3.
    Nathaniel S. Borenstein. Programming as if People Mattered: Friendly Programs, Software Engineering and Other Noble Delusions. Princeton University Press, Princeton, New Jersey, 1991.Google Scholar
  4. 4.
    Edsger Dijkstra. A Discipline of Programming. Prentice-Hall, Englewood Cliffs, NJ, 1976.Google Scholar
  5. 5.
    Michael Dyer. The Cleanroom Approach to Quality Software Development. John Wiley & Sons, New York, 1992.Google Scholar
  6. 6.
    B. Fields and M. Elvang-Goransson. A VDM case style in mural. IEEE Transctions on Software Engineering, 18(4):265–278, April 1992.Google Scholar
  7. 7.
    Samuel C. Florman. The Existential Pleasures of Engineering. St. Martin's Press, New York, 1976.Google Scholar
  8. 8.
    Joseph Goguen. Parameterized programming. IEEE Transactions on Software Engineering, 10(5):528–543, September 1984.Google Scholar
  9. 9.
    John Guttag and James Horning. An introduction to LCL, a Larch/C interface language. Technical Report 74, Digital Systems Research Center, July 1991.Google Scholar
  10. 10.
    John Guttag, James Horning, and Andres Modet. Report on the Larch shared language. Technical Report 58, Digital Systems Research Center, April 1990.Google Scholar
  11. 11.
    Anthony Hall. Seven myths of formal methods. IEEE Software, 7(5):11–20, September 1990.Google Scholar
  12. 12.
    Watts Humphrey. Managing the Software Process. Addison-Wesley, Reading, MA, 1989.Google Scholar
  13. 13.
    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.Google Scholar
  14. 14.
    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.Google Scholar
  15. 15.
    Cliff B. Jones. Systematic Software Development Using VDM. Prentice Hall, Englewood Cliffs, N.J., 1990.Google Scholar
  16. 16.
    Billy Vaughn Koen. Definition of the Engineering Method. American Society for Engineering Education, Washington, D.C., 1985.Google Scholar
  17. 17.
    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.Google Scholar
  18. 18.
    Barbara Liskov and John Guttag. Abstraction and Specification in Program Design. MIT Press, Cambridge, 1986.Google Scholar
  19. 19.
    Henry Petroski. To Engineer Is Human: The Role of Failure in Successful Design. St. Martin's Press, New York, 1985.Google Scholar
  20. 20.
    Ben Potter, Jane Sinclair, and David Till. An Introduction to Formal Specification and Z. Prentice-Hall, Englewood Cliffs, NJ, 1991.Google Scholar
  21. 21.
    Mary Shaw. Prospects for an engineering discipline of software. IEEE Software, 7(6):15–24, November 1990.Google Scholar
  22. 22.
    J. M. Spivey. The Z Notation: A Reference Manual. Prentice-Hall, Englewood Cliffs, N.J., 1989.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Michael J. Lutz
    • 1
  1. 1.Department of Computer ScienceRochester Institute of TechnologyRochester

Personalised recommendations