CS121:  Software Development

Exam 1

Fall 2003

 

 

 

This is an open book, open note, un-timed exam.  You may not discuss the exam with anyone other than me.  The exam is due in class on Tuesday, October 14, 2003. 

 

You should prepare your solution using Word or Latex.  You may draw diagrams by hand.  Your solution will be judged for clarity, conciseness, completeness, and correctness.  Be sure to check your solution for spelling and grammar.

 

 

 

 

Part I (50 points):  Write a brief essay (roughly one page) on each of the following topics. 

 

  1. (15 points)  Is software development hard?  Why or why not.

 

  1. (15 points) Describe the major processes of software development.  (Note:  I am asking for a description, not an enumeration.)  What sort of artifacts should be produced in each of these processes?

 

  1. (20 points) Compare and contrast the waterfall and spiral life cycle models.  Be sure to describe the models and discuss their relative advantages and weaknesses.

 

 

 

 

Part II (50 points): 

Download the game Academic Onslaught, which was written by students last semester.  For this exam, you’ll go through the initial stages of the re-developing this game.  (Note:  you are not allowed to consult the authors of the game nor any of their game-related documents.)

Identify as many use cases as you can for this game. 

    1. Identify as many use cases as you can for this game.
    2. Prioritize the use cases and decide which are essential to the core game.
    3. Elaborate these essential use cases.  (Conciseness is very important here.  The objective is quality not quantity.)
    4. Construct a domain model for the core game.  Use UML to describe your domain classes and the (important) associations.
    5. Using your knowledge of POP, construct a high-level design for the game.  Use UML to describe the POP classes you’ll use and their relationship.  Relate these POP classes to domain classes from the previous section.  (You should document your design, not POP’s.  For example, I don’t need to see the document/view architecture.)
    6. Imagine your only experience with POP is playing its games.  From this perspective identify the major risks you see for the implementation of the core game.   For each risk, state what steps you could use to resolve the risk and a backup plan in case the risk cannot be resolved. 
    7. Based on your knowledge of POP, revaluate the risks in the last section.
    8. Describe how you would test your game for correctness.
    9. (Extra credit: 10 points)  Build a prototype of the core game.