Taxi software system analysis and design

Abstract         This article is the coursework of the author's software engineering and method course. Starting from the development history and market status of China's online car-hailing industry, based on the current market demand, it is expected to design a car-hailing software with market competitiveness. This paper first analyzes the requirements of taxi-hailing software, then uses SA method and DFD description tool for system modeling, and finally gives the corresponding design scheme. The taxi-hailing software system architecture diagram, system deployment diagram, functional architecture diagram, data flow diagram, and ER diagram in the article are all published in the ProcessOn template community . Students in need are welcome to clone and use them!

Key words: taxi software; system analysis; design scheme; SA; DFD

1 Introduction

With the development of the mobile Internet, all walks of life have undergone upgrades and transformations. In the traditional taxi industry, due to the widespread behavior of drivers such as detours and refusals, problems such as "difficult to take a taxi" and "expensive to take a taxi" emerge in endlessly. Therefore, in response to these pain points, taxi-hailing software came into being. Taxi-hailing software, also known as online car-hailing platform, refers to a service platform built on the basis of Internet technology, which integrates supply and demand information by accessing qualified vehicles and drivers, and provides non-cruising taxi reservation services[1].

The main work of this paper is to complete the analysis and design of taxi-hailing software. In order to design a competitive taxi-hailing software, it is necessary to understand the current market environment. Therefore, this article first reviews the development history of China's online car-hailing industry and analyzes the current situation of the online car-hailing market.

1.1 Development history of China's online car-hailing industry

Figure 1 The development history of China's online car-hailing industry[2]

According to Analysys' "2019 China Online Car-hailing Market Analysis Report" [2], the development of China's online car-hailing industry can be roughly divided into four stages: the exploration period (2010-2015), the market start-up period (2015-2016), the high-speed The development period (2017-2024) and the application maturity period (2025-), as shown in Figure 1.

During the exploration period, online car-hailing platforms gradually emerged: in 2010, Yidao Yongche was launched; in 2012, Didi Dache and Kuaidi Dache were launched; in 2014, Uber entered China, and in the same year, Dida Carpooling was established; in 2015, Shenzhou Car Rental Launched the car service in China.

During the two years from 2015 to 2016, the online car-hailing industry entered a fiercely competitive market start-up period. At this stage, two major merger events occurred: one was that Didi Dache and Kuaidi Dache announced their merger, and the market completed a preliminary reshuffle; the other was that Didi acquired Uber China after the merger, and the market entered an oligopoly change. On the other hand, traditional car companies and leasing companies have also begun to enter the online car-hailing market. Shouqi car-hailing of Shouqi Group and Caocao special car of Geely Group have been launched in 2015.

In July 2016, the "Interim Measures for the Management of Online Taxi Booking Services" was promulgated, affirming the legal status of online taxi booking. Since then, the online car-hailing industry has entered a period of rapid development. With the entry of Meituan Taxi, AutoNavi Maps and automobile OEMs, the competition in the online car-hailing market continues to intensify.

1.2 Analysis of the current situation of China's online car-hailing market

At present, the scale of China's mobile travel market is growing rapidly, with nearly 500 million mobile travel users and a market capacity of 380 billion yuan for car travel [3]. Online car-hailing service brands and business models can be roughly divided into three categories: one is C2C Internet platforms, such as Didi Chuxing and Dida Chuxing; Dao Mobility, Ruqi Mobility invested by GAC, Caocao Mobility of Geely, and T3 Mobility invested by the three central enterprises (Changan, FAW, and Dongfeng); leasing companies such as Shouqi Hailing and Shenzhou Special Vehicle. In addition, a type of Internet aggregation platform that has emerged recently is the B2B2C model, represented by AutoNavi and Meituan, also known as "the platform above the platform", which is convenient for users to call the online car-hailing services of multiple third-party platforms with one click .

