Main Project Report - Predicting Bus Arrival Time

73
Predicting Bus Arrival Time Based on Crowd Participatory Sensing 1.INTRODUCTION 1.1 PROBLEM DEFINITION The bus arrival time is primary information to most city transport travelers. Excessively long waiting time at bus stops often discourages the travelers and makes them reluctant to take buses. In this paper, we present a bus arrival time prediction system based on bus passengers’ participatory sensing. With commodity mobile phones, the bus passengers’ surrounding environmental context is effectively collected and utilized to estimate the bus traveling routes and predict bus arrival time at various bus stops. The proposed system solely relies on the collaborative effort of the participating users and is independent from the bus operating companies, so it can be easily adopted to support universal bus service systems without requesting support from particular bus operating companies. Instead of referring to GPS-enabled location information, we resort to more generally available and energy efficient sensing resources, including cell tower signals, movement statuses, audio recordings, etc., which bring less burden to the participatory party and encourage their participation. At the same time, the proposed solution is more generally available and energy friendly. Department of CSE 1 RIT Kottayam

description

This is a rough report made by my team on our project, "Predicting Bus Arrival Time". It is based on the IEEE paper, "How long to wait ? Predicting bus arrival time based on crowd participatory sensing". The project is done on the android platform.

Transcript of Main Project Report - Predicting Bus Arrival Time

Predicting Bus Arrival Time Based on Crowd Participatory Sensing

1. INTRODUCTION

1.1 PROBLEM DEFINITIONThe bus arrival time is primary information to most city transport travelers. Excessively long waiting time at bus stops often discourages the travelers and makes them reluctant to take buses. In this paper, we present a bus arrival time prediction system based on bus passengers participatory sensing. With commodity mobile phones, the bus passengers surrounding environmental context is effectively collected and utilized to estimate the bus traveling routes and predict bus arrival time at various bus stops. The proposed system solely relies on the collaborative effort of the participating users and is independent from the bus operating companies, so it can be easily adopted to support universal bus service systems without requesting support from particular bus operating companies. Instead of referring to GPS-enabled location information, we resort to more generally available and energy efficient sensing resources, including cell tower signals, movement statuses, audio recordings, etc., which bring less burden to the participatory party and encourage their participation. At the same time, the proposed solution is more generally available and energy friendly.

1.2 INTRODUCTIONThis project presents a crowd-participated service to bridge those who want to know bus arrival time (querying users) to those who are on the bus and able to share the instant bus route information (sharing users). To achieve such a goal, the bus passengers themselves cooperatively sense the bus route information using commodity mobile phones. In particular, the sharing passengers may anonymously upload their sensing data collected on buses to a processing server which intelligently processes the data and distributes useful information to those querying users.

Our bus arrival time prediction system comprises three major components:

(1) Sharing users: using commodity mobile phones as well as various build-in sensors to sense and report the lightweight cellular signals and the surrounding environment to a backend server.

(2) Querying users: querying the bus arrival time for a particular bus route with mobile phones.

(3) Backend server: collecting the instantly reported information from the sharing users, andintellectually processing such information so as to monitor the bus routes and predict the bus arrival time.No GPS or explicit location services are invoked to acquire physical location inputs.

1.2.1.BLOCK DIAGRAM REPRESENTING SYSTEM ARCHITECTURE

Fig 1: Block Diagram

The diagram explanation is as follows:As depicted in the diagram, a querying user queries the bus arrival time by sending the request to the backend server. The querying user indicates the interest bus route and bus stop to receive the predicted bus arrival time.The sharing user on the other hand contributes the mobile phone sensing information to the system. After a sharing user gets on a bus, the data collection module starts to collect a sequence of nearby cell tower IDs. The collected data is transmitted to the server via cellular networks. Since the sharing user may travel with different means of transport, the mobile phone needs to first detect whether the current user is on a bus or not. As shown, the mobile phone periodically samples the surrounding environment and extracts identifiable features of transit buses. Once the mobile phone confirms it is on the bus, it starts sampling the cell tower sequences and sends the sequences to the backend server. Ideally, the mobile phone of the sharing user automatically performs the data collection and transmission without the manual input from the sharing user.We shift most of the computation burden to the backend server where the uploaded information from sharing users is processed and the requests from querying users are addressed. Two stages are involved in this component. In order to bootstrap the system, we need to survey the corresponding bus routes in the offline pre-processing stage. We construct a basic database that associates particular bus routes to cell tower sequence signatures. Since we do not require the absolute physical location reference, we mainly war-drive the bus routes and record the sequences of observed cell tower IDs, which significantly reduces the initial construction overhead.The backend server processes the cell tower sequences from sharing users in the online processing stage. Receiving the uploaded information, the backend server first classifies the uploaded bus routes primarily with the reported cell tower sequence information. The bus arrival time on various bus stops is then derived based on the current bus route statuses.

1.3.MOTIVATION OF WORK

