UseCase & Method Descriptions

profilevenkatatheertha
SAPM_Project.docx

1. Use Case Diagram

The following Use Case Diagram shows the proposed system:

The actors of the system are Driver, Customer, Credit Card Company and Google Maps.

The use cases involved are:

1. Request Cab

Extension points –

1. Request Schedules Ride

1. Apply discount coupons

1. Process payment

1. Find nearby cabs

1. Accept Ride request

1. Receive Feedback

1. Register

1. See nearby available cabs

Extension Points -

1. See the car and driver Details

1. See the car and driver details

1. Request scheduled ride

Extension Points- Request specific driver for ride

1. Request specific driver for ride

1. See predictive price surge

1. Use Case Description:

Use case description provides detailed description for use cases designed in above use case diagram.

Use Case Name:

Request Cab

Primary Actor:

User

Brief Description:

User requests car from uber

Stakeholders:

Driver: Picks and drops user to desired location Google maps: suggests nearby rides

Trigger:

User clicks on “Confirm ride” button

Normal flow of events:

1. Login using user details

1. Accept From and to location from user

1. Receive car class details from user

1. Execute Find nearby rides Use Case

1. Display user with cab available time and cost

1. Execute Apply Discount Coupons use case

1. Receive user’s confirmation for ride

1. Execute Receive Payment Use case

1. Send ride details to driver

1. Receive driver confirmation

1. Send ride details to customer

1. Receive feedback for service

Alternate/Exception flow:

1.a1. If the login fails, redo this step

1.a2. If not a registered user, execute Register use case

5.a1. If Coupon code is not valid display appropriate error message

6.a1. If user cancels the ride, go back to Request cab option

12.a1. If driver cancels the request, go back to Request cab

Use Case Name:

Process payment

Primary Actor:

User

Brief Description:

User makes payment

Stakeholders:

Payment Gateway: Processes payment for the ride

Trigger:

User clicks on “Process payment” button

Normal flow of events:

1. Once user confirms ride redirect to payment portal

1. Display user with payment portal

1. Receive details - CCNumber, CCName,CVV & OTP

1. Debit from user account

1. Credit into driver account and Uber account

1. Send payment acknowledgment to the user

1. Send driver with payment credited acknowledgement

Alternate/Exception flow:

3.a1. If Card details are invalid, redo step 2

4.a1. If the payment processing fails, take user to step 1

Use Case Name:

Find nearby rides

Primary Actor:

Google maps

Brief Description:

Google maps find nearby cab locations

Stakeholders:

User: Provides pickup location

Trigger:

User clicks on “Ride now/Schedule ride” button

Normal flow of events:

1. Receive pickup and drop location

1. Receive the Cab class details from user

1. Based on pickup location and cab class find nearby cabs

1. Suggest user with closest cab to schedule ride

Alternate/Exception flow:

Use Case Name:

Accept ride request

Primary Actor:

Driver

Brief Description:

Driver accepts ride request

Stakeholders:

User: Provides pickup location

Trigger:

User clicks on “Ride now/Schedule ride” button

Normal flow of events:

1. Send ride request to all nearby drivers

1. Provide driver with location details

1. Receive ride confirmation from the driver

Alternate/Exception flow:

3.a1. If driver cancels ride request, redo step 1

Use Case Name:

Receive Feedback

Primary Actor:

User

Brief Description:

User gives feedback

Stakeholders:

Driver: Receives feedback for the ride

Trigger:

Ride completed

Normal flow of events:

1. Redirect user to ratings and review page

1. Receive feedback for the ride from the user

Alternate/Exception flow:

2.a1. If user does not want to provide feedback, bypass above user case

Use Case Name:

Register for the application

Primary Actor:

User

Brief Description:

User registers for the application

Stakeholders:

Trigger:

User clicks on “Register/Sign up” button

Normal flow of events:

1. Display the details page to User for filling up information

1. Receive details like Name, Email, Contact from User

