Sei sulla pagina 1di 60





Before we precede our project we would like to add a few heartfelt words
for the people who were part of this project in various ways. People who
gave unending support in development of this project. In particular, we
wish to thank our Faculty members for giving guidance and several ideas
in this software development.
We thank Honorable Chairman Sir Mr.Kamal Ghanshala for providing
us platform where we had developed this software.

Several people contributed for the up comming of this project. The main
contribution in the upcomming of this project was of the respected faculty
members, the team members and the other students also which play the
important part of critics in the project. The concerned faculty of the
project is Mr. MANISH SHARMA. By their valuable and timely
comments and suggestions this project had come into existence.

At last but not least we would like to wish thanks to each other for
cooperation and a well understanding between us.

This is to certify that SUNIL TEWARI completed the project titled

“NETWORK BANKING” under my guidance and supervision.

He is submitting this project in the partial fulfillment of

requirements for the award of B.TECH, Graphic Era University.

This work is original and has not been published or submitted

elsewhere for any purpose what so ever. All sources of information
have been duly mentioned and duly acknowledged.

Project Guide:

Mr. Manish Sharma

Asst. Professor
Graphic Era University

Our project is based on the Network Banking. Coupling this software with
necessary hardware devices, this could be converted to an ATM (Automatic
Teller Machine).This is just a simulation of the Network Bankings, so can be
called as a mini-ATM.

Server is designed to be multithreaded. It can take off any number of clients

(we have tested upto 4 clients).first the server should be started before
clients getting access the server. Server should be made to run on a system,
and then clients can start from any other system but within the same local
area networks. Also the program is written in such a way that it could take
the look and feel of the system on which it is running.

1. INTRODUCTION…………………………………………………….

1. Introduction………………………………………….
2. SDLC………………………………………………..
3. Software & Hardware Requirements………………..
4. Introduction to JAVA AND NETWORKING…………….

2. FEASIBILITY STUDY…………………………………………….

1. Feasibility Study………………………………………………
2. Types of Feasibility Study……………………………………….

3. REQUIREMENT ANALYSIS………………………………………

1. SRS…………………………………………………….

4. DESIGNING………………………………………………………

1. Tools and Technologies Used…………………………………

2. Project Flow Diagram…………………………………………
3. Database Tables…………………………………………………

5. CODING………………………………………………………….
1. Coding…………………………………………………………
2. Screen Shots…………………………………………………….

6. TESTING………………………………………………………..

1. Unit Testing…………………………………………………….
2. Integration Testing…………………………………………….
3. System Testing…………………………………………………
4. Black Box Testing……………………………………………..
5. White Box Testing……………………………………………

7. MAINTENANCE……………………………………………………..

1. Corrective Maintenance…………………………………………….
2. Adaptive Maintenance………………………………………………..
3. Perfective Maintenance……………………………………………

8. CONCLUSION…………………………………………………….

9. FUTURE SCOPE…………………………………………………

10. BIBLIOGRAPHY……………………………………..

Our project is based on the Network Banking. Coupling this software with
necessary hardware devices, this could be converted to an ATM (Automatic
Teller Machine).This is just a simulation of the Network Bankings, so can be
called as a mini-ATM

Server is designed to be multithreaded. It can take off any

number of clients (we have tested upto 4 clients).first the server should be
started before clients getting access the server. Server should be made to run
on a system, and then clients can start from any other system but within the
same local area networks. Also the program is written in such a way that it
could take the look and feel of the system on which it is running.

SOFTWARE ENGINEERING is the establishment and use of

sound engineering principles in order to obtain economically software that is
reliable and works efficiently on real machines.

Software Engineering encompasses a process, management and technical

methods and tools. Software Engineering methods provide the technical
how-to’s for building software. Methods encompass a broad array of tasks
that include requirements, analysis, design, program construction, testing
and support.


The requirements gathering processes is intensified and focused
specifically on software. Requirements for both the system and the software
are documented and reviewed with the customer.

Software design is actually a multi-step process that focuses on four
distinct attributes of a program: data structure, software architecture,
interface representations and procedural details.

