Question
Inventory Management The software should maintain information about the packages currently in the inventory of the shipping store. A package is in the inventory if
Inventory Management
The software should maintain information about the packages currently in the inventory of the shipping store. A package is in the inventory if it has been shipped but not yet delivered to its final destination. All packages also have an extra field, tracking location. Tracking location provides the address where the last scan of the package happened, and it is a string type.
Transaction Management
A shipping transaction can be created either by a customer through the stores website (see below) or by an employee. A transaction can be in three different states: 1. Pending: when the shipping transaction record has been created but the package has not been dropped off to the store yet, and it has not been added to the inventory. 2. Active: when the package has been dropped off to the store and it has been added to its inventory. 3. Completed: when the package has been delivered to is final destination and has been removed from the inventory. For each transaction, the system keeps the following information: - Customer id: who shipped the package - Package Tracking Number - Cost of shipping - Employee ID: employee who collected the package (empty if package has not been collected yet) - Date shipping transaction was created - Date of delivery: empty if the package has not yet been delivered - Employee ID: employee who delivered the package (empty if the package has not yet been delivered) - Status: Pending, Active, Completed When the employee collects the package from the customer, the status of the transaction is set to Active and the package is added to the inventory. When an employee delivers a package to its final destination, the package is removed from the inventory and the status of the transaction is set to Completed. In other words, the package should exist in the inventory only when the shipping transaction status is Active.
Accounting Management
The accounting management part of the software, allows the software administrators to keep track of the income, expenses and profit, and print Financial Documents like Balance Sheets, Statements of Cash Flow and Invoices. To keep things simple, we will assume that all the income comes from package shipping transaction sales and all the expenses come from employee salaries and space rental. Every time a new package is shipped or an expense is paid the accounting must be updated and optionally a financial document can be printed.
User Management The system now supports three types of users: Customers, Employees and Administrators. For all user types, the system keeps some basic information, like their Name, Phone Number and Email. In addition, for customers, the system keeps record of their address. For employees, the system keeps records of their SSN, Monthly Salary, their Bank Account Number, a flag indicating if there are Active or Inactive and their PIN number. Past employees remain in the system but are considered inactive. Finally, the administrators are special types of employees with some extra system access rights. For example, an administrator can add/edit an employee or another administrator to the system and can access the accounting management part of the software, from where they can pay expenses and print financial documents at any time. The simple employees, can only create shipping transactions, collect and deliver packages, add/edit customer info to the system, and reply to customer messages.
Shipping Store Website
The shipping store has a website which allows customers to create an account (and edit it), create shipping transactions, track packages, and contact the shipping store through a web form about possible questions that they may have. When a customer creates a shipping transaction through the website, initially the Employee ID is left empty (since there is no employee involved yet) and the transaction status is set to Pending. Later, when the package is dropped off to the store, the employee id is populated with the id of the employee who collected the package, and the transaction status is set to Active. Note that a shipping transaction can be created either by a customer through the website or by an employee at the store. The customer (and/or the employee) can also optionally print a receipt and/or a shipping label when they create the shipping transaction. The website also offers the option to customers to contact the store by sending a message through a web form. To send a message, the customers need to have first created an account. The message is added to a queue of unanswered messages. Subsequently, an employee (whoever sees the message first) can respond to the customer via email. The response of the employee is also recorded, along with the Employee ID. Each answer is associated with one customer question and is added to a pool of answered messages
Assume a class named Transactions which represents shipping transactions. Create a STATE MACHINE DIAGRAM that shows the possible states of objects of that class and the transitions based on different events from the moment a shipping transaction is first created by a customer through the Website, until the moment the package has been delivered to its final destination.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started