On the whole, the current Chinese online car-hailing market presents a competitive pattern of "one super and many strong". Didi Chuxing occupies most of the market share. As of December 31, 2018, Didi Chuxing’s app installation penetration rate reached 14.71%, which is more than 10 times that of the second-ranked Shenzhou Zhuanche [4]. Didi's business model belongs to the "pure platform" model. This model has promising prospects for lightweight operations, users and data realization, but it has high entry barriers. Moreover, due to the government’s stricter supervision of platforms and high compliance pressure, the shortage of transportation capacity will continue to plague “pure platform” companies in the short term [5]. In this situation where there is containment (Didi) and chasing after (compliance policy), if there are no subversive technologies and extreme political factors, it is difficult for the "pure platform" model to emerge threatening new ones. enterprise.

Compared with the "pure platform" model, the "platform + capacity" model still has the opportunity to enter the online car-hailing market to get a share. "Platform + transport capacity" online car-hailing companies are backed by leasing companies and OEMs with regional advantages, and are supported by local governments. They have a high degree of compliance and relatively little investment. They can balance profitability and capacity guarantee Find balance.

In addition, in the long run, the overall demand in the online car-hailing market will continue to rise. First, with the improvement of the epidemic situation, enterprises resume work one after another, the travel market gradually recovers, and the number of users in the online car-hailing market will recover [6]; second, as the level of urbanization increases, the economy continues to develop, and infrastructure continues to improve, The travel demand of urban residents in China will continue to grow in the future; third, due to the restrictions on the purchase of private cars and the imposition of congestion taxes, as mobile shared travel becomes more mature, shared travel will be favored by more consumers.

Therefore, in the second-tier cities where the demand is strong and needs to be developed, online car-hailing companies with the "platform + capacity" model still have a certain room for development. In the following, such an enterprise will be used as the business party to complete the system analysis and scheme design of taxi-hailing software.

2 System analysis of taxi-hailing software

This section will conduct a systematic analysis of taxi-hailing software from two aspects: demand analysis and system model.

2.1 Demand Analysis

Requirements analysis can be mainly divided into four aspects: business requirements, user requirements, functional requirements, and non-functional requirements.

2.1.1 Business requirements

The business needs of taxi-hailing software are: to provide passengers with convenient, comfortable, and safe travel services, and to provide drivers with a fair, transparent, and reliable way to receive orders, so as to improve the retention rate of passenger users and driver users, and to raise points and referral commissions through cooperation , Ad placement, ad push, point redemption[7] and other methods to achieve the purpose of profit and income generation.

2.1.2 User requirements

The main service objects of taxi-hailing software are passengers and drivers. Different roles have different requirements for the system. The user needs of these two roles are analyzed separately below.

2.1.2.1 Passenger User Requirements

Difficulty in getting a taxi, safety anxiety[8], and poor experience are still the main problems facing online car-hailing and taxi services. Although online car-hailing has solved some problems to a certain extent compared with traditional taxi-hailing, there is still a long way to go before the final solution of the problem. Not long ago, JD Power released a study on China's online car-hailing service quality [3], which shows that the overall PP100 (complaints per 100 users) of the online car-hailing industry is relatively high, and the industry average PP100 is as high as 575, which means that each user complains about 5.75 problems on average. User complaints mainly focus on platform efficiency, and the PP100 in the car-hailing process is as high as 166. According to statistics, "punctuality" and "efficiency" are crucial to the retention of users on online car-hailing platforms: if the response time for receiving an order exceeds 5 minutes, 41% of passenger users will choose to cancel the order or change the platform to call a car; If the distance between the driver and the passenger exceeds 10 minutes, 50% of the passenger users will choose to cancel the order. In addition, users complained more about map-related issues.

The above study conducted interviews and research on online car-hailing users of different brands and regions, focusing on the six major links of the passenger user’s taxi-hailing process (calling process, boarding process, ride experience, disembarking process, payment and management, and safety). experience) can fully reflect the needs of passengers and users. Based on this, the passenger user needs of taxi-hailing software are summarized in Table 1:

Table 1 Passenger user requirements of taxi-hailing software

serial number

user story

Description of Requirement

priority

1

The location of the company or residence is remote and it is not easy to take a taxi.

The system pushes the user's taxi information to a certain number of drivers to increase the chances of the user successfully taking a taxi; it provides the function of booking a taxi so that the driver can specify the pick-up task in advance to ensure that passengers can get a taxi.

P0

2

In rainy and snowy weather or morning and evening peak hours, I worry that I won’t be able to stop the car when I go out, which will delay the itinerary.

