Senior Design Project

quarterceladonΚινητά – Ασύρματες Τεχνολογίες

10 Δεκ 2013 (πριν από 3 χρόνια και 6 μήνες)

244 εμφανίσεις

1


Bilkent University

Senior Design Project

BilTaxi: Mobile Taxi Pooling Application for Bilkent

High Level Design Report

Group Members

Kubilay Bektaş

Emre Çalışkan

Ahmet Emirhaliloğlu

Gökhan Özyazıcı

Tahir Emrah

Vatansever


Supervisor

Doç. Dr. Hakan Ferhat osmanoğlu

Jury Members

Y. Doç. Dr. Pınar Duygulu Şahin

Prof. Dr. Bülent Özgüç


December 28
, 2012

This report is submitted to the Department of Computer Engineering of Bilkent University in partial fulfillment of

the requirements of the
Senior Projects course CS491/1

Department of Computer Engineering

2


Table of Contents

1.

INTRODUCTION

................................
.......................

Error!
Bookmark not defined.

1.1.

Purpose of the System

................................
......

Error! Bookmark not defined.

1.2.

Design Goals

................................
.............................

Error! Bookmark not defined.

1.3.

Definit
ions, Acronyms and Abbreviations

................................
....................

5

1.4.

Overview

................................
................................
....

Error! Bookmark not defined.

2.

CURRENT SOFTWARE ARCHITECTURE

...........

Error! Bookmark not defined.

3.

PROPOSED SOFTWARE ARCHITECTURE

................................
..........................

7

3.1.

Overview
................................
................................
................................
...................

7

3.2.

Subsystem Decomposition

................................
................................
................

7

3.2.1.

Interface

Layer

................................
................................
................................
...

8

3.2.2.

Application Layer

................................
................................
...............................

8

3.2.3.

Database Layer

................................
................................
................................
..

9

3.2.4.

Overall

System

................................
................................
................................
.

10

3.3.

Hardware/Software Mapping

................................
................................
..........

11

3.4.

Persistent Data
Management

................................
................................
.........

12

3.5.

Access Control and Security

................................
................................
...........

12

3.6.

Global Software Control

................................
................................
...................

13

3.7.

Boundary Conditions

................................
..........

Error! Bookmark not defined.

4.

SUBSYSTEM SERVICES

................................
........

Error! Bookmark not defined.

5.

GLOSSARY

................................
................................
.

Error! Bookmark not defined.

6.

REFERENCES

................................
................................
................................
............

17






3


1.
INTRODUCTION


BilTaxi is a mobile application which is designed as a taxi pooling application that
provides users to call taxi using their cell phones. For senior project, it is designed for
Android OS. However, if time permits, it will be also designed for IOS.


BilT
axi will be designed and implemented for the taxis in Bilkent. People who live in
Bilkent will be able to use our application. If one wants to get a taxi inside of Bilkent
territory, he/she will be able to call it from BilTaxi, which will be available for

Android users.
The application will detect the GPS location of the user and send it to the taxi center and taxi
drivers in the center will be able to see location of the user and send a taxi to that location
with informing the user what the taxi's plate n
umber will be. With this way people who live in
Bilkent and unfamiliar with the addresses of Bilkent will easily get a taxi by using BilTaxi.
And for the people who are familiar with the addresses and do not want to use GPS
functionality of application wil
l also have an option to send his/her recent address information
by entering a text to application which consists of a description of the recent address and
which will be send to taxi center.


BilTaxi will also have a sharing taxi request option to reduce

the cost of transportation
and by this way users will be able to share the cost of the taxi and go the near or same
location. This will be useful for the students who have the same destination plan for
transportation since it will be cheap to use taxis an
d go to desired destination.


BilTaxi removes the problem of explaining the destination location to taxi driver
especially for foreign students and instructors, the route mistakes and costing tricks. As a
programming language, we prefer Java for developing

an application based on Android OS.


1.1

Purpose of System


BilTaxi is a mobile application that provides an easy way of taxi pooling among

people who have a B
ilkent identity
. There are some application which seems to have a similar
task with our application
.If we make a little search from Android market or Google Play, we
can easily reach some of the
taxi
-
related application like "myTaxi"
, "Taxi F
inder" and so on
.
All of these

applications have similar functionalities like calling taxi to the specific places

where you want
, an
d calculating approximate fee of

taxi after giving destination route from
the start route. But also some of them just find the closest taxi station and s
upply telephone
number for taxi, that is
, you should reserve taxi with calling th
em
.

So many questions ari
se
when you need to book a taxi,

for example;

4




Which number?



Which taxi companies work in this area?



How to precisely describe your location?

