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

M2 Case Study

Knights Who Say 'Squeak'
Case Study for Milestone #2


For Milestone #2, our task is to make an interactive map of Georgia Tech campus. When the user clicks on a building on the map, a popup box appears showing the name of the building and a picture of that building. The popup box closes when the user clicks on the "X" button or when the user clicks on another building.

Design - UML Class Diagram

We designed Milestone #2 with the rest of the milestones in mind, hoping to reuse as much code as possible later down the road. MapScreen2D is a sub-class of ViewScreen. It'll be easy to add the 3D functionality while retaining the 2D capability. GTCampusMap is a sub-class of CampusMap. Milestone #7 will be a breeze if we do everything else correctly. In the best case, it's simply data-entry.

Uploaded Image: Milestone #2 - UML Class Diagram v1.gif

We made the UML Class Diagram the hard way. The classes were created with BOOST. Afterwards, the image for each of the individual classes were saved and inserted into Microsoft PowerPoint. The association, gen/spec lines were then drawn to connect the classes. This process is very time consuming, but the resulting UML Diagram looks nice and clean.

The problem with BOOST is that the software does not allow lines connecting 2 classes to go around a third class. It only creates a straight line to connect two different classes. This results in a diagram with classes being on top of the lines.

For subsequent milestones, argo was used to create UML Class Diagrams.

Code Re-use from Milestone #1

For this milestone, we could build on top of the code for Milestone #1. However, the group together decided that it will be easier to start over upon reading the project description for the rest of the milestones together. The planning for the transition to 3D world has begun...

Here's the re-designed Milestone #1 code:

The PopUp Window

We didn't find anything that exists in Squeak already that we could use to display the name and picture of the landmark, so we went ahead and wrote our own class - MapPopUpWindow. MapPopUpWindow uses SystemWindow to get the built-in Squeak window functionality. For fun, we also included a short description for the landmark and left a space underneath the picture that we can use to store address of buildings in a later milestone.

Uploaded Image: m2-popupwindow.gif

Get Ahead!

Since we have already thought about how to implement other milestones down the road, we started working on zoom in/out and move left/right/up/down features that will be required for Milestone #3 once we have completed all the requirements for Milestone #2.

If you get done with a milestone before it's due, don't slack off! Get started on the next milestone right away.

Milestone #2 Complete!

Everything in Milestone #2 worked as expected. Below is the final user interface of GTCampusTour. The map is not centered because zoom-in and move-left features were used to create the image below.

Uploaded Image: m2-final.gif

The code for Milestone #2 can be found here:
A description of each class and its methods can be found here: Milestone#2 - Text Description of Class and Methods.doc

Link to this Page