Anda di halaman 1dari 62

Waysindia.co.

in
A
PROJECT REPORT
ON

BUS TICKET RESERVATION SYSTEM


Submitted in partial fulfillment for the
Award of degree of

Post Graduate Diploma


In
Information Technology

(2008-10)

Submitted By:
BRIJ MOHAN DAMMANI
200852200

Submitted to:
Symbiosis Centre for Distance Learning,
Pune 411016, Maharashtra, India

ACKNOWLEDGEMENT
A project like this takes quite a lot of time to do properly. As is often the case, this project
owes its existence and certainly its quality to a number of people, whose name does not
appear on the cover. Among them is one of the most extra ordinary programmers it has
been my pleasure to work with Mr. Ankur Kaushik, who did more than just check the
facts by offering thoughtful logic where needed to improve the project as a whole.
We also thank to Mr. Sh. Hardayal Singh (H.O.D. -MCA Deptt. Engineering College
Bikaner) who deserves credit for helping me done the project and taking care of all the
details that most programmers really dont think about. Errors and confusions are my
responsibility, but the quality of the project is to their credit and we can only thank them.
We are highly thankful and feel obliged to WaysIndia Travels staff members for nice
Co-Operation and valuable suggestions in my project work.
We owe my obligation to my friends and other colleagues in the computer field for their
co-operation and support.
We thank God for being on my side.

Contents
Chapter 1

Introduction

Chapter 2

Development model

Chapter 3

System Study

Chapter 4

Project Monitoring System

Chapter 5

System Analysis

Chapter 6

Operating Environment

Chapter 7

System Design

Chapter 8

System Testing

Chapter 9

System Implementation

Chapter 10

Conclusion

Chapter 11

Scope of the Project

Introuction
In bus reservation system there has been a collection of buses, agent who
are booking tickets for customers journey which give bus number and departure
time of the bus. According to its name it manages the details of all agent, tickets,
rental details, and timing details and so on. It also manages the updating of the
objects.
In the tour detail there is information about bus, who has been taking
customers at their destination, it also contain the detailed information about the
customer, who has been taken from which bus and at what are the number of
members he or she is taking his/her journey.
This section also contain the details of booking time of the seat(s) or
collecting time of the tickets, this section also contain the booking date and the
name of agent which is optional, by which the customer can reserve the seats for
his journey
In Bus no category it contains the details of buses which are old/new. New
buses are added with the details with bus no, from city to the city, type of the bus,
rent of a single seat, if the bus has sleeper than the cost of sleeper, if the cabin has
the facility for sitting than the cost of cabin seats, tour timings of the new bus has
also been stored. How many buses are currently given and available in office?
In seats specification, it gives the list of given issued and currently available
seats and contain the information about seats like sleeper, cabin etc.
The main objective of this project is to provide the better work efficiency,
security, accuracy, reliability, feasibility. The error occurred could be reduced to
nil and working conditions can be improved.

Development model
Software Process Model
Our project life cycle uses the waterfall model, also known as classic life cycle
model or linear sequential model.

System/Information
Engineering
Design

Analysis

Code

Test

The Waterfall Model


The waterfall model encompasses the following activities:

1.

System/information Engineering and Modeling

System Engineering and Analysis encompass requirements gathering at the system


level with a small amount of Top-level design and analysis. Information
Engineering encompasses requirements gathering at the strategic business level
and at the business area level.
2.

Software requirements analysis

Software requirements analysis involves requirements for both the system and the
software to be document and reviewed with the customer.

3.

Design

Software design is actually a multi-step process that focuses on for distinct


attributes of a program: data structure, software architecture, interfaces
representation and procedural detail. The design process translates requirements
into a representation of the software that can be accessed for quality before coding
begins.
4.

Code Generation

Code-Generation phase translates the design into a machine-readable form.


5. Testing

Once code has been generated, program testing begins. The testing focuses on the
logical internals of the software, ensuring that all statement have been tested, and
on the functional externals; that is, conducting test to uncover errors and ensure
that define input will produce actual results that agree with required results .
6.

Support

Software will undoubtedly undergo change after it is delivered to the customer.


Change will occur because errors have been encountered, because the software
must be adapted to accommodate changes in its external environment or because
the customer requires functional or performance enhancements.

System Study

Before the project can begin, it becomes necessary to estimate the work to be done, the
resource that will be required, and the time that will elapse from start to finish. During
making such a plan we visited site many more times.

3.1 Project planning objectives


The objective of software project planning is to provide a framework that enables
the management to make reasonable estimates of resources, cost, and schedule.
These estimates are made within limited time frame at the beginning of a software
project and should be updated regularly as the project progresses. In addition,
estimates should attempt to define best case and worst case scenarios so that
project outcomes can be bounded.

3.2 Software Scope


The first activity in software project planning is the determination of software
scope. Software scope describes the data and control to be processed, function,
performance, constraints, interfaces, and reliability.