These questions are seems to be resolved by mobile ta
xi application as I mentioned "
myTaxi
"
a
nd "Taxi Finder" above. But, unfortunately
, there is no program before BilTaxi which

enable
taxi pooling among user
.

As we consider taxi
as a luxury transportation option
, because it

costs high charge. That's why
, majority of people would prefer public
tra
nsportation vehicle.
However
, we will change this situation in Bilkent, as we will enable taxi pooling among
Bilkent user .Moreover our program is not addresses to all user

from different city or country,
because
, our main aim is to provide taxi as faster
as possible in a small area,

and also another
point of view
, taxi pooling cannot be applica
ble within a wide range of area
, as people cannot
trust each

other for travell
ing together in a long distance
.

1.2

Desi
g
n

Goals

Performance

The performance of BilTaxi
should be quite effective. Since, our program works with
server, every process should be fast. When we are using BilTaxi, it is critical
important to data transfer time between client and server.

Usability

BilTaxi

sho
uld be easy to use. First of all, it will be only used by Bilkent society, but it
can be used by many kind of people in the future. For this reason, we have to consider
all kind of people while we are designing BilTaxi.


Availability

The call/reservation
steps will be available until user chooses going previous or next
step and application will be available until user terminate it.



Memory

Database management will never contain any bug in transactions such as connection,
saving, deletion and browsing. Pro
cesses in database will not take long time.



5


User Friendly Interface

User interface of application will present ease of use. Interface elements will be
designed and located in such a manner that user will be able to understand how to use
and see every ele
ment of user interface in the related screen.


Updateability

The application will open to updates in order to make application more effective on
use, present usability of more functions, improve algorithms of system and change
information of call/reservat
ion.


Security

The application will show respect on privacy. Information of users will never be
leaked. Unless users want to share their reservations, no other user will be able access
that reservation.


Quality

Overall quality of both application and data
base management will satisfy both users
and staff of taxi rank. Mechanism of the system will never halt as long as there occur
extraordinary situations.


1.3

Definitions, Acronyms and Abbreviations


Android:

Android is an operating system developed for certain smart phones as well
as tablets. It is currently the mos
t used OS among smart phones
.

BilTaxi
:
BilTaxi

is the
taxi pooling program specialized for Bilkent Society.

It is
abbreviation of Bilkent Taxi.

O
S:
Operating System






6


1.4

OVERVIEW


BilT
axi is an android based mobile application which allows its Bilkent users to get
a
taxi

in an easy and fast way. It is planned to
design

for Bilkent users but might be
developed

for a general use later.


First of all, users can get taxi with the help of this application which gets instant gps
location of user and sends it to taxi station. Then, taxi station gets the request and informs
user with the taxi's information (e.g
.

plate number, approximate arriva
l time) that will go
to user's location and get the user. This feature helps to users who are not very familiar to
place where he/she requested the taxi. Users who are familiar with the addresses can also
enter address information for instant taxi requests
.


Secondly, Bilkent users can make reservation with desired time and destination time.
For example, a user can make a taxi reservation to two days later of reservation day with
desired time. With this functionality, users will not
lose

time to get a taxi.


Another feature of application is taxi pooling option. Users can make reservation on a
specific day, time and destination point (reservation people quota specified by reserve
cr
eato
r
) and share it with the BilTaxi Community. People who have the same
tran
sportation plan can join to that reservation. To give a more specific example, Murat is
planning to go to airport one week later but since taxi costs a lot of money for a single
customer to that destination, he wants to share his taxi reservation plan with

BilTaxi
Community and so people who have the same plan will be able to join this transportation
plan. When reservation quota is full enough with requests, system changes it status to full
and does not let people to join that reservation anymore. People wi
ll be able to share and
reduce to costs for the transportation with the help of this feature of application.


Finally, Bilkent has a lot of foreign students and faculty members and sometimes they
experience some difficulty to call a taxi and use it for tra
nsportation. With the help of
BilTaxi application
foreign

people will be able to get a taxi in a very easy way.
Application has cost calculator which gets departure and destination points and calculates
approximate

cost. This helps users to aware of approx
imate cost which is
useful

for
especially foreign people. To reach that goal, the English language support of the
application will be provided for all users.


7


2.Current Software Architecture

Taxi pooling applications and websites are extensively being used in many countries. There
are
many examples of these services. Some of them have many similar features with our
application. For example, Carpling service of United States is using Gmap, calc
ulates the
distance, shows the route and presents users making reservation like our project [1]. There are
also many smartphone applications in AppleStore for iOS and Android Market for Android.
One of them have an unique property which is community like o
ur application. This Android
application is using community to share taxi reservations to reduce the cost and have a
journey with other people to make it more fun [2]. We can find many examples of these
services around the world and in Turkey like “Taksi B
ul” [3], “Alo Taxim” [4], etc. However;
software architecture of none of these applications was publicly shared.