The bus companies usually provide free bus timetables on the web. Such bus timetables, however, only provide very limited information (e.g., operating hours, time intervals etc.), which are typically not timely updated according to instant traffic conditions. Although many commercial bus information providers offer the real time bus arrival information, the service usually comes with substantial cost. With a fleet of thousands of buses, the installment of vehicle GPS systems incurs tens of millions of dollars. The network infrastructure to deliver the transit service raises the deployment cost even higher, which would eventually translate to increased expenditure of passengers.

Presently works are done to track bus information independent of bus companies using GPS .But GPS module consumes substantial amount of energy, significantly reducing the lifetime of power-constrained mobile phones .Also mobile phones in vehicles may perform poorly when they are placed without line-of-sight paths to GPS satellites.

To fill this gap, a crowd participated bus arrival time prediction system utilizingcellular signals is implemented. Independent of any bus companies, the system bridges the gap between the querying users who want to know the bus arrival time to the sharing users willing to offer them real time bus information. Unifying the participatory users, our design aims to realize the common welfare of the passengers.

1.4 OBJECTIVES AND SCOPE

The schedule of a bus may be delayed due to many unpredictable factors. In our application, we provide accurate arrival time of the next bus, which will allow travelers to take alternative transport choices instead, and thus mitigate their anxiety and improve their experience.We present a crowd-participated bus arrival time prediction system. Primarily relying on inexpensive and widely available cellular signals, the proposed system provides cost-efficient solutions to the problem.Being independent of any support from transit agencies and location services, our proposed application provides a flexible framework for participatory contribution of the community.

1.5 CONTRIBUTION

This project is highly relevant as it help bus passengers in reducing their bus waiting time. The actual time a passenger need to wait for a particular bus will be correctly shown by this application. The passenger is not required to enter large amount of data. Only the destination is to be entered by the querying user. This application uses only cell tower signals.

Fig 2: Absolute localization is unnecessary for arrival time prediction

Unifying the participatory users, our design aims to realize the common welfare of the passengers. To encourage more participants, no explicit location services are invoked so as to save the requirement of special hardware support for localization. Compared with the high energy consumption of GPS modules, the marginal energy consumption of collecting cell tower signals is negligible on mobile phones. Our system therefore utilizes the cell tower signals without reducing battery lifetime on sharing passengers mobile phones. Our design obviate the need for accurate bus localization. In fact, since the public transit buses travel on certain bus routes (1D routes on 2D space), the knowledge of the current position on the route (1D knowledge) and the average velocity of the bus suffices to predict its arrival time at a bus stop. As shown in figure, for instance, say the bus is currently at bus stop 1, and a querying user wants to know its arrival time at bus stop 6. Accurate prediction of the arrival time requires the distance between bus stop 1 and 6 along the 1D bus route (but not on the 2D map) and the average velocity of the bus. In general, the physical positions of the bus and the bus route on the 2D maps are not strictly necessary. In our system, instead of pursuing the accurate 2D physical locations, we logically map the bus routes to a space featured by sequences of nearby cellular towers. We classify and track the bus statuses in such a logical space so as to predict the bus arrival time.

1.6 OUTLINE

The report includes the existing systems for predicting bus arrival time and lists out the main disadvantages in those applications. The papers referred for developing this application is mentioned under literature survey. Then the new application developed is explained along with its advantages.

Under requirement analysis, hardware and software specifications of this application is mentioned. Background studies related to the project is also mentioned.

UML diagrams is drawn to represent the application pictorially. It includes class diagrams, Sequence diagram, use case diagram and data flow diagrams. Under physical design, input design, table design and output design are included. Table design specifies all the tables in the database along with the fields of the table. Then information regarding system testing and implementation are mentioned.

Implementation details are specified and screenshot of the output is included. Some part of the code is included in the report. Summary of the work along with future enhancement is mentioned. Finally references are included.

2.SYSTEM DESIGN AND ANALYSIS

2.1 EXISTING SYSTEMThe existing system is dependent on the bus operating companies or other third-party service providers.Also present system is based on the commodity mobile phones where there is a need for special hardware or extra vehicle devices, which substantially increase the deployment cost.The existing system is based on GPS systems. The existing system is less energy-friendly and do not involve crowd participation.

2.2 LITERATURE SURVEY

StarTrack: A Framework for Enabling Track-Based Applications - Ganesh Ananthanarayanan et al[1]Mobile devices are increasingly eqTEM DESIGN AND ANALYSISuipped with hardware and software services allowing them to determine their locations, but support for building location-aware applications remains rudimentary. This paper proposes tracks of location coordinates as a high-level abstraction for a new class of mobile applications including ride sharing, location-based collaboration, and health monitoring. Each track is a sequence of entries recording a person's time, location, and application specific data. StarTrack provides applications with a comprehensive set of operations for recording, comparing, clustering and querying tracks. StarTrack can efficiently operate on thousands of tracks.