3.2.1 Gathering Information Necessary for Scope


The most commonly used technique to bridge communication gap between
customer and the software developer to get the communication process started is
to conduct a preliminary meeting or interview. When I visited the site we have
been introduced to the Manager of the center, there were two other persons out of
one was the technical adviser and another one was the cost accountant. Neither of
us knows what to ask or say; we were very much worried that what we say will be
misinterpreted.

We started to asking context-free questions; that is, a set of questions that will lead
to a basic understanding of the problem. The first set of context-free questions was
like this:
What do you want to be done?
Who will use this solution?
What is wrong with your existing working systems?
Is there another source for the solution?
Can you show us (or describe) the environment in which the solution will
be used?
After first round of above asked questions. We revisited the site and asked many
more questions considering to final set of questions.
Are our questions relevant to the problem that you need to be solved?
Are we asking too many questions?
Should we be asking you anything else?

3.2.2 Feasibility
Not everything imaginable is feasible, not even in software. Software feasibility
has four dimensions:
Technologyis a project technically feasible? Is it within the state of the art?
Finance Is it financially feasible?
Timewill the project be completed within specified time?
Resourcesdoes the organization have the resources needed to succeed?
After taking into consideration of above said dimensions, we found it could be
feasible for us to develop this project.

3.3 Software Project Estimation


Software cost and effort estimation will never be an exact science. Too may
variableshuman, technical, environmental, politicalcan affect the ultimate
cost of software and effort applied to develop it. However, software project
estimation can be transformed a black art to a series of systematic steps that
provide estimates with acceptable risk.
To achieve reliable cost and effort estimates, a number of options arise:
1. Delay estimation until late in the project (since, we can achieve 100%
accurate estimates after the project is complete!)
2. Base estimates on similar projects that have already been completed.
3. Use relatively simple decomposition techniques to generate project cost
and effort estimates.
4. Use one or more empirical models for software cost and effort
estimation.

Unfortunately, the first option, however attractive, is not practical. Cost estimates
must be provided Up front. However, we should recognize that the longer we
wait, the more we know, and the more we know, the less likely we are to make
serious errors in our estimates.
The second option can work reasonably well, if the current project is quite
similar to past efforts and other project influences (e.g., the customer, business
conditions, the SEE, deadlines) are equivalent. Unfortunately past experience has
not always been a good indicator of future results.
The remaining options are viable approaches the software project estimation.
Ideally, the techniques noted for each option be applied in tandem; each used as
cross check for the other. Decomposition techniques take a divide and conquer
approach to software project estimation. By decomposing a project into major
functions and related software engineering activities, cost and effort estimation can
be performed in the stepwise fashion.

Empirical estimation models can be used to complement decomposition