The design must be translated into a machine readable form. If design
is performed in a detailed manner, code generation can be accomplished
Once code has been generated, Program testing begins. Testing
involved conducting tests to uncover errors and ensure that defined input
will produce actual results that agree with required results.

During the implementation phase, each component of the design is
implemented as a program module and each of these program modules is
unit-tested, debugged and documented.



● Pentium Dual-Core inside

● 60 GB HDD
● 1.83 GHz Processor


● OS Windows XP
● JDK 1.6.0, Java
● MS Access

● Networking

Front End-Java
Back End-Microsoft Access

We have implemented the incremental model in our project. The basic idea
is that the software should be developed in increments, each increment
adding some functional capability to the system until the full system is
implemented. At each step, extensions and design modifications can be

The key point when we make our project is that “the process moulds to the
needs of the people and the team, not the other way around”.



When the chronicle of computer languages is written, the following will be

said:B led to C, C evolved into C++, and C++ set the stage for Java .To
understand Java is to understand the reasons that drove its creation, the forces
that shaped it, and the legacy that it inherits. Like the successful computer
languages that came before, Java is a blend of the best elements of its rich
heritage combined with the innovative concepts required by its unique

Java is related to C++, which is a direct descendant of C.

Much of the character of Java is inherited from these two languages. From C,
Java derives its syntax. Many of Java’s object oriented features were
influenced by C++. Infact, several of Java’s defining characteristics come
from its predecessors. Moreover, the creation of Java was deeply rooted in the
process of refinement and adoption that has been occurring in computer
programming languages for the past three decades.

Java was conceived by James Gosling, Patrick Naughton,

Chris Warth, Ed Frank, and Mike Sheridan at Sun Microsystems, Inc in 1991.
It took 18 months to develop the first working version. The language was
initially called “Oak” but was renamed “Java” in 1995. Between the initial
implementation of Oak in the fall of 1992 and the public announcement of
Java in the spring of 1995, many more people contributed to designed
evolution of the language. Bill Joy, Arthur Van Hoff, Jonathan Payne, Frank
Yellin and Tim Lindholm were key contributors to the maturing of the original
prototype. Somewhat surprisingly, the original impetus for Java was not the
Internet. Instead, the primary motivation was the need for platform
independent languages that could be used to create software to be embedded
in various consumer electronics devices, such as microwave ovens and remote

The trouble with C and C++ is that they are designed to be

compiled for a specific target. Although it is possible to compile a C++

Program for just about any type of CPU, to do requires a full C++ compiler
targeted for that CPU. The problem is that compilers are expensive and time-
consuming to create. An easier and more cost efficient solution was needed.
In an attempt to find such a solution, Gosling and others began work on a
portable, platform independent language that could be used to produce code
that would run on a variety of CPUs under differing environments. This effort
ultimately led to the creation of Java.

As mentioned earlier, Java derives much of its character from C

and C++. The Java designers knew that using the familiar syntax of C and
echoing the object-oriented features of C++ would make their language
appealing to the regions of experienced C/C++ programmers. In addition to
the surface similarities, Java shares some of the other attributes that helped
make C and C++ successful. First, Java was designed, tested and refined by
real, working programmers. It is a language grounded in the needs and
experiences of the people who devised it. Thus Java is also a programmer’s
language. Second, Java is cohesive and logically consistent. Third, except for
those constraints imposed by the Internet environment, Java gives you, the
programmer, and full control. If you program well, your programs reflect it.
If you program poorly, your programs reflect that too. Put differently, Java is
not a language with training wheels. It is a language for professional

A peer to peer network is one in which lacks a dedicated server
and every computer acts as both a client and a server.

This type of network is designed to support a large number of users and
uses dedicated server to accomplish this. Clients log on to the server in
order to run applications or obtain files. Security and permissions can
be managed by 1 or more administrator.

This is also a client/server based model in which the clients are "dumb
terminals". This means that the client may not have a storage device
and all applications and processing occurs on the server. Security is
very high on this type of network.


● TCP and IP were developed by a Department of Defense (DOD)