3.Proposed Software Architechture

This section of the report presents the proposed software architecture of BilTaxi application.
It starts
with the overview of the proposed architecture and continues with the subsystem
decomposition, hardware/software mapping, persistent data management, access control and
security, global software control and boundary conditions sections.

3.1.Overview

BilTax
i project is composed of three layers; Interface Layer, Application Layer and Database
Layer. Interface Layer is responsible of user interface part of the application. Application
Layer manages user operations and database connection. Database Layer does d
atabase
operations.


3.2.Subsystem Decomposition

In this part responsibilities of the layers, their subsystems and how they interact with ech
other is explained.



8


3.2.1.Interface Layer

Interface Layer and its subsystems are demonstrated in Figure 1 below.


Figure 1:
Interface Layer of BilTaxi


Interface Layer is responsible for user interface part of the application. Related screen shows
up thanks to Menu Manager being subsystem of this layer. The other subsystem MapManager
is responsible for Gmap plugin integration when Gmap is required to be u
sed.


3.2.2.Application Layer

Appliction Layer and its subsystems are demonstrated in Figure 2 below.


Figure 2:
Application Layer of BilTaxi


Application Layer is responsible for database connections and managing interactions of
Databse layer and Interface Layer. It has two subsystems to operate these processes.
DBWrapper manages database connection in each time required. It provides connection
to
9


database when inputs are required to send Database Layer to be stored and when an output
which should be taken from database, is required to show to user. AppEngine takes the inputs
of user from Interface layer forwards them to Database Layer or similar
ly when an output is
needed to show to user, it takes the output from Database Layer.


3.2.3.Database Layer

Database Layer and its subsystem are demonstrated in Figure 3 below.


Figure 3:
Database Layer of BilTaxi


Database Layer is for storing and retrie
ving data from database and managing database
operations. Operation management is handled by DBManager. Storing, retrieving, comparing,
progressing, checking and many more operations are under responsibility of DBManager.









10



3.2.4.Overall System

Th
e whole proposed layered structure of BilTaxi is shown in Figure 4 below.


Figure 4:
Layered structure of Biltaxi





1
1


3.3

Hardware / Software Mapping


BilTaxi is a mobile application and going to be designed for Android OS as a beginning and
can be designed
for iOS as well for an extension. Network connection play a key role for our
application , since establishing communication between taxi station and people requires
concurrent internet connection . After authentication of user , individually stored databas
e
should be activated in order to keep track of user's all trips , reservations , individual
informations and encrypted version of user id and password . For all these ongoing process ,
there must be client
-
server relation . For BilTaxi application , serve
r side of our application is
provided by taxi station with using our server system of application . Server side is
responsible for collecting all taxi booking , reservations , destinations and other required
informations in order to respond user's desire .

The basic relations of hardware / software
components are illustrated below in the figure .






Figure

5

:

Basic representation of Hardware/Software Mapping




12


3.4
Persistent Data Management


BilTaxi application must provide data storage and also control flow of data in system with
using most efficient DBMS . Increasing user satisfaction and satisfaction of user's demand ,
data storage and transfer has to be faster as possible . Since , there i
s no one who except the
server respond more than expected seconds while database and server are interacting each
other . Firstly , when user sign
-
up our system , first individual database is created according to
filled information in sign
-
up page. Then , w
ith creating unique user identity , we are going to
keep track of user's all trips and reservations with date , hour and other required info .
Secondly , individual informations and encrypted version of user id and password will be kept
on hand . If user
face with any crash or error related to our program , our back
-
up service will
supply new password corresponding to user id and informations which are supplied by user .
Finally , for avoiding data loss and having persistent data storage , before each modi
fication
or update of database , previous version will be stored and back
-
up in order to be prepared for
all situations.


3.5

Access Control Security


There are specific user groups who have different aim for using system , that's why
accessibility is important to each task in system which should provides well
-
bounded user
-
interface . That is , authorization and security of application is important not o
nly for
bounding system but also protecting account and storing passwords . All of users have a
unique id and encrypted version of password while log in system , the system controls their
password and unique id with checking 32
-
bit encrypted version of dat
a in database .BilTaxi
program has a two major user ; one of them is taxi station (server side) , another one is client
who are reserve or booking a taxi (client side) . After authentication of each user , BilTaxi
application provides different UI for them

so as to avoid user violation . Basically , client
have a chance to sign
-
up , login , make immediate taxi call , make booking for future time ,
share reservation with public , attend to a booking of another person , list shared bookings and
calculate dist
ance and cost with using client side of our application. Taxi station have a
chance to view all orders , receive booking for future times , delete past orders , and confirm /
respond user's orders with using server side of our application .



