CS346 - Software Science
Dr. Changwon Yoo
Semester Project
January - May 2005
This was a semester long team project created for a local business, Sun Mountain Sports. SUMMIT, which stands for Sun Mountain Mapping Interface Tool, is a GIS-enabled web application for assisting the company's manager's and salespeople. It was built as a web application in order to minimize the software installation difficulties for employees with different operating systems and platforms.
SUMMIT shows the locations of all current customers in the Sun Mountain database, with the color of each dot corresponding to the amount of sales done for that year. The map can be zoomed in or out, panned, and centered on locations. More information is displayed as the map is zoomed into, such as roads, city names, and customer names. Users can drag a box around an area to see the customer information for that area, or select a single customer. The map also has an option to display potential customers.
The mapping part of the application was built off of MapServer, an open source GIS toolkit. In order to resolve the customer's addresses to physical locations on the map, the U.S. Census TIGER dataset was utilized.
The software science course focused on each phase of the software life cycle with an emphasis on XP (Extreme Programming) practices.
Other Team MembersThis was, by far, the most ambitious project I have worked on during my undergraduate studies. This project had many large and difficult requirements. Our team was fortunate to have a lot of talent in varying areas. I assumed the role of lead developer and assisted primarily with extending the MapServer tools to accomplish our requirements.
Our team tried to take advantage of as many XP practices as we could. We used pair programming for development, which worked very well. We were not able to do incremental releases, however, because of the nature of the project. We had to first set up the database and load all of the information before we could integrate it with the web application. As it was, we had many disparate parts that were connected during the last few weeks of development. In addition, the nature of the course stressed each individual phase of development, and it left about a month for actual implementation of the project.
If I were to do this project again, I would probably try to spread out the major development throughout the semester, coinciding with requirements and design specification and other phases. The last 3 weeks of development on the project were very intensive and upwards of 50 hours a week were spent on it. This did, however, help me learn to develop quickly under extreme pressure. After completing the project, the team and I were exhausted, but we felt like we could complete any project that seemed impossible.