COMP 303 (Fall 2005) Project Deliverable One
Due Date: Thursday September 22, 2005, 11:59 AM.
Goal To implement the statistics module. This module of the
game is used to store player and game statistics. We are interested in
storing information which can be later used to compute interesting
facts about each player. For each hand played and for each player who
took part in the hand, store the player id, amount bet and the result
of the hand for each player. The statistics module is to be used
by the dealer module.
An interface has been designed for the statistics module. Implement
the functionality for this interface.
In a zip file, submit:
- Set up a new Java project in Eclipse.
- Import IStats.java in your project.
- Generate the JavaDoc as seen in class. Remember:
right-click on a project and export as Javadoc. In the box "Extra
Javadoc options..." type -tag precondition:cm:"Precondition:" -tag
- Study the documentation of IStats.
- Design a solution for your implementation of IStats.
Document your design with a class diagram.
- Implement your design. Your implementation should include a class comp303.Stats that implements this interface. Do not modify
IStats. We will test your class by linking it to a JUnit
- Write your own JUnit Test Case for testing IStats. Make
sure to test the class as thoroughly as possible.
- Your class diagram
- All your code, including your test cases.
- A jar file will all your binaries
- A readme.txt file with any specific instruction you need to add.
- A one-paragraph comment of the design of the IStats interface.
Design your solution so that it is possible to store statistics in two
different formats (e.g., comma-separated text and XML). How can you
do this and still respect the IStats interface?
Tools and Concepts
You are expected to use the following tools in developing this
- Programming language mechanisms (Interfaces and Exception Handling).
It is important for the successful completion of a large software
system that careful consideration be given to basic class
design. Using an Object-Oriented Language brings various advanced
programming features with it. It is your duty, as the designer, to put
these features to the best possible use. Concepts like encapsulation,
inheritance etc should be used whenever they make sense. Good
exception handling is the key to making a robust application. All possible exceptions should be dealt with in an appropriate manner.
- UML. You are expected to spend some time designing your
system. Once you have come up with the design of this module you are
required to create UML diagrams of all the important classes involved
and how they interact. To create your UML diagram you can use any UML
editor but we suggest using Violet. See the resources section for useful links.
- Design By Contract (DBC)
You will be evaluated on how closely you have followed the guidelines
provided to you in this document. The implementation of the stats
module will be checked and your JUnit tests will be evaluated based on
test coverage. Further unit testing will be applied to check for