Semester Project

Introduction

This project asks you to develop a non-trivial software prototype involving technologies and techniques covered in lecture and our textbooks. You should work on this assignment as part of a team of two to four students. The meaning of the term “non-trivial” will vary by team size and, hence, the scope of a team's project must be negotiated with Prof. Anderson before significant effort is invested into the project. A team of four students should be able to develop, for instance, a prototype that involves creating two to three Web services and a client-side application that makes use of their capabilities. Another example, would be a team that makes use of existing web services and then focuses their effort on producing a Web 2.0-style website that integrates their data/services into an interesting mashup that provides additional value on top of the original services.

Please make use of the class moodle to facilitiate the creation of teams. There is a "news forum" link at the top of the moodle page in which you can post project ideas, your interests/skills, etc. We can also make use of lecture time for this process. As soon as you have formed a team, please send mail to Professor Anderson identifying the team and its members. Please form your team by the end of the 7th week of the semester (i.e. next week). 

Project Details

The assignment consists of two deliverables: a document that details both what you have learned in this class as well as the specifics of your project (75 points) and a 15-30 minute presentation (25 points) that your team will give to the rest of the class. In addition, you will receive up to 25 additional points based on evaluations written by your teammates on how well you contributed to the team.

Furthermore, each team needs to clearly split up the work of the project such that each part of the project has a clear owner. The 75 points associated with the “document” portion of the project are individual points. That is, if you do a good job on your part of the project, you may receive the full 75 points for your effort. That score would NOT be shared by the rest of the team: another member who does a poor job on their part of the project might receive a score of only 25 points for their efforts.

The 25 points associated with the 10 minute presentation are group points. I will evaluate your in-class presentation and assign a score that each member of the team will receive for that portion of the assignment.

Finally, as mentioned above, the final 25 “team evaluation” points of the project are individual points. If you have N members on your team, then you will receive N-1 reviews. A positive review will provide 25/(N-1) points towards your team evaluation points. A negative review will contribute zero points.

So, even though each portion of the project will have a clear owner, it behooves the group to work as a team to make sure that all portions of the project are created with high quality. Such teams will ensure that all members of the team receive a good grade on the project. On the other hand, if you find yourself on a team with three “good” team members and one “bad” member, the bad apple won't pull the rest of the team down.

Document

The document should consist of the following minimum set of information: 

Work Assignments: How was the work of the project divided across the team? This is the place in which you claim ownership for a particular portion of the project. The team needs to work together to ensure that the workload is balanced fairly over the set of team members. Members who do too little (when compared with the rest of the team) will be noticed and will receive a penalty on their individual points.

Introduction and Background: Summarize the main topics covered in class (roughly divided into SOAP-based Web Services, RESTful Web Services, and Web 2.0 and identify the technologies used in your software prototype. Think of this section as a "survey paper" that covers the main concepts and techniques of each of these areas and presents an example or two for each of the main topic areas.

Project Description: Describe the problem domain being addressed by your software prototype and give a high-level overview of its capabilities.

Architecture and Design: Describe the design of your software prototype. What is the overall software architecture, what are the primary components and how do they communicate. Detail the primary responsibilities of each component and what technologies are being used to realize them.

Implementation: Via UML, code, and/or text, describe how you implemented the software prototype and discuss any problems/issues that you encountered during this process and how you resolved them. Note: You do not need to include the complete set of source code for the software prototype. Instead, include "interesting" code that highlights how primary capabilities were implemented or that illustrate the implementation issues you decide to discuss. Be sure to include a URL that points to an archive of the software prototype's source code. And, optionally, include a URL to a running instance of your software prototype.

Tutorial: Include a short tutorial of how to use your software prototype. Include screenshots and discuss the primary ways in which a user would interact with your prototype and what they can expect as a result.

Conclusions: In the conclusions, evaluate the technologies that you used in creating the prototype. Were they sufficient in helping you meet your goals? What improvements can you suggest based on your experiences. What thoughts do you have on the field of Web services and Web 2.0 now that you have invested a significant amount of time working with these technologies?

Your document does not have to be in this exact order but all of these issues should be addressed. Most teams will produce a document that is 10 to 15 pages long (when you factor in text, diagrams, example code, use cases, etc.).

Presentation

Your class presentation should attempt to describe the purpose of your project and provide an example of your software prototype in action. You should also include a discussion of the technologies that you used, any issues you encountered, and perhaps a summary of the conclusions section of your project document. The presentation should be roughly 15-30 minutes long. Team members will have to work together to create the presentation and the demo and decide which members will present this information in class.

Time Frame

This project is due by the end of the last week of class. This means that the document being created by the team must be submitted by 11:55 PM on Friday, December 12th and your class presentations must be done no later than the lecture on December 10th.

Wrapping Up

If you have any questions or concerns, send a message to Prof. Anderson

This page may be updated with new information in response to clarification questions made by the teams. Each update will be announced on the What's New page of the website.

Kenneth M. Anderson, 2008