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

Squeak Assassins Milestone 4 Case Study

Milestone 4 required us to extend our map to include all the buildings on campus, as well as support three levels of zoom (including the original level). There are approximately 190 or so buildings on campus, and so this milestone was obviously going to require a lot of data.

Approaching the problem
Given the vast amount of data we would need to include, on several occasions our group discussed not including all of the buildings! There was a 15% penalty for not including every building, which meant that'd you earn the same grade if you only had one building as you would if you were only missing one! In the end, we did include all the buildings, but this meant that we had to parse the data on the campus map, which was a significant amount of work. We used their campus map as a large image in our project, and took the data from their HTML page to determine the coordinates of all the buildings.

How'd it work?
In a nutshell, GTCampusMap – a subclass of CampusMap – retrieved data from GTCampusData, which held a bunch of buildings and the forms containing images of the entire map. Control would be handed over to CampusMap, which would open a window and draw the images to screen. MapClickLayer would handle any clicking the user might do on the map, and handle it appropriately. InfoWindow, when called, would either create a new window or replace data in the old window, as appropriate.

How'd the design hold up?
This milestone was obviously the first test of how well our design from milestone 3 would hold up. However, there were some changes in the end, but overall, the design held up fairly well.

The program in action:
Uploaded Image: prj4_pic.jpg

The code:
SqueakPrj4.pr

UML for Milestone 4:
Uploaded Image: sqm4uml.gif

Other notes and random things:

Links to this Page