13


3.6

Global Sof
tware Control


BilTaxi application has variety of stakeholders corresponding to different tasks , which are
database manager , user interface manager , encryption and security manager , network
manager and application manager (admin) .Database manager is r
esponsible for storing each
of data and also control flow of data in system with using most efficient DBMS .UI manager
is mainly focus on most remarkable and effective interface desing so as to attract much more
people's attention to encourage them highly
understandable application .Encrytion and
security manager who plays a key role for creating encrypted data for each user's password
and another secret info that shouldn't accessed by others, also are responsible for specific user
groups where accessibilit
y is important to each task in system that should provides well
-
bounded user
-
interface . Network Manager is mainly focus on concurrency and connectivity
of application for each user . Application manager (admin) is responsible for each task of
system .












14





Figure

6

:
Structure of Software Control Corresponding to Stakeholders



3.7
Boundary Conditions




While the BilTaxi is running to locate the location of the user by using gps, gps signal
may not be able to locate location of the user because of

weak signal. The system
should give warning message that informs user about the weak signal and failure of
locate process. Then system should direct user to locate his/her location manually.

15




While the application is running and the battery of the cell pho
ne dies, BilTaxi should
be terminated. If battery is charged and application is runned again, BilTaxi will forget
where it has left last time and start a new session for that user.



When user sends a request to taxi center via gps locater or manuel request

by entering
address information, the internet connection at the taxi center may be lost. Thus,
system should inform user about the connection failure with the taxi center and may
give a choice to call the taxi center with the number in the system.



When ta
xi center approves a taxi request and sends a taxi to the user, taxi center
should send a confirmation to user by using the system at the taxi center. If sending
the confirmation failures, system should warn the taxi center to resend confirmation
message t
o user . Taxi driver should wait until the confirmation message sent to user.
In this proccess, if the user cannot get a confirmation message from the taxi center
within a time period, user will be informed that confirmation is failed and user will be
able

to make a new request to taxi center . The past request from the user that have
failed to confirm by taxi center will be canceled by the system at the taxi center.




If the system at the taxi center is under maintenance and any taxi request comes to
cente
r from any user under that condition, users should be informed that the system at
the taxi center is under maintenance.



If user cancels a taxi booking that is available for the usage of other users (taxi
pooling), each users that have joined to booking sho
uld be informed that the booking
creator is canceled the taxi pooling request.



If taxi center may not be able to send a taxi to the user because of reasons out of
system problems such as lack of taxi car, weather conditions etc. , users should be
informed
about the problem by the taxi center.



4
.
Subsystem Services



BilTaxi has closed layered architectures with connected structures (user side system
and taxi center side system). The closed layered architectures should start from beginning and
one layer should follow the layer below. This structure provides maintainabi
lity to the system.

16


Presentation layer is the top layer of the BilTaxi application. This is the layer that responsible
for the visualization like displaying menus and interacting with users. Moving to the lower
layer which is the application layer is done

if the interaction with the presentation layer is
completed and processed. This method calls the takePhoto method that sends the taken photo
to the application layer. To get the location of the user, the gps locator class is composed in
application layer.

After detecting the location of the user, the location information is sent to
againg the application layer and then to taxi center's application layer.

Application layer is responsible for locating the location of the user, directing the located
users inf
o to the taxi center system, creating taxi pooling request and sharing it with other
users, allowing other users to join created and shared pooling request, cancel the pooling
request.The application layer uses the information needed in database from the d
atabase layer.

Then completes the requested process interacting with the application layer of the taxi center
system.


5.Glossary

Android:

Android is an operating system
that is suitable for smart phones and tablets.

Android is one of the most popular ope
rating system that is used by smart phones.

iOs
:
iOs is an operating system ,similar to android, that is designed for smart phones and
tablets. iOs is among the first two most popular operating systems designed for smart phones.

BilTaxi:
Mobile application for taxi pooling










17


6.References


[1]

Capling [Online]. Available: http://www.carpling.com/info/taxi

[2]

Carpling Taxi
-
pooling [Online]. Available:
http://www.appszoom.com/android_applications/transportation/carpling
-
taxipooling_c
fcvy.html

[3]

Taksi Bul Iphone Uygulama [Online]. Available:
http://iosuygulama.com/2011/12/taksi
-
bul
-
iphone
-
uygulama/

[4]

Alo Taxim Iphone Uygulaması [Online] Available:
http://www.alotaxim.com/tr/Alo
-
Taxim
-
IPhone
-
Uygulamasi/

[5]
CS 319 Object
-
Oriented Software Engineering Course Web Page, Bilkent University
http://www.cs.bilkent.edu.tr/~ugur/teaching/cs319/material/ch06lect1_UD.ppt