techniques and offer a potentially valuable estimation approach in their own right. A
model based on experience (historical data) and takes the form
D = f (vi)
Where d is one of a number of estimated values (e.g., effort, cost, project
duration and we are selected independent parameters (e.g., estimated LOC (line of
code)).
Each of the viable software cost estimation options is only as good as the
historical data used to seed the estimate. If no historical data exist, costing rests on a
very shaky foundation.

Project Monitoring System


4.1 PERT Chart:
Program evaluation and review technique (PERT) and critical path method
(CPM) are two project scheduling methods that can be applied to software
development. These techniques are driven by following information:
Estimates of Effort
A decomposition of the product function
The selection of the appropriate process model and task set
Decomposition of tasks
PERT chart for this application software is illustrated in figure 3.1. The critical
Path for this Project is Design, Code generation and Integration and testing.

Start

Requirement
Analysis
May 17, 2010

Design
May 24, 2010

Integration
and test
July 20, 2010

Coding
June 10, 2010
Finish
Aug 15, 2010
Documentation and
Report
Aug 1, 2010

Figure 4.1 PERT charts for Bus Reservation System.

4.2 Gantt Chart:


Gantt chart which is also known as Timeline chart contains the information
like effort, duration, start date, completion date for each task. A timeline chart can
be developed for the entire project.
Below in figure 4.2 we have shown the Gantt chart for the project. All project
tasks have been listed in the left-hand column.

Start: May 17, 2010.


Work tasks

Planned
start

Actual
start

Planned
complete

Actual
Complete

Notes

1.1 Identify needs and benefits


Meet with customers

Wk1,d1 Wk1,d1 Wk1,d2

Wk1,d2

Identified needs and constraints

Wk1,d2 Wk1,d2 Wk1,d2

Wk1,d2

Established Product Statement

Wk1,d3 Wk1,d3 Wk1,d3

Wk1,d3

Milestone: Product statement defined Wk1,d3 Wk1,d3 Wk1,d3

Wk1,d3

1.2 Defined

Analysis

Desiredoutput/control/input (OCI)

and design

Scope modes of interacton

Wk2,d1

Wk2,d2

is

Documented (OCI)

Wk2,d1

Wk2,d3

time

FTR: reviewed OCI with customer

Wk3,d3

Wk3,d5

consuming.

Revised OCI as required

Wk4,d1

Wk4,d2

Milestone: OCI defined

Wk4,d3

Wk4,d5

1.3 Defined the function/behavior


Milestone: Data Modeling completed

Wk5,d1 Wk5,d2

Wk5,d5

Coding

Wk5,d1 Wk6,d1

W7,d5

Reports

Wk7,d6

W8,d6

1.4 Isolation software elements

more

1.5 Integration and Testing

W9,d1

W9,d3

W11,d3
Finish: Aug 15, 2010

Figure: 4.2 Gant chart for the Bus reservation System.


Note: Wk1week1, d1day1.

System Analysis
Software requirements analysis is a process of discovery, refinement,
modeling, and specification. Requirement analysis proves the software designer
with a representation of information, function, and behavior that can be translated
to data, architectural interface, and component -level designs. To perform the job
properly we need to follow as set of underlying concepts and principles of
Analysis.

5.1 Analysis Principles


Over the past two decades, a large number of analysis modeling methods
have been developed. Investigators have identified analysis problems and their
caused and have developed a variety of modeling notations and corresponding sets
of heuristics to overcome them. Each analysis method has a unique point of view.
However, all analysis methods are related by a set of operational principles:
1. The information domain of a problem must be represented and understood.
2. The functions that the software is to perform must be defined.
3. The behavior of the software (as a consequence of external events) must be
represented.
4. The models that depict information function and behavior must be partitioned
in a manner that uncovers detail in layered (or hierarchical) fashion.
5. The analysis process should move from essential information toward
implementation detail.
By applying these principles, we approach the problem systematically. The
information domain is examined so that function may be understood more completely.
Models are used so that the characteristics of function and behavior can be communicated
in a compact fashion. Partitioning is applied to reduce complexity. Essential and
implementation vies of the software are necessary to accommodate the logical constraints
imposed any processing requirements and the physical constraints imposed by other

system elements.We have tried to takes above said principles to heart so that we could
provide an excellent foundation for design.

5.1.1 The Information Domain


All software applications can be collectively called data processing. Software is
built to process data, to transform data from one form to another; that is, to accept
input, manipulate it in some way, and produce output. This fundamental statement
of objective is true whether we build batch software for a payroll system or realtime embedded software to control fuel flow to an automobile engine.

The first operational analysis principle requires an examination of the information


domain and the creation of a data model. The information domain contains three
different views of the data and control as each is processed by a computer
program:
(1) information contend and relationships (the data model)
(2) information flow, and
(3) Information structure.
To fully understand the information domain, each of these views should be
considered.
Information content represents the individual data and control objects that
constitute some larger collection of information transformed by the software. For
example, the data object, Status declare is a composite of a number of important
pieces of data: the aircrafts name, the aircrafts model, ground run, no of hour
flying and so forth. Therefore, the content of Status declares is defined by the
attributes that are needed to create it. Similarly, the content of a control object
called System status might be defined by a string of bits. Each bit represents a
separate item of information that indicates whether or not a particular device is onor off-line.

Data and control objects can be related to other data and control objects.
For example, the date object Status declare has one or more relationships with the
objects like total no of flying, period left for the maintenance of aircraft an others.
Information flow represents the manner in which date and control change
as each moves through a system. Referring to figure 6.1, input objects are
transformed to intermediate information (data and / or control), which is further
transformed to output. Along this transformation path, additional information may
be introduced from an existing date store ( e.g., a disk file or memory buffer). The
transformations applied to the date are functions or sub functions that a program
must perform. Data and control that move between two transformations define the
interface for each function.
Figure 5.1 Information flow and transformation.
Input
Objects

Transfor
mTransfor
m#1
#1

Intermediate
data and
control

Data/Contro
l Data/Contro
l
Store
Store

Transfor
mTransfor
m
#2
#2

Output
Object(s)

5.1.2 Modeling
The second and third operational analysis principles require that we build models
of function and behavior.
Functional models. Software transforms information, and in order to accomplish
this, it must perform at lease three generic functions:
Input
Processing
And output.
The functional model begins with a single context level model (i.e., the name of
the software to be built). Over a series of iterations, more and more functional
detail is gathered, until a through delineation of all system functionality is
represented.
Behavioral models. Most software responds to events from the outside
world. This stimulus/response characteristic forms the basis of the behavioral
model. A computer program always exists in some state- an externally observable
mode of behavior (e.g., waiting, computing, printing, and polling) that is changed
only when some even occurs. For example, in our case the project will remain in
the wait state until:
We click OK command button when first window appears
An external event like mouse click cause an interrupt and consequently
main window appears by asking the username and password.
This external system (providing password and username) signals the
project to act in desired manner as per need.

A behavioral model creates a representation of the states of the software and the
events that cause software to change state.

5.1.2 Partitioning (Divide)


Problems are often too large and complex to be understood as a whole, for
this reason, se tend to partition (divide) such problems into parts that can be easily
under stood and establish interfaces between the part so that overall function can
be accomplished. The fourth operational analysis principle suggests that the
information, functional, and behavioral domains of software can be partitioned.
In essence, partitioning decomposes problem intoits constituent parts.
Conceptually, we establish a hierarchical representation of function or information
and then partition and uppermost element by

(1)

exposing increasing detail by moving vertically in the


hierarchy or

(2)

Functionally decomposing the problem my moving


horizontally in the hierarchy.

To issulstate these partitioning approaches let us consider our project


Bus Reservation System. Horizontal partitioning and vertical partitioning of
Bus Reservation system is shown below.

Horizontal partitioning:

Bus Reservation System

System configuration

Password acceptance

Interact with user

During installation, the software (Bus Reservation System) used to


program and configure the system. A master password is programmed for getting
in to the software system. After this step only user can work in the environments
(right cornor naming operation, administration and maintenance) only.

Vertical partitioning of Bus Reservation System function:

Bus Reservation System

Configure system

Username and Password

Acceptance

Interact with user

Rejection

Fail Retry

Operating Environment
6.1 Hardware Specification:
Server Side:

Core 2 Due 2.4GHz and Above


2 GB of Random Access Memory and Above
160 GB Hard Disk
Client Side:

Pentium-IV 1.5MHs and Above

512 MB of Random Access Memory and Above

80 GB Hard Disk

Software Specification:
Environment: PHP Apache Server
Technologies: PHP,HTML,CSS,JS
Database: MY SQL
Software: NetBeans IDE
OS: Windows 7
Browser: IE7, IE8, FF 3.5

PHP
HP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source
general-purpose scripting language that is especially suited for web development and can
be embedded into HTML.

PHP web development means developing websites and dynamic web pages using the
versatile and capable server-side scripting language, PHP. It offers a plethora of benefits.
Not only is it open-source but also feature-rich and has all the functionality that a
proprietary or paid scripting language would offer. Here are a few benefits that have
made PHP web development so sought after.
#1 Free of Cost
PHP is open source and is developed and updated by a community of developers from
around the globe. Therefore, all its components are free to use and distribute.
#2 Capable
It can be used to design any type of website and can handle websites with a lot of traffic.
Facebook, Twitter, Wikipedia and many other very widely visited websites use it as their
framework. And because it is server-side scripting, it can do anything that other CGI
programs can do.
#3 Easy
It has a readable and easily understandable syntax. Its code is embedded in the HTML
source code and it is based on C/C++. Therefore, it is very familiar and programmers are
very comfortable coding with it.
#4 Platform Independent

It can be run on all major operating systems like Linux, UNIX, Mac OS and Windows.
#5 Supports All Major Web Servers
It supports all major web servers like Apache, Microsoft IIS, Netscape, personal
webserver, iPlanet server, etc.
#6 Supports All Major Databases
IT supports all major databases including MySQL, dBase, IBM DB2, InterBase,
FrontBase, ODBC, PostgreSQL, SQLite, etc.
#7 Faster Developments
It uses its own memory space and thus decreases the loading time and workload from the
server. The processing speed is fast and web applications like Ecommerce, CRM, CMS
and Forums are also developed faster by it.
#8 Secure
It has multiple layers of security to prevent threats and malicious attacks.
#9 Large Communities
It has a large community of developers who regular and timely updates tutorials,
documentation, online help and FAQs.
#10 Proven and Trusted
It is being used since close to two decades now since its inception in 1995. It is trusted by
thousands of websites and developers and the list is increasing day by day. It has also
proven its capability and versatility by developing and maintaining some of the most
highly visited and popular websites.
Choose PHP development for a fully-functional, dynamic and robust website and a much
better web experience.
nstead of lots of commands to output HTML (as seen in C or Perl), PHP pages contain
HTML with embedded code that does "something" (in this case, output "Hi, I'm a PHP
script!"). The PHP code is enclosed in special start and end processing instructions <?php
and ?> that allow you to jump into and out of "PHP mode."
What distinguishes PHP from something like client-side JavaScript is that the code is
executed on the server, generating HTML which is then sent to the client. The client
would receive the results of running that script, but would not know what the underlying
code was. You can even configure your web server to process all your HTML files with
PHP, and then there's really no way that users can tell what you have up your sleeve.
The best things in using PHP are that it is extremely simple for a newcomer, but offers
many advanced features for a professional programmer. Don't be afraid reading the long
list of PHP's features. You can jump in, in a short time, and start writing simple scripts in
a few hours.
We use PHP as part of our daily coding ritual. We all love to use many of the open source
frameworks and code snippets to make our lives easier. However, we also feel its

important that every developer has a full understanding of the core base PHP functions,
classes and methods. Without knowledge of these, how can you begin to understand how
all the frameworks out there operate?
We have compiled a selection of our top 10 native functions, classes and features that we
use on a daily basis. We know first-hand how invaluable these features are, so we hope
you find them to be useful too.
1. PDO Class
We use the PDO (PHP Data Object) exclusively for connecting to our MySQL databases.
PDO provides a nice abstraction layer around a set of database drivers such as MySQL,
PostgreSQL and MS SQL. This means that whichever database you are using, as long as
PDO supports it, you can use the same functions to perform the same actions on the
database. This makes your code more portable for your web application to be used on a
whole range of databases with no extra development time.
The PDO Class provides many standardised functions such as creating transactions,
creating prepared statements and allowing you to escape your variables if you need to.
Used in the correct way, PDO can help protect your web application from SQL injection
attacks.
The PDO class can be used directly, but we like to use our own layer over the top to give
us more control over things like data entry formatting and validation, which the PDO
class does not provide. RedBeanPHP ORM is a good open source solution that provides
some nice functionality that's built on top of PDO.
The example below shows a connection to a MySQL database that selects the name,
colour and calories from each row in fruit table. By using a prepared statement, PDO
converts the placeholders to match the array that is parsed in the execute function. By
using the prepared statement, all the values are escaped to protect from SQL injection.
The whole piece of code has been added to a try block, which can be used to catch any
exceptions.
With the rollout of PHP5.2 came two very useful functions that allow you to parse JSON
(JavaScript Object Notation) strings. JSON is a text-based standard that is generally used
to send and receive data with a simple structure that was designed to be easily read, both
by a computer and by a human.
PHP provides two functions that allow you to manipulate your data both to and from
JSON. json_encode is utilised by setting the first argument as your data. Be that a simple
string or a multi dimensional array, PHP will try to return a string of your data that has
been converted to a JSON formatted string. This string can then be used to output on an
API or included in your HTML template to be read by your JavaScript code on the front
end.
There are some caveats to using json_encode. For example, only basic data types can be
used. Strings, numbers and Booleans are the main types along with associative and nonassociative arrays. PHP will also try to convert class objects but will only encode public
properties. UTF8 is also used to encode the resulting string of JSON.

MYSQL
MySQL is the world's second most[a] widely used relational database management
system (RDBMS)[9] and most widely used open-source RDBMS.[10] It is named after
co-founder Michael Widenius's daughter, My.[11] The SQL acronym stands for
Structured Query Language.
The MySQL development project has made its source code available under the terms of
the GNU General Public License, as well as under a variety of proprietary agreements.
MySQL was owned and sponsored by a single for-profit firm, the Swedish company
MySQL AB, now owned by Oracle Corporation.[12]
MySQL is a popular choice of database for use in web applications, and is a central
component of the widely used LAMP open source web application software stack (and
other 'AMP' stacks). LAMP is an acronym for "Linux, Apache, MySQL,
Perl/PHP/Python." Free-software-open source projects that require a full-featured
database management system often use MySQL.
Internals and Portability
Written in C and C++.
Tested with a broad range of different compilers.
Works on many different platforms. See
http://www.mysql.com/support/supportedplatforms/database.html.
For portability, uses CMake in MySQL 5.5 and up. Previous series use GNU
Automake, Autoconf, and Libtool.
Tested with Purify (a commercial memory leakage detector) as well as with Valgrind, a
GPL tool (http://developer.kde.org/~sewardj/).
Uses multi-layered server design with independent modules.
Designed to be fully multi-threaded using kernel threads, to easily use multiple CPUs
if they are available.
Provides transactional and nontransactional storage engines.
Uses very fast B-tree disk tables (MyISAM) with index compression.
Designed to make it relatively easy to add other storage engines. This is useful if you
want to provide an SQL interface for an in-house database.
Uses a very fast thread-based memory allocation system.
Executes very fast joins using an optimized nested-loop join.
Implements in-memory hash tables, which are used as temporary tables.

Implements SQL functions using a highly optimized class library that should be as fast
as possible. Usually there is no memory allocation at all after query initialization.
Provides the server as a separate program for use in a client/server networked
environment, and as a library that can be embedded (linked) into standalone applications.
Such applications can be used in isolation or in environments where no network is
available.

Database Queries
The most common operation in SQL databases is the query, which is performed
with the declarative SELECT keyword. SELECT retrieves data from a specified
table, or multiple related tables, in a database. While often grouped with Data
Manipulation Language (DML) statements, the standard SELECT query is
considered separate from SQL DML, as it has no persistent effects on the data
stored in a database. Note that there are some platform-specific variations of
SELECT that can persist their effects in a database, such as the SELECT INTO
syntax that exists in some databases.
SQL queries allow the user to specify a description of the desired result set, but it
is left to the devices of the database management system (DBMS) to plan,
optimize, and perform the physical operations necessary to produce that result set
in as efficient a manner as possible. An SQL query includes a list of columns to be
included in the final result immediately following the SELECT keyword. An
asterisk ("*") can also be used as a "wildcard" indicator to specify that all
available columns of a table (or multiple tables) are to be returned. SELECT is the
most complex statement in SQL, with several optional keywords and clauses,
including:
The FROM clause which indicates the source table or tables from which the data
is to be retrieved. The FROM clause can include optional JOIN clauses to join
related tables to one another based on user-specified criteria.

The WHERE clause includes a comparison predicate, which is used to restrict the
number of rows returned by the query. The WHERE clause is applied before the
GROUP BY clause. The WHERE clause eliminates all rows from the result set
where the comparison predicate does not evaluate to True.
The GROUP BY clause is used to combine, or group, rows with related values
into elements of a smaller set of rows. GROUP BY is often used in conjunction
with SQL aggregate functions or to eliminate duplicate rows from a result set.
The HAVING clause includes a comparison predicate used to eliminate rows after
the GROUP BY clause is applied to the result set. Because it acts on the results of
the GROUP BY clause, aggregate functions can be used in the HAVING clause
predicate.
The ORDER BY clause is used to identify which columns are used to sort the
resulting data, and in which order they should be sorted (options are ascending or
descending). The order of rows returned by an SQL query is never guaranteed
unless an ORDER BY clause is specified.
The following is an example of a SELECT query that returns a list of expensive
books. The query retrieves all rows from the Book table in which the price column
contains a value greater than 100.00. The result is sorted in ascending order by
title. The asterisk (*) in the select list indicates that all columns of the Book table
should be included in the result set.
SELECT *
FROM Book
WHERE price > 100.00
ORDER BY title;

The example below demonstrates the use of multiple tables in a join, grouping,
and aggregation in an SQL query, by returning a list of books and the number of
authors associated with each book.
SELECT Book.title, count (*) AS Authors
FROM Book
JOIN Book_author
ON Book.isbn = Book_author.isbn
GROUP BY Book.title;
Example output might resemble the following:
Title

Authors

---------------------- ------SQL Examples and Guide


The Joy of SQL

How to use Wikipedia


Pitfalls of SQL

2
1

How SQL Saved my Dog

(The underscore character "_" is often used as part of table and column names to
separate descriptive words because other punctuation tends to conflict with SQL
syntax. For example, a dash "-" would be interpreted as a minus sign.)
Under the precondition that isbn is the only common column name of the two
tables and that a column named title only exists in the Books table, the above
query could be rewritten in the following form:

SELECT title, count (*) AS Authors


FROM Book
NATURAL JOIN Book_author
GROUP BY title;
However, many vendors either do not support this approach, or it requires certain
column naming conventions. Thus, it is less common in practice.
Data retrieval is very often combined with data projection when the user is looking
for calculated values and not just the verbatim data stored in primitive data types,
or when the data needs to be expressed in a form that is different from how it's
stored. SQL allows the use of expressions in the select list to project data, as in the
following example which returns a list of books that cost more than 100.00 with
an additional sales_tax column containing a sales tax figure calculated at 6% of
the price.
SELECT isbn, title, price, price * 0.06 AS sales_tax
FROM Book
WHERE price > 100.00
ORDER BY title;
Some modern day SQL queries may include extra WHERE statements that are
conditional to each other. They may look like this example:
SELECT isbn, title, price, date
FROM Book
WHERE price > 100.00

AND (date = '16042004' OR date = '16042005')


ORDER BY title;

Chapter 7

System Design
Use Case

E-R DIAGRAM:

BUS RESERVATION
SYSTEM

Give
service
s

Divide
d

BUSES
Work
area

examin
e

Care
of

SLEEPER
OR
WITHOUT
SLEEPER

DIFFERENT
TYPE OF
BUSES

Work
s

Full
of

SEATS

DEPARTMENT

The following DFD shows how the working of a reservation system could be
smoothly managed:

WORK AREAS

DEPTT WITH ITS


BUSES

AGENT

BUSES
RECORDS

RESERVED
AGENT

DAILY ENTRY
REC

VISITING
AGENT
AGENT
DETAILS

REPORT
TABLE

DETAIL DESCRIPTION OF DATA FLOW DIAGRAM:

We have STARBUS as our database and some of our tables (relation) are
such as AGENT_BASIC_INFO, FEEDBACK, PASSANGER_INFO, STATIS and
TIMELIST

STARBUS
AGENTBASICINFO
FEEDBACK
PASSANGERIFNO
STATIS
TIMELIST

In our table AGENT_BASIC_INFO we have following field such as agent_id,


agent_name, agent_name, agent_fname, agent_shop_name, agent_shop_address,
agent_shop_city, agent_phon_number etc.

AGENT_BASIC_INFO
AGENT_ID
AGENT_NAME
AGENT_FNAME
AGENT_SHOP_NAME
AGENT_SHOP_ADDRESS
AGENT_SHOP_CITY
AGENT_PHON_NUMBER
AGENT_MOBIL_NUMBER
AGENT_CURRENT_BAL

In our FEEDBACK table we have fields like name, Email, Phon, Subject,
Comment, and User_type.

Email
Name

Phone

FEEDBACK
Comment

Subject
User_typ
e

In our table PASSANGER_INFO we have filed like bill_no, c_name, c_phone,


c_to, c_from, c_time, Ttalseat, Seatnumber, Amount, Agent_id and Status.

C_name

C_phon

Bill_no
C_to
Status
PASSANGER
_INFO

Agent_id

Amount

C_from

C_time

Seat_no

Total_seat

In the table of TIME_LIST we have fields such as Sno, Satation_name,


Rate_per_seat, Time, Reach_time and Bus_number.

Sno

Station_nam
e

Rate_perSeat

TIME_LIST

Bus_numbe
r

Time
Reach_time

PROCESS LOGIC:
As the privatization of buses is increasing thus the need of its smooth
management is also increasing the more we could facilitate the customers,
the more they are comfortable with us, the more customers we have visiting
our reservation unit .the above tables and modules facilitates many logics
like:
Number of buses in one unit
Number of computers in particular department
Number of users in a department
Which bus has what tour on which day
What are time table for different buses of different department
What are the schedule for buses
Schedule of a particular bus
How many buses are there
Each bus has how many seats

How many seats are occupied


Advance booking for seat
How much money is collected in a particular day
Bills for different customers
Which seat has booked by agent

1. Index page

Admin

Chapter 8

System Testing

System Testing
Once source code has been generated, software must be tested to uncover (and
correct) as many errors as possible before delivery to customer. Our goal is to
design a series of test cases that have a high likelihood of finding errors. To
uncover the errors software techniques are used. These techniques provide
systematic guidance for designing test that
(1) Exercise the internal logic of software components, and
(2) Exercise the input and output domains of the program to uncover errors
in program function, behavior and performance.

8.1 Steps. Software is tested from two different perspectives:

(1) Internal program logic is exercised using White box test case design
techniques.
(2) Software requirements are exercised using block box test case design
techniques.
In both cases, the intent is to find the maximum number of errors with the
minimum amount of effort and time.

8.2 Strategies
A strategy for software testing must accommodate low-level tests that are
necessary to verify that a small source code segment has been correctly
implemented as well as high-level tests that validate major system functions
against customer requirements. A strategy must provide guidance for the
practitioner and a set of milestones for the manager. Because the steps of the test
strategy occur at a time when deadline pressure begins to rise, progress must be
measurable and problems must surface as earl as possible.
Following testing techniques are well known and the same strategy is adopted
during this project testing.
8.2.1 Unit testing: Unit testing focuses verification effort on the smallest unit of

software design- the software component or module. The unit test is white-box
oriented. The module interface is tested to ensure that information properly flows
into and of the program unit under test the local data structure has been examined
to ensure that data stored temporarily maintains its integrity during all steps in an
algorithms execution. Boundary conditions are tested to ensure that the module
operated properly at boundaries established to limit or restrict processing. All
independent paths through the control structure are exercised to ensure that all
statements in a module haven executed at least once.

8.2.2 Integration testing: Integration testing is a systematic technique for

constructing the program structure while at the same time conducting tests to
uncover errors associated with interfacing. The objective of this test is to take unit
tested components and build a program structure that has been dictated by design.
8.2.3 Validation testing: At the culmination of integration testing, software is

completely assembled as a package, interfacing errors have been uncovered and


corrected, and a final series of software testsvalidation testing-may begin.
Validation can be defined in many ways, but a simple definition is that validation
succeeds when software functions in a manner that can be reasonably expected by
the customer.
8.2.4 System testing: System testing is actually a series of different tests whose

primary purpose is to fully exercise the computer-based system. Below we have


described the two types of testing which have been taken for this project.
8.2.4.1 Security testing
Any computer-based system that manages sensitive information causes actions
that can improperly harm (or benefit) individuals is a target for improper or illegal
penetration. Penetration spans a broad range of activities: hackers who attempt to
penetrate system for sport; disgruntled employees who attempt to penetrate for
revenge; dishonest individuals who attempt to penetrate for illicit personal gain.
For security purposes, when anyone who is not authorized user cannot
penetrate this system. When programs first load it check for correct username and
password. If any fails to act according will be simply ignored by the system.

8.2.4.2 Performance Testing


Performance testing is designed to test the run-time performance of software
within the context of an integrated system. Performance testing occurs throughout

all steps in the testing process. Even at the unit level, the performance of an
individual module may be assessed as white-box tests are conducted.

8.3. Criteria for Completion of Testing


Every time the customer/user executes a compute program, the program is being
tested. This sobering fact underlines the importance of other software quality
assurance activities.
As much time we run our project that is still sort of testing as Musa and Ackerman
said. They have suggested a response that is based on statistical criteria: No, we
cannot be absolutely certain that the software will never fail, but relative to a
theoretically sound and experimentally validated statistical model, we have done
sufficient testing to say with 95 percent confidence that the probability of 1000
CPU hours of failure free operation in a probabilistically defined environment is at
least 0.995.
8.4 Validation Checks

Software testing is one element of broader topic that is often referred to as


verification and validation. Verification refers to the set of activities that ensure
that software correctly implements a specific function. Validation refers to a
different set of activities that ensure that the software that has been built is
traceable to customer requirements. Boehm state this another way:
Verification: Are we building the product right?
Validation:

Are we building the right product?

Validation checks are useful when we specify the nature of data input. Let us
elaborate what I mean. In this project while entering the data to many text box you
will find the use of validation checks. When you try to input wrong data. Your
entry will be automatically abandoned.

In the very beginning of the project when user wishes to enter into the project, he
has to supply the password. This password is validated to certain string, till user
wont supply correct word of string for password he cannot succeed. When you try
to edit the record for the trainee in Operation division you will find the validation
checks. If you supply the number (digits) for name text box, you wont get the
entry; similarly if you data for trainee code in text (string) format it will be simply
abandoned.
A validation check facilitates us to work in a greater way. It become necessary for
certain Applications like this.

Chapter 9

System Implementation

Specification, regardless of the mode through which we accomplish it, may


be viewed as a representation process. Requirements are represented in manner
that ultimately leads to successful software implementation.

9.1 Specification principles


A number of specification principles, adapted from the work of balzer and
Goodman can be proposed:
1. Separate functionality from implementation.
2. Develop a model of the desired behavior of a system that encompasses date
and the functional responses of a system to various stimuli from the
environment.
3. Establish the context in which software operates by specifying the manner in
which other system components interact with software.

4. Define the environment in which the system operates.


5. Create a cognitive model rather than a design or implementation model. The
cognitive model describes a system as perceived by its user community.
6. Recognize that the specifications must be tolerant of incompleteness and
augmentable.
7. Establish the content and structure of a specification in a way that will enable it
to be amenable to change.
This list of basic specification principles provides a basis for representing
software requirements. However, principles must be translated into realization.

9.1.2 Representation
As we know software requirement may be specified in a variety of ways.
However, if requirements are committed to paper a simple set of guidelines is well
worth following:

Representation format and content should be relevant to the


problem. A general outline for the contents of a Software Requirements
Specification can be developed. However, the representation forms contained
within the specification are likely to vary with the application area. For example,
for our automation system we used different symbology, diagrams.

Information contained within the specification should be nested.


Representations should reveal layers of information so that a reader can move to
the level of detail required. Paragraph and diagram numbering schemes should

indicate the level of detail that is being presented. It is sometimes worthwhile to


present the same information at different levels of abstraction to aid in
understanding. Similar guidelines are adhered for my project.

Chapter 10

Conclusion

To conclude, Project Grid works like a component which can access all the
databases and picks up different functions. It overcomes the many limitations
incorporated in the .NET Framework. Among the many features availed by the
project, the main among them are:

Simple editing

Insertion of individual images on each cell

Insertion of individual colors on each cell

Flicker free scrolling

Drop-down grid effect

Placing of any type of control anywhere in the grid

Chapter 11

Scope of the Project

Future scope of the project: The project has a very vast scope in future. The project can be implemented on
internet in future. Project can be updated in near future as and when requirement
for the same arises, as it is very flexible in terms of expansion. With the proposed
software of Web Space Manager ready and fully functional the client is now able
to manage and hence run the entire work in a much better, accurate and error free
manner. The following are the future scope for the project: The number of levels that the software is handling can be made unlimited
in future from the current status of handling up to N levels as currently laid
down by the software. Efficiency can be further enhanced and boosted up to
a great extent by normalizing and de-normalizing the database tables used
in the project as well as taking the kind of the alternative set of data
structures and advanced calculation algorithms available.
We can in future generalize the application from its current customized
status wherein other vendors developing and working on similar

applications can utilize this software and make changes to it according to


their business needs.
Faster processing of information as compared to the current system with
high accuracy and reliability.
Automatic and error free report generation as per the specified format with
ease.
Automatic calculation and generation of correct and precise Bills thus
reducing much of the workload on the accounting staff and the errors
arising due to manual calculations.
With a fully automated solution, lesser staff, better space utilization and

peaceful work environment, the company is bound to experience high


turnover.
A future application of this system lies in the fact that the proposed system would
remain relevant in the future. In case there be any additions or deletion of the
services, addition or deletion of any reseller in any type of modification in future
can be implemented easily. The data collected by the system will be useful for
some other purposes also.
All these result in high client-satisfaction, hence, more and more business for the
company that will scale the company business to new heights in the forthcoming
future.

References

References:

Complete Reference of PHP

Programming in PHP

www.w3schools.com

http://en.wikipedia.org

The principles of Software Engineering Roger S.Pressman

Software Engineering Hudson

Object Oriented Programming Deitel & Deitel

Anda mungkin juga menyukai