On teaching software verification and validation

  • Terry Shepard
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 895)


A graduate course on software verification and validation (V&V) that has been given three times is described. There is enough material to justify multiple graduate courses in the area covered by the course. As examples, distinct courses at the graduate level could be given on each of the following four topics: inspection and review techniques; approaches to testing; formal methods of verification; and techniques for ensuring that software is trustworthy (more reliable than can be measured). This makes it challenging to decide what to include in a single course. Justifications are given for some of the choices made. Choices of material for undergraduate curricula are even more difficult to make. Some suggestions are offered in this area. Experience with courses on V&V is relatively thin, and the basis for teaching much of the material is rapidly evolving, so stable widely used curricula are still some time away.


Software Reliability Formal Verification Graduate Level Inspection Process Undergraduate Curriculum 
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]
    Glen W. Russell, “Experience with Inspection in Ultralarge-Scale Developments”, IEEE Software, January 1991, pp. 25–31Google Scholar
  2. [2]
    M.E. Fagan “Design and Code Inspections to Reduce Errors in Program Development”, IBM Systems Journal, March 1976, vol.15, no.3, pp. 105–211Google Scholar
  3. [3]
    BNR Network Products Group Quality Assurance, Code Inspections: A self study course on how to do them, Videotape VTDS205 (74 min) plus overheads, Bell Northern Research, Ottawa, Canada, Feb. 93Google Scholar
  4. [4]
    Richard Linger, Harlan Mills and B.I. Witt, “Structured Programming”, Addison Wesley, 1979Google Scholar
  5. [5]
    Richard Selby, Victor Basili and F. Terry Baker, “Cleanroom software development: an empirical evaluation”, IEEE TSE, Sept, 1987Google Scholar
  6. [6]
    Harlan Mills, Michael Dyer & Richard Linger, “Cleanroom Software Engineering”, IEEE Software, Sept 87, pp. 19–25Google Scholar
  7. [7]
    Michael Dyer, “The Cleanroom approach to Quality Software Development”, Wiley Series in Software Engineering Practice, John Wiley & Sons Ltd., 1992Google Scholar
  8. [8]
    Linger, Richard C., “Cleanroom Process Model”, IEEE Software, March 94, pp. 50–58Google Scholar
  9. [9]
    IBM Cleanroom Software Technology Centre, “Cleanroom Software Engineering for Zero-Defect Software”, IBM, May 31, 1992 (Overheads from a workshop sponsored by the National Science Foundation, held at the Rochester Institute of Technology, May 31–June 4, 1992)Google Scholar
  10. [10]
    P. Allen Currit, Michael Dyer, Harlan Mills, “Certifiying the Reliablility of Software”, IEEE TSE Jan 1986, pp. 3–11; Correction TSE Mar 89 p362Google Scholar
  11. [11]
    Boris Beizer, Software Testing Techniques, van Nostrand Reinhold, 1983, 2nd Edition, 1990Google Scholar
  12. [12]
    R.W. Butler and G.B. Finelli, The Infeasibility of Quantifying the Reliability of Life-Critical Real-Time Software, IEEE TSE 19(1) pp. 3–12 (Jan 93)Google Scholar
  13. [13]
    Hoffman, D., “A CASE Study in Module Testing”, 1989 Conference on Software Maintenance, October 1989, Miami, FloridaGoogle Scholar
  14. [14]
    Dan Hoffman and Paul Strooper, Fundamentals of Software Design and Verification, textbook in preparation, University of Victoria, Victoria, Canada.Google Scholar
  15. [15]
    John D. Musa, Anthony Iannino, Kazuhira Okumoto, “Software Reliability: Measurement, Prediction, Application” McGraw-Hill, 1990 (Professional Edition)Google Scholar
  16. [16]
    J.D. Musa et al, “Software Reliability: Measurement, Prediction, Application”, McGraw-Hill, 1987 (College Edition)Google Scholar
  17. [17]
    Woit, Denise, “Operational Profile Specification, Test Case Generation, and Reliability Estimation for Modules”, Ph.D. Thesis, Queen's University, January 1994.Google Scholar
  18. [18]
    Course Outline, WCSE 475, “Software Verification and Validation”, US Air Force Institute of Technology, 1992Google Scholar
  19. [19]
    James H. Fetzer, “Program Verification: The Very Idea”, CACM, Sept 1988; comments CACM Apr 89 p. 420Google Scholar
  20. [20]
    Stephane Cadorette, “A Framework for Software Quality Definition, Allocation and Control”, M.Eng. Thesis, Royal Military College of Canada, May 1994Google Scholar
  21. [21]
    Paul Joannou et al, “Standard for Software Engineering of Safety Critical Software”, Ontario Hydro, Toronto, Ontario, Canada, 1990Google Scholar
  22. [22]
    Sentot Kromodimoeljo, Bill Pase, Mark Saaltink, Dan Craigen and Irwin Meisels, “A Tutorial on Eves”, Odyssey Research Associates, Sept. 30, 1992Google Scholar
  23. [23]
    Anna Malton and Terry Shepard, “A Beginner's Manual for Eves”, Royal Military College of Canada EE Technical Report 93/1, revised Feb. 94Google Scholar
  24. [24]
    David Andrews, A Guide to Eves Proving, Royal Military College of Canada EE Technical Report 94/4, Revised May 12, 94Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • Terry Shepard
    • 1
  1. 1.Department of Electrical and Computer EngineeringRoyal Military College of CanadaKingstonCanada

Personalised recommendations