Real-Time Trip Information Service for a Large Taxi Fleet - Rajesh Krishna Balan et al[2]In this paper, they describe the design, analysis, implementation, and operational deployment of a real-time trip information system that provides passengers with the expected fare and trip duration of the taxi ride they are planning to take. This system was built in cooperation with a taxi operator that operates more than 15,000 taxis in Singapore. They first describe the overall system design and then explain the efficient algorithms used to achieve our predictions based on up to 21 months of historical data consisting of approximately 250 million paid taxi trips. They then describe various optimisations (involving region sizes, amount of history, and data mining techniques) and accuracy analysis (involving routes and weather) they performed to increase both the runtime performance and prediction accuracy. Our large scale evaluation demonstrates that our system is (a) accuratewith the mean fare error under 1 Singapore dollar (0.76 US$) and the mean duration error under three minutes, and (b) capable of real-time performance, processing thousands to millions of queries per second. Finally, they describe the lessons learned during the process of deploying this system into a production environment.

Using Mobile Phones to Determine Transportation Modes - Sasank Reddy et al [3]As mobile phones advance in functionality and capability, they are being used for more than just communication. Increasingly, these devices are being employed as instruments for introspection into habits and situations of individuals and communities. Many of the applications enabled by this new use of mobile phones rely on contextual information. The focus of this work is on one dimension of context, the transportation mode of an individual when outside. They create a convenient (no specific position and orientation setting) classification system that uses a mobile phone with a built-in GPS receiver and an accelerometer. The transportation modes identified include whether an individual is stationary, walking, running, biking, or in motorized transport. The overall classification system consists of a decision tree followed by a first-order discrete Hidden Markov Model and achieves an accuracy level of 93.6% when tested on a dataset obtained from sixteen individuals

Accurate, Low-Energy Trajectory Mapping for Mobile Devices - Arvind Thiagarajan et al [4]CTrack is an energy-efficient system for trajectory mappingusing raw position tracks obtained largely fromcellular base station fingerprints. Trajectory mapping,which involves taking a sequence of raw position samplesand producing the most likely path followed bythe user, is an important component in many locationbasedservices including crowd-sourced traffic monitoring,navigation and routing, and personalized trip management.Using only cellular (GSM) fingerprints insteadof power-hungry GPS and WiFi radios, the marginal energyconsumed for trajectory mapping is zero. This approachis non-trivial because we need to process streamsof highly inaccurate GSM localization samples (averageerror of over 175 meters) and produce an accuratetrajectory. CTrack meets this challenge using a noveltwo-pass Hidden Markov Model that sequences cellularGSM fingerprints directly without converting them togeographic coordinates, and fuses data from low-energysensors available on most commodity smart-phones, includingaccelerometers (to detect movement) and magneticcompasses (to detect turns). They have implementedCTrack on the Android platform, and evaluated it on 126hours (1,074 miles) of real driving traces in an urban environment.They found that CTrack can retrieve over 75%of a users drive accurately in the median. An importantby-product of CTrack is that even devices with noGPS or WiFi (constituting a significant fraction of todaysphones) can contribute and benefit from accurateposition data.

2.3. PROPOSED SYSTEM

In this paper,a novel bus arrival time prediction application is suggested which is based on crowd participation.The schedule of a bus may be delayed due to many unpredictable factors. By this application, we provide accurate arrival time of the next bus.This allow travelers to take alternative transport choices instead, and thus mitigate their anxiety and improve their experience.We present a crowd-participated bus arrival time prediction system. Primarily relying on inexpensive and widely available cellular signals, the proposed system provides cost-efficient solutions to the problem.This is better than systems that is based on GPS.Being independent of any support from transit agencies and location services, our proposed application provides a flexible framework for participatory contribution of the community.

3. REQUIREMENT ANALYSIS3.1 FEASIBILITY STUDYIntroduction:A feasibility analysis involves a detailed assessment of the need, value and practicality of a p systems development... Feasibility analysis n forms the transparent decisions at crucial points during the developmental process as we determine whether it is operationally, economically and technically realistic to proceed with a particular course of action.Feasibility analysis can be used in each of the steps to assess the financial, technical and operational capacity to proceed with particular activities.Types of feasibility:A feasibility analysis usually involves a thorough assessment of the financial (value), technical (practicality), and operational (need) aspects of a proposal. In systems development projects, business managers are primarily responsible for assessing the operational feasibility of the system, and information technology (IT) analysts are responsible for assessing technical feasibility. Both then work together to prepare a costbenefit analysis of the proposed system to determine its economic feasibility.Operational feasibility:A systems development project is likely to be operationally feasible if it meets the 'needs' and expectations of the organization. User acceptance is an important determinant of operational feasibility. It requires careful consideration of: corporate culture; staff resistance or receptivity to change; management support for the new system; the nature and level of user involvement in the development and implementation of the system; direct and indirect impacts of the new system on work practices; anticipated performance and outcomes of the new system compared with the existing system; training requirements and other change management strategies; and pay back periods (ie trade-off between long-term organisational benefits and short-term inefficiencies during system development and implementation).Technical feasibility:A systems development project may be regarded as technically feasible or practical if the organization has the necessary expertise and infrastructure to develop, install, operate and maintain the proposed system. Organizations will need to make this assessment based on: Knowledge of current and emerging technological solutions Availability of technically qualified staff in-house for the duration of the project and subsequent maintenance phase; Availability of infrastructure in-house to support the development and maintenance of the proposed system; Where necessary, the financial and/or technical capacity to procure appropriate infrastructure and expertise from outside; Capacity of the proposed system to accommodate increasing levels of use over the medium term; The capacity of the proposed system to meet initial performance expectations and accommodate new functionality over the medium term.