research project
● It was initially successful because it delivered a few basic services that
everyone needs (file transfer, electronic mail, remote logon) across a
very large number of client and server systems.
● Several computers in a small department can use TCP/IP (along with
other protocols) on a single LAN.

IP Address

An IP address is used for Network Layer identification of hosts and routers

on a TCP/IP network. The address consists of a 32-bit binary number of 4
octets and is usually displayed in the decimal format, which
is called dotted decimal notation.
Why Client/Server?

The network chosen for this application is Client/Server model as it provides

adequate security and resources required for a critical application like


● Object Oriented.

● Simple and Architecturally Neutral

● Portable and Distributed.

● High Performance and Secure.

● Interpreted and Dynamic.

● Multithreaded and Robust.

Java and Networking

Java uses three methodologies to perform network operations.

● URL: Uniform resource locator is associated with applets and

programming for the World Wide Web.

● Datagram: An independent, self contained message sent over the

network whose arrival, arrival time and data are not guaranteed.

● Sockets: One end point of a two way communication link between two
ports on the network.


An initial investigation culminates in a proposal that determines

whether an alternative system is feasible. A proposal summarizing the
thinking of the analyst is presented to the user for review. When
approved, the proposal initiates a feasible study that describes and
evaluates candidate systems and provides for the selection of the best
system that meets system performance requirements.

To do a feasibility study, we need to consider the economic,

technical, and behavioral factors in system development. First a project
team is formed. The team develops a system flowchart that identifies
the characteristics of candidate systems, evaluate the performance of
each system, weigh system performance and cost data, and select the
best candidate system for the job. The study culminates in a final report
to management.

Thus, the feasibility study is carried out to select the best system
that meets performance requirements. This entails identification,
description, and evaluation of candidate system and selecting of the best
for the job.

In this project of “Network Banking” a thorough feasibility

study is done to meet the user requirements at its optional level. All the
best possible cases are considered to make the system more and more
reliable and user friendly. After all above defined cases the system is so
designed that it will fulfill almost all the needs of the users. The
proposed system is faster and more secure. Besides, these reasons the
system will need minimum requirements to run. A thorough feasibility
study for the system is given below.



Economic Feasibility is the most frequently used method

For evaluating the effectiveness of a proposed system. More commonly
known as cost/benefit analysis, the procedure is to determine the benefits and
saving that are expected from a proposed system.


Technical feasibility centers on the existing computer systems

(Hardware, Software, etc.) and to what extent it can support the proposal
addition. Technical feasibility study is the way to determine the expenditure
that is to occur in technical enhancement of the proposed system. For example,
suppose that our system at present is working for private organization then if
we want it to work for public firms then for this we need storage space or we
can say that additional hardware in some cases. As that condition will raise
the problem of overloading the application that is currently working for only
private organizations.

Also we need to ensure that the requisite hardware is available to

operate the system and also trained staff is available. Here are some features
that will make our system more technically feasible.
Minimum System Requirement

The proposed system will use minimum system configuration.

This system can even run on the old systems, which are running windows.

Less Secondary Storage Consumption

The system will consume minimum secondary storage space to

install. This helps in saving the space for the system on which the secondary
storage space is less.


The Requirement analysis and Specification phase starts once the

Feasibility study phase is complete and the project is found to be financially
sound and technically feasible. The goal of this phase is to clearly understand
the customer requirement and to systematically organize this requirement in a
specification document.
This phase consists of the following two activities –

1. Requirement Analysis and gathering.

2. Requirement Specification.


The purpose of system Requirement Analysis is to obtain

thorough and detailed understanding of the business need as defined in
Project Origination and captured in the Business Case, and to break it
down into discrete requirements, which are then clearly defined, revived
and agreed upon with the Customer Decision Makers. During System
Requirements Analysis, the framework for the application is developed,
providing the foundation for all future design and development efforts.
System Requirements Analysis can be a challenging phase, because all of
the major customers and their interests are brought into the process of
determining requirements.

The quality of the final product into a process is highly

Dependent on the effectiveness of the requirements identification process.
Since there requirements form the basis for all for all future work on the
project, from design and development to testing and documentation, it is of
the utmost importance that the Project Team create a complete and accurate
representation of all requirements that the system must accommodate.
Accurately identified requirements result from effective

