You have been asked to develop a pizza ordering application. Here is the information your manager just shared with you about this software development project.
The pizza ordering application allows customers with a web browser to order pizza for home delivery. To place an order, a customer would search to find items to purchase (specialty pizzas, sodas, desserts, salads, 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 pizza with as many toppings as they liked. 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 pizza shop. 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 pizza ordering application:
- Purpose or goal of the system
- Primary user(s) of the system
- 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).”
- Identify 5 functional requirements and 2 or more non-functional requirements using the “shall” format from Chapter 4.
- Identify 5 use case scenarios and create a simple use case UML diagram for each.
Milestone #2 (50 points):
- Complete a UML activity diagram that provides a high level overview of the major processes that characterize the pizza ordering application.
- 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.
- Identify whether a plan-driven “waterfall” software development approach or an agile framework or methodology might be more suitable for this software development project. Justify your recommendation.
Milestone #3 (50 points):
- Identify the evolution and maintenance related items that should be considered when planning to develop the pizza ordering software application.
- 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 pizza 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.
- Project Planning Assignments:
- 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.
- 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.
- Be sure to rank the user stories from highest to lowest priority.
- Be sure the most important user stories are completed before the least important user stories.