ECONOMICAL FEASIBILITY:This study is carried out to check the economic impact that the system will have on the organization. The amount of fund that the company can pour into the research and development of the system is limited. The expenditures must be justified. Thus the developed system as well within the budget and this was achieved because most of the technologies used are freely available. Only the customized products had to be purchased.TECHNICAL FEASIBILITY:This study is carried out to check the technical feasibility, that is, the technical requirements of the system. Any system developed must not have a high demand on the available technical resources. This will lead to high demands on the available technical resources. This will lead to high demands being placed on the client. The developed system must have a modest requirement, as only minimal or null changes are required for implementing this system.SOCIAL FEASIBILITY:The aspect of study is to check the level of acceptance of the system by the user. This includes the process of training the user to use the system efficiently. The user must not feel threatened by the system, instead must accept it as a necessity. The level of acceptance by the users solely depends on the methods that are employed to educate the user about the system and to make him familiar with it. His level of confidence must be raised so that he is also able to make some constructive criticism, which is welcomed, as he is the final user of the system.

3.2 SYSTEM SPECIFICATIONHardware specifications(Mobile): Processor- 1GHz RAM- 1GB Hard Disk- 50MBSoftware Specifications: Operating System: Android Web Server: Apache Front End : Mobile Scripts : PHP,MySQL, Android Server side Script : PHP Database : MySQL Database Connectivity : Internet .

3.3 BACKGROUND STUDYPHP is a scripting language which can offer high interaction with database.In this application PHP and MySQL database is used to retrieve information from the server.For making connection to PHP script,we will use HTTP protocol from android system.When android application is executed, it will connect android device to PHP script.PHP script will fetch data from the database and encode it and send to the device.Now android application will get this data.It will parse the data and display it on android device.The bus companies usually provide free bus timetables on the web. Such bus timetables, however, only provide very limited information (e.g., operating hours, time intervals, etc.), which are typically not timely updated according to instant traffic conditions. Although many commercial bus information providers offer the realtime bus arrival information, the service usually comes with substantial cost. With a fleet of thousands of buses, the installment of invehicle GPS systems incurs tens of millions of dollars [24]. The network infrastructure to deliver the transit service raises the deployment cost even higher, which would eventually translate to increased expenditure of passengers.

4.SYSTEM DESIGN4.1 LOGICAL DESIGNUML Diagrams:The Unified Modeling Language (UML) is a visual modeling language used to specify, visualize, construct and document a software intensive system. The embedded real-time software systems encountered in applications such as telecommunications, school systems, aerospace, and defense typically tends to be large and extremely complex. It is crucial in such systems that the software is designed with a sound architecture. A good architecture not only simplifies construction of the initial system, but also, readily accommodates changes forced by a steady stream of new requirements.The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems.The UML is a very important part of developing objects oriented software and the software development process. The UML uses mostly graphical notations to express the design of software projects. Using the UML helps project teams communicate, explore potential designs, and validate the architectural design of the software.The primary goals in the design of the UML are: Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models. Provide extensibility and specialization mechanisms to extend the core concepts. Be independent of particular programming languages and development processes. Provide a formal basis for understanding the modeling language. Support higher-level development concepts such as collaborations, frameworks, patterns and components. Integrate best practices.

There are two types of diagrams, they are:Structural and Behavioral Diagrams.Structural Diagrams:-The UMLs four structural diagrams exist to visualize, specify, construct and document the static aspects of a system. ican View the static parts of a system using one of the following diagrams. Structural diagrams consists of Class Diagram, Object Diagram, Component Diagram, Deployment Diagram.

Behavioral Diagrams :The UMLs five behavioral diagrams are used to visualize, specify, construct, and document the dynamic aspects of a system. The UMLs behavioral diagrams are roughly organized around the major ways which can model the dynamics of a system.Behavioral diagrams consists of Use case Diagram, Sequence Diagram, Collaboration Diagram, State chart Diagram, Activity Diagram.

Use-Case DiagramsA use case diagram is a graph of actors, a set of use cases enclosed by a system boundary, communication (participation) associations between the actors and users and generalization among use cases. The use case model defines the outside (actors) and inside (use case) of the systems behavior.

Provide _Loc _id

Update_ databaseSharing User

Bus_ Route_ Information

Server

Arrival_ Time_ Query

Querying User

The sharing user interacts with the server and shares necessary details. The querying user queries the server and the server will answer the query. Server also periodically updates the database with the collected information from the sharing user.

4.2 Data-Flow DiagramsThe DFD is also called as bubble chart. It is a simple graphical formalism that can be used to represent a system in terms of the input data to the system, various processing carried out on these data, and the output data is generated by the system.

Level 0

ServerQuerying User

