USECASE AND SRSIEEE830

profilePONNI
SRSIEEE830Revisionlatest1.docx

Uber Ride

Version: 4.2.1

Software Requirements Specification

Date : 14/07/2021

MInc-002

Software Requirements Specification For Uber Ride Version 4.2.1 Mahamadou Mahi Diallo UMGC SWEN645 9040 Date Version Description Author 06/09/2008 4.0 Convention documentation Joy Chuck 07/12/2017 4.1 System requirements analysis Joseph Kent 01/03/2021 4.2 System features review Mahi Diallo 11/06/2021 4.2.1 System module documentation Mike Dickson

Table of Contents 1. Introduction 4 1.1 Purpose 4 1.2 Document Conventions 4 1.3 Intended Audience and Reading Suggestions 5 1.4 Product Scope 5 1.5 References 5 2. Overall Description 6 2.1 Product Perspective 6 2.2 Product Features 6 2.3 User Classes and Characteristics 8 2.4 Operating Environment 9 2.5 Design and Implementation constraints 10 2.6 User Documentation 11 2.7 Assumptions and Dependencies 12 3. System Features 13 4. External Interface Requirements 18 4.1 User Interface Overview 18 4.2 Hardware Interfaces 19 4.3 Software Interfaces 19 5. System Modules 20 5.1 Plan ahead with schedules rides 20 5.2 Sharing trip status and ETA 23 6. Nonfunctional Requirements 26

1. Introduction

1.1 Purpose

The main purpose of this document is to analyze and record the requirements of Uber application. The document will also highlight and explain the main features of Uber system and how they affect the operation of the app. In addition, this document gives an overview of how users are supposed to use this application by highlighting the steps of accessing and using various features.

1.2 Document Conventions

This document uses the following conventions;

To login to Uber web user account use:

· https://auth.uber.com/login/ email/password@client

To sign up to Uber account:

· Visit the Uber website at https://uber.com; which directs one to sign up form according to their location.

The heading of each sections are in bold and some of the characters in reference are italicized to differentiate them.

In addition, the document highlights some steps of how users can access services on the Uber system and to find more, users can access more resources from https://help.uber.com website or user the help icon on the application.

The document also states and explains every requirement of the Uber application with its own priority.

1.3 Intended Audience and Reading Suggestions

This project is about Uber application in general, its composition and how it makes it easier for the users to carry out their tasks through its significant features. The implementation of this project was made possible by the existence of various documentations from various researches on Uber. This document is very useful for the development stakeholders. The Uber application website has many resources for the users of the software.

1.4 Product Scope

Uber application enables its users, that is, riders and drivers to request for rides and accept those rides respectively. The relevant benefits of this product include; it is easy and very convenient to request and accept rides using the app. In addition one of the main objectives of the product is provision of readily available and most dependable service in transportation. On the other hand, its main goal is to continue expanding worldwide and providing its transportation services to more cities to allow connection of riders and drivers.

1.5 References

Geradin, D. (2015). Uber and the rule of law: Should spontaneous liberalization be applauded or criticized?. Competition Policy International (2015), George Mason Law & Economics Research Paper, (15-53).

Cannon, S., & Summers, L. H. (2014). How Uber and the sharing economy can win over regulators. Harvard business review13(10), 24-28.Geradin, D. (2016). Online intermediation platforms and free trade principles–some reflections on the Uber preliminary ruling case. Available at SSRN 2759379.

Shoja Rani, B. N. (2018). Socio-Economic Analysis of Uber Taxi Drivers in Kerala-A Study with Special Reference to Ernakulam District.”. Shanlax International Journal of Economics6(4), 1-4.Carranza, V., Chow, K., Pham, H., Roswell, E., & Sun, P. (2016). Life cycle analysis: Uber vs. car ownership. Environment159, 1-19.

2. Overall Description

2.1 Product Perspective

The Uber application stores information on its users which includes the following;

· Rider location information: this is useful the suggestion of possible destinations and pick up locations of the riders.

· Ride history of the users: this part keeps details of the rides that has ever been taken by the riders and also the trips a driver has attended to.

· Users’ personal information: provides details on the drivers and riders by keeping their names, contact details and even their pictures.

· Customer payment history: this is useful for the riders in keeping records to track their expenditures on the rides.

2.2 Product Features

The main features of the Uber application include the following;

Feature

Description

1. Sharing trip status and ETA

This feature helps users to track the status of their friends and relatives throughout the ride.

