CSE 403



Calendar Lectures Assignments Turn-in Projects Software Tools Resources Old exams


Syllabus Grading Academic Conduct Accommodations


Forum Wiki Email archives

CSE 403, Spring 2014

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 (Catalyst turn-in)
B. Boehm, A Spiral Model of Software Development and Enhancement (UW access)
K. Schwaber. SCRUM Development Process

Your reading response will contrast the spiral development model and the scrum development model. Working from information in the papers, state and justify two circumstances in which the spiral model would be superior and two circumstances in which the scrum model would be better.

Reading 2 (Catalyst turn-in)
S. Faulk. Software Requirements: a Tutorial
Perform the tutorials from Specifying Functional Requirements With Use Cases

After completing the use case tutorial, spend up to a half hour to sketch three use cases for your project proposal. Turn in responses to the following questions:

  • How did you decide what use cases to sketch?
  • How did you decide what actors to include?
  • Do your use cases differ from what is described in your project proposal? If so, what did you change and why?
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 6 (Catalyst turn-in)
Reflect on the two in-class activities. In what ways were the results unexpected: not the activities themselves, but the effectiveness of your strategies for solving the problems or for interacting with your teammates. How should you behave differently in the future?
Readings 7-9
There are no readings planned for this week, to give you time to work on your project.
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 the work you 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.