In level 0, data flow diagram represents that sharing user and querying user are connected to the server. Information from the respective users are updated to the server, processed and results are send back to the querying users.

SENSEDDETAILSUSERVALIDATIONLevel 1In level 1, data flow diagram represents the details regarding the registration and the sensed details obtained from the users.

Level 1.0

LOCATION

VALIDATIONQUERYING USER

DESTINATION

In level 1.0, data flow diagram represents the login details and the updating information provided by the querying user. Querying users are requested to enter the login details such as username and password. After Login, there will be fields to update the current location and destination.

Level 1.1ACCELERO- METER DATA

CELL TOWER SEQUENCEVALIDATION

SHARING USER

COLLECTS BUS INFORMATION

In level 1.1, data flow diagram represents the login details and sensed information provided by the sharing users. Sharing users are requested to enter the login details such as username and password. After login, they will update the sensed information such as Accelerometer data, Cell Tower Sequence, Bus Information.

4.3 Sequence DiagramSequence diagrams in UML shows how object interact with each other and the order those interactions occur. Its important to note that they show the interactions for a particular user. A Sequence diagram shows an interaction arranged in a time sequence. A sequence diagram has two dimensions: vertical dimension represents time; the horizontal Dimension represents different objects. The vertical line is called is the objects life line. The lifeline represents the objects existence during the interaction.

Mobile ApplicationServer

Collects and Processes Sensor info Application

Sends Info to Server

Display Arrival TimeQuery

Arrival Time

Sharing Users use the mobile application to update the information such as Accelerometer data, Cell Tower Sequence, Bus information and send these sensed details to the server. Server will process these data and obtains result in accordance with the information provided by the querying user. Arrival time will be displayed by the mobile application installed by the querying user.

4.4 PHYSICAL DESIGNINPUT DESIGN:The input design is the link between the information system and the user. . It is achieved by creating user-friendly screens for the data entry fields . The goal of designing input is to make data entry easier. The data entry screen is designed in such a way that all the data manipulates can be performed . Thus the objective of input design is to create an input layout that is easy to follow.

TABLE DESIGN:

TABLE 1-ROUTE TABLEBUS_IDROUTESTART_TIMEDEST_TIME

TABLE 2-USER TABLELACDESTINATIONTIME

TABLE 3-SHARED_USER TABLEBUS_IDDESTINATIONTIMELAC

TABLE 4-BUS TABLELocation LAC

OUTPUT DESIGN

A quality output is one, which meets the requirements of the end user and presents the information clearly. In any system results of processing are communicated to the users and to other system through outputs. In output design it is determined how the information is to be displaced for immediate need. It is the most important and direct source information to the user. Efficient and intelligent output design improves the systems relationship to help user decision-making. Designing computer output should proceed in an organized, well thought out manner; the right output must be developed while ensuring that each output element is designed so that people will find the system can use easily and effectively. When analysis design computer output, they should Identify the specific output that is needed to meet the requirements.

5. SYSTEM TESTING AND IMPLEMENTATION

5.1 SYSTEM TESTINGTesting is a process of executing a program with the intent of finding an error. A good test case is one that has a high probability of finding an as-yet undiscovered error. A successful test is one that uncovers an as-yet- undiscovered error. System testing is the stage of implementation, which is aimed at ensuring that the system works accurately and efficiently as expected before live operation commences. It verifies that the whole set of programs hang together. System testing requires a test consists of several key activities and steps for run program, string, system and is important in adopting a successful new system. This is the last chance to detect and correct errors before the system is installed for user acceptance testing.The software testing process commences once the program is created and the documentation and related data structures are designed. Software testing is essential for correcting errors. Otherwise the program or the project is not said to be complete. Software testing is the critical element of software quality assurance and represents the ultimate the review of specification design and coding. Testing is the process of executing the program with the intent of finding the error. A good test case design is one that as a probability of finding a yet undiscovered error. A successful test is one that uncovers a yet undiscovered error. Any engineering product can be tested in one of the two ways:The purpose of testing is to discover errors. Testing is the process of trying to discover every conceivable fault or weakness in a work product. It provides a way to check the functionality of components, sub assemblies, assemblies and/or a finished product It is the process of exercising software with the intent of ensuring that the Software system meets its requirements and user expectations and does not fail in an unacceptable manner. There are various types of test. Each test type addresses a specific testing requirement.

