In: Computer Science
For this question, you are given a negotiated statement of requirements and asked to produce a structural model.
Here is the negotiated statement of requirements (NSR) for the PickMeNow System (PMNS):
PickMeNow is a new taxi company which has started its operations recently. In order to meet the on-demand transportation needs of its customers, PickMeNow has decided to invest in an IT solution to connect its customers and drivers.
Drivers and customers are required to register with PickMeNow by providing a name, contact number and an email address. PickMeNow assigns an identification number to each registered driver and customer. In addition, each driver is required to provide the details of his bank account (account number and bank name) and vehicle details as described below. Drivers can transfer the amount in his PickMeNow account to his bank account.
PickMeNow provides three types of vehicle to its customers: cars, vans and mini buses. For each vehicle, it is required to capture its licence plate number, brand and model. When a customer makes a booking for a mini bus, he has to make an upfront deposit amount. The deposit will be returned to the customer if the booking is not cancelled by the customer. For vans, there is a booking fee on top of the trip fare. If a customer cancels a booking for a mini bus, the deposit is forfeited if the cancellation is received 3 days before the date of the ride.
When a customer submits a booking to PickMeNow, he needs to specify the date and time, vehicle type, the pick-up point and destination of the trip. PickMeNow would generate a booking id, calculate the fare and broadcast this trip to all available drivers who are free to accept the booking. The customer would then choose a driver from the list of drivers who had accepted the booking. The chosen driver would then proceed to provide the taxi service to the customer.
The data to be kept for each ride includes a reference number, driver and customer details (identification number and name), fare, pick-up point, destination, distance, date, start time and end time of the ride. At the end of each ride, the driver’s account will be credited with the amount of the fare minus any fee due to PickMeNow.
After completing a ride, customers can accumulate points. After completing rides worth a total of $400, the customer will become a Premium customer. Only Premium customers can redeem their points to pay their bill. Points may be used to offset a customer’s bill and if there are insufficient points, the rest of the bill must be paid using a credit card.
Develop a structural model for the system design, by submitting your answers to the following:
(a) Identify the classes, their attributes and any hierarchical
relationship(s), omitting the foreign key associations that would
be required for the application. Submit the class description as
your answer.
(b) Appraise the associations among the classes and hierarchical
relationship(s) that would be required for the application.
Construct the class-association diagram in UML as your answer. Any
derived association should be labelled, but you need not give the
derivation.