Professional Documents
Culture Documents
Windows Phone Taxi Client: Software Requirements Specification
Windows Phone Taxi Client: Software Requirements Specification
Scripnic Alexandru
ve Mihai
Palade Drago
TI-141FR
20.01.2017
1
Table of Contents
1. Introduction ........................................................................................................................ 3
1.1
Purpose ........................................................................................................................... 3
1.1
Document Conventions .................................................................................................. 3
1.2
Intended Audience and Reading Suggestions ................................................................ 3
1.3
Project Scope .................................................................................................................. 3
1.4
References ...................................................................................................................... 4
2. Overall Description ............................................................................................................ 4
2.1 Product Perspective ........................................................................................................ 4
2.2 Product Features ............................................................................................................. 4
2.3 User Classes and Characteristics .................................................................................... 5
2.4 Operating Environment .................................................................................................. 5
2.5 Design and Implementation Constraints ........................................................................ 6
2.6 Assumptions and Dependencies ..................................................................................... 6
3. System Features ................................................................................................................. 6
3.1 Device Authorization ..................................................................................................... 6
3.1.1 Description and Priority .......................................................................................... 6
3.1.2 Stimulus/Response Sequences ................................................................................ 7
3.1.3 Functional Requirements ........................................................................................ 7
3.2 Starting point selection ................................................................................................... 8
3.2.1 Description and Priority .......................................................................................... 8
3.2.2 Stimulus/Response Sequences ................................................................................ 9
3.2.3 Functional Requirements ........................................................................................ 9
3.3 Request options selection ............................................................................................. 11
3.3.1 Description and Priority ........................................................................................ 11
3.3.2 Stimulus/Response Sequences .............................................................................. 11
3.3.3 Functional Requirements ...................................................................................... 11
3.4 Request processing ....................................................................................................... 13
3.4.1 Description and Priority ........................................................................................ 13
3.4.2 Stimulus/Response Sequences .............................................................................. 13
3.4.3 Functional Requirements ...................................................................................... 13
4. External Interface Requirements ...................................................................................... 15
4.1 User Interfaces .............................................................................................................. 15
4.2 Hardware Interfaces ..................................................................................................... 17
4.3 Software Interfaces ....................................................................................................... 17
4.4 Communications Interfaces .......................................................................................... 17
5. Other Nonfunctional Requirements ................................................................................. 18
5.1 Performance Requirements .......................................................................................... 18
5.2 Safety Requirements .................................................................................................... 18
5.3 Security Requirements ................................................................................................. 19
5.4 Software Quality Attributes ......................................................................................... 19
2
1. Introduction
1.1 Purpose
Then purpose of this document is to describe the requirements of a client application for taxi
booking designed for windows phone platform. It will also explain de system constraints, interface
and interactions with external services.
Term Definition
Client The application described by this document
User The person who will use the client application
Server The existing system that will communicate with the Client
OpenStreetMap The powerful and free map tools
The application will allow an easier way of interaction between taxi service providers and
windows phone users. It will allow the clients to specify their location using both the map and GPS
integration or using the text search tool. After specifying the destination and extra options, they will
receive an approximate cost and wait time. Once they will confirm the order, a new request will be
sent to the main server which will eventually return a response.
The server is an existing system that is already integrated with other platforms. It should
provide an API which will be used by the application. The API must contain a set of services that
offer required information for order completion and the actual order placement and fulfillment.
The application only requires internet connection and optionally GPS integration for detecting
the user location. The actual address selection will use the powerful and free OpenStreetMap tools.
3
1.4 References
2. Overall Description
The GPS device is optional and the client should work perfectly without it. When this device
is missing, the application should display the map and allow searching of the location using the
keywords and the map cursor. The only improvement the GPS brings is auto zoom to the user
location.
The user will interact only with the client application. At first it should allow him to
authenticate using the phone number and code confirmation which he will receive through SMS. All
4
of this will be handled by the existing Server and the respective calls should be present in the Server
API. This is a onetime action.
Once the user confirmed his device using the phone number he can choose the current
location using the map tools. OpenStreetMap API offers a large set of utilities for that like address
searching using keywords and reversed geo location which returns the address for a specific set of
world coordinates.
After the location was selected the client has to complete his order by specifying the
destination which should be a selection from a predefined list stored on the server. Additionally, he
can specify extra options like arriving time and the type of car.
The application should check the approximate price after each option change. The calculation
itself will be handled by the server and an appropriate endpoint is available in its API. After the
order is completed a final request is sent to the server.
The server should return an immediate response with approximate search time and the order
identification number. The client will show a countdown watch starting with the time received from
the server and in background will check if the order was accepted using the identification number.
Once the order was confirmed by any driver the server should return a successful response with the
details about the car.
The application will be developed for Windows Phone platform. It should be considered the
fact that mobile phones are still a low end device which has hardware limitations, especially battery
usage.
5
2.5 Design and Implementation Constraints
The application is dependent on two external services and should block the features dependent
on them or prohibit the user from running the application. In case of OpenStreetMap, the user
should still be able to specify the location manually, but in case of Server maintenance it should
display a friendly error message and quit.
We should take into consideration the fact that our application is built on a foreign platform
which is still growing and improving. As result some of the features we could use might not be
available any longer after a few years.
The application uses OpenStreetMap which is also a tool not developed by our team and is
changed dynamically in runtime. Our team should follow their changelog and prepare for future
changes from their side.
The order fulfillment process can be interrupted by various technical issues for example lost
internet connection. This kind of issues should be detected using the ping pong mechanism and
should be handled manually be the taxi service providers.
3. System Features
This section includes the requirements that specify all the fundamental actions of the
application.
Priority: Medium
6
3.1.2 Stimulus/Response Sequences
1. User opens the application for the first time
2. The application requires the user to confirm his phone number
3. When the user confirms the number, the application sends a request to the server
containing the phone number and device id
4. The server should generate a confirmation number
5. The confirmation number should be sent back through an SMS
6. The user must enter the confirmation number in the application
7. The application will check with the server if the confirmation is valid and start the
actual main interface or display a friendly error message
REQ-2:
7
REQ-3:
REQ-4:
REQ-5:
Priority: High
8
3.2.2 Stimulus/Response Sequences
1. When user confirms his number or runs the application for the second time
2. The application should show a map by default
3. The application should use the details obtains using GPS and show the current location
on the map
4. Using map tools, the application should display current address
5. The user can go to the next step where he can manually edit or fix the address
6. The user should also have an option to choose from a previously used list
7. Once the user finishes to set the starting address he will confirm it and go to the next
step
REQ-7:
9
REQ-8:
REQ-9:
REQ-10:
10
3.3 Request options selection
Priority: High
11
REQ-12:
REQ-13:
REQ-14:
REQ-15:
12
3.4 Request processing
Priority: High
13
REQ-17:
Title Countdown
Description After the request was sent to the server a countdown of 5 minutes should
be started and displayed in the UI.
Reason This will let the user know when his order times out.
Dependencies REQ-16
REQ-18:
REQ-19:
REQ-20:
A first-time user of the mobile application should see the "Terms and Conditions" as in Figure
1. If the user accepts them he will have to confirm his number as represented in Figures 2 and 3.
If the user is not a first-time user, or he/she confirms the number, then a map page should be
displayed where the user can choose his starting point. Also on the second tab of this page he should
have the ability to choose one of the previously used addresses.
15
Figure 4 Map tool Figure 5 Previous used location tools
After the user chooses his starting point using the map or previous location tools, he can change or
confirm it as in Figure 6. Afterwards he will have the change to select his destination and other options
using the fields from Figure 7.
16
When the user makes a request a loading window will pop up which will should a timer that
displays how long he will have to wait for a response. If the order was accepted by a cab driver the page
from Figure 9 will pop up.
The application will use two 3rd party applications. First is the OneStreetMap which has a
documented and public API. The second is the taxi management server. This server is of REST type and
uses a well-known and used HTTP technology.
All 3rd party application use HTTP which is an application protocol for distributed, collaborative,
and hypermedia information systems. HTTP is the foundation of data communication for the World
Wide Web. Hypertext is structured text that uses logical links (hyperlinks) between nodes containing
17
text. HTTP is the protocol to exchange or transfer hypertext. The transfer of data between the client and
the server is going to be done using a REST model. Representational state transfer (REST) or RESTful
Web services are one way of providing interoperability between computer systems on the Internet.
REST-compliant Web services allow requesting systems to access and manipulate textual
representations of Web resources using a uniform and predefined set of stateless operations.
As this is a mobile application on the most important factor is the battery consumption. It should
use minimum required resources like CPU, RAM, GPS and internet connection. All the repeating
processes should be run with a maximum available threshold time.
Most comfortable and easy to use option for selecting a starting point should be the map and GPS
analysis. These tools should let the customer instantly pick the address without requiring any manual
edits.
All response notification from the server should be almost instantly. For example, when a driver
accepts the request, the client should be immediately notified about this.
There are two risk components that can affect the usual work flow:
1. Internet connection loss This can happen at any time when the customer used the
application. In case if this happens before he makes a request than no risk is involved as he
just wont be available to use the app any longer. If this happens after he made a request,
we must make sure that the client is served. This can be achieved by notifying the user
about the connection loss and sending all the actions either through SMS or call. Both of
them will be handled outside of the application scope.
2. Dead battery This is the most critical thing that can happen as all ways of communication
are lost. If this happens before the request was done, then the client wont be served.
Otherwise if a car accepts it, then the request will be served under a risk that he might not
be waiting at the starting point.
18
5.3 Security Requirements
First security issue is for the server to process fake requests. In order to avoid this, we will
authorize all clients and block them after a specific number of invalid commands.
Another security measure that should be handled by the application is to use secured connection.
As all the 3rd party are web services we must use HTTPS connection instead of unsecured HTTP.
1. Compatibility The application should run properly and without any lags on lower
devices. This will let a bigger client base to use it.
2. Interoperability The communication with the server should be lightweight in order to
avoid traffic loss which usually is paid by our customers
3. Availability - The application should work 99% of the time
4. Reliability All the client requests should be received by the server and processed as
result
5. Correctness When displaying approximate values like time or money it should be as
correct as possible
6. Localized The application supports multiple languages
19