Reference no: EM133411493
A UML diagram based on the below scenario. as well as a Sequence diagram focusing on
• start_order
• request_item
• purchase_order
• transfer_order
Problem Description, Requirements, Specifications, etc.
The Groceries Express Project focuses on a system that simulates the interactions between various customers and grocery stores, along with the other entities used by the third-party service to facilitate the placement and delivery of orders. The application that is developed must allow the users to:
• Create objects needed to represent the customers, stores, and other entities.
• Update details about the objects over time as specified.
• Support interactions between customers, stores, and other entities (e.g., a customer adding another line item to an existing order from a certain store); and,
• Display reports about the current state of the system (e.g., order price totals for each customer.)
The next few paragraphs will describe the key concepts that must be represented in your Design Class Diagram for this phase of the assignment. The concepts might be expanded or otherwise modified in later phases of the assignment as the clients, stakeholders, etc. clarify their requirements.
We must support various types of users, including customers and employees of the grocery stores (i.e., drone pilots). All users must be either independent customers or employees of a store - we will not keep track of any other types of users. We must maintain the first name, last name, and phone number for each user. The first and last name will be represented as simply strings, and the phone number will be represented with a ten-digit "xxx-xxx-xxxx" format. We will use the phone number to contact users only in cases where there are unexpected issues with one or more orders.
Each store will have a distinct name. Each store will also keep track of the revenue it has earned from delivering orders successfully. Stores will be supported by various employees, but the only types of employees that we will be concerned with at this phase are the drone pilots.
We must track the unique tax identifier (e.g., Social Security Number for some people) for each employee for legal purposes. The tax-identifier will be stored using a "xxx-xx-xxxx" format. We will also keep track of the number of months (as a whole number) that the employee has been working for the store the company, along with the employee's current salary.
Drone pilots are employees hired by stores to control the drones as they carry groceries back and forth between the stores and the customer's homes. Each drone pilot must have a valid license to signify that they have received the proper training to operate the drone safely. Each license will have a unique ID within the system for tracking purposes. Flight skills tend to improve with experience, so we must also keep track of the number of successful deliveries for each pilot.
Stores can purchase many drones to deliver orders to customers in a timely manner. Each drone can only be controlled by one pilot at a time - having multiple pilots for a single drone would eventually lead to conflicts and crashes. Also, it's unsafe for a pilot to control more than one drone at a time. Each drone has been purchased by and serves a single store, and is used to deliver orders for that store alone.
Drones need to be taken out of service for maintenance after making a certain number of trips, where a trip is equivalent to delivering one order. We must keep track of the number of trips that a drone has remaining before it needs maintenance. Also, each drone has a limited lifting capacity - measured in pounds - that must be tracked. The lifting capacity of a drone allows it to carry multiple orders up to a maximum weight.
Each store offers various items, where each item has a unique name (for that store) along with a weight measured in pounds. Customers who wish to purchase items can place an order. An order must be initiated by a specific customer and must also be immediately assigned to a specific drone for eventual delivery. Customers are allowed to place multiple orders concurrently.
Each order will consist of one or more lines, where each line represents a certain quantity (i.e., one or more) of an item being ordered at a given unit price. Each item can be listed at most once on a given order, but the quantity for that item can be one or more. The price and the quantity for an item can vary between different orders. A new line cannot be added to an existing order unless the drone assigned to deliver that order has enough lifting capacity to carry its all of its current pending orders. An order must be delivered in its entirety by a single drone - it cannot be split across multiple drones.
Customers have a rating as an integer from one (1) to five (5), where a higher number indicates that the customer has been more reliable in ordering items over time. We must also track the customer's credit as the number of dollars that they have to request orders. A customer's credit must always be greater than or equal to the total cost of all of the orders for which they are currently waiting. A new line cannot be added to an existing order unless the customer requesting the order has enough credit to cover all of the customer's current pending orders (i.e., orders waiting to be delivered).
We must be able to calculate and display the cost of an order as the total cost of each line, which is the cost of the item as listed on that order multiplied by the quantity purchased. We must also be able to calculate and display the total cost for all of the outstanding orders for each customer.
We must be able to calculate and display the weight of an order as the total of the weight of each line, which is the weight of the individual item multiplied by the quantity purchased. We must also be able to calculate and display the total weight (i.e., payload) for all of the orders being delivered by each drone.
Finally, we must be able to calculate and display the incoming revenue for each store as the total cost of all pending orders currently waiting to be delivered by drones on behalf of that store.
Diagram to include:
that includes:
o classes
o attributes with basic types
o operations (methods)
o relationships with proper cardinalities (e.g., [0..*]) that accurately reflect the problem space
o visibility notation (e.g., public, private, etc.)
UML diagram implementation
(1) Create stores and allow them to offer items for purchase.
(2) Create drones that can be used by stores to deliver orders.
(3) Create pilots who can be hired by stores and assigned to fly the drones.
(4) Create customers who can start orders and request items on those orders.
(5) Allow orders to be eventually purchased or cancelled by customers.
(6) Display various reports of the system's information (e.g., stores, customers, etc.) to view the system's state and verify that the operations are working correctly.