TYPES OF TESTSUnit testingUnit testing involves the design of test cases that validate that the internal program logic is functioning properly, and that program inputs produce valid outputs. All decision branches and internal code flow should be validated. It is the testing of individual software units of the application .it is done after the completion of an individual unit before integration. This is a structural testing, that relies on knowledge of its construction and is invasive. Unit tests perform basic tests at component level and test a specific business process, application, and/or system configuration. Unit tests ensure that each unique path of a business process performs accurately to the documented specifications and contains clearly defined inputs and expected results.Integration testingIntegration tests are designed to test integrated software components to determine if they actually run as one program. Testing is event driven and is more concerned with the basic outcome of screens or fields. Integration tests demonstrate that although the components were individually satisfaction, as shown by successfully unit testing, the combination of components is correct and consistent. Integration testing is specifically aimed at exposing the problems that arise from the combination of components.Functional testFunctional tests provide systematic demonstrations that functions tested are available as specified by the business and technical requirements, system documentation, and user manuals.Functional testing is centered on the following items:Valid Input : identified classes of valid input must be accepted.Invalid Input : identified classes of invalid input must be rejected.Functions : identified functions must be exercised.Output : identified classes of application outputs must be exercised.Systems/Procedures : interfacing systems or procedures must be invoked.Organization and preparation of functional tests is focused on requirements, key functions, or special test cases. In addition, systematic coverage pertaining to identify Business process flows; data fields, predefined processes, and successive processes must be considered for testing. Before functional testing is complete, additional tests are identified and the effective value of current tests is determined.System TestSystem testing ensures that the entire integrated software system meets requirements. It tests a configuration to ensure known and predictable results. An example of system testing is the configuration oriented system integration test. System testing is based on process descriptions and flows, emphasizing pre-driven process links and integration points.White Box TestingWhite Box Testing is a testing in which in which the software tester has knowledge of the inner workings, structure and language of the software, or at least its purpose. It is purpose. It is used to test areas that cannot be reached from a black box level.Black Box TestingBlack Box Testing is testing the software without any knowledge of the inner workings, structure or language of the module being tested. Black box tests, as most other kinds of tests, must be written from a definitive source document, such as specification or requirements document, such as specification or requirements document. It is a testing in which the software under test is treated, as a black box .you cannot see into it. The test provides inputs and responds to outputs without considering how the software works.5.1 Unit Testing:Unit testing is usually conducted as part of a combined code and unit test phase of the software lifecycle, although it is not uncommon for coding and unit testing to be conducted as two distinct phases.Test objectives All field entries must work properly. Pages must be activated from the identified link. The entry screen, messages and responses must not be delayed.

Features to be tested Verify that the entries are of the correct format No duplicate entries should be allowed All links should take the user to the correct page.

5.2 Integration TestingSoftware integration testing is the incremental integration testing of two or more integrated software components on a single platform to produce failures caused by interface defects.The task of the integration test is to check that components or software applications, e.g. components in a software system or one step up software applications at the company level interact without error.Test Results: All the test cases mentioned above passed successfully. No defects encountered.5.3 Acceptance TestingUser Acceptance Testing is a critical phase of any project and requires significant participation by the end user. It also ensures that the system meets the functional requirements.Test Results: All the test cases mentioned above passed successfully. No defects encountered.

5.2 SYSTEM IMPLEMENTATIONImplementation is the stage of the project when the theoretical design is turned out into a working system. Thus it can be considered to be the most critical stage in achieving a successful new system and in giving the user, confidence that the new system will work and be effective.The implementation stage involves careful planning, investigation of the existing system and its constraints on implementation, designing of methods to achieve changeover and evaluation of changeover methods.SAMPLE CODE

Splash.javapackage com.example.bustime;

import android.app.Activity;import android.content.Intent;import android.graphics.PixelFormat;import android.os.Bundle;import android.view.Window;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.ImageView;

public class SplashScreen extends Activity {

public void onAttachedToWindow() { super.onAttachedToWindow(); Window window = getWindow(); window.setFormat(PixelFormat.RGBA_8888); }@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.splashscreen);StartAnimations(); Thread logoTimer = new Thread() { public void run(){ try{ int logoTimer = 0; while(logoTimer < 5000){ sleep(100); logoTimer = logoTimer +100; }; Intent i = new Intent(SplashScreen.this,MainActivity.class); startActivity(i); overridePendingTransition(R.anim.fade_in, R.anim.fade_out); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ finish(); } } }; logoTimer.start(); } private void StartAnimations() { Animation anim = AnimationUtils.loadAnimation(this, R.anim.translatebus); anim.reset(); ImageView iv1 = (ImageView) findViewById(R.id.imageView1); iv1.clearAnimation(); iv1.startAnimation(anim); anim = AnimationUtils.loadAnimation(this, R.anim.translate); anim.reset(); ImageView iv = (ImageView) findViewById(R.id.imageView2); iv.clearAnimation(); iv.startAnimation(anim); }}

Main Activity.javapackage com.example.bustime;

import java.util.ArrayList;import java.util.List;

import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.HttpClient;import org.apache.http.client.ResponseHandler;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.BasicResponseHandler;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;

import android.os.Bundle;import android.app.Activity;import android.app.ProgressDialog;import android.content.Context;import android.content.Intent;import android.telephony.CellLocation;import android.telephony.TelephonyManager;import android.telephony.gsm.GsmCellLocation;import android.view.KeyEvent;import android.view.Menu;import android.view.View;import android.widget.ImageButton;import android.widget.RatingBar;import android.widget.TextView;import android.widget.Toast;import android.graphics.Color;

