Designing and Documenting Part of a Design
An individual assignment
CS 420 - Spring 2005 - Ms. Katz

Due: beginning of class, Monday, February 28th

Goals
 
- to consider part of a design in more detail on your own
- to document that design using UML
- to use CRC cards to describe class responsibilities and collaborations
- to consider applying a design pattern

Overview

We've discussed the Zigity game in class and had the attached partial design as one of our initial versions. You are not bound to keeping that design. For this assignment, I'd like you to consider some portion of the Zigity design in more detail. Do not design the entire system. Design a part of it in more detail. You'll turn in paper for this assignment. The pictures and answers may be handwritten as long as they are legible.

Details

Choose a piece of the Zigity game to design. It should be a portion where you can show that you understand how to use UML class and collaboration diagrams. It should also be a part where you would consider applying one of the design patterns we've discussed.

  1. In a paragraph, specify which part you are designing.
  2. In a paragraph or two, describe which design pattern you used or considered for your piece and why. Let me see that you considered the options. You don't have to actually use a design pattern, but be sure to show that you understand the options for the part you are designing. If you disregard patterns, you will lose points on the assignment.
  3. Write a CRC card for each class in the portion of the design you are doing. This should be written on regular paper rather than a card. The noted responsibilities are specific but not member functions.
  4. Draw a UML collaboration diagram showing the relationships among the parts you are including in your portion of the design.
  5. Draw a UML class diagram for the classes you are including in your portion of the design. List the public member functions you consider essential. List instance variables to give an idea of the data the class maintains.

Collaboration

This assignment is to be completed on your own. It is NOT a group assignment. I've tried to make it focussed enough to make it straightforward.