Capstone Project Scenario:
You have been asked to develop an ordering application for a restaurant that serves American style Chinese food and specializes in delivery. Here is the information your manager just shared with you about this software development project.
The Chinese food ordering application allows customers with a web browser to order their selection of menu items for home delivery. To place an order, a customer would search to find items to purchase (main entrees, sodas, soups, sides, etc.), and then add items one at a time to a shopping cart. They could also view a page that showed the daily special. The customer could search again for more items if they wanted. They would also have the option to build their own dishes, starting a choice of rices or noodles and adding main selections (When in doubt, use Panda Express as a refernce). When all items were chosen, the customer would see the cost of their order, and also be prompted to provide a delivery address for that specific order. If not paying with cash, the customer would provide credit or debit card information for use on the current order. The system should have an option for customers to register with the restaurant. They could then save their name, address information and e-mail address, so that they wouldn’t have to enter this information every time they placed an order. If they didn’t want to save their personal details on the site, they could register their e-mail address only, which would let them receive coupons and updates on special promotions.
To complete this assignment, make assumptions as needed–just be sure to document any assumptions you make.
Milestone #1 (75 points)
Identify the following information about the Chinese food ordering application:
a. Purpose or goal of the system
b. Primary user(s) of the system
2. Assume the role of the customer. Identify 10 user requirements in user story format “As a (role), I want (feature), so that I can (justification/benefit).”
3. Identify 5 functional requirements and 2 or more non-functional requirements using the “shall” format from Chapter 4.
4. Identify 5 use case scenarios and create a simple use case UML diagram for each.
Milestone #2 (50 points)
1. Complete a UML activity diagram that provides a high level overview of the major processes that characterize the Chinese food ordering application.
2. Assume a Test Driven Development approach. Identify 5 or more failing tests and what you would do to make them pass. These tests will form the basis of your unit testing strategy.
3. Identify whether a plan-driven “waterfall” software development approach or an agile framework or methodology might be more suitable for this software development project. Explain your recommendation.
Milestone #3 (50 points)
1. Identify the evolution and maintenance related items that should be considered when planning to develop the Chinese food ordering software application.
2. Identify ten or more risks that could develop with this project. What is the probability or likelihood that each risk might occur, and what would be the effect to your Chinese food ordering application if it did? What is your plan to either avoid, minimize or recover from (i.e., contingency plan) each of these risks if they were to occur? Present your risk analysis as a Risk Register in a tabular format, with the highest impacts/effects listed first.
a. Project Planning Assignments:
b. Plan-driven “waterfall” planning approach assignment: Use the 10 user story requirements from Milestone #1 for this assignment. For each user story, identify the effort in person-days and duration of each deliverable. If one user story is dependent on another, identify that relationship.
i. Agile SCRUM planning approach assignment: Use the 10 user story requirements from Milestone #1 for this assignment. Assuming a 2-week sprint cycle or iteration, identify how many sprints this software development project will take to complete. Identify which user stories will be completed within each sprint and what considerations went into your sizing decision.
ii. Be sure to rank the user stories from highest to lowest priority.
3. Be sure the most important user stories are completed before the least important user stories.