CSE 403, Spring 2011
Readings

Each reading response must be less than 1 page. Sometimes, they are a summary, and sometimes something else.

They are generally due before the relevant lecture, to help you make the most out of the lecture.

Reading 1
No response required
Reading 2
No response required
Reading 3 (Catalyst turn-in)
Parnas, D. On the Criteria To Be Used in Decomposing Systems into Modules

Parnas's paper is awfully old. Are his ideas still valid thirty years later? Choose two instances where Parnas's suggestions seem rather dated. For one of them, explain why his argument is no longer relevant. For the other, explain why his argument is still relevant, and give an updated retelling of that part of his story.

Reading 4 (Article discussion forum on Catalyst)

Cockburn, A. The interaction of social issues and software architecture
Spolsky, J. The Joel Test

There are two readings for this week, and you have a choice between four questions. After having read the two assigned papers, respond in at least one of the four conversation threads (each corresponds to one of the prompts below). Your response may respond to or comment on ideas that have already appeared in the thread, or it may be a completely new idea—the only requirement is that it must contribute usefully to the discussion.

  • As you begin working on your project, you are choosing (or have chosen) one or more software frameworks to build around. Give an example of a pattern that is important to your framework, and explain how it helps your project.
  • Joel Spolsky recommends “hallway usability tests,” where you use your peers to test your products. Can you think of examples where this would be a bad idea?
  • Another definition of a software pattern is “a named nugget of insight that conveys the essence of a proven solution to a recurring problem within a certain context amidst competing concerns.” Give an example of a software pattern you know of and a “competing concern” which would suggest not applying the pattern.
  • Describe a design decision you have made or seen (not necessarily for this course) in the social context as described in Cockburn’s paper. Try to use the same Intent-Context-Forces-Resolution format.
Reading 5 (Catalyst turn-in)

For this week's reading, read Henning's article on why API design matters, and the chapter on Design in Construction from McConnell's book. You can skim §5.3 (Design Building Blocks: Heuristics), but pay attention to the rest. Write a summary of either all the material, or some subset that you found particularly interesting.

Reading 10 (Catalyst turn-in)
Accidents in North American Mountaineering 2004, issue 57, pages 1-7

What on earth is a book about mountain-climbing accidents doing on the reading list of a software engineering class? Explain why this is directly relevant to the work you have done in CSE 403 and will do in the future. Briefly (taking up less space than you spent explaining its relevance), discuss a way in which the mountain-climbing domain is different than software engineering, so that the article is not relevant or even misleading.