2. Using calendar shortcuts to synchronize meetings

This feature connects the calendar on their phone to the Uber application. This enables any appointments with an address in their calendar to appear instantly as a “shortcut” when they request a ride.

3. Plan ahead with schedules rides

Helps users to plan ahead in order to avoid any inconveniences

4. Seamlessly splitting of the fare

Sometimes one might be riding with their friends or family and forget about counting cash or IOUs. They can therefore split the cost of their ride with up to three people, directly in the application. Request a ride then swipe up before or during their trip, then tap “Split Fare”. Select the other riders from the contacts in their phone or enter their phone number. They’ll receive a text to accept the split, and each person will be charged a 30 cent fare split fee.

5. Built-in modules for collection of fees from drivers

Paying the driver in cashless instalments using the driver’s credit cards is a must. The system should allow one to make their own rules. The system handles payments automatically.

The driver has the access to the current balance, subscription details, top-up features and a list of transactions.

6. Smart analytics system

Having the information about every bit of their business in well-presented reports will help them see where their business needs some improvements and where it is doing well. Track number of orders, booking sources, assigned vs missed orders.

7. In-app payment methods

Inbuilt payments allow a user to pay for the ride right from the app. The current technology also enables transferring money between drivers on mobile.

8. Location and maps

The technology of GPS tracking is used to identify the current location, find cars & track the way. Besides, the perfect journey tracking gives the actual estimation.

2.3 User Classes and Characteristics

Users of the application should be able to retrieve the ride information whenever they need it and with ease and most convenient way. Various locations are programmed within the application to give users multiple options when they want to choose pick up locations and destinations. These locations are also shown on the app during the trip, showing the places that they pass. In addition, these users has access to various functions within the system.

Riders are able to carry out the following functions:

FN-1: Create their own account

FN-2: Request for rides

FN-3: Enter their destination to help in estimating the fare

FN-4: View the available drivers, their information and the details of the car they drive

FN-5: Cancel trips if necessary

FN-6: Rate and add a tip for the driver if the service was great

FN-7: View price estimates

FN-8: Schedule a ride in advance

FN-9: Synchronize meetings using calendar shortcuts

FN-10: Add multiple drop-off points

FN-11: Make payment for the trip they took

Drivers are able to do the following functions:

FN-12: Access maps and locations

FN-13: View requested rides from the riders

FN-14: Leave ratings and reviews within the system

FN-15: Picks up and takes the riders to their destinations

FN-16: Set the profile information

2.4 Operating Environment

Operating environment for Uber application is listed below:

· Operating system: Windows, Android and Ios

· Hardware type: minimum configuration

· Android version: Android 6.0 and newer

· RAM: minimum Ram of 2GB

· Processor brand: two approved processor brands; Snapdragon and Mediatrek

· Client/server system

2.5 Design and Implementation constraints

The following are some of the design and implementation constraints of the Uber application:

· Uber system works with complex systems, high traffic and complex data, popular smartphone application is composed of all these.

· This application also enables its customers to request cheap rides.

· Uber drivers use their personal vehicles, and both drivers and riders use the application for communication.

· Uber drivers should have the ability to frequently notify the system regarding their availability and current location.

· Riders should be able to view all nearby drivers in real-time.

· At the end of a trip, the ride is completed by the driver and is now available for another rider.

· Once the ride is accepted, both the rider and driver must constantly see other’s current location in the duration of the trip.

· Building for an assumed 1 million daily rides

· There are more than 1 million active riders per day and 500, 000 daily active drivers

· There are more than 300 million riders and 1 million drivers in the Uber system

· Assuming that all active drivers will input their current location every four or less seconds and rider places a ride request, the application contacts drivers in real-time.

2.6 User Documentation

This section describes how users can access and use some of the features of the Uber application:

They can request that their driver make multiple stops when requesting a ride. Here's how;

1. Open the application and tap the "Where To?" icon

2. Tap "+ Add multiple stops" to add up to 2 or additional drop off points

3. To continue tap "DONE"

Stops will be made in the order they are made. To remove a stop, tap the "X" next to the location.

How schedules rides work:

The Scheduled Ride feature allows riders to select about 10 minutes window for a driver to come pick them up. At the start of the window, the app will send out a ride request on their behalf. They will get push notifications when they are matched with a driver and when they're nearby, the same as a typical ride.

How to schedule a ride;

1. Enter the drop off point in the destination field.