Communication and collaboration among all members of the Project Team,

and provide the best chance of creating a system that fully satisfies that needs
of the Customers. The primary goal of this phase is to create a detailed
Functional Specification defining the full set of system capabilities to be
implemented, along with accompanying data and process models illustrating
the information to be managed and the processes to be supported by the new
system. The Functional Specification will evolve throughout this phase of the
SDLC as detailed business requirements are captured, and as supporting
process and data models are created, ensuring that the eventual solution
provides the customers with the functionality they need to meet their stated
business objectives.

This phase consists of the following processes

1.Prepare for system Requirements Analysis where steps are taken

To ensure that the project environment and project Team members are
adequately prepared to both capture and analyze the system requirements.

2. Determine Business Requirements where in scope and out-of-scope

Business requirements are identified, business rules are defined and
documented, and interfaces to and from the new application are discussed.

3. Define Process model where a pictorial top down representation of

The major business processes that interact with the system is diagrammed and
decomposed into manageable functions and sub functions until no further
breakdown is feasible.
4. Define Logical Data Model where data that supports the processes
And business rules are logically modeled, identifying entities and their
relationships to other entities, and defining attributes with their business

5. Produce Functional Specification where interfaces, processes and

Data are merged to describe systematically how the customer will use the
application, and how data will be retrieved, processed and stored.



Scope of our project on Banking System includes the benefits of this system.
We want a system in which all the information about Clients can be achieved
fast and easily which we are achieving by making it outline. Some of the
benefits of this system are:

The system is user friendly and helps the user to find out the details of the
Client in the bank.


For the whole software to be successfully partitioned and then implemented,

It should have following limitations:-

Each module should be unambiguous.

Each module should be consistent.
Each module should be complete in itself.
Each module should be well-structured and easily modifiable.


The Objectives and Goals of the system are:

1. Client Related

● To develop a Network Banking system.

● To develop a user-friendly system.
● To develop a system with a comfortable look and feel.

2. Project Related

● To develop a system which is Platform Independent?

● To make use of optimum resources to design the project.
● To design a system with best hardware and software

Our project is based on the Network Banking. Coupling this software with
necessary hardware devices, this could be converted to an ATM(Automatic
Teller Machine).this is just a simulation of the Network Bankings,so can be
called as a mini-ATM.

Server is designed to be multithreaded. it can take off any

number of clients(we have tested upto 4 clients).first the server should be
started before clients getting access the server. Server should be made to run
on a system, and then clients can start from any other system but within the
same local area networks. Also the program is written in such a way that it
could take the look and feel of the system on which it is running.

The operations and features in this are those that we can see in
any other Bankings.there are three levels of users.

1) Administrator:
He has the power to create account, delete account, edit and
update account, view account, view account logs, client monitoring and port

2) Intermediate administrator:

Privilege to Deposit. Can check Account Status.

3) Client:
He can view his account, view logs, transfer money, withdraw
money, account options such as change pin, password, etc.

------ Folders --------

To make some order, files are placed in separate folders!

"bankclients" - contains clients station files.

"bankserver" - contains server files.


1) Server side:
User id: administrator
Password: admin
2) Client side:
-->for teller:

Acct no: any acct no after 1001(to where it ends)

Name : administrator
Password: admin

he can do deposit after getting to this mode.

-->for clients

Acct no: any acct no after 1001(to where it ends)

Name : (get it from database)
Password: (get it from database)

He can do all operations except deposit.

------ important remarks --------

Because of problematical setup of java virtual machine on some

Computers, it may be required to execute this command
Before running anything:

set classpath=.

(No quotation marks!)


As we have used access as the database, before running the

server, a datasourcename should be created at the server for the mdb file.
this can be done as follows:
For windows only,
* goto control panel>>odbc datasources
* take the system dsn tab
*select the database,give the name as ServerDb
*(remember the name of database is serverdb.mdb in bankserver

------ Running--------

To start server:
1. Set current directory to "bankserver".
2. Type "java server <client_port> ",
Example: java server 1234

To start client station:

1. Set current directory to "bankclients".
2. Type "java clientlog <host> <client_port>",
Example: java clientlog localhost 1234
(Server should be running!).
Example: java clientlog 1234
(Server should be running on machine with above ip specified)

--------------Details of files included in packages-------------------------

** bankserver directory

1) file)

