CS 371 Homework #1: Requirements Analysis: Use Cases

Due: Friday February 3 in class.

In this assignment you will assess the requirements for computerizing the project described on the course web site. You may work alone or in groups of 2-3 persons for this assignment. A typical "A"-grade for this assignment will be given for a readable document of several pages that includes interesting observations, not filler material that rehashes things we've said in class. You do not have a lot of time to work on this assignment, so manage your time carefully and prioritize such that you hit the most important parts first, in the limited time you have. We will refine things as we go.

You should do the following:

  1. Read the Project page, and any Related links on that page.
  2. Write a system overview that describes application functionality. What does the computer application look like? What does the system *have* to be able to do in order for it to be a success?
  3. Develop a model of the application domain. How detailed must it be?
  4. Write a short schedule for how we ought to go about achieving the functionality you describe in (2) above. Identify useful subsets of functionality as milestones we can work toward during the course of the semester.
  5. For each section and subsection of the model, list any likely "classes" and "tasks" described in that section.
  6. For each "task" that you identify, write a preliminary use case description.
  7. Draw a use case diagram that summarizes the actors and use cases. What tasks (if any) involve multiple actors?
  8. Draw a class diagram that summarizes what you know about classes. Look in use case descriptions for more classes. Identify as many associations (relationships) between classes as you can, and for each association that is not inheritance or aggregation, give a short definition or cite where in the rules it is defined.
  9. Turn in your work from the preceding steps as a single unified document, in HTML with .gif or .jpg figures. You may send me an attached or uuencoded "tar" or "zip" file.