2. Swipe through vehicle options and tap one to select it for their ride

3. Tap the clock icon next to the "Request [vehicle option]" button

4. Set the date and time window for the pick-up

5. Tap "SET TIME"

6. Update their pickup location if necessary, then tap "CONFIRM PICKUP"

7. Tap "SCHEDULE [VEHICLE TYPE]," then tap "DONE"

Cancel a scheduled ride

1. Open the menu in the Uber application and tap "Your Trips"

2. Tap "Upcoming"

3. Tap “RIDE"

One can cancel their request at any point before being matched with a driver without any charge. Normal cancellation fees apply once a driver accepts their trip request.

Where and when rides are available:

Check the application to see if Scheduled Rides are available in the area. If it's available, one can schedule a ride any time of day.

Users can also schedule trips to the airport, but not when leaving an airport. If they're leaving an airport, they should request a ride on-demand as usual.

2.7 Assumptions and Dependencies

The following are some of the assumptions and dependencies of Uber application:

External hardware

· Client hardware

· Employee workstations: these are the personal computers used by the workers to carry their daily tasks.

· User client: refers to all the devices used in communication, such as PCs, PDAs and smartphones.

· Client hardware

· Local Area Network: this is the internal local area network that is used for communication among Ubers employees.

· Internet: the global network applied in communication among users of the app, employees, drivers, and the Uber platform.

Other assumptions

i. It is assumed that all the riders are requesting for the ride while at the cities where Uber operates.

ii. Another assumption is that the riders will pay the fare through option they chose before placing a ride.

iii. It is also assumed that drivers are all-over the city so no customer will miss their ride.

iv. All the users of the application must have a user account in order to access these services.

3. System Features

Some of the system features of Uber application include the following:

3.1 Sharing trip status and ETA

When one requests a ride and a driver accepts, they can swipe up on their application screen and tap Send Status. This shares their trip details with friends or family.

They'll receive a notification. Opening this notification displays their driver's first name, vehicle information, and their map location in real-time.

3.2 Using calendar shortcuts to synchronize meetings

This feature connects the calendar on their phone to the Uber application. This enables any appointments with an address in their calendar to appear instantly as a “shortcut” when they request a ride.

3.3 Plan ahead with schedules rides

Whether one is catching an early morning flight or going to an appointment, they can schedule a ride up to 30 days in advance. They can also modify the details at any time prior to their trip and the application will send them a reminder on the day.

3.4 Seamlessly splitting of the fare

Description

Sometimes one might be riding with their friends or family and forget about counting cash or IOUs. They can therefore split the cost of their ride with up to three people, directly in the application. Request a ride then swipe up before or during their trip, then tap “Split Fare”. Select the other riders from the contacts in their phone or enter their phone number. They’ll receive a text to accept the split, and each person will be charged a 30 cent fare split fee.

Preconditions: Ride already requested

Pickup location and destination has been set up

Triggers: User selects payment method then clicks the Split Fare option

Basic course of events (Scenario)

Actor

System

Screen

· User selects payment method

D:\Learn With Chris\Work\SRS\payment2.png

· The system displays the Split Fare option

· User selects the Split Fare option and enters names or phone number of their friends

D:\Learn With Chris\Work\SRS\split1.png

3.5 Built-in modules for collection of fees from drivers

Paying the driver in cashless instalments using the driver’s credit cards is a must. The system should allow one to make their own rules. The system handles payments automatically.

The driver has the access to the current balance, subscription details, top-up features and a list of transactions.

3.6 Smart analytics system

Having the information about every bit of their business in well-presented reports will help them see where their business needs some improvements and where it is doing well. Track number of orders, booking sources, assigned vs missed orders.

3.7 In-app payment methods

Inbuilt payments allow a user to pay for the ride right from the app. The current technology also enables transferring money between drivers on mobile.

3.8 Location and maps

Description

The technology of GPS tracking is used to identify the current location, find cars & track the way. Besides, the perfect journey tracking gives the actual estimation.

Preconditions: Enable GPS on the device

Have access to the maps service on the device

Triggers: User select allow location sharing and maps option

Basic course of events (Scenario)

Actor

System

Screen

· User enables location sharing with Uber app

D:\Learn With Chris\Work\SRS\maps.jpg

· Displays the location of the user based on the GPS

D:\Learn With Chris\Work\SRS\maps1.png

4. External Interface Requirements

4.1 User Interface Overview

· Frontend software:

· Node.js

