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.
- (15
points) Is software development
hard? Why or why not.
- (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?
- (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.
-
Identify as many use cases as you
can for this game.
- Prioritize
the use cases and decide which are essential to the core game.
- Elaborate
these essential use cases. (Conciseness is
very important here. The
objective is quality not quantity.)
- Construct
a domain model for the core game.
Use UML to describe your domain classes and the (important)
associations.
- 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.)
- 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.
- Based
on your knowledge of POP, revaluate the risks in the last section.
- Describe
how you would test your game for correctness.
- (Extra
credit: 10 points) Build a
prototype of the core game.