COMP 303 Software Development - Fall 2011: Milestone 1


Due: 18:00, Wednesday, October 12, 2011

Requirements

  1. Import the project stub, reformat it in your agreed upon group programming style, and check it into your group svn directory.
  2. Now, design and implement code to provide a working game. You should include the following basic features:
  3. All code must be well documented with javadoc.
  4. You must incorporate (extensive) unit testing into your project. All important game behaviour and all significant methods should have associated unit tests. All tests must be linked from a class named Milestone1Test.java to make it easy to run all of them as a single suite.

What to hand in

You should hand in one archive-file and one document per group. Recall we are using moodle to handle the submissions.
  1. An exported project in a zip or tar.gz file. This must include all files necessary to build and run your project, as well as all javadoc output.
  2. A 1--2 page document describing your design. This should include components:
    1. a Class diagram showing the major classes and their relationships.
    2. a sequence diagram illustrating control flow when a user selects a pair of matching, exposed tiles and these tiles are removed from game-play without terminating the game.
    3. a brief description of the specific contributions of each group member.

Evaluation

This milestone is worth 30% of the project component of your course grade. Since it is also the foundation on which you will build in the rest of the semester, it is important that this milestone is done very well and you establish equitable and functional group dynamics. Grading will take the following into account:
  1. Code is well documented, clear and uniformly structured.
  2. Code provides the functionality listed above.
  3. Code is correct and does not exhibit bugs or other failures. Note we may apply tests of our devising (ie outside of your unit tests).
  4. Code is well-designed following the principles discussed in class.
  5. Unit tests provide extensive and relevant coverage of potential bugs and problems.
  6. The document supplied includes all components, correctly and cleanly expressed.
Note that all team members are expected to contribute in some fashion to all milestones. Your contribution to each milestone may be somewhat uneven, but your final project grade will be scaled according to your overall contribution throughout all the milestones.