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

Team Us M5 Case Study

Other Case Studies: Team Us M3 Case Study Team Us M4 Case Study Team Us M6 Case Study

The Problem:

Check out the problem description: Sp2002 P5 - Help people find their way

Our Approach

Our approach to this milestone was similar to our approach to M3 and M4. We first assessed the functional requirements to be added for this milestone, and discussed possible implementations. We relied heavily on the design work we did initially in M3.

Our Solution

Our goals in this milestone were to find a route between two buildings that a user selected and to display that route on the map. When we started this milestone, we decided not to let the user type in any information. If all possible buildings were displayed, then the user would not be able to type in an invalid building or accidentally misspell a building name. To solve this problem, we made a menu where the user picked two buildings, then a path was displayed when the appropriate button was pressed. We also wanted to use a shortest path method to find the route between two buildings. We decided to use nodes, which included building and intersection nodes, to solve this problem. Drawing the route was very easy. We had a collection of points and we used a pen to move to each point. The hardest part of this milestone was finding the route between two buildings using a breadth first search.

The user interface was our map from previous milestones that showed all the buildings and streets. The user accessed all options by right clicking on the map. The user was able to perform all functionality that was involved in milestone 4 and an extra option was added to display the route between two buildings. When that option was chosen, a new window popped up with a place to select two different buttons. There was a third button that drew the route. The user would pick two buildings, and then hit the third button. The route window would disappear and then the route would be drawn on the map.

Finding a route:
Uploaded Image: m5screenshot2.gif

A route displayed on the map:
Uploaded Image: m5screenshot1.gif

Lowest level of zoom with a route marked:
Uploaded Image: m5screenshot3.gif

Our Code: M5source.st
Uploaded Image: M5 Diagram.gif

Class Descriptions

Team Us M5 Class Descriptions

Reflections on our Solution

We kept our visual solution simple: a pen drawing a line on a form to represent the route. As far as the graph of buildings and streets, we knew the demands that the 3D environment would have and kept those in mind when implementing the graph and its nodes. For the most part, we stuck with our initial design from M3 - we just filled it out a little more. In M3 we could not have possibly forseen every method and instance variable, but our design was flexible enough to adapt to these changes.


Refactoring Ideas

After looking over milestone 5 again, we believe that we could have made the user interface a little better. When the map is first displayed, there was no way that the user knows to right-click to get all options. We put a note in the workspace to let the TA know that is how you accessed all options. If we had had more time we would have fixed this slight issue with the user interface.



Links to this Page