






Hotspots: Admin Pages | Turn-in Site |
Current Links: Case Final Project Summer 2007
Summer 2005 Milestone 2
Overview
In this milestone you will implement a basic fish tank with 2 fish. Fish can be fed, they grow, and complete the circle of life: fish die if they are fed too much, too little, or if they live to a ripe old age. This will give you experience with a bigger chunk of code. Additionally, it lets you try your hand at design with a relatively simple problem; you must go through the 2340 process of scenarios, CRC cards, and class diagrams for this milestone, and you must create some SUnit tests.
Additionally, you must submit a description of two more fishtank denizens of your own. Any kind of creatures or other objects are fine so long as they are at least as complicated as the required fish. Email your submission to the instructor to check whether it is okay; you will finalize your specification for Milestone 3.
Details
When a new fish tank is created it should have 2 baby fish in it.
There must be some way for a user to add a new food pellet to your tank.
Fish food pellets have the following behaviors:
- They drift gradually towards the bottom of the tank.
- If they reach the bottom of the tank then they disappear.
- If a fish eats them, then they disappear into the fish's gullet.
Your fish should have the following behaviors:
- If they are hungry, and there is food in the tank, then they swim towards it.
- They swim in a random direction, otherwise.
- If they bump into a food pellet then they eat it–whether they are hungry or not!
- Severely overfed fish die and float to the top of the tank.
- Severely starved fish die and float to the top of the tank.
- Moderately-fed fish grow through three life phases at a rate of one phase per minute.
- As fish move around, they should have some animation of at least two frames.
It must be possible to open multiple fish tanks in one Squeak image, so that serious fish enthusiasts can play with five tanks at once.
All other details are up to you WITHIN REASON. You can have your 2+-phase animation look however you like; you can have your life phases look however you like; you can have food pellets drift to the bottom at any speed.
Notes
Note about collaboration tools
There is no requirement that your team has to use CVS or any other version control system. Configuration control systems do make code exchange and work easier, though. I recommend you look at using Collaboration Tools of some kind.
Regression Testing
Milestones 4 and 5 will require that your previous functionality still works. By having your tests available in SUnit, you can quickly verify this: just hit the RUN button in an SUnit test runner. Don't be some of the many students who focus so hard on the new requirements that they forget to check that the old functionality is still present – it's a needless way to lose points.
Grading
- 10% scenarios
- should cover all major functions of the project from the user's point of view see About Scenarios
- 10% CRC cards
- please turn in photocopies of your cards, not the real cards
- reasonable names, understandable and clearly defined responsibilities, clear use of collaborators to move through cards
- 10% UML
- only a class diagram is required, but you are welcome to include any other diagrams that you feel help to clarify your design to your ta, or that you found helpful in the design process with your team-mates
- matches crc card analysis
- clearly communicates design (this includes the technical correctness of the diagram)
- 10% well documented & good style source code
- is your code readable by another person (your team-mates and ta)?
- you should have class comments (in the '?' section) as well as comments in your code
- do you follow smalltalk naming conventions?
- 0% quality of design
- just make it work for this milestone. Your TA's will comment, however–take their ideas to heart!
- 10% sunit tests
- these should cover the major computations in your code, just like the tests from Milestone 1. When in doubt, write more tests rather than fewer.
- 10% interface
- users can add more food pellets to the tank
- 10% fish appearance
- 2+-phase animation and growing older
- 10% fish activities
- eating, searching for food, growing older, passing on...
- 10% food pellet activities
- falling, disappearing at the bottom, ...
- 10% miscellania
- e.g., the tank draws correctly
Link to this Page