CSC 508
Software Engineering
Fall 2004

Assorted References and Assignment information






Don't count on this as anything near complete. The course content is dynamic and will change on the fly.

Something you should do at the beginning of the class in order to ground your readings and discussion:

Obtain a software requirements document (or problem description) and become familiar with it. The source can be industry, your coursework, an example from a textbook, other places. You may use this document to check ideas against and to use as an example when needed.


*** READING FOR THE FIRST CLASS: In addition to Petroski's book, please read the Mary Shaw paper carefully. It is simple and to the point. It gives a general overview of the nature and direction of software engineering research. The class will write papers and follow these guidelines as we work to understand, criticize, and enhance the research and practice in the field.

NOTE: Some sample criteria for evaluation of requirements documents can be found here for your use.

My own suggestions for reading and analyzing research papers can be reviewed here.

Slides from the TCAS (Requirements State Machines Language) documentation effort are given here, more advice on how to analyze (or write) a good paper. Some suggestions for the paper proposal .


____________________________________________________________________________________________________________________

Required papers to read early in the class:

Jackson sections

Brooks, "No Silver Bullet: Essence and Accident in Software Engineering," in (among other places) Brooks, The Mythical Man-Month, Anniversary Edition, Addison-Wesley, 1995.

Parnas, "A Rational Design Process: How and Why to Fake It," 12 IEEE TSE, Feb, 1986.

Beizer, "Software IS Different," (Address at Quality Week Conference, 1996), San Francisco. (handout)

Farrell-Vinay, "The Process of Incompetence," Preoceedings of the IASTED International Conference Software Engineering and Applications, Aug, 2001, Anaheim, CA.

Leveson, Turner, "An Investigation of the Therac-25 Accidents," IEEE Computer, Vol. 26 No. 7, July, 1993.

Here are the slides from Catherine's presentation on the Therac.

Heninger on requirements specification in 1980!

Required readings to come:

From the Michael Jackson text, many sections will be assigned.

Safety-critical formal methods for requirements and analysis (Leveson Safety Group): RSML paper . Please read for Week 7.

Reporters for the week are to take notes, abstract out the important lessons we've learned (or missed) and present them in brief format to the class in the following week. Do not summarize except to the point that we'll recall what the major points were. The high level overview is what is really needed. We'd like to know about our progress (or lack of it).

You are to prepare a short presentation of the requirements document you have obtained for class. You will make a short summary of the document (what is the nature of the project) and evaluate a section of it (chosen by you) for its various qualities. A good reference to help you in this task is Karl Wiegers, "Software Requirements" chapter 14; Gause and Weinberg, "Exploring Requirements, Quality Before Design" chapters 23 and 24. More references we may cover:

Brooks, "No Silver Bullet," (Lots of places to find this one!) from his book: "The Mythical Man-Month," get the latest edition, it contains some updates to the article. (I would like to see you find the "reply" article by David Harel, entitled, "Biting the Silver Bullet" and let me know what you think.

Parnas, "Software Engineering Programs are Not Computer Science Programs" (this one can be found on the web only if you search by using the [proper] spelling: "programmes" in the title!), Nov/Dec IEEE Software, 1999.

Parnas, "A Rational Design Process, How and Why to Fake It," IEEE Transactions on Software Engineering, Feb 1986.

Beizer, "Software IS Different," 9th International Quality Week, San Francisco, May 1996 (Software Research Institute). I will put a copy of this one outside my office for you to copy. Please return the copy and keep it in good condition. Let me know if you find a web source for this one :-)

Hamlet, "Are We Testing for True Reliability?" IEEE Software, July, 92.

Andriole, Freeman, "Software Systems Engineering, the case for a new discipline." from Software Eng. J., May, 93.

Brooks, "No Silver Bullet, Essence and Accidents in Software Engineering," 87.

Parnas, Clements, "A Rational Design Process, How and Why to Fake It," IEEE Transactions on Software Engineering, Feb 86.

Faulk, "Software Requirements: A Tutorial," handout from Software Engineering, IEEE Computer Society.

Wing, "A Specifier's Introduction to Formal Methods," IEEEE Computer, Sept, 90.

Hall, "Seven Myths of Formal Methods," IEEE Software, Sept, 90.


Updated: Sept 2004