· Native applications or programs

· Go Language

· Backend software:

- Relational database, that is, MySQL and Postgres

4.2 Hardware Interfaces

· Android

· Windows

· A browser which supports HTML and JavaScript

4.3 Software Interfaces

The following are the software used for the Uber application.

Software used

Description

Operating system

Android and windows operating system were chosen for their best support and user-friendliness.

Database

To save the records of the users, information on various locations and images too.

Native applications

Used suitable for iOS and Android best experience

TChannel

Used for network multiplexing and framing protocol for RPC

5. System Modules

5.1 Plan ahead with schedules rides

5.1.1 Description and Priority

Whether one is catching an early morning flight or going to an appointment, they can schedule a ride up to 30 days in advance. They can also modify the details at any time prior to their trip and the application will send them a reminder on the day.

5.1.2 Stimulus/Response Sequence

Stimulus: Users search for the pickup locations and destinations when requesting for rides

Response: The system displays the available locations that users can choose from.

Stimulus: The rider searches for the day and time to schedule the ride before requesting for a ride.

Response: The system displays the available days and time that users may wish to choose from when requesting for a ride.

Preconditions: Users to set pickup time and date to take their ride

Triggers: The rider select the Set pickup time to confirm the schedule.

Basic course of events (Scenario)

Actor

System

Screen

· The user selects Schedule a Ride option

C:\Users\Admin\Pictures\CF\schedle.PNG

· Displays the time date and time to choose from

D:\Learn With Chris\Work\SRS\schdeule.png

· User selects the Set pickup time option

C:\Users\Admin\Pictures\CF\schedule1.PNG

Post Conditions

· The scheduled date and time is set.

· User sets a pickup location

Functional requirements

Functional requirements such as maps and location are very essential as they help users with selecting appropriate pickup locations and destinations. The technology of GPS tracking is used to identify the current location, find cars & track the way. Besides, the perfect journey tracking gives the actual estimation.

5.2 Sharing trip status and ETA

5.2.1 Description and Priority

When one requests a ride and a driver accepts, they can swipe up on their application screen and tap Send Status. This shares their trip details with friends or family. They'll receive a notification. Opening this notification displays their driver's first name, vehicle information, and their map location in real-time.

5.2.2 Stimulus/Response Sequence

Stimulus: User clicks the share ride icon in order to share their trip with family and friends.

Response: The system displays the option for contact selection to enable users open their contact list to choose from.

Stimulus: The rider selects the appropriate contact to share their ride with.

Response: The system displays the status of the sharing process to a rider and their friends or families.

Preconditions: The ride is requested by the customer

Triggers: The rider select the Share Ride option and select the contacts to share to.

Basic course of events (Scenario)

Actor

System

Screen

· The user clicks the share button

D:\Learn With Chris\Work\SRS\share.jpg

· The system displays the sharing options and status

D:\Learn With Chris\Work\SRS\share2.jpg

Post Conditions

· The ride information is shared to the family and friends

· Shows the sharing status

Functional requirements

a. Maps and Location

The technology of GPS tracking is used to identify the current location, find cars & track way. Besides, the perfect journey tracking gives the actual estimation.

b. Contacts

Description

Helps the user to choose their family and friends contacts appropriately before sharing their ride with them.

Preconditions: Enable sharing of contacts with Uber application

Triggers: The rider select the Enable Uber to Access Contact option

Basic course of events (Scenario)

Actor

System

Screen

· The user selects the Enable Uber to Access Contact option

D:\Learn With Chris\Work\SRS\share2.jpg

6. Nonfunctional Requirements

The following are some of the nonfunctional requirements;

6.1 Usability

Usability is the degree of ease with which the user will interact with their products to achieve required goals effectively and efficiently.

6.2 Legal or Regulatory Requirements

Legal or regulatory requirements describe product adherence to laws. If their product violates these regulations, it may result in legal punishment, including federal fines.

6.3 Reliability

Such a metric shows the possibility of their solution to fail. To achieve high reliability, their team should eliminate all bugs that may influence the code safety and issues with system components.

6.4 Performance

Performance describes how their solution behaves when users interact with it in various scenarios. Poor performance may lead to a negative user experience and jeopardize system safety.

6.5 Security

This requirement describes how Uber ensures the data of its users is secured. On the other hand when the system is not secure enough, it might compromise the privacy of the users.

6.6 Response Time

The response time of the Uber application determines how fast a user can access resources from the system.

28