1. Validate above details

1. Notify user of the app registration once successful

Alternate/Exception flow:

3. a1. If the Username, Email or Contact is already associated with an existing account, display an error message to the user

Use Case Name:

See nearby available cabs

Primary Actor:

User

Brief Description:

Based upon location nearby cabs are displayed to the user

Stakeholders:

Google maps: display nearby cars based on location

Trigger:

User provides pickup and drop location

Normal flow of events:

1. Receive user location

1. Display nearby cars available for the ride

Alternate/Exception flow:

2.a1. If cars not available currently, inform user to re-enter location after some time

Use Case Name:

See the car and driver details

Primary Actor:

User

Brief Description:

Display the car and driver details for the nearby cabs

Stakeholders:

Google maps: display nearby cars based on location

Trigger:

User clicks on a car from nearby cars

Normal flow of events:

1. Receive the selected car from user

1. Verify the car location and fetch the car details

1. Display the car and driver details to the user

Alternate/Exception flow:

Use Case Name:

Request scheduled ride

Primary Actor:

User

Brief Description:

User selects time for the ride and confirm it

Stakeholders:

Driver: Confirms ride and take user to desired location

Trigger:

User confirms time of the ride and clicks on “Schedule” button

Normal flow of events:

1. Receive pickup and drop location from the user

1. Receive cab class from the user

1. Receive ride schedule time from the user

1. Display user with cab available time and cost

1. Accept coupon codes from user, if any

1. Receive user’s confirmation for ride

1. Execute Receive Payment Use case

1. Send ride details to drivers

1. Receive driver confirmation

1. Send ride details to customer

Alternate/Exception flow:

5.a1. If Coupon code is not valid display appropriate error message

6.a1. If user cancels the ride, go back to Request cab option

9.a1. If driver cancels the request, go back to Request cab

Case Name:

User requests driver for the ride

Primary Actor:

User

Brief Description:

User requests a specific driver from the ride history for his next ride

Stakeholders:

Driver: Confirms availability for the ride

Trigger:

User clicks on “Request a driver” button

Normal flow of events:

1. Fetch all previous rides of user and relevant drivers from database

1. Display user with previous rides and drivers

1. Receive user choice for the driver

1. Receive pickup and drop location from the user

1. Contact user selected driver for availability

1. Receive driver confirmation

1. Send ride confirmation to the user

Alternate/Exception flow:

2.a1. If user is scheduling ride for the first time, Request driver option should not be available

6.a1. If driver is not available for the ride, inform user with appropriate message and take user back to step 2

Use Case Name:

See predictive price surge

Primary Actor:

User

Brief Description:

Suggesting user with cost effective time for the ride

Stakeholders:

Trigger:

User provides location and clicks on Cost estimate button

Normal flow of events:

1. Receive the pickup and drop location from user

1. Receive schedule time

1. Display user with cost estimate for the given time

1. Fetch historic data for the given time frame

1. Display user with a time series graph of more economic options within same time frame (+/- 1hour)

Alternate/Exception flow:

2.a1. If user is scheduling ride for the first time, Request driver option should not be available

6.a1. If driver is not available for the ride, inform user with appropriate message and take user back to step 2

Use Case Name:

Cancel ride

Primary Actor:

User

Brief Description:

User cancels the ride

Stakeholders:

Trigger:

User clicks on “Cancel Ride” button

Normal flow of events:

1. Receive ride cancellation confirmation from the user

1. Notify driver of ride cancellation

1. Display user again with the Schedule ride options

Alternate/Exception flow:

Use Case Name:

Apply discount coupons

Primary Actor:

User

Brief Description:

User enters the coupon codes for discounts

Stakeholders:

Trigger:

User clicks on “Apply code” button

Normal flow of events:

1. Receive Coupon Code from the user

1. Validate the coupon code

1. Display user with discounted ride cost

Alternate/Exception flow:

