MIT

Reading B (due Mon Feb 28)

PDFs of the readings can be downloaded from a private website to which students have access. Please note the submission instructions.

  1. Brian Cantwell Smith. The Limits of Correctness. ACM SIGCAS Computers and Society. NY: ACM Press, 1985.

  2. Anthony Hall (Praxis Systems). Seven Myths of Formal Methods. IEEE Software, 7(5): 11-19, Sept. 1990.

  3. Michael Jackson. Formal Methods and Traditional Engineering. Journal of Systems and Software. Special issue on Formal Methods Technology Transfer. Volume 40, Number 3, pages 191-194, March 1998.

  4. C. A. Hoare. Essays in Computing Science: Programming is an Engineering Profession. Chapter 18. C. B. Jones (editor). Upper Saddle River, NJ.: Prentice-Hall, 1989.
    Website: http://portal.acm.org/citation.cfm?id=63445

  5. John Rushby. Calculating with Requirements. 3rd IEEE International Syumposium on Requirements Engineering. Annapolis, MD, January, 1997. IEEE Computer Socicety Press, pp 144-146.

  6. Frederick P. Brooks, Jr.. The Mythical Man Month. Reading, MA: Addison-Wesley, 1995.

  7. Kent Beck. Extreme Programming Explained: Embrace Change. Addison-Wesley, 2000. ISBN: 0-201-61641-6
    Website: http://www.awprofessional.com/titles/0-201-61641-6

  8. Matt Stephens and Doug Rosenberg. The Case Against XP. Apress, 2003. ISBN 1-5905-9096-1
    Website: http://www.apress.com/book/bookDisplay.html?bID=150


Study Questions B

Be concise, clear, and thoughtful; a short paragraph should usually suffice. Tell us what you really think. There is more than one right answer (but also more than one wrong answer).

  1. Brian Cantwell Smith ends the first section with this bold statement:
    Just because a program is "proven correct", in
    other words, you cannot be sure that it will do
    what you intend.
    
    Choose one of the 4 points Smith introduces in the following section (complexity, human interaction, levels of failure, correctness and intention) and discuss how it can be used to argue both against and in favor of the use of incomplete/partial models.

  2. Choose one or two of Anthony Hall's 7 points and discuss how your own experiences (not just what you have been taught) support or diverge from his conclusions.

  3. What does Michael Jackson means when he says
    Specialisation is the inevitable precondition and accompaniment of
    this evolution of successful designs.
    
    at the very bottom of the 2nd page? Relate this point to his overall argument.

  4. Hoare compares programmers to craftsmen, high priests, and eventually engineers. How do you think he would compare them to scientists?

  5. What is John Rushby advocating?

  6. Reconcile the following statments made by Fred Brooks:
    The purpose of a programming system is to make a computer easy to
    use. (page 42)
    
    Simplicity is not enough. (page 44)
    
    the conceptual integrity of a system determines its ease of use. (page
    46)
    
    discipline is good [for] art ... "Form is Liberating" (page 46-47)
    
    The discussion begun on page 254 may help you do so, or you may find it to be merely redundant of his claims without elucidating them.

  7. Which of Beck's points do you find the most suprising? Are there additional parts of a good software engineering process that he seems to be missing?

  8. Which of Rosenberg's arguments do you find the most compelling? Which is the least compelling?

  9. Choose two opposing authors and relate their arguments. All of these authors are intelligent, educated people; take both sides of the argument seriously.