关键词 > IT5004
IT5004 Enterprise Systems Architecture Fundamentals Assignment 2: System Design
发布时间:2025-10-17
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit
IT5004 Enterprise Systems Architecture Fundamentals
Assignment 2: System Design
Easy POS
In assignment 1, you have analyzed the Easy POS system and came up with the use cases for the system and the steps for the “Make an order using the mobile app” use case. You will now work on the design of this system. In addition to the write up given in assignment 1, the following information below will aid you in designing the system.
As indicated in assignment 1, there should be 3 types of users: general staff, managers and customers (or members since we only capture the members’ details). These entities should at least capture the following information: name, address, contact number, email, and date of birth. Note that every branch has a manager and each employee only works in a specific branch. For each branch, the system should at least maintain the following information: name, address, and contact number. Each branch can offer different dishes and availability of a dish is tied to a branch.
There are 2 ways of making an order: using the customer mobile app or staff adding entry into system using the POS machine. Note that the order status (e.g. PLACED, SERVED) should be tied to individual order items rather than the order transaction itself so that the staff would know which item has been served and which has not been served. Order status is displayed as FULL_SERVED when all the individual order item statuses are SERVED.
To simplify the system design, we will ignore some features described in assignment 1:
• There will be no usage and management of promotion coupons.
• The system does not need to handle the marketing aspect (e.g. manager sending birthday greetings/promotion coupons etc).
The system should allow 3 different payment modes: cash, nets, and credit card for payment done at the payment counter. Specifically, nets and credit card payments are captured by an external nets and credit card machine respectively which are not integrated with the Easy POS system. Customers who want to order themselves can do it directly from the customer mobile app but it only supports credit card payment. To facilitate credit card transaction on the customer mobile app, there is a BankWrapper class which provides a performCreditCardTransaction() method that takes in the credit card details (payment amount, credit card number, credit card name, expiry date, CVV) and returns a bank transaction ID which should be linked with the Order.
The StaffHandler class is used to handle staff-related operations. You will only need to handle the following list of staff-related use cases:
• Login
• Logout
• Browse all orders
• Making an order
• Update order status
• Add Branch
• View all branches
• Update a branch
• Add dish
• Update a dish
• Remove item from order
• Add item to order
• View all dishes
• View all members
• Add a staff
• View all staff
• Update staff profile (of the logged in staff)
• Process payment for an order
To facilitate marking, in your class diagram, please order the methods in the StaffHandler class according to the list above.
The MemberHandler class is used to handle customer-related operations. You will only need to handle the following list of customer-related use cases:
• Login
• Logout
• Register
• View all branches
• View all dishes of a branch
• View all order
• Make an order
To facilitate marking, in your class diagram, please order the methods in the MemberHandler class according to the list above. Note that you should not use complex type (e.g. Member or Dish object) for all the method parameters in MemberHandler and StaffHandler. Instead, you should use basic data types such as int, long, String, etc. This is so that the developer of the Handler classes will know what the supplied input values from the users are.
Apart from MemberHandler, you should also include a data access layer class: DBHelper. DBHelper contains a list of database manipulation operations (retrieving, creating, saving, etc) for the entity classes.
1. Produce the complete design class diagram of the Easy POS system by following the description given in Assignment 1 and 2 as closely as possible. Make sure you include all the necessary classes, methods (including constructors) and attributes. Please include the multiplicity information and role names. State any additional assumptions if necessary. (10 marks)
2. Produce the sequence diagram for the following use case: “Make an order using the mobile app” . You may assume that the user is a member and is logged into the system and the customer will also make payment during the ordering process. Your flow should include: select a restaurant/cafe branch, view dishes of the branch, select one or more dishes, their quantities, and other additional notes (e.g. less salty), check out of the cart, and entering the credit card details to make payment for the order. When using DBHelper to do database manipulation, you do not need to show the details of how DBHelper go about performing the database operations and how the objects (and their associated objects) are created (i.e. no need for outgoing method call arrows from the DBHelper lifeline). (10 marks)
An initial sequence diagram can be as follows:
