Reading E (due Wed May 4)
The topic for this last set of readings is code correctness and the nature of bugs. Your readings include a classic lecture by Dijkstra (EWD303) in which he argued the futility of testing, as well as some answers he gave to questions from a software engineering class at UT Austin. The paper by Martyn Thomas also comes from the formal methods culture -- Thomas was the founder of Praxis Critical Systems, a leading formal methods company -- but takes a perspective based more in engineering than mathematics. The paper by Michael Jackson illustrates the futility of incremental debugging in contrast not to verification, but to a programming method (called JSP) in which the program mirrors the structure of the data it processes. You'll see in it the structure diagram notation discussed in class this week. The 'Cathedral and the Bazaar' is a much-cited paper that makes the case for the open -source model, with an emphasis on incremental development and manual code review; it includes a discussion of the claim that 'all bugs are shallow'.
PDFs of the readings can be downloaded from a private website to which students have access. Please recall the somewhat entrancing submission instructions.
- Eric Steven Raymond. The Cathedral and the Bazaar.
O'Reilly Publishing. 1997-2001. ISBN: 0-596-00108-8.
website: http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/, http://www.firstmonday.org/issues/issue3_3/raymond/ - Martyn Thomas. A View from the Stern. Safety Critical Systems Club newsletter. The Centre for Software Reliability at Newcastle University. January, 2005.
- Michael
Jackson. "Getting it Wrong - A Cautionary Tale". John R. Cameron,
editor. JSP and JSD: The Jackson Approach to Software
Development. Washington: IEEE
Computer Society Press, 1989. ISBN:0-8186-8858-0
Website: http://portal.acm.org/citation.cfm?id=77053&dl=ACM&coll=GUIDE - E. W. Dijkstra. On the Reliability of Programs (EWD 303).
website: http://www.cs.utexas.edu/users/EWD/transcriptions/EWD03xx/EWD303.html - E. W. Dijkstra. Student Questions.
website: http://www.cs.utexas.edu/~almstrum/cs373/general/EWD/dijkstra-questions7-fa00.html
E. W. Dijkstra. Answers to Student Questions: EWD 1305.
Study Questions E
Be concise, clear, and thoughtful; a paragraph or two should suffice. Insight will be rewarded. Contention is encouraged.
- What is meant by Raymond's claim that all bugs shallow? Do you think this is a good philosophy?
- Contrast Thomas's view on testing with Raymond's view.
- What is the moral of this story?
- Do you believe the P^N back-of-the-envelope calculation of correctness?
- Give your reactions to some of Dijkstra's controversial responses.