*serverdb.mdb (database)

**bankclients directory

1) file)

**** 11 files in bankserver and 10 files in bankclients..****

Software testing is the process used to help identify the-
● Correctness
● Completeness
● Security
● Quality

Testing is a process of executing a program or application in the intent of

finding errors. With that in mind, testing can never completely establish the
correctness of arbitrary computer software. In other words, testing is criticism
or comparison that is comparing the actual value with an expected one. There
are many approaches to software testing, but effective testing of complex
products is essentially a process of investigation, not merely a matter of
creating and following routine procedure. Although most of the intellectual
processes of testing are nearly identical to that of review or inspection, the
word testing is connoted to mean the dynamic analysis of the product-putting
the product through its paces. The quality of the application can and normally
does, vary widely from system to system but some of the common quality
attributes include-

● Reliability
● Efficiency
● Portability
● Maintainability
● Usability

Software under testing

Test Cases
Result of test
Testing the programs

Although testing varies between organizations, there is a cycle to testing:

Requirement Analysis: Testing should begin in the requirements phase of the

Design Analysis: During the design phase, testers work with developers in
determining what aspects of a design are testable and under what parameter
those tests work.

Test Planning: Test Strategy, Test Plans, Test Bed Creation.

Test Development: Test Procedures, Test Scenarios, Test Cases, Test Scripts
to use in testing software.

Test Execution: Testers execute the software based on plans and tests and
report any errors found to the development team.

Test Reporting: Once testing is completed, testers generate metrics and make
final reports on their test effort and whether or not the software tested is ready
for release.

High-order tests

Integration test


Unit test

Software Testing Cycle


A good software design must include the following characteristics-

● Correctness-
A good design should correctly implement all the
functionalities of the system.

● Understandability-
A good design should be easily understandable.

● Efficiency-
A good design should be efficient.

● Maintainability-
A good design should be easily amenable to change.
Tools and technologies used

Front End-Java
Back End-Microsoft Access

Microsoft Access has been used as a database for the back end purpose.

Microsoft Access is a powerful program to create and manage your databases.

It has many built in features to assist you in constructing and viewing your
information. Access is much more involved and is a more genuine database
application than other programs such as Microsoft Works.
Create Acc
Delete Acc
Edit Acc
View Acc
View report
Acc Created
Welcome to Network Bank server administrator verification

Project Flow Diagram

View acc
View acc Logs
Transfer money
Deposit only through Teller
Acc options
Welcome to Network Banking client verification
Enter Pin
Client 1
Client 2
Client 3
Client n
Network Bank server

Change Change Pin Cancel


Project Flow Diagram

Database Tables

AccountNo Name Balance LogInStatus
0 0 No
1001 Aditya 50000 No
1002 Manoj 50000 No
1003 Sujata 50000 No
1004 Naveen 50000 No
1005 Mamta 50000 No
1006 Mr.Mahesh 5000000 No
Account Passwor AddressLi AddressLi Validit
Name City State Phone Pin
No d ne1 ne2 y
1001 Aditya Joshi Almora Tunera Almora Uttarakha 94113098 True 941
nd 05 2
1002 Manoj Thakur Polysheet Tagore Haldwa Uttarakha 94107479 True 127
colony ni nd 77 0
1003 Sujata Negi Awas vikas Polysheet Haldwa Uttarakha 94117917 True 942
colony ni nd 37 6
1004 Naveen Mishra Neem ka Jaipur Rajasth Rajasthan 97456367 True 173
thana an 8 0
1005 Mamta Sharma Subash Near Dehrad Uttarakha 98976547 True 942
nagar satyam un nd 8 8
1006 Mr.Mahe Manchan Chandrama Subashnag Dehrad Uttarakha 94113656 True 658
sh da ni chauk ar un nd 89 5

