You have been asked to design a software system for a well-known online store. The system will allow customers to search for products sold at the website and add them to their shopping basket – at this stage, an order is in progress. Products are sold both by the website itself and several third-party sellers as part of the website’s marketplace.
Third-party sellers can be individuals or organizations, and once they have registered as a seller, they maintain their own product catalog, pricing, and storefront. If a product is temporarily out of stock, then then it will be marked as unavailable. Once a customer has finished their shopping, the order is considered to be processing and they are taken through the checkout process, where they will specify delivery details. Customers have the choice of several delivery options, including standard delivery using the postal service and the company’s own in-house courier service. Products ordered from third-party sellers at the marketplace do not have access to the in-house courier system. When the delivery options have been chosen, then the customer is presented with the payment options, where they can opt to use a credit or debit card, an online payment service (e.g., PayPal), or a gift voucher. Additionally, customers may also use promotional codes that are periodically issued by the website. Customers have the option to store their payment details and so can simply use stored details for each purchase. At this stage, the order is pending payment, but once the customer submits their payment information, the validity of the account used (whether it is PayPal, a credit/debit card, or gift voucher) will be verified by the appropriate service. Upon successful completion, the order is awaiting picking. When a customer completes a transaction, the order is passed to the warehouse staff. The warehouse staff will be required to look up the items on the stock database to determine the location of the item in the warehouse. Once the items are successfully collected and packaged, the order will be considered ready for delivery and distributed to the appropriate delivery company, depending on the customer’s preferences. When a member of the warehouse staff picks an item, to fulfill a customer order, the item is scanned with a handheld terminal to automatically update the stock levels (which will be reflected on the website). Finally, the order is collected by the appropriate delivery company and marked as shipped. Using the scenario provided, you should design and develop: A class diagram. An entity-relationship diagram. An activity diagram for the process of a customer completing an order. A state diagram highlighting the states of order (and their transitions) for your proposed system. You should aim to draw out the objects, attributes, operations, and relationships of the system in a rationale for your analysis (500 words). Get one today