public class MainActivity extends Activity {int counter=0;HttpPost httppost;HttpResponse response;HttpClient httpclient;List nameValuePairs;ImageButton c,search,update,voice;TextView tv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//tv = (TextView) findViewById(R.id.tV);//tv.setText("Status: Not Shared");//c = (ImageButton) findViewById(R.id.imageButton1); search = (ImageButton)findViewById(R.id.imageButton3); update = (ImageButton)findViewById(R.id.imageButton1); voice =(ImageButton)findViewById(R.id.imageButton2);search.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent i = new Intent(MainActivity.this,Search.class);startActivity(i);}});update.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent i = new Intent(MainActivity.this,Update.class);startActivity(i);}});voice.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent i = new Intent(MainActivity.this,VoicePhyHand.class);startActivity(i);}});}@Overridepublic boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) { // Do something here... // Needed to track long presses // Log.e("Main activity", "KEYCODE_VOLUME_UP"); Toast.makeText(getApplicationContext(), "Your Message", Toast.LENGTH_LONG).show(); return true; } return super.onKeyDown(keyCode, event);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}

}

6. EXPERIMENTAL RESULTS6.1 EVALUATION MEASURESIn this application, the main steps done are as follows:.the destination entered by the querying user is passed to the server..finding the current location of the querying user and passes the location id to the server..classifying buses that passes through the current location and the destination entered by the querying user..from the information provided by the sharing users in those buses ,find the nearest bus to the querying user..calculate the time taken to reach the querying user by the nearest bus.

The servers holds a Route DB database which contains the route data (sequence of tower ids). This database is made by pre-surveying the routes and the buses that go by them. The server also has an Active Bus DB database which contains list of buses running and on which routes. This list is maintained from the data collected from sharing users. When a querying user sends a request (which contains their current location and destination), a route whose sequence coincides with the send data is returned.Eg: (Referential data, not actual sequence or figures)Suppose the Route DB has the following 2 sequences,Route 1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Route 2: 21 22 23 24 25 26 27 28 29 30The sharing users will constantly give their location info like,User A,T = 1, 2 3 4 5 T = 2, 3 4 5 6 etc.With this info the server calculates a bus moving in route 1 with a speed of 1 tower per sec(from the sample shown).The querying user will send the query (of the form, say Curr=10,Dest=15). From the database, we find the matching sequence(Route 1) and calculate time taken to reach location 10 with the speed data. This time is returned to the querying user. The time is calculated by the equation

Time=distance between the current location of bus and querying user/speed of the bus.

6.2 RESULTSANALYSISThe computation overhead of backend server is mainly bounded by the uploaded cell tower sequence length l ,the cell tower set sequence length k, and the number of cell tower set sequences in the database N. The computation complexity of sequence matching using dynamic programming is O(lk) , and as we need to compare with N candidate sequences in database the overall computation complexity is O(lkN) . Since in practice both m and n are usually small the computation complexity increases almost linearly to the number of candidate cell tower sequences in the database.

OUTPUT SCREENS

6.3 COMPARISONSThis application differs from the related works in that it predicts the bus arrival time based on cell tower sequence information shared by participatory users. To encourage more participants, no explicit location services (e.g., GPS-based localization) are invoked so as to reduce the overhead of using such special hardware for localization.

This application does not aim to position the mobile users though similar in spirit to the existing works in utilizing the cell tower sequences.

7.CONCLUSION AND SCOPE FOR FUTURE WORK

7.1 SUMMARY OF WORKIn this paper, we present a crowd-participated bus arrival time prediction system. Primarily relying on inexpensive and widely available cellular signals, the proposed system provides cost-efficient solutions to the problem. We comprehensively evaluate the system through an Androidprototype system. This system can accurately predict the bus arrival time. Being independent ofany support from transit agencies and location services, the proposed scheme provides a flexible framework for participatory contribution of the community. The only requirement of this system implementation is that there exist a backend server.

7.2 APPLICATION POTENTIALSThis application can be installed in any mobile phone having android platform. The querying user need to enter only the destination. Sharing users need to enter the bus id and destination. In this way the data in the server will get updated and the accurate result will be provided to querying user. This application is extended for the usage by physically handicapped people. By pressing the volume up button the user can input the destination orally. Similarly result is given by pressing the volume down button.

7.3.SCOPE FOR FUTURE WORKFuture work includes how to encourage more participants to bootstrap the system because the number of sharing passengers affects the prediction accuracy in our system. This common issue of crowd-sourced solutions is largely influenced by the penetration rate and popularity ofthe services. One may actively promote the service to reach a critical penetration rate so as to ensure that at least one sharing user is on the bus willing to report the bus status.At the initial stage, we may encourage some specific passengers (like the bus drivers) to install the mobile phone clients.