ID Date Time AccountNo Action Remarks LogInIP
211 27 Nov 22:14:40 100 LOGGED FORCED LOGGED OUT BY /
Thu )
212 27 Nov 22:23:19 1019 LOGGED IN SUCCESSFULLY LOGGED IN /
2008 (
Thu )
213 27 Nov 22:23:33 1019 VIEW BALANCE : Rs 500\- /
2008 ( ACCOUNT
Thu )
214 27 Nov 22:23:56 1019 VIEW BALANCE : Rs 500\- /
2008 ( ACCOUNT
Thu )
215 27 Nov 22:26:39 1019 VALIDATE INCORRECT PIN ,REQUEST /
216 27 Nov 22:28:18 1019 LOGGED SUCCESSFULLY LOGGED OUT /
2008 ( OUT
Thu )
217 27 Nov 22:28:30 1019 LOGGED IN SUCCESSFULLY LOGGED IN /
2008 (
Thu )
218 27 Nov 22:28:34 1019 LOGGED SUCCESSFULLY LOGGED OUT /
2008 ( OUT
Thu )
219 27 Nov 22:32:47 1019 LOGGED IN SUCCESSFULLY LOGGED IN /
2008 (
Thu )
220 27 Nov 22:33:04 1019 WITHDRAW Rs500\- CURRENT BALANCE: /
2008 ( Rs4999500\-
Thu )
221 27 Nov 22:33:29 1019 VIEW BALANCE : Rs 4999500\- /
2008 ( ACCOUNT
Thu )
222 27 Nov 22:33:43 1019 LOGGED SUCCESSFULLY LOGGED OUT /
2008 ( OUT
Thu )
223 27 Nov 22:34:31 1018 LOG IN LOG IN DUPLICATE FAILED /
2008 (
Thu )
224 08 Dec 23:21:04 1019 LOG IN LOG IN DUPLICATE FAILED /
2008 (
Mon )
225 08 Dec 23:22:35 1019 LOG IN LOG IN DUPLICATE FAILED /
2008 (
Mon )
226 08 Dec 23:27:55 1019 LOGGED IN SUCCESSFULLY LOGGED IN /
2008 (
Mon )
227 08 Dec 23:33:12 1020 LOGGED IN SUCCESSFULLY LOGGED IN /
2008 (
Mon )
228 08 Dec 23:33:17 1020 VIEW BALANCE : Rs 500\- /
2008 ( ACCOUNT
Mon )
229 08 Dec 23:35:25 1020 TRANSFER TRANSFERRED Rs5000\- TO /
2008 ( AccountNo: 1019
Mon )
230 08 Dec 23:35:27 1019 DEPOSIT TRANSFERRED Rs5000\- FROM /
2008 ( AccountNo: 1020
Mon )
231 08 Dec 23:35:33 1020 VIEW BALANCE : Rs 495000\- /
2008 ( ACCOUNT
Mon )
232 08 Dec 23:35:51 1020 WITHDRAW Rs5000\- CURRENT BALANCE: /
2008 ( Rs490000\-
Mon )
233 08 Dec 23:36:09 1020 VIEW BALANCE : Rs 490000\- /
2008 ( ACCOUNT
Mon )
234 08 Dec 23:36:39 1020 LOGGED SUCCESSFULLY LOGGED OUT /
2008 ( OUT
Mon )
235 08 Dec 23:37:02 1019 LOG IN LOG IN DUPLICATE FAILED /
2008 (
Mon )
236 08 Dec 23:37:32 1019 LOG IN LOG IN FAILED /
2008 (
Mon )
237 08 Dec 23:37:42 1019 LOGGED IN SUCCESSFULLY LOGGED IN /
2008 (
Mon )
238 08 Dec 23:37:45 1019 VIEW BALANCE : Rs 5004500\- /
2008 ( ACCOUNT
Mon )
239 08 Dec 23:38:17 1020 LOGGED IN SUCCESSFULLY LOGGED IN /
2008 (
Mon )
240 08 Dec 23:38:31 1019 LOGGED FORCED LOGGED OUT BY /
Mon )
241 08 Dec 23:38:36 1020 LOGGED FORCED LOGGED OUT BY /
Mon )
242 08 Dec 23:56:11 1020 LOGGED IN SUCCESSFULLY LOGGED IN /
2008 (
Mon )
243 08 Dec 23:56:16 1020 VIEW BALANCE : Rs 490000\- /
2008 ( ACCOUNT
Mon )
244 08 Dec 23:56:28 1020 LOGGED SUCCESSFULLY LOGGED OUT /
2008 ( OUT
Mon )
245 09 Dec 10:28:52 1001 LOG IN LOG IN FAILED /
2008 (
Tue )
246 09 Dec 10:29:10 1001 LOGGED IN SUCCESSFULLY LOGGED IN /
2008 (
Tue )
247 09 Dec 10:29:13 1001 VIEW BALANCE : Rs 50000\- /
2008 ( ACCOUNT
Tue )
248 09 Dec 10:29:31 1001 LOGGED SUCCESSFULLY LOGGED OUT /
2008 ( OUT
Tue )

