Formal Methods in Software Design - Spring 2005

Suggested Readings

An enormous amount of material about formal methods is available on the Web. Below is a short list of readings that can supplement each week's discussions. Entries with an asterisk (*) are particularly recommended.

Week Beginning

Readings

21 Feb

* Mann, Why Software Is So Bad
* Lethbridge, Chap 3 - the Object Client Server Framework
* van Lamsweerde, Formal Specification: A Roadmap
Leveson, N. Medical Devices: the Therac-25, short version here
Demurjian, Chap 104, - Object Oriented Software Design
Lethbridge, Chap 1, Chap 2
Hall, Seven Myths of Formal Methods
Bowen & Hinchey, Seven More Myths of Formal Methods
Web site for Formal Methods -- links to many more resources

28 Feb

* Tucker and Noonan, Program Correctness
Hoare, An axiomatic basis for computer programming, Communications of the ACM 12(10):576-580.
Edsger W. Dijkstra, "Guarded commands, nondeterminacy and formal derivation of programs," Communications of the ACM 18(8):453-457.
Leino, Hoare-Style Program Verification I
Leino, Hoare-Style Program Verification II
Gordon, Specification and Verification I

7 March

* Amey, Yours faithfully: an everyday story of formality
* Poll, Kiniry, and Cok, Introduction to JML
Bowen and Hinchey, Chap 106 - Formal Methods
Butler, Introductory Notes on Specification with Z (tutorial)
Jackson, A Comparison of Modeling Notations: Alloy, UML, and Z
Gannon, Chap 107 - Verification and Validation 
Burdy et al., Overview of JML Tools
Meyer, B., Object Oriented Software Construction, Prentice-Hall (1997)

14 March

* UML Tutorials - Borland's Tutorial on this page is pretty good
OMG, Class Diagram Specifications (reference)
Bell, UML Class Diagrams (tutorial)
Bell, UML Activity Diagrams (tutorial)
Lethbridge Chap 4 - Developing Requirements
CETUS: More UML and OO design links

21 March
* Lethbridge Chap 5
* JML Reference Manual
28 March

Richters and Gargolla, OCL: Syntax, Semantics, and Tools
OMG, OCL Specifications (reference)
* Dwyer et al., OCL Basics
Dwyer et al., Advanced OCL Expressions
Dwyer et al., More OCL
Dwyer et al., Pre- Postconditions in OCL

4 April

* Leavens and Cheon, Design by Contract with JML
* Lethbridge Chap 9
Dwyer et al., Software Specifications

11 April
Lethbridge Chap 10
* cs333 lecture notes, Design by Contract with JML
18 April
Nimmer and Ernst, Static Verification of Dynamically Detected Program Invariants: Integrating Diakon and ESC/JAVA
25 April

Jacobs and Poll, Java Program Verification at Nijmegen: Developments and Perspective
Bruenesse and Poll, Verification of JML Specifications with Model Fields

2 May
Rodríguez et al., Extending Sequential Specification Techniques for Modular Specification and Verification of Multi-Threaded Programs.