11/20/19
Delivery Management System
BUSINESS REQUIREMENTS DOCUMENT
WWW.ONTHESPOT.COM
Page 1 of 37
Table of Contents
Table of Contents .......................................................................................................................................... 1
Document Information ................................................................................................................................. 4
Document Revision History ....................................................................................................................... 4
Glossary ..................................................................................................................................................... 4
Introduction and Systems Vision .................................................................................................................. 6
Problem Statement ................................................................................................................................... 6
Capabilities ................................................................................................................................................ 6
Business Benefits ...................................................................................................................................... 7
Stakeholders ................................................................................................................................................. 7
Internal ...................................................................................................................................................... 8
External ..................................................................................................................................................... 8
Executive ................................................................................................................................................... 8
System Requirements ................................................................................................................................... 8
Functional ................................................................................................................................................. 9
Usability .................................................................................................................................................. 10
Reliability ................................................................................................................................................. 10
Performance ........................................................................................................................................... 10
Security ................................................................................................................................................... 10
Requirements Gathering ............................................................................................................................. 11
Package Pickup Handlers ........................................................................................................................ 11
Package Delivery Handlers ...................................................................................................................... 11
Package Distribution Handlers ................................................................................................................ 12
Individual Customers .............................................................................................................................. 12
Business and Corporate Customers ........................................................................................................ 12
Use Case Modeling ...................................................................................................................................... 13
Key Actors in the Delivery Management System .................................................................................... 13
Use cases ................................................................................................................................................. 13
Page 2 of 37
Create Delivery Order ......................................................................................................................... 13
Pickup Delivery .................................................................................................................................... 13
Offload Truck ....................................................................................................................................... 14
Load Truck ........................................................................................................................................... 14
Deliver Package ................................................................................................................................... 15
Use Case Diagram ................................................................................................................................... 16
Fully Developed Use Case ....................................................................................................................... 17
Systems Security Measures and Concerns.................................................................................................. 18
Security Measures ................................................................................................................................... 19
Data Encryption ...................................................................................................................................... 20
Domain Modelling ....................................................................................................................................... 21
Customer ................................................................................................................................................. 21
CustomerAccount ................................................................................................................................... 21
Payment .................................................................................................................................................. 21
Employee ................................................................................................................................................ 22
DeliveryRequest ...................................................................................................................................... 22
Package ................................................................................................................................................... 22
DeliveryEvent .......................................................................................................................................... 22
Database Modelling .................................................................................................................................... 22
Database Schema Diagram ......................................................................................................................... 24
Class and Layer Interactivity ....................................................................................................................... 25
Class Packaging ........................................................................................................................................... 27
Storyboarding ............................................................................................................................................. 29
Development and Deployment Planning .................................................................................................... 36
Unit Tests ................................................................................................................................................ 36
The “Boy Scout” Rule .............................................................................................................................. 36
User Feedback ......................................................................................................................................... 36
Reflection ................................................................................................................................................ 37
Page 3 of 37
Working Software ................................................................................................................................... 37
Page 4 of 37
Document Information
Document Revision History
Date Version Notes Author
10/3/2019 0.1
Initial Draft SCGerkin
11/8/2019 0.2
Add domain class modeling and database schema table
information
SCGerkin
11/10/2019
0.3
Edit database information and append relational diagram. SCGerkin
11/12/2019
0.4
Add multi-sequence diagram for Pickup Delivery use case. SCGerkin
11/13/2019
0.5
Add package diagram. SCGerkin
11/15/2019
0.6
Add Storyboarding for Pickup Delivery use case. SCGerkin
11/16/2019
0.7
Add development principles. SCGerkin
Glossary
Term Definition
DMS Delivery Management System. The system proposed to solve On the Spot’s
delivery handling problems.
API Application Program Interface. An application or service accessed by another
system in order to facilitate communication between systems.
GPS Global Positioning System. Satellite-based navigation system for identifying
distinct locations throughout the entire world.
Page 5 of 37
QR Code Quick Response code. A multi-dimensional image similar to a barcode for scanning
and retrieving data.
SMS Short Message Service. A text messaging delivery protocol implemented on most
cellular devices.
NFC Near Field Communication. Uses short range radio frequency to allow devices in
close proximity to communicate wirelessly.
Biometrics Personally identifiable markers unique to every human being. These include but
are not limited to fingerprints and facial structures.
Page 6 of 37
Introduction and Systems Vision
Problem Statement
On the Spot is a courier delivery service provider, providing same-day and overnight delivery of
packages for regional customers. Created as a small courier service with one man operating all facets of
the company, On the Spot has grown considerably over the past few years due to outstanding customer
service relations, ability to provide fast and on time delivery of packages, and a commitment to fulfilling
customer needs. The business continues to grow as a direct result of implementing various systems that
provide better support for customers in the forms of phone and Internet order placement, transparent
pricing policies standardizing with package weight and size classes, and offering both per package
payment options and monthly account billing options.
As the business continues to grow and increase the number of daily packages and orders handled,
logistical handling and managing of deliveries has become a complex web of intricacies that are unique to
individual customers, accounts, orders, and packages. To maintain excellent flexibility in offerings to
customers for providing same-day and next-day delivery, On the Spot will implement a new Delivery
Management System (DMS) for processing orders in bulk. This system will be able to grow and scale as
demand for delivery services increase in the region and as On the Spot expands regional offerings.
Additionally, the system will help On the Spot continue to improve upon the customer experience by
providing more detailed information about deliveries as they are happening.
Capabilities
The capabilities for the new Delivery Management System will include the following improvements
over the present system:
Customers will be able to track packages from order creation to package delivery,
following their package along every step of the delivery process.
Records and reports can be created to better identify and understand customer needs,
high volume pickup and delivery areas, customer ordering patterns, and metrics for
determining use of On the Spot services.
Automate the sorting and routing process for pickups and deliveries.
A simple and intuitive user experience for both On the Spot customers and employees
interacting with the system.
Allow seamless modifications to orders by either customers or drivers prior to and during
package pickup events.
Page 7 of 37
Update customer accounts in real time as orders are placed, fulfilled, and account
payment is received.
Business Benefits
Adopting the new Delivery Management System will lead to greater overall efficiency for delivery
events. With greater efficiency in managing the deliveries of its customers, On the Spot will gain several
business advantages. These include:
On the Spot will be able to incrementally increase regional coverage for delivery areas
which will facilitate overall expansion of the business.
The system will function as a scalable model for increasing package delivery capabilities
on increasingly larger scales.
By automating schedules, pickup and delivery routes, and customer account
management, On the Spot will be able to focus on continuing to provide outstanding
customer service relations.
Customers will have increased confidence in On the Spot's ability to provide fast and
reliable delivery for their packages which will bolster customer retention and entice more
businesses and individuals to use On the Spot courier services.
Customers will be able to select from a wider range of delivery prioritization options,
allowing On the Spot to offer faster deliveries for critical package deliveries or reduced
cost options for low priority shipping needs.
Seamless interfacing with corporate business accounts by laying a foundation for creating
a public application program interface (API) to further increase the efficiency of creating,
tracking, and maintaining bulk package delivery, allowing On the Spot to better compete
with larger brand operations in the delivery arena.
Stakeholders
Relatively still in its infancy, On the Spot has few stakeholders concerned with proper implementation
of the Delivery Management System. However, it is important to identify these individuals and their
professional and personal goals and concerns to implement a new system in a seamless manner. These
stakeholders and brief description of their involvement in the new system are detailed as follows:
Page 8 of 37
Internal
Package Pickup Handlers—Responsible for receiving packages directly from customers
and transporting them to the Distribution Center for handling.
Package Delivery Handlers—Responsible for transporting packages from the Distribution
Center directly to customer delivery locations.
Package Distribution Handlers—Responsible for receiving packages in the Distribution
Center, sorting packages into batch deliveries, and loading delivery trucks with packages
once sorted.
External
Individual customers—Individuals requiring On the Spot delivery services not affiliated
with a business or corporate account. Typically need 1 to few packages delivered per
order.
Business customer—Businesses ranging from small to mid-size operations requiring
delivery of packages in various ranges from 1 to many packages per order and 1 to many
delivery locations.
Corporate customers—Large scale businesses requiring large delivery orders to be
processed en masse to several delivery locations on a routine or semi-routine basis.
Executive
Bill Wiley (Owner/Operator)—On the Spot was founded by Bill to provide local businesses
with more options for handling their package delivery needs outside the large
international couriers of the region. Bill has built On the Spot from the ground up by
consistently placing the needs of the customer first in all decisions and has a vested
interest in maintaining that founding principle in all matters, no matter the scope, that
effect On the Spot.
System Requirements
In order to build an effective Delivery Management System that fulfills the needs and
requirements of a diverse range of system users, detailed requirements about what the system must
provide have been identified. What follows is a list of basic requirements, grouped by scope, that must be
implemented into the system in order to qualify migration of delivery procedures to the new Delivery
Management System a success. This list is by no means exhaustive and individual requirements may be
added to, amended, or removed as additional information gathering is handled and the scope of the
project is better understood.
Page 9 of 37
Functional
Ability to track packages from delivery order creation through the delivery handling
process and to the point of package delivery. Customers must be able to see, identify, and
understand where their package is throughout the delivery process.
Update customers in real time as the status of an order or package changes. Customers
should have the option to enable SMS messaging and/or email notifications of changes in
delivery status.
Provide an estimated pickup and delivery time range within a certain degree of precision.
Automate delivery route scheduling and planning, sort and batch orders into delivery
regions, and partition and assign batches into individual trucks for delivery.
Allow updates to individual packages and orders prior to order pickup event. Packages
can be added or removed from orders, delivery needs can be modified or removed, and
entire orders can be cancelled.
Update customer accounts with order histories to provide customers with a complete
record of all actions taken by On the Spot personnel.
Real-time GPS tracking and reporting of trucks during pickup and delivery events for
monitoring by Distribution Center management. This should also be offered to customers
on a minor time-delay for additional accuracy in predicting delivery time.
Allow for basic tracking information based on tracking identification number and without
needing to log into an account to lay groundwork for creating a public API. This
information should be limited to very broad information until the implications of
publicizing these details is further understood.
Calculate and provide shipping cost estimates to customers at the time of order creation.
Maintain a list of active elements involved in package handling. This is to include but is
not limited to Package Handlers, Distribution Center employees, package scanning
devices, and vehicles.
Create real-time reporting for all maintained information. This is to include but is not
limited to maps of current truck locations and inventory, current route schedules and
maps for individual trucks, and devices and vehicles in need of service or repair.
Create reports based on past deliveries to help users better understand usage, regional
and time period differences and needs, and any other information the user requests.
Page 10 of 37
Usability
The system must be accessible on a mobile basis. Devices used in the field must be
wireless and capable of communicating directly with the system across the entire regional
delivery area and scalable to increased regional sizes.
Package label scanning must be quick and simple. Labels should be outfitted with QR scan
codes created by the system to be scanned by infrared code scanners present in handheld
devices.
Creating new record report types should be simple and adaptable to growing business
needs.
Reliability
Wireless and GPS connectivity should always be maintained for all devices . The system
must provide a backup solution should the primary system fail for any reason. Trucks
should also have backup devices for use should the primary device fail during pickup or
delivery events.
Location reporting must be accurate and precise enough to report a truck or device
location within one hundred yards of actual physical location. Less precision can lead to
confusion in providing accurate scheduling and task instructions. Degree of accuracy and
precision should be a moving target, increasing as the system evolves.
Devices and vehicles must be scheduled by the system for routine inspection and servicing
to maintain 90% uptime of all devices and vehicles.
Performance
Package label scanning must be simple and instant. The system should return the package
information as soon as a label is scanned to avoid delays in handling of packages. The
bottleneck should be the speed at which a user can physically scan a device, not from the
scanning device software.
Automated tracking notifications to customers should be dispatched within one minute
of tracking status change.
The system should be scalable to handle increased load during busy seasons and as the
business continues to grow and attract new customers.
Security
Modification of package information by On the Spot employee accounts should only be
possible using a multi-factor authentication (MFA) model. MFA provides a model where
at least two out of three of the following conditions are satisfied:
Page 11 of 37
i. Something you know: an account ID and password
ii. Something you have: Package scanning device, cell phone, security token
iii. Something you are: Biometric data such as finger prints or facial recognition.
Remote devices must be encrypted and capable of remote wipe in case of loss or theft.
Segmentation of roles, duties, and permissions must be created to limit the capability of
any individual role from changing package information that should not otherwise be
changed. For instance, only a role associated with Distribution Center employees can
mark an order as "received by Distribution Center" or "ready for delivery." Users of the
system may have multiple roles but can only use one role at a time. In addition to security,
this provides redundancy against mistakes throughout the delivery process.
Requirements Gathering
To better understand user requirements for the system and to help improve development,
information gathering will need to be completed at every iteration of system development. The following
initial questions have been created to further refine and understand the needs of the system during early
development. These questions will also help to prioritize the creation of functions in the system.
Package Pickup Handlers
When picking up a package order from a customer, what is a major point of friction during
the process that should be better managed? What can cause the process to slow down?
Would informing a customer of your arrival help to streamline the process?
What is the process for recording information about a pickup time and what pieces of
information do you need to gather?
Do you need specific equipment for transporting some deliveries from the pickup point
to the truck, such as a hand truck dolly?
If yes, how do you know if you will need tools or equipment before initiating a pickup
event from a customer?
If a customer is to pay at the time of pickup, how do you take the payment, how is it
recorded, and what form of receipt does the customer receive?
Package Delivery Handlers
How do you know that a truck is loaded and ready to go on delivery?
Do you plan your delivery route, or is it provided?
Page 12 of 37
If provided, who provides the route?
If you plan your own, how do you make decisions about which places to make deliveries
first?
If you arrive at a delivery location and have a package that requires signature for delivery,
but no one is available for a signature, what actions are taken?
Do you often need to call the Distribution Center for clarification on delivery details?
If a package has an invalid address on it and this was not caught before being placed on
the truck, how do you handle this situation?
Package Distribution Handlers
How is a truck unloaded upon arrival at the Distribution Center? Walk through the
process.
What criteria are used to sort packages into batches for delivery?
How are individual packages logged for tracking in the current system? Where is this
information stored?
Are there identifying marks created or placed on sorted packages to make sure a package
is not accidentally sorted multiple times?
If, during loading a truck for delivery, a package is missing, what actions are taken?
Individual Customers
What made you choose On the Spot services instead of a large, international brand
shipping provider?
What improvements can be made to the delivery system from your perspective?
How important is it for you to know where your package is during delivery?
What can help to better streamline and automate the delivery pickup procedure for you?
Would you be interested in physically dropping your packages at a designated drop off
location for reduced shipping cost?
Business and Corporate Customers
How do you designate the person in charge of handling package pickup and delivery by
On the Spot?
Do you use any other courier companies for providing delivery needs?
If so, what do those companies provide that On the Spot cannot fulfill?
Page 13 of 37
If On the Spot were to offer those services, would you be more likely to use On the Spot
for fulfilling those needs?
What additional reports or information can On the Spot provide to you about your
shipping orders?
Use Case Modeling
When developing a system, the most important task is to identify how the system will be used
before deciding how it will accomplish these tasks. For this to be fully understood, user stories are created
to describe individual tasks the system must complete, and the processes involved in completing these
tasks. Several base use cases have been identified and described below, including the actors involved in
executing these use case events.
Key Actors in the Delivery Management System
Package Pickup Handler
Package Delivery Handler
Package Distribution Handler
Customer (may represent an individual account holder or business/corporate delivery
coordinator)
Delivery Recipient (for delivery to an individual not a direct customer of On the Spot)
Use cases
Create Delivery Order
Actors:
Customer
Description:
This use case begins when a user has logged into their account and provides the necessary
information for creating a delivery order. The system creates a new delivery tracking object with
the delivery information including number of packages, approximate sizes of packages,
approximate weights of packages, delivery address, and shipping priority. The system creates an
estimated pickup timestamp, estimated delivery timestamp, estimated shipping cost, and unique
order tracking ID number. This use case ends when this information is displayed to the user.
Pickup Delivery
Actors:
Page 14 of 37
Package Pickup Handler
Customer
Description:
This use case begins when a delivery truck has arrived at a package pickup location. The
system is notified of arrival and retrieves all applicable package and order data to be displayed on
the handler's package scanning device. The driver scans each package. The system displays the
package information to the device. The driver verifies the package information with the customer
and alerts the system. The system updates and saves package and tracking information. This use
case ends when the driver has loaded all packages onto the delivery truck.
Offload Truck
Actors:
Package Pickup Handler
Package Distribution Handler
Description:
This use case begins when a package pickup truck arrives at the distribution center.
Packages are removed from the truck and scanned by package scanning devices. The system
updates and saves the package tracking information. The system notifies the Distribution Center
Inventory System to add a new package to inventory. The system notifies the package distribution
handler of sorting batch location to store the package. This use case ends when all packages have
been offloaded from the truck, all packages have been scanned, and the system has notified the
Distribution Center Inventory System that all packages are now in the Distribution Center.
Load Truck
Actors:
Package Distribution Handler
Distribution Center Inventory System
Package Delivery Handler
Description:
This use case begins when a truck is marked as ready for delivery. The system designates
an order batch to be loaded onto the truck. The system updates the Distribution Center Inventory
System. A package distribution handler scans each individual package with a package scanning
device and places it in the truck. The system updates and saves the package tracking information.
The system notifies the Distribution Center Inventory System a package is to be removed from
Page 15 of 37
inventory. This use case ends when all packages in a batch have been scanned and loaded into
the truck.
Deliver Package
Actors:
Package Delivery Handler
Customer
Delivery Recipient
Description:
This use case begins when the system is notified that a delivery truck has arrived at at or
near delivery location. The system retrieves all package and order information for the location.
The system updates the local package scanning device in the truck. The driver scans each package
to be offloaded at the location. The system updates the package tracking information. The driver
delivers the package or order to the Customer, Delivery Recipient, or designated drop-off point
and scans the package upon receipt of the package. The system updates the tracking information
to delivered. The system records and saves the full delivery process. This use case ends when the
system marks the order as "closed."
Page 16 of 37
Use Case Diagram
The following use case diagram is provided to allow visualization of actors and their interactions
with use cases and to link the flow of events to the Delivery Management System. The use cases involving
the DMS are identified and encapsulated by the system. Each individual actor is also identified and
connected to applicable use case scenarios. In this way, we can better understand the interaction of actors
with the system and each other.
Page 17 of 37
Fully Developed Use Case
The Pickup Delivery use case has been identified as the most important use case of the Delivery
Management System. This use case involves significant customer interaction and for new customers is
the first significant interaction that customer has with On the Spot as a company. As such, a fully
developed use case with more detail is presented below.
Use case name
Pickup Delivery
(cash payment)
Scenario
A deliver
y is ready for pickup from a customer. The customer wants to pay for
the delivery at time of pickup with cash.
Triggering event
Driver arrives at pickup location
Brief Description
A customer has placed an order for package(s) to be picked up and
delivered
to by On the Spot services. This customer has decided to pay cash at the time
of pickup. This use case begins when the delivery driver arrives at the pickup
location and ends when all packages have been loaded onto a delivery truck.
Actors
Packa
ge Pickup Handler
Customer
Related use cases
Alert
Distribution Center
(incoming package)
Reroute in-field package
Make payment
Stakeholders
Customer
Package Pickup Handler
Owner/Operator
Preconditions
i.
Customer chose to make cash payment for order at
pickup during
creation.
ii. Customer account is not delinquent.
iii. Field scanning device is charged.
iv. Truck GPS functioning correctly.
v. Cellular network functioning correctly.
vi. Driver is located at delivery location.
Postconditions
i.
Customer account updated
with ord
er information.
ii. All packages have proper packing label.
iii. Tracking information updated.
Flow of Activities
Actor
System
i.
Truck enters pickup location radius
.
GPS alerts System of arrival
System retrieves information for
location
System updates device with pickup
information
ii.
Handler
logs into device
Device displays order information
iii.
Driver confirms location information
matches current location
System updates truck tracking system
iv.
Driver scans package
System marks package as picked up
Device displays package information.
Page 18 of 37
v.
Customer confirms information
System saves and updates information
for order.
System updates package order cost
System updates customer account
information with updated order
information
System prompts for payment
vi.
Customer provides payment
Driver logs receipt of payment
System updates customer account
System updates order information
System updates billing system
System prompts for customer
signature confirming pickup
vii.
Customer
electronically signs device
confirming receipt of pickup
System updates customer account and
order tracking information
viii.
Customer indicates desire for paper
receipt
Device prints receipt for customer
ix.
Driver physically loads package(s)
into truck, scanning each package as
it is loaded
System updates package
tracking
information
System updates truck inventory
x.
Driver finishes scanning packages
System alerts
Distribution Center
system of incoming package(s)
System receives and displays updated
pickup route information.
Exception
Conditions
i.
GPS location does not correspond to pick up location
.
iv. Package label illegible or unable to be scanned.
v. Incorrect or incomplete order information on file.
vi. Customer changes payment method.
viii. Printer out of paper.
ix. Driver forgets to scan a package.
x. Package is rerouted for immediate delivery.
Systems Security Measures and Concerns
On the Spot services a wide variety of customers who depend on discretion and confidentiality in
shipping services. Customers expect their orders to arrive undamaged and to be safe from loss or theft.
Customers also entrust On the Spot with a significant amount of personally identifiable details including
addresses, contact information, and payment methods. Because of these factors, it is important to make
sure that the Delivery Management System is safe from fraud, physical package theft, and data theft. The
following measures have been identified to help satisfy all of these requirements.
Page 19 of 37
Security Measures
Access controls for all internal On the Spot devices must implement multi-factor
authentication for viewing or acting on all internal data. As discussed earlier, multifactor
authentication will require a user to fulfill at least two the of three following needs:
i. All employees will be required to have unique account ID and password information.
ii. Logging into a system that does not require a field device (having a field scanning
device will count towards this requirement) will require another form of physical
authentication such as SMS messaging to a registered On the Spot cellular phone or
near field communication (NFC) authentication device/key.
iii. All field devices will allow an employee to access the device via biometrics in the form
of fingerprint scanning. This allows a field operative to log in to a device quickly
without needed to type account information using a small, touch screen keyboard on
field devices.
Additional access controls will be implemented on field devices in the form of GPS
location-based activities. For example, a package cannot be marked as delivered if the
field device is not within a certain range of the delivery location. This helps to protect
against both fraud and mistakes in the entire delivery chain.
Changing package information during a pickup delivery event will be an "Opt-in" event
requirement for individual customer accounts. This may prove to be frustrating to
customers and will need to be re-evaluated during further iterations. However, this
provides customers added security and trust in knowing that once their delivery
information is recorded, processed, and saved to an order, it cannot be changed by an
unauthorized actor.
Changing package information during a pickup delivery event will require customer
confirmation in the form of a signature provided after changes are made. Information
provided will additionally be validated for accuracy, reasonability, and completeness. For
example, if a delivery address needs to be changed or updated at the time of pickup, the
address will be verified for completeness and confirmed for accuracy.
All information passed from field package scanning devices to the system will be
encrypted and initiated only after verification of connection to the Delivery Management
System has been completed using an asymmetric key exchange. A symmetric key
encryption will then be used to transfer data from a field scanning device to the system.
Any time a connection between the field scanning device and Delivery Management
System is severed, the above measure will have to be repeated.
Page 20 of 37
All data recorded and saved by On the Spot systems must be continually backed up to an
offsite location on a regular basis.
A complete audit trail of event information is created as matter of routine and how the
system functions. This will provide additional security against fraudulent activity by
allowing all actions taken on a delivery order or package to be fully reviewed
retrospectively to check for unusual activities and identify actors involved in fraudulent
behavior.
Physical security for trucks will need to be enforced and monitored. Package handlers
should be trained on the proper method to secure trucks physically from intrusion. Locks
and security devices should be checked and serviced as needed.
Data Encryption
A significant amount of data is passed between the Delivery Management System and field
scanning devices during the regular course of business. Additionally, a significant amount of information
is recorded and saved by the system. To combat the potential for data intrusion, the following data are
identified as sensitive and must be secured and encrypted during an event in which this information is
transferred between devices or systems. The risks and consequences of this data being breached have
also been identified.
Customer account information. This contains private information about a customer
including but not limited to address, contact information, and delivery information. This
information must be encrypted when recorded and saved and additionally when passed
between systems or devices. Customer information can be used to create predictive
behaviors for when an individual customer is at or away from home. This information can
be used against our customers to carry out the theft of packages or home property during
times they are not home. Additionally, customers entrust On the Spot to keep their data
private. A breach of this information can lead to identity theft and would cause a
significant loss of trust in On the Spot by customers and potentially cause significant
business losses or legal action against On the Spot.
Customer payment information. When payments are received during a pickup delivery
event, this information must be encrypted before verifying the payment method. Theft
of this data can lead to fraudulent activity by malevolent actors at a cost to our customers.
Likewise, this would lead to a loss of trust by our customers and possible legal action
against On the Spot.
Precise, real-time tracking of truck locations. This information should only be provided to
authorized actors within On the Spot and encrypted during transmission. Customers can
view general locations of trucks but should never have access to exact locations. Breach
Page 21 of 37
of this data could potentially lead to coordinated theft of entire trucks or items from
within a truck.
All data stored on field scanning devices or other mobile device. Should a device be stolen
or lost, all information should be saved in an encrypted format so that it cannot be
retrieved by an external actor. Additionally, all devices must have the capability to be
completely wiped remotely should a device be compromised, lost, or stolen. Stolen
devices are a major vector for cyberattack and must conform to strict security measures.
Domain Modelling
In order to implement the DMS in a manner that is robust, scalable, and efficient, it is useful to segregate
individual domains that will can represent the various actors on and within the system. These domain
classes will be used to aggregate and track data throughout the system and provide extensibility and
reusability by following object-oriented design principles when determining the various domain classes
and their aggregated information. Listed below are some of these domain classes, what they represent,
and what they are responsible for knowing.
Customer
A Customer encapsulates any individual person or business who places a delivery order with On The Spot.
This will be used as a base class for aggregating data that is common to all customer, regardless of type.
These data include the customer name, address, phone number, and additional contact information as
needed. Each Customer will additionally have a CustomerAccount which will be discussed next.
CustomerAccount
A CustomerAccount will represent the needs associated with a customer that has an ongoing active
account On The Spot. This data will be separate from the Customer account to separate the concerns and
actions involved with interacting with the system. CustomerAccount will primarily be concerned with
billing and payment interactions. As such, the data associated with this class include a current account
balance, frequency of recurring bill dates, and the amount the account is to be billed during this time (for
accounts with extended contracts). CustomerAccount will additionally aggregate Payment(s).
Payment
A Payment is initiated either on a recurring basis, at the time an order is placed for delivery, or at the time
of package pickup. Attributes of a Payment include the date of payment, the amount paid, the payment
type (i.e. cash, credit, check, etc.), and the method by which the payment was collected (i.e. online, in
person, recurring bill, etc.).
Page 22 of 37
Employee
Each Employee of On The Spot will need to be stored persistently to facilitate the goal of transparency
and efficiency of tracking packages as they move through the life cycle of a delivery. Attributes of an
Employee consist of the employee name, title, address, phone number, hire date, and a list of role
privileges allowed to the employee.
DeliveryRequest
A DeliveryRequest is created at the time a Customer submits an order for delivery (or on a recurring basis
depending on the customer). A DeliveryRequest will consist of a date and time of the request and the
location of the pickup. Additional data that could potentially be attributed to a DeliveryRequest is a list of
Packages included in the delivery.
Package
The Package class will aggregate data about an individual package that will go through a delivery life cycle.
This class contains attributes for the weight class of the package, the shipping name and address, and a
field for the current status of the package (i.e. Awaiting Pickup, In-Transit, Delivered, etc.).
DeliveryEvent
A DeliveryEvent will encapsulate the delivery life cycle of an individual or group of packages. As such, it
will aggregate a list of Packages, a DeliveryRequest, the date and time that the DeliveryRequest was picked
up by a package pickup handler, the cost of the delivery, a field for the status of the delivery, and the date
and time that the DeliveryEvent is complete.
Database Modelling
Based on the domain classes identified above, implementation and design of the database to store this
information can be streamlined significantly. Because each domain class contains only the attributes
necessary for the individual class, third normal form (3NF) will be straightforward to adhere to across all
tables within the database. The table on the following page can be used as a base model for creating the
database schema and includes individual table names, primary keys, any foreign keys (if applicable), and
fields.
Page 23 of 37
Table Name
Primary Key
Foreign Key
Fields
Customer
s
CustomerId
AccountId
CustomerName
Email
PhoneNumber
Street
City
State
ZipCode
CustomerAccount
AccountId
CustomerId
Balance
BillDate
BillAmount
PaymentMethods*
MethodId
none
MethodDesc
CollectionMethods
MethodId
none
MethodDesc
PaymentTransactions
PaymentId
AccountId
PaymentMethod
CollectionMethod
DateOfPayment
Amount
PriorityDetails*
PriorityId
none
PriorityDesc
DeliveryRequests
RequestId
AccountId
Priority
InitiatedDateTime
RequestedDateTime
PickupName
PickupStreet
PickupCity
PickupState
PickupZipCode
StatusDetails*
StatusId
none
StatusDesc
DeliveryEvents
DeliveryEventId
RequestId
Status
PickupTime
DeliveryStreet
DeliveryCity
DeliveryState
DeliveryZipCode
WeightDetails*
WeightId
none
MaxWeight
MinWeight
WeightDesc
Packages
PackageId
RequestId
DeliveryEventId
Weight
Status
none
aggregates
foreign keys
Employees
EmployeeId
none
Name
Title
Street
City
State
ZipCode
PrivilegeDetails*
PrivilegeId
none
PrivilegeDesc
EmployePrivileges
none
EmployeeId
PrivilegeId
Linking table, will be in
2NF
*Denotes table is for storing enumerated field details.
Page 24 of 37
Database Schema Diagram
Based on the above list of tables and their respective fields, the following schema diagram has been
created to illustrate the relations between the tables.
Page 25 of 37
Class and Layer Interactivity
When attempting to conceptualize the various domains and classes involved within a use case, it is useful
to create a multilayered sequence diagram illustrating the interactions between each class and layer
within the system. The use case Pickup Delivery has been fully developed (as above) and is a significantly
complex use case involving many different aspects of the overall system and interacts with multiple layers
of the system (including domain, view, and data).
The diagram on the following page uses the information gathered for the use case Pickup Delivery to help
provide a visual cue to understanding how the system will interact internally. This diagram is intended as
a general starting point for implementing the use case within the system and may evolve as the problem
within the system is understood better. However, using this diagram, we can get a very good idea of the
lifetime of objects and layers involved, as well as the sequence that will be involved for implementing this
use case.
Page 26 of 37
Page 27 of 37
Class Packaging
In order to organize and segregate responsibilities between classes, each class will be placed into a
package that details where it will fit into the hierarchal tree of view, domain, and data access. The
organization of these into individual packages can then be aggregated into an overall package that will
help to better maintain loose coupling while developing the system. Each layer and package should point
in one direction only. For example, the domain class should not point in the direction of the view, and the
view should only point to the domain layer.
By maintaining this loose coupling, the business logic of the overall system will not be impacted by
changing requirements for the user interface or the underlying data management system. Additionally,
the data management will act independent of all business logic.
What follows is a package diagram illustrating how each class fits into a specific layer and how each layer
interacts with a subsequent layer. Note that all arrows point only in one direction to maintain a loose
coupling of layers overall.
Page 28 of 37
Page 29 of 37
Storyboarding
The design and architecture of the user experience is an important aspect of implementing the On The
Spot system. It will be important to all stakeholders involved that the system be easy to use and balance
the information provided at every step. Once again, using the fully developed use case of Pickup Delivery,
basic storyboarding for the screens involved have been created and are shown in the following pages.
These are rough sketches and should not be considered final as more information is gathered from the
respective stakeholders on how to better improve the overall experience.
Each image is meant to represent a different stage of the Pickup Delivery use case. Some screens have
been omitted and can be further developed in future iterations. At this time, it is important to get the
overall theme and feel of how the system will function as a prototype for developing further storyboards
and screen views.
Each screen is displayed as a smartphone application, although this could easily be adaptable to custom
created devices that will have the technology required to implement the controls that a Package Pickup
Handler will need in order to facilitate the receiving of new deliveries and packages.
Note that, as a smartphone application, the basic technology requirements of a more modern smartphone
are included. This includes a camera of sufficient resolution in order to scan package QR codes during
pickup, the inclusion of a biometric input device for unlocking with a fingerprint, and mobile data usage.
The details about these inclusions are not elaborated on in order to allow for better adaptability to various
devices that might be used in future designs.
Page 30 of 37
Page 31 of 37
Page 32 of 37
Page 33 of 37
Page 34 of 37
Page 35 of 37
Page 36 of 37
Development and Deployment Planning
By following Agile principles of design, the On The Spot Delivery Management System will maintain the
ability to improve, adapt, react, and scale as further requirements are understood about how the system
should function. During greenfield development of the system, deployment will be limited to the end of
each iterative cycle of development. These iterations should be every two weeks with the goal of each
iteration culminating in a development in the system that is ready to be deployed. However, as the project
progresses, the goal should be for continuous integration and development to be implemented as soon
as possible. This development life cycle will be achieved using the principles below.
Unit Tests
The development team will implement the standards of Test-Driven Development. Each individual class,
module, and even method will require extensive use cases of not only the expected input and output but
also exceptional cases. By creating and maintaining an extensive suite of unit tests, development can be
streamlined significantly, allowing significant cost reduction and maintaining a consistent development
schedule and level of productivity throughout the development of the system. Additionally, automated
testing can significantly lower the cost of quality assurance testing and the overall cost of maintaining the
system.
The “Boy Scout” Rule
“Always leave the code you’re editing a little better than you found it”
- Robert “Uncle Bob” Martin
Developers will be expected to continuously improve upon the system during development. By
maintaining the above standard of unit testing, code improvements and refactoring can be achieved with
significant ease. By continually improving the inner details of the coding development, the system will be
resistant to fragility and rigidity inherent in unorganized and complex systems.
User Feedback
At all points of deployment, user feedback will be collected in order to better understand the growing or
changing needs of the users within the system. This feedback should drive the overall design process. By
maintaining the system with unit testing (as above) and striving for low coupling across the system,
individual modules can be adapted to constant changes that users may need. The priority for development
is always to maintain customer satisfaction and adapt to their needs.
Page 37 of 37
Reflection
At the end of each iteration, teams will be required to reflect on the challenges presented and solutions
provided through the iteration cycle. This allows the entire team to learn from mistakes and improve
development on a continual basis. Technical debt can be better managed by understanding the individual
and group difficulties of development which will increase productivity and decrease the overall cost of
development.
Working Software
The only measure of progress and success can be the implementation of solutions that work. The primary
focus, then, will be on to provide a working software solution to the business problems as they arise. At
no point should anything be integrated into the system that does not work completely. This will be
achieved by keeping iteration scope limited to manageable limits and avoiding scope creep. As discussed
earlier, each iteration should end with a deployable system.