You can view the source code of networking banking in our project
we have made the following things

--------------Details of files included in packages-------------------------

** bankserver directory

1) file)

*serverdb.mdb (database)

**bankclients directory

1) file)

**** 11 files in bankserver and 10 files in bankclients..****


The screenshots of our project are:

● Account Creation, Deletion, Updation.
● View Account, Reports, Account Logs.
● Client Authentication.
● Client Monitoring.
● Centralized Data Processing.
● Creation of Account Logs.

● Privilege to Deposit.

● Can check Account Status.


● Withdraw and Transfer Money.

● View Account, Account Logs.

● Change PIN, Passwords.


Testing is the process of executing the program(s) with the intention of finding
out errors. During testing, the program to be tested is executed with a set of
test cases and the output of the programs for the test case is evaluated to
determine if the program is performing as it is expected to be.

The success of testing in revealing errors in programs depends critically on

the test cases. In software systems the use of testing is not limited to the testing
phase. The results of the testing are used later o during maintenance also.
During testing a test suite has been prepared, which consists of various test
case along with their expected output so that later on if the software is
modified the test case from the test suite can be used to see that modifications
does not have any undesirable effect.


UNIT TESTING: The first level of testing is called unit testing. In this
different modules are tested against the specifications produced during design
of the modules. Unit testing is essentially for verification of the code produced
during coding phase, and hence the goal is to test the internal logic of the
modules. The programmer of the module typically does it. Others consider a
module for integration and use only after it has been unit tested satisfactorily.
Due to its close association with coding, the coding phase is frequently called
“coding and unit testing”. As the focus of this testing level is on testing code,
structural testing is best suited for this level. In fact, as structural testing is not
very suitable for large programs, it is used mostly at the unit testing level.

INTEGRATION TESTING: The next level of testing is often called

integration testing. In this, many unit-tested modules are combined into
subsystems, which are then tested. The goal is here to see if the modules can
be integrated properly. Hence, the emphasis is on testing interfaces between
modules. The testing activity can be considered testing the design. The
integration plan specifies the steps and order in which modules are combining
to realize the full system. After each integration step, the partially integrated
system is tested. An important factor that guides the integration is the module
dependency graph

SYSTEM TESTING: System tests are designed to validate a fully

developed system to assure that it meets its requirements. There are essentially
three main kinds of system testing:
Alpha testing: Alpha refers to the system testing carried out by the test team
within the developing organization.
Beta testing: Beta testing is the system testing performed by a select group of
friendly customer.
Acceptance testing: Acceptance testing is the system testing performed by
the customer to determine whether to accept or reject the delivery of the

System testing is normally carried in a planned manner according to the

system plan document. System plan identifies all testing related activities that
must be performed, specifies the schedule of testing, and allocates resources.
Immediately after requirement specification phase, a system test plan can be
prepared which documents the plan for system testing. System test plan can
be prepared on the basis of SRS document. The result of system and
integration testing are documented in the form of test report.


BLACKBOX TESTING: This testing is also known as functional

