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.).