The system provides a fare increase function to encourage drivers to accept orders and increase the space for drivers and passengers to choose each other; when it is indeed limited by objective factors such as weather or traffic, the system provides suggestions and references for other travel modes.

P0

3

Offline taxis are not worth it.

The system provides ride-sharing and carpooling functions, and sets up activities such as coupons, incentives, points reduction and exemption.

P1

4

The taxi models are not comfortable enough.

The system provides the function of car-hailing.

P2

5

Travel with pets.

The system provides the function of taking a taxi with a pet.

P2

6

Travel with more cargo.

The system provides intra-city delivery and inter-city delivery functions.

P2

7

The elderly, weak, sick, disabled and pregnant people have special needs when traveling.

The system provides car-hailing and barrier-free taxi functions.

P2

8

Working overtime until late at night, going to remote areas, worrying about taking a taxi is not safe.

The system provides license information publicity and one-key alarm functions to ensure ride safety and increase passengers' sense of security.

P0

9

If you are going on a business trip or tourism, you are not familiar with the route, and you are worried that the driver will take a long way and the cost will be high.

The system provides high-precision map navigation, provides instant billing, evaluation and feedback functions, and establishes a credit mechanism.

P0

10

The platform took too long to dispatch orders, and the estimated time to receive orders was inaccurate. The actual waiting time was much longer than the estimated time to receive orders, and there was even no driver to accept orders.

The system provides a more complete time prediction algorithm and driver order dispatching algorithm; when the car cannot be called and waits, the waiting time, number of people waiting, and ranking order information are displayed to passengers; if the maximum order dispatching time specified by the platform is exceeded, a reasonable reduction is provided discount.

P0

11

Seeing that there is an empty car nearby, the driver is too far away, and it takes a long time to pick up the order.

The system provides a more complete algorithm for dispatching orders by drivers to reduce the probability of "near orders and far access"; it achieves transparent vehicle status information and clearly shows passengers that the vehicle is empty or has received an order.

P0

12

It is a waste of time to contact the driver who receives the order: the driver does not take the initiative to contact after receiving the order. Only when the vehicle arrives at the location, no one can be found to contact, or even no one can be found. place).

The system provides a notification function, which automatically sends a message to the user after the driver accepts the order to inform the driver of the order and the relevant information of the vehicle.

P0

13

There is a discrepancy between the arrival of the vehicle at the boarding point and the actual location, the arrival time at the boarding point is inaccurate, the navigation route is unreasonable, the estimated arrival time at the destination is inaccurate, and the destination location is inaccurate.

Cooperate with third parties with high-quality map services to provide more accurate map services.

P0

14

Dissatisfied with driver service or vehicle.

The system provides evaluation feedback function.

P0

15

Personal items left in the vehicle.

Contact the driver of the trip through the system's chat function.

P0

2.1.2.2 Driver User Requirements

There is a relationship between the driver user needs and the passenger user needs of the taxi-hailing software. The driver user needs are summarized in Table 2:

Table 2 Driver user requirements of taxi-hailing software

serial number

user story

Description of Requirement

priority

1

I don’t want to go to remote areas to receive orders: the distance is long, the time is long, and I can’t receive other orders on the way.

The system provides a fare increase function to encourage drivers to accept orders; it provides a taxi reservation function to enable drivers to specify pick-up tasks in advance.

P0

2

Taking orders late at night and going to remote areas, worrying about unsafe conditions.

The system provides a one-button alarm function to ensure the safety of drivers.

P0

3

I saw that there were passengers nearby who wanted to take a taxi, but they could not receive the order; the passengers allocated by the system were too far away, and the order was canceled halfway through the order.

The system provides a more complete order dispatching algorithm to reduce the probability of "near orders and far orders".

P0

4

It is temporarily inconvenient to accept orders due to special reasons (for example, the mobile phone is about to run out of battery).

The system provides the function of rejecting the order, and sends the reason for the rejection to the passenger, which is convenient for two-way selection between drivers and passengers.

P0

5

The passenger cannot be found at the place where the order was received.

The system provides a dialogue function to facilitate contact with passengers.

P0

6

Dissatisfied with passenger behavior or platform.

The system provides evaluation feedback function.

