The term project assignment for CS 509 is to design and build a web-based pizza ordering system. The system will consist of a customer part, where the user can order pizzas, subs, etc. from a web page, and a restaurant part, where the pizza shop can manage orders placed over the web.
This page will describe more details about the term project as the course progresses.
In class on 3/23/06 we began to identify functional and non-functional requirements for the pizza ordering project. The list of requirements we came up with can be found below.
Phase 1, Due 3/30/06
The first assignment for the term project deals with
requirements. For Phase 1, students will identify names of 5
to 10 use cases for the system, and choose the top 5 requirements
from the list below to explore in more detail for the first
iteration. In class on 3/30/06, we will begin to further develop
the use cases, so they need not be fully specified for this
assignment. The "top 5" requirements should be ones that are
either high risk in some way, or of high value to an eventually
functional system.
The remaining set of project phases were briefly planned out in class on 3/23/06. As we get closer to the due dates, these assignments will be spelled out in more detail, and may change depending on how far along we are able to get in the project plan.
Phase 2, Due 4/13/06
The second assignment for the term project will deal with design.
In class on 4/6/06, the class identified a subset of requirements to implement for our first iteration of the term project. Those requirements are specified below in more detail. The Phase 2 assignment is to create designs for the implementation of those requirements.
Student groups will at a minimum create high-level subsystem designs with interfaces specified between subsystems, and then will begin work on lower level class and database schema designs. The assignment to turn in may consist of UML diagrams either drawn by hand or using one of many available tools to draw UML diagrams. The diagrams should be augmented by text which explains the design.
In class on 4/13/06 each group will have an opportunity to present their design to the rest of the class. The rest of the class will review the designs to ensure that they satisfy the requirements for the project, to point out weaknesses and to suggest improvements.
Phase 3, Due 4/27/06
The third assignment for the term project will deal with
implementation.
For this phase of the assignment, students will turn in code (which the instructor will review) and instructions for running unit tests (which the instructor will execute) for each of the three subsystems: User Interface, Business Logic, and Database. To facilitate turning in code, students will put source documents in the following directories on the WPI server for the course (cs509.cs.wpi.edu) created for this purpose:
/usr/local/tomcat5.5/webapps/ROOT/src/uiFor the unit tests, student groups have the following options (choose one) for turning in instructions:
/usr/local/tomcat5.5/webapps/ROOT/src/bl
/usr/local/tomcat5.5/webapps/ROOT/src/db
Phase 4, Due 5/11/06
The fourth assignment for the term project will deal with
integration.
For this phase of the assignment, students will test and debug the system for the purpose of validating the integration. Each group will develop plans to test the entire system (not just their group's functionality). Students will run the tests, report and fix problems, and keep track of test results.
Each group will turn in a document describing the set of test cases that their group developed, in addition to a report of the testing results:
If a test fails, a bug report should be written up and sent to the class mailing list. When a bug is fixed, the group or person who fixed the bug should send an email to the class mailing list indicating that the bug has been fixed, and the test(s) that previously failed should be re-run to verify the fix.
Phase 5, Due 5/25/06
The fifth assignment for the term project will deal with
Iteration.
It was decided in class on 5/4/06 that this phase will focus on the design of the next set of requirements for the project. See the section below entitled "Iteration 2 Requirements".
Each project group will work on a design for the requirements listed below for Iteration 2 as they apply to their group's assigned functional area (User Interface, Business Logic and Database). The assignment to turn in will document the designs using whatever diagrams are appropriate (UML Sequence, State, Class diagrams, database schema diagrams, user interface mock-ups, etc.) The diagrams should be augmented by text which explains the design.
The following is a list of functional and non-functional requirements identified in class in 3/23/06. Students should feel free to add to this list if they think of anything that's missing. In other words, the Phase 1 assignment above does not have to come exclusively from this list. The order of the list is just how we came up with the ideas in class and is not meant to imply anything meaningful.
The following is a more detailed specification of the requirements identified in class on 4/6/06 that we will tackle for the first iteration.
The following is a more detailed list of requirements identified in class on 5/11/06 that will be tackled for the 2nd iteration (Phase 5).
Students in the class have arranged themselves in the following functional groups for work on the term project. We reserve the right to change the organization of the groups as needs arise.
|
Customer and Restaurant User Interfaces |
Robert Murphy, Chris Neil, Andrew Terra, James McMillan |
| Business Logic | Pete Warrington, Brian Yamagata, Chris Malladi, Rob Briar, Glenn Townsend, Todd Cooper |
| Database | Paul Legasse, Matt Manard, Matt Hinds |
Back to home page.