Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

202104/CST307/A

Question 1 (25 marks)

You are working as a Software System Analyst at the software company Dolphin Technology, you are assigned to perform analysis and design for an Online ABC Pizza Ordering and Delivery System. The requirements for this system have been gathered and defined by the Project Manager based on discussion with the customer.

As a kick start for the project, you are required to illustrate in a Use Case Diagram the functional specifications of the Online ABC Pizza Ordering and Delivery System.               Requirements:

1.   The system should support two types of users: Guest and Registered User.

2.   For Guest, the system shall provide the functionalities: Register, Browse Menu.

3.   For Registered User, the system shall provide the functionalities: Browse Menu, Place Order, Checkout, Select Delivery Address, Make Payment, View Order.

4.   The system will need to support payment using Wire Transfer or Credit Card, and using a third party Payment Gateway.

5.   When placing an order:

a.   The registered user must Login to the system.

b.   The registered user can choose to add pizza, add beverage, or add side dish.

c.   The registered user must select delivery address, checkout, make payment.

Question 2 (21 marks)

Illustrate the Place Order business process with an Activity Diagram for the Online ABC Pizza Ordering and Delivery System (stated in Question 1), based on the following Use Case Description:

Use Case Name: Place Order

Use Case Description: Place a food order with pizza, beverage, or side dish. Precondition: The user is a registered user.

Post-condition: The user is able to place order with multiple items in one order. Basic events:

1.   Login to the Online ABC Pizza Ordering and Delivery System.

2.   Select delivery address before proceed to add food.

3.   Browse menu to add pizza, beverage, or side dish.

4.   Checkout and Make payment using wire transfer or credit card. Extended Events:

A1. The registered user can repeat event 3 above to add more items to the order. A2. When adding pizza, the user can have the options to select:

-    The size of the pizza, whether is personal, regular or large.

-    The type of crust, whether is hand tossed, pan or thin crust.

Question 3 (21 marks)

Based on the Online ABC Pizza Ordering and Delivery System stated in Question 1, illustrate in a Sequence Diagram the Use Case Realisation of the Place Order” use case, which involves the interaction between the following four classes:

1.   RegisteredUser

2.   Menu (the controller to guide the registered user)

3.   Order

4.   Payment

Requirements:

1.   The sequence diagram should start from setting delivery address and end after making payment.

2.   The sequence diagram must support all the events in the Activity Diagram as described in Question 2.

3.   The user can choose to use coupon to reduce the total of the payment.

4.   Use suitable combined fragments to model the logical control of the interaction between the classes.

5.   Assign parameters in the operations/methods.

Question 4 (13 marks)

The Order class in the Online ABC Pizza Ordering and Delivery System as stated in Question 3 has multiple states to indicate different status ofthe reservation after the payment by the user. These states are used to assist the system to track the order upon receiving by the restaurant manager until completion of serving the user. The following are the states of the class Order in proper activation sequence:

1.   Order created

a.   internal activities: save order, prompt payment

b.   event to change to next state: payment

c.   next state: state 2 (if payment confirmed); state 3 (if payment failed).

2.   Order Paid

a.   condition to start the state: payment confirmed

b.   internal activities: notify branch manager, plan order

c.   next states: 4, 5 and 6

3.   Order cancelled

a.   condition to start the state: payment failed

b.   internal activities: notify customer

c.   next state: end

4.   Pizza preparation

a.   event to start the state: assign chef

b.   internal activities: cooking

c.   condition to change to next state: cooking done

d.   next state: 7

5.   Beverage preparation

a.   event to start the state: assign worker

b.   internal activities: prepare beverage, serve drink

c.   condition to change to next state: beverage prepared

d.   next state: 7

6.   Side dish preparation

a.   event to start the state: assign chef

b.   internal activities: cooking

c.   condition to change to next state: cooking done

d.   next state: 7

7.   Order prepared

a.   internal activities: notify branch manager, plan delivery

b.   event to change to next state: assign dispatcher

c.   next state: 8

8.   Dispatcher assigned

a.   internal activities: notify customer, delivery

b.   condition to change to next state: customer receive order

c.   next state: 9

9.   Order delivered

a.   internal activities: notify branch manager

b.   next state: end

The additional condition for the above states is:

i.      The state 4, 5 and 6 should be parallel states.

Illustrate in a State Machine Diagram, the changes of states for the Order class as described above.

Question 5 (10 marks)

Illustrate in a Deployment Diagram the deployment design ofthe Online ABC Pizza Ordering and Delivery System as stated in Question 1, with following requirements:

1.   A firewall to safeguard the connection from web users to the internal servers.

2.   A web server to process and relay input from user through web pages to the application

server.

3.   An application server to deploy the system, with following components:

a.   Shopping Module depending on services from Membership, Payment and Logging modules.

b.   Membership Module

c.   Payment Module depending on services from Logging module.

d.   Logging Module

4.   A database server to provide database access and storage for the system.

Question 6 (10 marks)

Produce the source code (choose Java or C++) based on the Class Diagram below (which is designed according to the Online ABC Pizza Ordering and Delivery System).

Produce the source code (choose Java or C++) based on the Class Diagram below.