P0

2.1.3 Functional requirements

Based on the above user requirements, this section assigns the functional requirements of taxi-hailing software to the passenger terminal and the driver terminal.

2.1.3.1 Passenger terminal functional requirements

The passenger terminal mainly includes the following functional requirements:

(1 ) Registration and login: Passengers need to be logged in when using the taxi-hailing software to hail a taxi. New users need to register. They can choose to register with their mobile phone number and verification code, or use third-party accounts such as WeChat and QQ to authorize their login.

(2 ) Diversified taxi-hailing modes: Passengers can choose instant taxi or reserved taxi. Among them, instant taxi-hailing modes include express car, special car, ride-hailing and carpooling; reserved taxi-hailing modes include express car, special car, carpooling and personalized taxi-hailing. Diversified taxi-hailing modes meet the needs of a wider user group.

(3 ) Expense budget: After a passenger submits a taxi request, the system will estimate the time and cost required based on the passenger's departure and destination, for the convenience of the driver and passengers.

(4 ) Empty car search: Passengers can check the status of nearby vehicles (empty driving/received orders), which is convenient for passengers to choose a car to take a taxi.

(5 ) Order management: Passengers can view historical orders. After the driver accepts the order, passengers can view the current order details and learn about the driver’s information, including the driver’s phone number, license plate number, vehicle model, driver’s evaluation, driver’s real-time location, etc. Passengers can cancel the order before the trip starts.

(6 ) Message management: Passengers can receive system notifications and driver messages, send messages to the driver for contact, and view historical conversation records.

(7 ) Instant billing: billing starts after passengers get on the bus, and passengers can check the current driving route navigation, mileage, time and cost in real time.

(8 ) One-key alarm: In case of danger, passengers can call the third-party safety center for help through one-key alarm.

(9 ) Payment: After arriving at the destination, passengers can choose Alipay, WeChat and other third-party payment methods to pay, and at the same time, they can choose to use coupons, membership points, etc. to obtain discounts.

(10 ) Evaluation: After the payment is completed, passengers can evaluate the driver's service.

The above requirements are summarized in Figure 2:

Figure 2 Passenger terminal functional requirements

2.1.3.2 Functional requirements of the driver

The driver terminal mainly includes the following functional requirements:

(1 ) Registration and login: Drivers need to be logged in when using the taxi-hailing software. New users need to register and submit information such as mobile phone number, driver's license number, photo of themselves and the vehicle to the system, and can only accept orders after approval.

(2 ) Order management: When the driver receives an order pushed by the system, he can choose to accept or reject the order. After the driver chooses to accept the order, he can view the current order details and determine the passenger's pick-up location. In addition, drivers can view historical order information to facilitate workload assessment.

(3 ) Passenger search: Drivers can check the status of nearby passengers requesting a taxi (not boarded/boarded), which is convenient for drivers to find passengers by themselves.

(4 ) Driving navigation: The driver can start to pick up passengers according to the driving navigation, and can determine the appropriate route from the passenger's departure point to the destination through navigation.

(5 ) Message management: Drivers can receive system notifications, communicate with passengers, and view historical conversation records.

(6 ) One-key alarm: In case of danger, the driver can call the third-party safety center for help through one-key alarm.

(7 ) Evaluation: After the order is completed, the driver can evaluate the passenger.

(8 ) Income query: The driver can check the remuneration received by the passenger, and withdraw cash by binding the bank card.

The above requirements are summarized in Figure 3:

Figure 3 Driver-side functional requirements

2.1.4 Non-functional requirements

As shown in Table 3, taxi-hailing software must not only meet the basic needs of users, but also have certain restrictions in terms of performance, security, and software quality attributes.

Table 3 Non-functional requirements of taxi-hailing software

type

Description of Requirement

performance requirements

Business volume: the system meets the requirements of multiple users working at the same time, guaranteeing the number of simultaneous online users of 500W, and the concurrent operation of 100W.

Response time: In 95% of the cases, the response time in normal hours should not exceed 1.5 seconds, and in peak hours it should not exceed 4 seconds.

Accuracy: The error of map positioning accuracy does not exceed 80 meters.

System capacity: meet the business data expansion requirements in the next 5 years.

