SOFTWARE REQUIREMENTS SPECIFICATION For On the Spot Courier Services ISM3113 Team 5 Nathan Freeman Paul Hudson Carl Meiring Page |1 Revision History Date 9/25/14 10/6/14 10/6/14 10/6/14 10/7/14 Description Began working on document, focusing on Section 1. Expanded upon security section. Wrote Database and Operations sections, and revised original SSD. Added section three Added other sections to two and three and formatted document Author Nathan Freeman Grammar and proof check Carl Meiring Nathan Freeman Comment First revision. Nathan Freeman Carl Meiring Paul Hudson Document Approval Signature Printed Name Title Date Nathan Freeman Paul Hudson, III Carl Meiring Nathan Freeman CEO 10/7/14 Paul Hudson, III Technical Writer 10/7/14 Carl Meiring System designer 10/7/14 Page |2 Contents Revision History ............................................................................................................................................. 1 Document Approval ...................................................................................................................................... 1 1. Introduction .............................................................................................................................................. 4 1.1 Purpose ............................................................................................................................................... 4 1.2 Scope ................................................................................................................................................... 4 1.3 Definitions, Acronyms, and Abbreviations.......................................................................................... 4 1.4 References .......................................................................................................................................... 4 1.5 Overview ............................................................................................................................................. 5 2. General Description .................................................................................................................................. 6 2.1 Product Perspective ............................................................................................................................ 6 2.2 Product Functions ............................................................................................................................... 6 2.3 User Characteristics ............................................................................................................................ 6 General Constraints .............................................................................................................................. 7 Assumptions and dependencies ........................................................................................................... 7 3. Specific Requirements............................................................................................................................... 8 Pickup / delivery process. ..................................................................................................................... 8 Pricing.................................................................................................................................................... 8 3.1 External Interface Requirements ........................................................................................................ 8 3.2 User Interfaces .................................................................................................................................... 8 3.1.2 Hardware Interfaces ........................................................................................................................ 9 3.1.3 Software Interfaces .......................................................................................................................... 9 3.1.4 Communications Interfaces ............................................................................................................. 9 3.2 Functional Requirements .................................................................................................................. 10 3.2.1 Create Account and Log On use case ......................................................................................... 10 3.2.2 Create a Pickup/Delivery Request use case ............................................................................... 11 3.2.3 Create Truck Route use case ...................................................................................................... 12 3.2.4 View Pickup/Delivery Schedule use case ................................................................................... 13 3.2.5 Log Pickup use case .................................................................................................................... 14 3.2.6 Log Delivery use case ................................................................................................................. 15 3.2.7 View All Inventory use case ....................................................................................................... 16 3.2.8 View Delivery Status use case .................................................................................................... 17 3.2.9 Generate Bills use case .............................................................................................................. 18 Page |3 3.2.10 View Balance / Make Payment ................................................................................................ 19 3.2.11 Maintain Cost Table use case................................................................................................... 20 3.2.12 View and Give Service Feedback use case ............................................................................... 21 3.2.13 Record Check Payment use case.............................................................................................. 22 3.2.14 View Monthly Bills use case ..................................................................................................... 23 3.2.15 Print Label use case .................................................................................................................. 24 3.3 Non-Functional Requirements .......................................................................................................... 25 3.3.1 Performance .................................................................................................................................. 25 3.3.2 Reliability........................................................................................................................................ 25 3.3.4 Security .......................................................................................................................................... 25 3.5.1 Database ........................................................................................................................................ 25 3.5.2 Operations ..................................................................................................................................... 26 3.4 Design Constraints ............................................................................................................................ 26 3.5 Other Requirements ......................................................................................................................... 26 3.5.3 Site Adaptation .............................................................................................................................. 26 4. Analysis Models ...................................................................................................................................... 27 4.1 Use Case Diagram ............................................................................................................................. 27 4.2 Sequence Diagrams........................................................................................................................... 28 4.3 State-Machine Diagram .................................................................................................................... 29 4.4 Domain Class Diagram ...................................................................................................................... 30 4.5 Activity Diagram ................................................................................................................................ 32 5. Change Management Process................................................................................................................. 33 Page |4 1. Introduction 1.1 Purpose This Software Requirements Specification document outlines the features of the proposed new system for On the Spot Courier Services. The intended audience for this document includes Bill Wiley, the founder of On the Spot, as well as the development team of Logistics Data Solutions that will design and implement the proposed information system solution. 1.2 Scope The name of the proposed system is OSCS Manager. This new system will help On the Spot Courier Service’s growing business deliver faster, more efficient service to its customers. Currently, On the Spot has no computer support for its operations. All records are paper-based. The new system is intended to deliver automation levels and sophistication that suit the size and budget of the current business. This way, On the Spot can compete with larger, more established logistics services on cost, while at the same time, it can continue to provide a superior level of service that has fueled its growth. OSCS Manager needs to support overnight, same-day and 3-hour delivery service levels for its customers. The scope of operation is a single city. Customers need to manage their service requests on the web. Drivers will use the new system to control schedule and record package movements. Management will be able to view and update delivery zones, cost tables, with the goal of balancing the constant change in demand for services. They will also be able to view service feedback and influence customer satisfaction by taking timely action. They will also have access to better, more detailed information about the company’s performance and efficiency. 1.3 Definitions, Acronyms, and Abbreviations Acronym OSCS Definition On the Spot Courier Service 1.4 References At present, no external documents are referenced in this Software Requirements Specification document. Page |5 1.5 Overview This document is divided into five sections. Section 1 provides a high-level view of the new system’s purpose, objectives, and benefits. Section 2 describes the factors affecting the system and its requirements, including a comparison with related products, a summary of the functions the software will perform, an overview of the people who will use the system, and an outline of project constraints and assumptions. Section 3 describes the requirements in much greater detail, from the perspectives of external interface requirements, functional requirements, nonfunctional requirements, and design constraints. This section will describe all hardware, software, and networking interfaces required to implement this system. Section 4 lists analysis models, including a use case diagram, sequence diagram, state machine diagram, domain class diagram, and activity diagram. Finally, Section 5 deals with change management, which addresses the possibility that project scope or requirements may change during development. Page |6 2. General Description The primary focus for software that is described in this software requirements specification is to control the requests, routing, pickup, tracking and delivery of packages. The next focus is to enable costing, billing and payments. 2.1 Product Perspective The OSCS is a website that can be accessed from any device that has a web browser, such as laptops, desktops, tablets, and smart phones. The site will both be used by customers and employees. It will contain all necessary functions for On the Spot driver services. The OSCS will need to be connected to a database to store customer information and package information, along with driver information, and billing/accounting and reporting data. The OSCS website is the standalone product that does not require integration with any other application. 2.2 Product Functions Below are the key functions of OSCS manager: Create account and logon Create pickup/delivery request Create truck route (replaces “maintain pickup/delivery zones” View pickup/delivery schedule Log pickup Log delivery View all inventory View delivery status Generate bill (this one is temporal and has no actor) View balance/make payment Maintain cost table View and give service feedback Record check payment View monthly bills Print labels 2.3 User Characteristics The system needs to have the look and feel of a modern web store. The various functions need to have multiple points of entry and be easy to navigate. The costing method does not rely on Page |7 weight, but simply on package dimension, which is easy for customers to measure. Labels can be printed by customers on regular laser printers. All functions used by drivers are geared toward efficiency, as they must handle hundreds of packages each day. General Constraints 1. Mobile internet access could be limited in certain situations, such as being inside buildings. 2. Must have up-to-date plugins such as Flash and Java. 3. Must have up-to-date web browser. Assumptions and dependencies 1. The users of OSCS Manager will always need some type of Internet access. 2. Users will possess an understanding of basic computer skills. 3. Customers will need at least one of the following: laptop, desktop, tablet, or smart phone. 4. Driver will have an access point in his truck that connects a wireless LAN to the cellular network. 5. Driver will require a tablet, label printer, and portable scanner. Page |8 3. Specific Requirements Pickup / delivery process. To achieve a 3-hour delivery, one truck will repeat a circular route through the city zones that we service every 1.5 hours. The truck will pick up and deliver only the 3-hour packages. The truck will start at 8 A.M. and do 6 circular trips ending at 5 P.M. A package may be delivered on the same trip or not, depending on pickup and delivery locations, but is guaranteed to be delivered after 2 circular trips (within 3 hours). So the system will cut off 3-hour deliveries at 2 P.M. Since it takes 1.5 hours to do a circular route, the requested pickup times must be entered at least 1.5 hours before pickup. The other truck handles same-day and overnight deliveries. Overnight deliveries are just handled as two same-day deliveries (same-day to warehouse + same-day from warehouse to customer). That truck does only four circular runs, two in the morning (starting 8 A.M. and 10:15 A.M.) and two in the afternoon (starting 12:30 P.M. and 2:45 P.M.). Afternoon trips start at 12:30 P.M. So any same-day delivery request is guaranteed to be delivered by 5 P.M. if it is placed by 12:30 P.M. (cutoff). The runs start and end at the warehouse. Overnight delivery packages are dropped off at the warehouse after each run, while same-day delivery packages stay on the truck. Overnight delivery packages are delivered on the first morning run. If the volumes are high they can be delivered by the second run. Thus they are guaranteed to be delivered by 12:30 P.M. on the next day. The cutoff for overnight delivery is thus 2:45 P.M. on the prior day because that is when the last run of the day will start. Same day and overnight requested pickup times must be put into the system at least 2.25 hours ahead of pickup to allow pickup to be achieved on time. The system pickup/delivery schedule is dynamic. The system displays both outstanding pickups and deliveries in the zone sequence of the truck route. System only controls the zone sequence for deliveries and pickups. The driver is responsible for determining how to travel within the zone. Zones can be made smaller by using the full zip codes. Pricing The package pricing will be based on cubic inches rather than weight because it is easier for customer to measure the length, width and height of the package than to weigh it. 3.1 External Interface Requirements The system will interface to the banking and credit card payment services. 3.2 User Interfaces The user interface for OCSC must be easy for users to understand and require very little training to learn. The buttons on the website must have text representation, ether placed by the button or when the mouse hovers over the button. The menu bar will be located on the left of the Page |9 page and the content located besides the menu. The company logo must appear on every page on the OCSC website. The user interface must contain the following: Welcome screen Password-protected customer and employee login Simple, highly readable color palate (nothing dark) 3.1.2 Hardware Interfaces Web server and associated application and database server Firewall Access points for the trucks Tablets, label printers and bar-code scanners 2 PCs with LAN and printer 3.1.3 Software Interfaces The design will need to evaluate appropriate compatible software products for the web server, programming tools, and language and database management system. There must be a secure https payment interface to credit card companies and banks. Label software will be required for the label printer. 3.1.4 Communications Interfaces Because OSCS is web-based users will need high-speed internet to access the site. Smart phone users they will need 3G or 4G LTE access to view the OSCS website. Laptop users will need Wi-Fi or a 4G card to connect to the cell phone network. P a g e | 10 3.2 Functional Requirements 3.2.1 Create Account and Log On use case Use Case Scenario Triggering Event Brief Description Actors Related use cases Stakeholders Preconditions Post Conditions Flow of activities Create Account and Log On Customer, Driver or Manager needs to log in to use the system Many Log on, create account, and validate credit card information Customer, Driver, Manager None Users of the system; management and security team None User is logged on. Customers have an account. System Actor Customer indicates desire to log on as a new If a new customer, system or existing customer. Employee indicates prompts for user and password desire to log on to use the system. data. User is logged in after user code and password is validated. New customer is prompted to identify if they are individuals or a corporation, and payment method. Customer enters individual/corporation System stores a Customer and status and payment method. Account. Customer is prompted for name, address, and contact info associated with the type of customer. Billing customers are additionally prompted to provide credit card info. Employees, including Drivers, don’t have this step. Customer enters name, address, contact and System updates the Business optionally the credit card info. customer or Individual customer. System validates the credit card info and stores the credit card number and sets the customer as “Bill” or “Cash”. Employees including drivers don’t have this step. Exception Conditions Logon failure Credit card validation failure P a g e | 11 3.2.2 Create a Pickup/Delivery Request use case Use Case Scenario Triggering Event Brief Description Actors Related use cases Stakeholders Preconditions Post Conditions Flow of activities Create a Pickup/Delivery Request The customer requests a package pickup on the web The Customer needs a package or packages to be picked up and makes the request on the website The Customer enters the information about the package into the system The Customer Driver may complete the request on behalf of Customer at time of pickup, on mobile device. The Customer, Manager, Driver. Customer must have an account with logon and password. Customer details must be entered as per account type. Customer account must be in good standing (for credit account) The pickup address and pickup date is confirmed (mandatory). The service type is entered for each package (mandatory). It is preferable but optional to have the labels printed upon order completion. Actor Customer requests service by entering pickup request date and time and payment type for order. Enter package details Service type Deliver-to address Size category Signature required Customer checks order is complete Customer requests label(s) to be printed Exception Conditions System System validates customer credit status (if applicable) and if all OK, creates Order and allows package details to be entered. System validates lead times to pickup, and stores package entities. System calculates and shows cost (if necessary parameters have been entered). An estimated delivery time and date per package is generated based on the service-type (3hr/same-day/overnight). The system enables view-deliverystatus. For each package: If recipient deliver-to address exists, print the label. Customer payment status precludes credit order from being placed. P a g e | 12 3.2.3 Create Truck Route use case Use Case Scenario Triggering Event Brief Description Actors Related use cases Stakeholders Preconditions Post Conditions Flow of activities Exception Conditions Create Truck Route For each truck the sequence of zones is recorded. Each zone equates to a zip code. Plan the truck route. A route is created for a truck and type of run. Manager View pickup/delivery schedule Drivers , customers and manager none A truck route with its sequence of zones will be created Actor System Employee enters the truck ID and the trip System creates a Truck Route type (3-hour or daily/overnight) for the truck ID and trip type. Employee enters a zip code with a short System creates a zone for the name for the zone route and gives it a sequence number. System prompts for next zone for the route. P a g e | 13 3.2.4 View Pickup/Delivery Schedule use case Use Case Scenario Triggering Event Brief Description Actors Related use cases Stakeholders Preconditions Post Conditions Flow of activities Exception Conditions View Pickup/Delivery Schedule Driver or management wants to view the delivery schedule for a truck and type of run (trip type) Desire to view pickups and deliveries A route with its pickups and deliveries is displayed on a screen. Driver, Manager none Drivers and management Truck route must be created Pickups and deliveries are displayed. There are no updates. System Actor Driver indicates the truck code, trip type, the System displays all packages target start and end date and time for the grouped by zone, in the zone run, and whether the run has started. sequence of the truck route. Each package is selected for display as “pickup” or “delivery”. “Pickup” packages are packages not yet picked up, with the service-type selected, where the requested pickup date and time falls within the date and time for the run. “Delivery” packages (if the run has started) are packages on the truck, or 3-hr. packages to be picked up with a delivery zone that is later in the route. If the run has not started and the run is 8 A.M. sameday/overnight then the “delivery” packages would include packages due for delivery that are at or expected to be at the warehouse from the prior day. P a g e | 14 3.2.5 Log Pickup use case Use Case Scenario Triggering Event Brief Description Actors Related use cases Stakeholders Preconditions Post Conditions Flow of activities Exception Conditions Log Pickup Package is being picked up Package is being picked up Package pickup generates one of two statuses: “picked up” or “out for delivery” Driver Record check payment, print label Driver, Customer, management Package data must be complete and package must have a label. Packages for order or at the warehouse are picked up. Customer packages must be paid for if not a credit order. System Actor Driver will enter package ID or scan package Set Current Truck on the label, and enter truck ID and source package to the truck ID. If (customer or warehouse). picking up from a customer, set the customer-pickup date and time and set Current Status to “picked up” unless it is a 3-hr. delivery, in which case the status goes to “out for delivery”. If picking up from the warehouse, set the warehouse pickup date and time. Set the current status to “out for delivery”. System prompts for check to be recorded if order is “cash”. Package volume not entered correctly P a g e | 15 3.2.6 Log Delivery use case Use Case Scenario Triggering Event Brief Description Actors Related use cases Stakeholders Preconditions Post Conditions Flow of activities Exception Conditions Log Delivery Package is delivered to recipient or to the warehouse. Delivery Packages get a status of “delivered” or “atWarehouse”. Driver none Driver, Customer, Management Package status must be “picked up” or “out for delivery” Package status is “delivered” or “ at warehouse” System Actor Driver will enter package ID or scan package If delivering to final destination, label, and enter truck ID and destination set the final delivery date and type (recipient or warehouse). time, and set current status to “delivered”. If delivering to the warehouse, set the warehouse delivery date and time and set the current status to “atWarehouse”. Blank the CurrentTruck for the package. P a g e | 16 3.2.7 View All Inventory use case Use Case Scenario Triggering Event Brief Description Actors Related use cases Stakeholders Preconditions Post Conditions Flow of activities View All Inventory View list of packages stored at the warehouse Ad hoc request Shows management which packages are at the warehouse Manager None Driver, Management None List of packages at the warehouse is printed Actor System Request display of all packages at the Display all packages with a warehouse. current status of “atWarehouse” in Warehouse delivery date/time sequence. Show total number of packages. Show total package volume. Exception Conditions System inventory may not match actual physical inventory. P a g e | 17 3.2.8 View Delivery Status use case Use Case Scenario Triggering Event Brief Description Actors Related use cases Stakeholders Preconditions Post Conditions Flow of activities Exception Conditions View Delivery Status Customer or Employee checks on the delivery status of a package. Desire to check delivery progress. Display delivery status for packages associated with an order or for the packages for a customer (multiple orders). Customer, Manager none Customer, Manager none Delivery status displayed for all selected packages System Actor Customer requests delivery status function If no order number entered and optionally enters an order number. select all orders for customer, else only select the order entered. Display all packages for each order selected, along with the current status. If current status is “pickedup” display the pickup date and time. If the current status is “atWarehouse” show the warehouse delivery date and time. For overnight packages: If the current status is “out forDelivery” show the warehouse pickup date and time. For 3-hour or same day deliveries a status of “out for delivery” will display the pickup date and time. If “delivered” show the final delivery date and time. P a g e | 18 3.2.9 Generate Bills use case Use Case Scenario Triggering Event Brief Description Actors Related use cases Stakeholders Preconditions Post Conditions Flow of activities Exception Conditions Generate Bills Generate a monthly customer invoice for one or more orders that have been picked up. System generated each month System generates invoices for orders (of type “bill”) that have been picked up during the relevant month. None – temporal None Management, customers It must be the first day of the month. Picked up orders of type “bill” are invoiced Actor System System will initiate on the first of the month The system will create an for the prior month. invoice record for each order, where the packages have been picked up and the order is of type=”bill”. Place the invoice number on the order and accumulate order package costs and add to Total invoice balance on the account. Subtract package costs transferred to invoice from “Balance not yet billed”. Print each customer invoice; showing Balance not yet billed Total invoice balance And each order picked up and each package with cost on the order. Show payment(s) made since last invoice. P a g e | 19 3.2.10 View Balance / Make Payment Use Case Scenario Triggering Event Brief Description Actors Related use cases Stakeholders Preconditions Post Conditions Flow of activities View Balance / Make Payment Customer checks balance and optionally makes a credit card payment. Desire to check account balance and/or desire to make a payment. System shows account balance and allows a credit card payment to be made. Customer None Customer, management At least one cash order or at least one invoice An outstanding balance has been displayed and optionally a payment has been made Actor System Customer requests online payment. System checks that the Enter order number or invoice number. customer record has a credit card account. Display the outstanding balance for the invoice or for the order to be pre-paid. Customer enters payment amount. For invoice payment: Create a payment record against the oldest invoice, and update Total invoice balance. If necessary split the payment across multiple invoices. Create a payment record per invoice with the allocated payment amount on each. For order pre-payment: Validate the order is “cash” not “billed” Create a payment against the order prior to pickup. Send transaction to credit card company. Exception Conditions Cannot pay a “billed” order. Payments for Billed orders are made against invoice. P a g e | 20 3.2.11 Maintain Cost Table use case Use Case Scenario Triggering Event Brief Description Actors Related use cases Stakeholders Preconditions Post Conditions Flow of activities Maintain Cost Table Maintain table so packages can get priced Employee sets up or makes a change to the cost table Add multiple cost records, each record being for a volume range Employee None Manager None A table of costs by service-type / package volume range is created System Actor Employee enters service-Type (3hr or System displays all cost records sameDay or overnight) for service type (if any). Customer selects cost record to modify or Add/modify/delete cost record. delete or indicates an additional cost record From cubic inches is required. To cubic inches Service type Cost Exception Conditions No volume gaps are allowed for a service type P a g e | 21 3.2.12 View and Give Service Feedback use case Use Case Scenario Triggering Event Brief Description Actors Related use cases Stakeholders Preconditions Post Conditions Flow of activities Exception Conditions View and Give Service Feedback Customer can initiate feedback or manager can respond Initiate feedback or respond to customer feedback Customer only can create feedback records, Employee can update with a response Customer, Manager None Customers, Management None Feedback record is viewed and optionally updated or new feedback record is created Actor System Customer or employee indicates a desire to System identifies the customer view feedback. from logon type and customer object else prompts for a search Employee enters search criteria (customer # System displays feedback or date range or “all feedback with no records based on selection response”) criteria. Customer notes are made visible for customer logon while internal notes are additionally displayed for internal logons. Customers can enter new feedback Create new feedback record Internal logons can update customer Update feedback record response notes or internal-only notes P a g e | 22 3.2.13 Record Check Payment use case Use Case Scenario Triggering Event Brief Description Actors Related use cases Stakeholders Preconditions Post Conditions Flow of activities Record Check Payment A check is presented at time of pickup for a cash order or a check is mailed as payment for one or more monthly invoices. Invoice payment or order payment System records payment against an order or allocates payments against one or more invoices Manager, Driver None Customer, management, Driver An unpaid order or unpaid invoice must exist One or more payment records are created System Actor Employee requests to record a check System selects either all unpaid payment, and enters customer ID or name, invoices or unpaid “cash” and whether payment is for invoice or order orders. Customer enters check number and amount. For orders: Amount must equal outstanding amount exactly, allocate check to one or more orders. For invoices: System allocates check amount starting with oldest outstanding invoice up to current invoice. So system creates a payment per invoice that references same check number. Exception Conditions Check exceeds outstanding balance Check underpays or overpays “cash” order P a g e | 23 3.2.14 View Monthly Bills use case Use Case Scenario Triggering Event Brief Description Actors Related use cases Stakeholders Preconditions Post Conditions Flow of activities Exception Conditions View Monthly Bills Management wishes to view credit billing status Management wishes to view billed business and payments Display invoices and associated payments by various criteria Manager None Management Invoices must exist Invoices are viewed Actor System Employee enters desired month or System displays a list of “to current date”. customers with billed amounts and payments. Display total billed, total paid and total outstanding for the period. Select a particular customer if desired. Display customer invoice amount and associated payments. P a g e | 24 3.2.15 Print Label use case Use Case Scenario Triggering Event Brief Description Actors Related use cases Stakeholders Preconditions Post Conditions Flow of activates Print Label Customer cannot print the label Driver prints the label Driver prints the label Driver None Customer, driver Package must have a delivery address A label is printed Actor Driver enters customer ID or name Select a package requiring a label. Exception Conditions System System displays a list of packages not picked up yet for the customer. The packages displayed must have delivery addresses. Print label to portable label printer using the Package ID as the label ID on the bar code. Printer has a malfunction; Package has no delivery address P a g e | 25 3.3 Non-Functional Requirements 3.3.1 Performance OSCS Manager must consistently deliver fast performance. One of the primary objectives of the new system is to enable drivers to deliver faster service to customers, and this goal can be met only if we design a Web site that is fast and responsive. The home page should load on a typical high-speed Internet connection in four seconds or less, and other operations must be able to be completed in the same amount of time. 3.3.2 Reliability Because On the Spot is switching from a low-tech system based on paper records, the new system must deliver the same reliability of the older methods. An unplanned period of downtime could cause a serious disruption to the company’s business processes. Implementing redundant servers will help alleviate the risk of a server going down, and On the Spot will contract with an ISP that guarantees 99.99% uptime during business hours. All maintenance affecting the delivery system must be performed after business hours. Maintenance that prevents customers from logging in must be performed late at night to minimize possible disruptions to customer payments and other mission-critical services. 3.3.4 Security Security is a concern for any business, especially one that processes customer payments online and stores credit card information in a database. The follow security requirements guard against unauthorized access to data and help preserve the integrity of the system: All customer transactions will occur using TLS encryption. All data will be backed up nightly, and redundant servers help ensure the integrity of data during business hours. The system administrator will be the only person allowed to change access permissions or interact directly with the database. Accounts will be locked out after eight unsuccessful log-in attempts to prevent bruteforce attacks. 3.5.1 Database The database needs to store information as described in the UML Domain Class Diagram (Section 4.4). The following is a summary of the most important data stored in the database: Accounts: User name, password, login type, balance P a g e | 26 Customers: Name, address, payment information Invoices: Account, bill date, amount due, print status Orders: Customer, order date/time, order status, address Packages: Order, recipient name/address, service type, size, cost, status, truck, pickup times Payments: Order, payment date, amount 3.5.2 Operations The system must remain operable during On the Spot’s regular business hours. Redundant servers will be used to help prevent a server outage from disrupting mission-critical business processes. Maintenance windows should be scheduled after regular business hours to prevent scheduled maintenance from disrupting pickup and delivery. If possible, maintenance windows should provide a means for customers to access the Web site and payment system. This way, customers will not experience a disruption when they use the Web site to find information about the company, pay bills, or look up a package’s status. Backups will be performed automatically at midnight every night to ensure that the backup system does not affect network performance during business hours. 3.4 Design Constraints The website must work with multiple browsers. Each browser can display OSCS differently. Each browser will need to be tested on multiple devices to ensure compatibility. 3.5 Other Requirements The OSCS website and database hosting must be reliable and have more than 99.9% uptime guarantee and pay credits when up time is not meet. The database will need to perform basic CRUD. The database and website will need to be designed in such a way to be easily updated and expanded in the future. 3.5.3 Site Adaptation Since this is a new website, OSCS will be launched all at once on a predefined date. P a g e | 27 4. Analysis Models 4.1 Use Case Diagram P a g e | 28 4.2 Sequence Diagrams Customer System requestService (date, time, paymentType) validateCredit (customerCredit) packageDetails (serviceType, deliveryAddress, size, weight, signatureRequired) calculateCost () requestLabel (recipient, deliveryAddress) confirmLabel () P a g e | 29 4.3 State-Machine Diagram Requestforpackagepickup() Package awaiting Pickup Packagepickup() Package Had been Picked up Request a package Pickup Arrival@warehouse() Out For delivery Oncouriertruckfordelivery() Package arrived @ warehouse PackageDelivered() Package is delivered TrackingClosed() P a g e | 30 4.4 Domain Class Diagram Business Customer Account Account Number User Code Password Logon type (customer or employee) Balance Not Yet Billed Total Invoice balance Business Name Contact Name Contact Tel Number Customer 1 0..1 0..* 1 Customer ID Address credit card number credit card expiry date credit card 3-digit code BillorCash Invoice (Bill) Individual Customer Individual Name Tel Number 1 Invoice number Account Number Invoice Bill Date Invoice Amount Invoice Due Date Printed-YN 0..* 0..1 Order 1..* 0..1 0..* 0..1 Payment Payment ID Order ID (optional) Invoice ID (optional) Payment Date Amount (applied to invoice) Check number Check amount 0..* Customer ID Order ID Order Date Order Time Order Status (open/satisfied) Pickup Address Request Pickup Date&Time BillorCash Invoice number Package 1 1..* Order ID Package ID (=label ID) Recipient Name Recipient Address ServiceType (3hr/sameDay/overnight) Volume (cubic inches) Cost Current Status ('atCustomer', 'picked up', 'atWarehouse', 'outForDelivery', 'delivered') Current Truck Customer Pick-up Date&Time Warehouse Delivery Date&Time Warehouse Pick-up Date&Time Final Delivery Date&Time P a g e | 31 Truck Route Cost Table Truck Code TripType (3hr or sameDay/overnight) Route Hours 1 CubicInchesFrom CubicInchesTo ServiceType (3hr or sameDay or overnight) Cost 0..* Truck Zone Sequence Truck Code Sequence Number Zone name Zone Zip Code Global Table Next package ID next invoice number Service feedback Customer ID Feedback Date Feedback Time Customer comments Response Notes for Customer view Response Notes for Internal view P a g e | 32 4.5 Activity Diagram Activity Diagram for 'Request a package pickup' use case. Customer System bad Request pickup Validate Credit Good Create Order Enter Package For each package Create package End For each package Confirm Order is complete Request Labels Phase No Calculate Cost Yes Print labels request a payment P a g e | 33 5. Change Management Process The changes can only be approved by Bill Wiley. Changes that are recommended by other users will have to make the suggestions to Bill. The changes to the SRS can be made by email or by phone. However, if changes are made over the phone, a follow-up email will be sent from Logistics Data Solutions or Bill detailing and highlight the changes. The changes will be approved by Logistics Data Solutions and Bill.