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. Remember: “When in doubt sound convincing.”
1. Identify the following information about the pizza ordering application:
a. Purpose or goal of the system
b. Primary user(s) of the system
2. Generate an Activity UML diagram that starts with the customer connecting with the web site and ends with the driver receiving the address (along with the pizza). I am looking for a very focused and specific UML Activity diagram here. I want the diagram to show me the process of what happens between the time that the customer connects to the website and the driver gets the pizza and address. Note that the cooks will also interact with the process at some point – identify the step or steps where the cook interacts with the system. Number each element of the activity diagram. The activity diagram must contain a minimum of 10 elements.
3. Using the activity diagram created for step 2, generate 20 User stories. For each User story, identify the User (customer, cook, or driver), and the element of the activity diagram you are using to generate this user story. The user stories must be of the form “As a <Role> I need to <function> so that <reason or justification>”.
4. Using the user stories created in step 3, generate 25 System requirements. The requirement must be of the form “The system shall…”. Points will be deducted for statements that use should instead or statements that use an alternate format.
5. Produce a Use Case UML diagram that contains a minimum of the Customer, the Cook, and the Driver. Review the User stories from step 3 for ideas as to the features to include in the Use Case diagram, but all features need not be included.
6. Using the requirements produced for number 4 above, produce 30 system tests. Review assignment 8.3 for an example of what good test step should look like. For each test, identify the Requirement, the User story, and the Activity UML block from which this test derives.
7. 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.
8. Identify at least five evolution and maintenance related items that should be considered when planning to develop the pizza ordering software application.
9. 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 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.
10. Assume that SCRUM is being used for this project. Rank your user stories from number 3 and assign them to four different two week sprints. Identify which user stories should be completed in each sprint.