8.REFERENCES[1] Pengfei Zhou, Yuanqing Zheng and Mo Li, How Long to Wait? Predicting Bus Arrival Time With Mobile Phone Based Participatory Sensing in IEEE transactions on Mobile Computing VOL 13,NO 6,June 2014.[2]Bus Transport in Singapore[Online]. Available:http://en.wikipedia.org/wiki/Bus_transport_in_Singapore[3]EZ-Link[Online]. Available:http://www.ezlink.com.sg[4]Octupus[Online]. Available:http://www.octopus.com.hk/home/en[5]Oyster[Online]. Available:https://oyster.tfl.gov.uk/oyster[6]PublicTransport@SG[Online]. Available:http://www.publictransport.sg/[7]Buses in London[Online]. Available:http://en.wikipedia.org/wiki/London_bus[8]Transport for London[Online]. Available:http://www.tfl.gov.uk/[9] T. Abdelzaheret al., Mobiscopes for human spaces,IEEEPervasive Comput., vol. 6, no. 2, pp. 2029, Apr. 2007.[10] G. Ananthanarayanan, M. Haridasan, I. Mohomed, D. Terry, and C. A. Thekkath, Startrack: A framework for enabling track-based applications, in Proc. ACM MobiSys, 2009, pp. 207-220.[11] P. Bahl and V. N. Padmanabhan, RADAR: An in-building RF-based user location and tracking system, in Proc. IEEE INFOCOM, 2000, pp. 775784.[12] R. K. Balan, K. X. Nguyen, and L. Jiang, Real-time trip information service for a large taxi fleet, in Proc. ACM MobiSys, 2011,pp. 99112.[13] X. Bao and R. R. Choudhury, MoVi: Mobile phone based video highlights via collaborative sensing, in Proc. ACM MobiSys,San Francisco, CA, USA, 2010, pp. 357370.[14] J. Biagioni, T. Gerlich, T. Merrifield, and J. Eriksson, Easytracker:Automatic transit tracking, mapping, and arrival time prediction using smartphones, inProc. ACM SenSys , 2011, pp. 114.[15] I. Constandache, X. Bao, M. Azizyan, and R. R. Choudhury, Did you see Bob? Human localization using mobile phones, in Proc. ACM MobiCom, 2010, pp. 149160.[16] M. Haridasan, I. Mohomed, D. Terry, C. A. Thekkath, and L. Zhang, Startrack next generation: A scalable infrastructure for track-based applications, in Proc. USENIX OSDI, 2010.[17] M. Keally, G. Zhou, G. Xing, J. Wu, and A. Pyles, PBN: Towards practical activity recognition using smartphone-based body sensor networks, in Proc. ACM SenSys , Seattle, WA, USA, 2011,pp. 246259.[18] F. Li, Y. Yu, H. Lin, and W. Min, Public bus arrival time prediction based on traffic information management system, in Proc. IEEE SOLI, Beijing, China, 2011, pp. 336341.[19] Y. Liu, L. Chen, J. Pei, Q. Chen, and Y. Zhao, Mining frequent trajectory patterns for activity monitoring using radio frequency tag arrays, in Proc. IEEE PerCom , White Plains, NY, USA, 2007.[20] H. Lu, W. Pan, N. D. Lane, T. Choudhury, and A. T. Campbell, SoundSense: Scalable sound sensing for people-centric applications on mobile phones, in Proc. ACM MobiSys , Krakw, Poland, 2009, pp. 165178.[21] J. Paek, J. Kim, and R. Govindan, Energy-efficient rate-adaptive GPS-based positioning for smartphones, in Proc. ACM MobiSys, San Francisco, CA, USA, 2010, pp. 299314.[22] J. Paek, K.-H. Kim, J. P. Singh, and R. Govindan, Energy-efficient positioning for smartphones using cell-ID sequence matching, in Proc. ACM MobiSys , Bethesda, MD, USA, 2011, pp. 293306.[23] C. Peng, G. Shen, Y. Zhang, Y. Li, and K. Tan, BeepBeep: A high accuracy acoustic ranging system using COTS mobile devices, in Proc. ACM SenSys , Sydney, NSW, Australia, 2007, pp. 114.[24] S. Reddy et al.,Using mobile phones to determine transportation modes,ACM Trans. Sensor Netw., vol. 6, no. 2, pp. 127, Mar. 2010.[25] A. Thiagarajan, J. Biagioni, T. Gerlich, and J. Eriksson,Cooperative transit tracking using smart-phones, in Proc. ACM SenSys , Zurich, Switzerland, 2010, pp. 8598.[26] A. Thiagarajan, L. Ravindranath, H. Balakrishnan, S. Madden,and L. Girod, Accurate, low-energy trajectory mapping formobile devices, in Proc. USENIX NSDI, Berkeley, CA, USA, 2011.[27] A. Thiagarajan et al. , VTrack: Accurate, energy-aware road traffic delay estimation using mobile phones, in Proc. ACM SenSys,2009, pp. 8598.[28] Y. Wanget al. , A framework of energy efficient mobile sensing for automatic user state recognition, in Proc. ACM MobiSys , 2009, pp. 179192.[29] M. S. Waterman and T. F. Smith, Identification of common molecular subsequences,J. Mol. Biol. , vol. 147, pp. 195197, Mar. 1981.[30] C. Wu, Z. Yang, Y. Liu, and W. Xi, WILL: Wireless indoor localization without site survey, in Proc. IEEE INFOCOM , Orlando , FL, USA, 2012

Department of CSE52RIT Kottayam