testing. The basis for deciding test cases in functional testing in requirement
or specification of the system or modules. For the entire system test cases are
designed from the requirement specification document from the system. For
modules created during design, test cases for functional testing are decided
from module specification produced during design.

The most obvious functional testing procedure is exhaustive testing, which as

we stated, is impractical. One criterion for generating test cases is to
generating test cases is to generate them randomly. However there are number
of techniques that can be used to select test cases that have been to be very
successful in detecting errors.
Some of them are:

Equivalence class partitioning: In this we divide the domain of all the

inputs into a set of equivalence classes. That is we want to identify classes of
test cases such that the success of one test case in a class amplifies the success
of others. It is often useful to consider equivalence classes in the output. For
an output equivalence class, the goal is to generate test cases such that the
output of that test case lies in the output equivalence class.

Boundary value analysis: In boundary value analysis, we choose an

input for a test case from an equivalence class, such that the input lies at the
edge of the equivalence class. Boundary value rest cases are also called
“extreme cases”.

Causes-effect graphing: It is a technique that aids in selecting

combinations of input conditions in a systematic way. A cause is a distinct
input condition, and an effect is n distinct output condition. Each condition
forms a node in the cause-effect graph. Beyond generating high yield test
cases, it also aids the understanding of the functionality of the system, because
the tester must identify the distinct causes and effects.
Special cases: It depends on the data structures and the function of the
module. There are no rules to determine special cases, and the tester has to
use his intuition and experience to identify such test cases. Consequently,
determining special cases is also called “error guessing”.

WHITE BOX TESTING: There are several white box-testing

strategies. Each testing strategy is based on some heuristic. One white box
testing strategy is said to be stronger than another strategy, if all types of errors
detected by the first testing strategy(say B) are also detected by the second
testing strategy(say A), and the second strategy additionally detects some
more types of errors. When two testing strategies detect errors that are
different at least with respect to some types of errors, they are then called

Statement Coverage: It aims to design test cases so that every

statement in the program is executed at least once. The principal idea is that
unless we execute a statement, we have no way of determining if error exists
in that statement.

Branch Coverage: In this strategy, test cases are designed to make each
branch condition assume true and false value in turn. It is also known as “edge
testing” as in this testing scheme, each edge of a program’s control flow graph
is traversed at least once.

Condition coverage: In this test cases are designed to make each

component of a composite conditional expression assume both true and false
values. Thus, condition testing is a stronger testing strategy than branch
testing. For conditional coverage, the number of test cases increases
exponentially with the number of component conditions.

Path Coverage: It requires us to design test cases such that all linearly
independent paths in the program are executed at least once. These paths are
Defined in terms of control-flow graph of a program.

The maintenance of a software product requires much more effort than the
effort necessary to develop the product itself. This phase involves the
following three kinds of activities

● Corrective: Correcting errors that were not discovered during the

product development phase. This is called Corrective Testing.
● Perfective: Improving the implementation of the system and
enhancing the functionalities of the system according to the customer’s
requirements. This is called perfective maintenance.
● Adaptive: Porting the software to work to work in a new
environment. For example porting may be required to get the software
to work on a new computer platform or with a new operating system.
This is known a Adaptive Testing. Thus maintenance involves
understanding the existing software, understanding the effects of
change, making the changes to both the code and the document testing
the new parts and retesting the old parts that were not changed.

Though maintenance is not considered a part of software development, it

is an extremely important activity in the life of software product. If we
consider the total life of software, the cost of maintenance generally
exceeds the cost of developing the software.

The aim of our project was to explore new avenues in computing Like the
distributed systems along with traditional concepts like OOPS
And networking.


● User-friendly.
● Robust.
● Secure.
● Economical.
● Minimum chances of errors.
● Less time consuming.

This project aspires to be a simulation of sorts for a Network Bank in the near
future. If coupled with appropriate hardware this system can be turned into
ATM software.

● Loan Facility.
● Email and mobile alerts.
● Active Tracing of Fraudulent activities.
● Security upgrades like Visual Sensors with burglar alarms, Biometric
Identification procedures etc.


The list of the books, & website which I have gone threw the
completion of my project, is:

● Black Book
● Complete Reference