Resource usage: CPU usage <= 50%, memory usage <= 50%.

security requirements

Strict permission access control, after the user is authenticated, he can only access the data within the scope of his authority, and can only perform operations within the scope of his authority.

Provides operation log management and security audit functions, which can track the historical usage of the system.

Data transmitted over the network should be encrypted. It is necessary to ensure that data is not peeped, stolen, or tampered with during collection, transmission, and processing.

It can withstand general malicious attacks from the Internet, such as virus (including Trojan horse) attacks, password guessing attacks, hacker intrusions, etc. At least 90% of the attacks need to be detected within 10 seconds.

Software Quality Attributes

Ease of use: Taxi-hailing software is oriented to a wide range of user groups. In order to facilitate the use of the elderly, it is required to be simple to operate, with a beautiful interface, easy for users to use, and a good experience.

Reliability: There must be no flashbacks or unresponsive programs during continuous operation for a week.

Robustness: For various abnormal situations that occur during operation, such as: human error, illegal data input, hardware device failure, etc., the system can correctly handle and avoid them.

Efficiency: Optimize the communication protocol as much as possible to reduce the impact of network speed on the system.

Compatibility: It can run on smartphones of various brands with Android system 2.3.0 and above.

Ease of integration: It requires streamlined code and high integration, and is easy to embed into Internet aggregation platforms such as Meituan and AutoNavi, which is conducive to later development.

Scalability: The software adopts modular design, and the interface should be standardized to meet the needs of future function expansion.

Testability: Regression testing is used during software development, and delivery must pass unit tests with 100% coverage.

Maintainability: The maximum cyclomatic complexity of a module does not exceed 15.

other demands

软件需按照公司整体风格进行UI调整、色调调整等。

软件需遵守最新法律法规,根据所在地区规定提供相应的服务。

2.2 系统模型

根据上述需求分析,本节采用结构化分析方法(SA, Structure Analysis)中的数据流图(DFD, Data Flow Diagram)定义系统模型。

打车软件的顶层数据流图如图 4,系统以乘客、司机、第三方地图、第三方支付、以及第三方安全中心为边界。

图 4 打车软件顶层数据流图

图 5 打车软件一层数据流图

图 5为打车软件的一层数据流图,将系统拆分为注册登录、搜索、打车、定位导航、开销预算、派单、订单管理、即时计费、消息管理、评价、报警、电子支付及收入查询环节。由于该数据流图线条繁杂,在此不再给出其细化后的二层数据流图及数据文件,下文的功能设计(3.1节)与数据设计小节(3.2节)将对打车软件的功能与数据做进一步设计说明。

3 打车软件设计方案

本节将从功能设计、数据设计、系统架构、系统部署、关键技术五方面介绍打车软件的设计方案。

3.1 功能设计

对比乘客端与司机端的功能性需求发现:乘客端与司机端的很多功能是相似的、甚至相同的。因此,相似或相同的功能可并入一个模块处理。如图 6,最终整个打车软件系统可分为个人信息、打车、定位、订单管理、消息管理五个模块。

图 6 打车软件功能架构

其中,个人信息、定位、订单管理、消息管理模块是乘客端与司机端都拥有的,打车模块是属于乘客端的。各功能点已在2.1.3节进行过描述,在此不再赘述。

3.2 数据设计

本节将从数据库概念设计、数据库逻辑设计、数据库物理设计三方面对系统数据进行设计。

3.2.1 数据库概念设计

打车软件系统的E-R图如图 7所示,可以看到:一个乘客可以预定和支付多个订单,一个司机也可以接收多个订单;但一个司机只能驾驶一辆网约车。另外,司机与乘客之间还存在搭乘、对话及评价关系。

图 7 打车软件系统E-R图

3.2.2 数据库逻辑设计

