View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Spring 2005 M3: Design Everything

(Group, Due 3/10)

It's now time to plan, analyze, and design your system. This milestone is much more open ended than M1 and M2. You may design your classes and messages however you desire to meet the basic requirements of the system. Just keep in mind good Smalltalk style for message names and overall design principles. Your design is worth half your grade for the milestone, so don't hack and don't shortchange your analysis. If the requirements do not specifically state something, you are free to implement and design however you want. This is a design class, we want to see what you come up with!


Questions on Spring 2005 Milestone 3


The goal of your application is to allow researchers and users to experiment with location-based services. Using either a desktop or PDA, users should be able to specify their location, view the location of their friends, and leave and read notes assigned to particular locations.

Subsequent Milestones
Look at milestones 4,5 and 6, which are your actual programming milestones. Along with the information in this milestone, you should then have enough information to design the entire system. Each milestone represents the LATEST time that functionality can be provided. At each milestone, we will only grade the functionality required to be present at that milestone. Basically you can view milestones as your latest acceptable delivery date. You may, of course, create the desired functionality earlier if it will help your project succeed.

"Demonstrating" your design to your TA
10% of your grade will depend on talking to your TA half-way through this milestone, getting feedback from them, and using that feedback to improve your design. Since you have 3 weeks for this milestone, "half-way" means sometime before 3/03. Note that you must have created enough of a preliminary design that your TA can actually give you constructive feedback.

Regression Testing
At each milestone we will quickly regression test your old code to ensure you have not broken anything. This is where SUnit can really help you. By having unit tests already coded, you just hit the run test button and verify that your test bar is still green. Whenever you find a "bug" in the system that was not caught by SUnit, you should add an SUnit test that would have caught it. That way, you can be sure that old bugs do not get reintroduced into your code base.

Note about CVS
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. I do recommend you look at using Collaboration Tools of some kind.


Teams must turn in a detailed group plan for each milestone THROUGH THE REST OF THE CLASS (i.e. through M6). This should include:

Each team will submit a joint document with cover page. The cover page should show the team name, the team members by name and gt# and their grading TA. It should also have the date submitted and the Milestone number clearly shown.

Obviously, the design will change over the following weeks, but we want to see that you've thought through everything UP FRONT.

Note: If you would like to see good examples of project plans, check out the Cases page to see what other groups in past semesters have done.


Links to this Page