2.a1. If the coupon is invalid, display appropriate error message and go back to step 1

1. Data Dictionary:

The data dictionary used is given below:

User = UserId + First Name + Last Name + Phone No + Email Id + Password + Street Number + Street Name + City + State + Country + User Zip code + Payment Details

Driver = DriverId + Driver First Name + Driver Last Name + Driver Phone No + Driver Gender + Driver Photo + License No + Driver Rating

Feedback = Review Rating + Review Comments

Ride = Ride Id + {Pickup Location} + Drop Location + Distance + Schedule Time + Time taken + Total cost + Rating + PickupCity + DropCity + State

Ride History = RideId + UserId + Driver Id+ Vehicle Name + Driver Name + Rating

Discount Coupon = Coupon Code + Description + Discount%

Payment = CCNumber + CCName + Expiration + CVV Code + Coupon Code

User ride Confirmation = [Yes|No]

Driver Confirmation = [Yes|No]

Vehicle = VehicleId + {Vehicle Name} + DriverId + {Vehicle class}

Vehicle class = [UberX|UberXL|UberSelect|UberPool]

Predictive surge Data = Time + Pickup Location + Drop Location + User count + Price

--------------------------------------------------------------------------------------------------------------------------------------------------------

1. Software Design:

Signature:

Method Name: Pay for The Ride ()

Class Name: User

ID:

Clients:

Associated use case: Process Payment

Description of responsibilities: Method adds transaction details to the payment table and credits amount into driver and Under account

Arguments Received: None

Type of Value Returned: Null (Records transaction details into database)

Pre-Conditions: Valid Credit card details

Post-Conditions: New transaction record inserted in database

Logic:

User selects “Process Payment”

User enters discount coupon code

IF discount coupon code invalid

THEN

Display amount without code

ELSE

THEN

FETCH coupon code details from Discount Coupon

Display payment amount after applying discount coupon code

FETCH CC Number, CC Name, CVV from user

Update payment details in Payment Table

Signature:

Method Name: Give Feedback ()

Class Name: Feedback

ID:

Clients:

Associated use case: Receive Feedback

Description of responsibilities: This method records feedback and rating from users

Arguments Received:

Type of Value Returned: Null (Records item to database)

Pre-Conditions: Must have booked a ride for a cab

Post-Conditions: New feedback record added to Feedback table

Logic:

Directed to provide Feedback and Rating screen

IF User does not want to provide

THEN

Proceed to exit

ELSE

Provide feedback

Signature:

Method Name: Request drive and car details ()

Class Name: User

ID:

Clients:

Associated use case: Request Cab, Find Nearby Rides, see nearby Available Cabs, See Car and Driver Details, Cancel ride

Description of responsibilities: Requests a cab after finding choosing nearby car and driver details

Arguments Received:

Type of Value Returned: Null (Records transaction to the database)

Pre-Conditions: Customer should be a registered user in the system

Post-Conditions:

Logic:

User selects “Find nearby cabs”

FOR current address through PIN code

Google Maps retrieves list of available cabs nearby

FETCH list of all available cars nearby

FETCH driver details of the above fetched cars

User selects one cab out of the options available

IF ride time “Immediate”

THEN

Immediate request sent to the cab driver

ELSE IF

Enter pickup time in the future along with location

Suggest user with cost effective time for the ride

ELSE

Cancel

Signature:

Method Name: Accept Ride Request ()

Class Name: Driver

ID:

Clients:

Associated use case: User requests driver for a ride

Description of responsibilities: Cab driver gets a request for a ride along with sharing his details

Arguments Received:

Type of Value Returned:

Pre-Conditions: Cab rider should be a registered in the system

Post-Conditions: Either accept or reject ride request

Logic:

Cab Driver gets a request from a customer for a ride

FETCH user details to driver

FETCH time and location details to the driver

IF driver rejects ride request

THEN

Send reject notification along with reason to user

ELSE

Send accept notification to user along with estimated arrival time to location