根据系统模型,本文为打车软件系统设计了8个数据表,包括乘客信息表、司机信息表、乘客位置表、司机位置表、订单记录表、消息记录表、乘客评价记录表、司机评价记录表。各数据表的设计结构如下:

  • 乘客信息表(passenger):记录乘客端用户的基本信息,乘客用户注册时添加的用户名、密码、姓名、性别、手机号等基本信息都会存入该表中。该表的主键为乘客编号。
  • 司机信息表(driver):记录司机端用户的基本信息,司机端用户注册时添加的用户名、密码、姓名、性别、手机号、身份证号、驾驶证号等基本信息都会存入该表中。该表的主键为司机编号。
  • 乘客位置表(passenger_location):记录当前乘客的位置信息,包括位置编号、经度、纬度、当前时刻、乘客编号、乘客状态。该表主键为位置编号。
  • 司机位置表(driver_location):记录当前司机的位置信息,包括位置编号、经度、纬度、当前时刻、司机编号、司机状态。该表主键为位置编号。
  • 订单记录表(order):记录每次打车订单的基本信息,包括订单编号、乘客编号、司机编号、起点、终点、打车时间、上车时间等基本信息。该表主键为订单编号。
  • 消息记录表(message):记录乘客与司机的对话信息,包括消息编号、订单编号、消息发送者编号、消息接收者编号、消息发送时间。该表主键为消息编号。
  • 乘客评价表(passenger_review):记录司机给乘客的评价信息,包括评价编号、乘客编号、订单编号、评价等级、评价内容、评价人编号、评价时间。该表主键为评价编号。
  • 司机评价表(driver_review):记录乘客给司机的评价信息,包括评价编号、司机编号、订单编号、评价等级、评价内容、评价人编号、评价时间。该表主键为评价编号。

3.2.3 数据库物理设计

数据库物理设计的工作是具体化设计数据字段名、数据类型及相关约束。上述数据表的物理设计如下:

表 4 乘客信息表(passenger)-与个人信息模块相关

编号

字段

数据类型

备注

1

passengerId

INT(20)

乘客编号PK

2

usr

VARCHAR(50)

用户名

3

psw

VARCHAR(50)

密码

4

name

VARCHAR(50)

姓名

5

sex

VARCHAR(3)

性别

6

idno

VARCHAR(20)

身份证号

7

tel

VARCHAR(11)

手机号

表 5 司机信息表(driver)-与个人信息模块相关

编号

字段

数据类型

备注

1

driverId

INT(20)

司机编号PK

2

usr

VARCHAR(50)

用户名

3

psw

VARCHAR(50)

密码

4

name

VARCHAR(50)

姓名

5

sex

VARCHAR(3)

性别

6

idno

VARCHAR(20)

身份证号

7

tel

VARCHAR(11)

手机号

8

license

VARCHAR(20)

驾驶证号

9

carno

VARCHAR(20)

车牌号

10

cartype

VARCHAR(20)

车型

表 6 乘客位置表(passenger_location)-与定位模块相关

编号

字段

数据类型

备注

1

locId

INT(20)

位置编号PK

2

longitude

DOUBLE

经度

3

latitude

DOUBLE

纬度

4

time

TIME

当前时刻

5

passengerId

INT(20)

乘客编号

6

status

INT(2)

乘客状态

表 7 司机位置表(driver_location)-与定位模块相关

编号

字段

数据类型

备注

1

locId

INT(20)

位置编号PK

2

longitude

DOUBLE

经度

3

latitude

DOUBLE

纬度

4

time

TIME

当前时刻

5

driverId

INT(20)

司机编号

6

status

INT(2)

司机状态

表 8 订单记录表(order)-与订单管理模块相关

编号

字段

数据类型

备注

1

orderId

INT(20)

订单编号PK

2

passengerId

INT(20)

乘客编号

3

driverId

INT(20)

司机编号

4

startloc

VARCHAR(50)

起点

5

endloc

VARCHAR(50)

终点

6

ordertime

DATETIME

下单时间

7

starttime

DATETIME

上车时间

8

endtime

DATETIME

到达时间

9

mileage

DOUBLE

里程

10

cost

DOUBLE

费用

11

status

INT(2)

订单状态

表 9 消息记录表(message)-与消息管理模块相关

编号

字段

数据类型

备注

1

messageId

INT(20)

消息编号PK

2

orderId

INT(20)

订单编号

3

senderId

INT(20)

消息发送者编号

4

receiverId

INT(20)

消息接收者编号

5

time

DATETIME

消息发送时间

表 10 乘客评价表(passenger_review)-与订单管理模块的评价功能相关

