CS411 Software Engineering

Boston University

Fall 2009

 

Weekly Assignment -- Due Monday, November 9, 2009 at 6pm

 

Readings:

 

1) Brooks, Chapter 12 (Sharp Tools) and Chapter 13 (The Whole and the Parts)

 

2) McConnell, Chapters 21-24, 38.

 

 

Exercises:

 

(1) (20 pts): Certain human characteristics make it necessary to follow certain design principles in order to produce certain benefits. Choose two design principles presented in class ("hide irrelevant detail", etc.), and briefly list the benefits each principle produces, and why.

 

(2) (20 pts): The evolutionary prototyping approach frequently leads to product development using code and fix. In particular, design considerations are often badly neglected when evolutionary prototyping is used. Briefly explain the difference between the evolutionary and throw-away approaches. From the perspective of a tech lead on a project using the evolutionary prototyping approach, briefly explain how you would make certain that design is not neglected, and that several years henceforth, the programmers enhancing your product will be able to easily understand the design behind the code. (Hint: your explanation should involve a triangle).

 

(3) (60 pts): Complete lab exercises 8 and 9. Enter and run all the code. Provide answers to the questions. Include only the answers to the questions in the material you hand in. Do not include printouts of the code. Note that your lab 3-ring binder should contain the lab handouts and any material you generate doing these exercises. For these two exercises, you may not share code or answers with your lab partner.

 

Notes:

 

"Briefly" means "120 words or less".

 

As you are required to do for each of the remaining classes, provide a personal status report for Project II. Print it on a separate sheet of paper, and do not attach it to your homework.

 

For the benefit of the grader, please type and print your assignment.