编号

字段

数据类型

备注

1

reviewId

INT(20)

评价编号PK

2

passengerId

INT(20)

乘客编号

3

orderId

INT(20)

订单编号

4

rating

INT(2)

评价等级

5

content

TEXT

评价内容

6

reviewerId

INT(20)

评价人编号

7

time

DATETIME

评价时间

表 11 司机评价表(driver_review)-与订单管理模块的评价功能相关

编号

字段

数据类型

备注

1

reviewId

INT(20)

评价编号PK

2

driverId

INT(20)

司机编号

3

orderId

INT(20)

订单编号

4

rating

INT(2)

评价等级

5

content

TEXT

评价内容

6

reviewerId

INT(20)

评价人编号

7

time

DATETIME

评价时间

3.3 系统架构

系统设计采用MVC(Model View Controller)框架模式,这种框架模式以数据、界面显示、业务逻辑分离的方法组织代码,在改良和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,使代码具有较好的可扩展性、可复用性、可维护性及灵活性。系统架构如图 8所示,分为三层:前端表现层、业务逻辑层、物理数据层。

图 8 打车软件系统架构

其中,前端表现层主要接收用户请求,并为用户呈现信息;业务逻辑层调用模型完成相应的业务,与数据库联动处理增删改查操作;物理数据层用于存储业务相关数据。

3.4 系统部署

打车软件基于C/S模型,其乘客端和司机端属于移动客户端,客户端之间通过网络进行通信,服务器端使用负载均衡和集群化的方式来应对高并发的业务需求。系统部署如图 9。

图 9 打车软件系统部署

3.5 关键技术

实现打车软件的关键技术如下表 12,包括操作系统、数据库、移动通信技术等:

表 12 打车软件的关键技术

技术类型 

技术点

使用原因

操作系统

客户端为Andriod/iOS,服务器端为Linux

打车软件客户端主要运行在智能手机终端,主流操作系统为Andriod与iOS;服务器端选用Linux,是因其具有稳定、安全、易用、费用低的优点。

数据库

MySQL、Redis

MySQL用于持久化存储,Redis用于缓存。

移动通信技术

流量控制、负载均衡、实时通信

应对高并发、低延迟的业务需求。

数据交换技术

json、压缩

JSON is often used for data transmission. In order to improve transmission efficiency, compression technology is used.

Business Process

Order dispatching algorithm, cost prediction algorithm, billing algorithm

Taxi-hailing software needs special algorithms to complete the business process, and links such as order dispatching, cost forecasting, and billing are crucial to user experience.

map and location

Spatial Index, Spatial Computing

Functions such as empty vehicle search and passenger search require efficient querying of spatial data.

Privacy Protection Technology

Location-based K-anonymity, differential privacy

Information such as the user's location and running track is personal sensitive information and needs to be desensitized.

safety technology

Encryption Algorithm

Data such as user passwords must not be transmitted in clear text.

4 Summary

This paper mainly conducts system analysis and design of taxi-hailing software. First, it uses SA method and DFD tool for system analysis, then uses MVC framework pattern for system design, and finally specifies the system deployment and key technologies of taxi-hailing software.

references

​​【1】Online car-hailing_Baidu Encyclopedia [EB/OL]. https://baike.baidu.com/item/%E7%BD%91%E7%BA%A6%E8%BD%A6. 2020 Accessed July 20.

【2】Analysys. 2019 China's online car-hailing market analysis report. July 2019.

【3】JD Power. 2020 Research Report on Service Quality of Online Car-hailing in China. March 2020.

【4】Jiguang Big Data. January 2019 Online Ride-hailing Industry Research Report. January 2019.

【5】Deloitte Consulting. Online car-hailing at the intersection. January 2019.

【6】CNNIC. The 45th Statistical Report on Internet Development in China. April 2020.

【7】Niu Weina, Ma Qianyao. Discussion on the profit model of taxi-hailing software in my country [J]. Cooperative Economy and Technology, 2016(19):110-111.

【8】Jiguang. 2019 Research Report on User Confidence in Online Car-hailing Travel Safety. December 2019.

Guess you like

Origin blog.csdn.net/baidu_40395808/article/details/120711481