banking security software model project
DESCRIPTION
ABSTRACTIn today’s running world, banks play an important role in providing security and assurance to customer’s requirements. Customer satisfaction is the important goal of the bank management. Today the banking managements systems have been computerized and the transaction have been made faster as like a rocket launch. Various banks have several methods for checking the authenticity of their customer’s. Updating is the main concept of this bank management .the validity checking can be dTRANSCRIPT
ABSTRACT
In today’s running world, banks play an important role in providing
security and assurance to customer’s requirements. Customer satisfaction is
the important goal of the bank management. Today the banking
managements systems have been computerized and the transaction have
been made faster as like a rocket launch. Various banks have several
methods for checking the authenticity of their customer’s. Updating is the
main concept of this bank management .the validity checking can be done
by using methods. This banking management provides various methods in
order to satisfy the customer’s requirements. Here our project is also built
to compute the works of a small bank. Here we maintain the database and
screens of C++, which is a powerful developing language. We developed
the system, which can provide different screens for customer entry,
updating entries, transaction of customers, the codes generation, etc . . . .
At the back end, three databases are being used to store and retrieve the
data works .Here we maintain the database and screens of C++, which is a
powerful developing language. We developed the system, which can
provide different screens for customer entry, updating entries, transaction
of customers, the codes generation, etc . . . . At the back end, three
databases are being used to store and retrieve the data. This is the basic
concept of our system.
INTRODUCTION
There has been a big need for automating the works – since the
creature of mankind, because man thought that the quality of the work can be
increased as well as man power, labours and time can be reduced. If we
automate the things, hence the development of science were very much
vigorous (as the proverb says “Need is the mother of invention”). This
science lead to the development of new things in various fields like
Transport, Astrology, Geography. Here one more requirement was raised,
about the administration of the things and to process a lot of information at a
short time. This work however if done manually will lead to the same
problem – previously discussed! (Time consuming).Hence, the development
of new field called INFORMATION TECHNOLOGY.
Communication
Easy retrieval of data at any time
Sharing an information between all parts of the world
In this situation, man had a disappointment on physical works. He
believed the power of ELECTRONICS; hence all problems seemed to be
solved using this solution! This lead to the development of Electronic
Equipment for communication. Electronic telephones through satellite –
transmitter – receivers – towers etc . .
2
Banking:
Banking, how ever may seem to be a simple technique, but to be
managed carefully. Otherwise it will lead to the customer dissatisfaction,
hence each and every transaction with the customer is to be neatly recorded
and provided proper reports where ever required.
Bank works can be classified as under
Making a separate entry for new customers. Storing all personal
details about the customer. Storing the bank details of customer (account
type, opening date and current balance, etc….). Updating the information,
when ever the customers transacts with the bank (increasing the balance,
when cash is deposited). Taking proper reports for customer and the main
Branch.
3
Chapter 1
SOFTWARE ENGINEERING
Software:
It is set of all instruction to form a particular task.Software is nothing but a collection of computer programs and related
documents that are intended to provide desired features, functionalities and better performance.
Engineering:
It is analysis, design, construction and verification and management of technical entities.
Definition of Software Engineering by IEEE:
It is the systemic, disciplined, quantifiable approach to the development, maintenance and operation of our performance software. Software engineering is a discipline in which theories, methods and tools are applied to develop professional software.
Software application:
System softwareReal time softwareWeb based softwareBusiness softwareEmbedded softwareArtificial intelligence software
SOFTWARE PROCESS:
It is the frame work for the task that are required to build high quality software
1.2 ARCHITECTURE
4
Figure 1. Architechture
AnalysisDesignImplementationTestingDebugging
MaintenanceProcess:
It is a foundation for software engineering layers.It holds the technology layers together and enables a timely development of computer software.It defines a framework for a set of kpa’s key process areas.Uses of kpa’s.It is established for the effective delivery of software engineering technology.
Methods:How to build the softwareIt includes analysis, design, construction, testing and maintenance.
5
Tools
Process
Methods
Quality focus
Tools:
A software engineering provides automated or semi automated tools for process and methods.
Eg. CASE tools.
We use waterfall life cycle model in BANK MANAGEMENT SYSTEM
1.3 Water fall life cycle model:
Definition:
It is systematic, disciplined and sequential approach to software development that begins at system level and process through ,analysis ,design, code, test.
Diagram of waterfall life cycle model:
Figure 2. Waterfall life cycle model
Software requirement analysis;
The requirement gathering process is focused specifically on software
To understand the nature of the program or problem to be build the
software engineering must understand the information domain.
Design:
6
ANALYSIS DESIGN
CODE TEST
It is multistep process it will focus on 4 fields
Data structure
Architecture
Interface
Algorithm
Code Generation:
It translates the representation f software into machine readable form.
It design is performed in a detailed manner,code generation can be
produced mechanically.
Testing:
Once the code has been generated, the program testing begins.
Maintenance:
Software will undergo change after it is delivered to the customer.
The change will occur because the errors have been encountered.
Drawbacks for linear sequential model:
The customer must have patience-aworking version of program will not
be available until in the project time span.Real project follow the rarely
follow the rarely follow the linear sequential model.
7
SOFTWARE TESTING TECHNIQUES
It is the process used to help identify the correctness, completeness; security and quality of develop computer software. With that in mind, testing can never completely establish the correctness of arbitrary computer software.
This technique explains about various testing and validation done to improve the performance and to remove errors in an application.
1.4 INTRODUCTION:
In general, software engineers distinguish software faults from software failures. In case of a failure, the software does not manifest as a failure. A fault can also turn into failure when the software is ported to a different harware platform or a different compiler, or when the software gets extended.
There are two main types of testing methods. They are 1) WHITE BOX TESTING and2) BLACK BOX TESTING.
1.5 WHITE AND BLACK BOX TESTING:
White box testing sometimes called as ‘Glass box’ testing, test case design method that uses the control structure of the procedural design to derive test cases. Using white box testing methods, software engineer can derive test cases that
Guarantee that all independent paths within a module have been exercised at a least once.
Exercise all logical decisions on their true and false side. Execute all loops at their boundaries and within their operational
bounds.Exercise internal data structure to ensure their validity.
8
Black box testing is done to validate all the functional requirements of the system by checking for incorrect or missing functions, interface errors etc… In this automated counseling software all the statements in each functions were checked against the errors, proper functioning’s etc.
1.6 GREY TESTING:
In recent years the term grey box testing has come into common usage. The typical grey box tester is permitted to set up or manipulate the testing environment, like seeding a database , can view the state of the product after their actions .like performing a SQL query on the database to be certain of the values of columns.
It can also be used of testers who know the internal working or algorithms of the software under test and can write tests specifically for the anticipated results.
1.7 ALPHA , BETA, AND GAMMA TESTING :
In software development, testing is usually required before release to the general public. This phase of development is known as alpha testing. Testing during this phase is known as alpha testing.
Once the alpha phase is complete, development enters the beta phase. Versions of the software, known as beta –versions, are groups of people so that further testing can open public to increase.
1.8 TESTING STRATEGY:
Testing strategy integrates software test case design methods into a well planned series of steps that results in the successful construction of software.
9
1.9 UNIT TESTING:
Unit testing is concerned with knowledge about testing a program unit, to determine that it is free of data, logic or standard errors. At this level white box testing are used. This unit includes knowledge of dynamic analysis. In this unit testing individual components or models are tested. It relatively focuses in the small segments of the code and the aims to exercise a high percentage of internal paths.
1.10 INTEGRATION TESTING:
Integration testing is concern with knowledge about validating that software component, which have been unit tested separately, interact correctly when they are put together to perform higher order function. In this application bottom up integration testing is done.
1.11 BOTTOM-UP TESTING:
Bottom-up integration testing begins construction and testing with atomic models are integrated from bottom up, processing require for models are subordinate to a given level is always available and need for stubs is eliminated.
1.12 FUNCTIONAL TESTING:
Functional tests are programs or script configured to test that application met external requirements and achieve goals, such as performance, also known as black box testing because source code is not needed.
1.13 SCENAIRO TESTING:
Scenario testing is similar to, but not the same as session-based testing, which is more closely related to exploratory based testing and session –based test.
10
A SAMPLE TESTING CYCLE
Requirement Analysis:
Testing should begin in the requirement phase of the software life cycle (SDLC).
Design Analysis:
During the design phase, testers work with developers in determining what aspects of a design are testable and under what parameter those testers work.
Test planning:
Test Strategy, Test plan(s), Test bed creation.
Test development:
Test procedures, Test Scenarios, Test Cases, Test scripts to use in testing software.
Test Extension:
Testers execute the software based on the plans and tests and report any errors found to the development team.
Test Reporting:
Once testing is completed, testers generate matrices and make final reports on their test effort and whether or not the software tested is ready for release. Retesting the defects.
11
CHAPTER 2
2.1 SYSTEM ENVIRONMENT
Introduction:-
The system environment gives us the details of the hardware specification like server and software details which is necessary for computerization.
Hardware Requirement:-
Processor Required : Pentium 4(MIN)
Hard disk space : 80GB
Main Memory (RAM) : 256MB
PEN Drive : COMBO
Software Requirement:-
ScriptsC/C++
Frontend/backend:-
C++.
Operating system:-
Windows XP, 2000.
12
2.1 PROJECT PLANNING
Project planning process:
The objective of software project planning is to provide a frame work
that enables the manager to make reasonable estimate of resources, cost, and
schedule. In addition, estimates should attempt to define best-case and worst-
case scanners so that project outcomes can be bounded.
Task set for Project Planning:
Establish project scope. Determine feasibility. Analyze risks. Define
required resources .Determine human resources required. Define reusable
software resources. Identify environmental resources .Estimate cost and
effort. Decompose the problem. Develop two or more estimates using size,
function points, process tasks, are used – case. Recouncile the estimates.
Develop a project schedule. Establish a meaningful task set. Define a task
network. Use scheduling tools to develop a time line chart. Define schedule
tracking mechanisms.
Project analysis:
The main objective of project analysis is to gather all the
requirements needed for building the project.
Requirement Analysis:
Requirement analysis results in the specification of softwares
operational characteristics indicates softwares interface with other system
elements, and establishes constant that software must meet.
13
Requirement analysis provides the software designer with a
representation of information, function, and behaviour that can be translated
to architectural, interface, and component - level designs. Finally, the
analysis model and the requirements specification provide the developer and
customer with the means to access quality once software in built.
Through out analysis modeling, the software engineers primary
focus is on What and not How. What objects does the system
manipulate ,what functions must the system perform, what behaviours does
the system exhibit, what interfaces are defined and what constraints apply ?.
PROJECT DESIGN SPECIFICATION
OVERVIEW:
The following is an attempt to put together a complete yet reasonably
flexible template for the specification of software designs. This document is
really a template for a template.
In designing this template we have gleaned information from as many
sources including various texts on Software Engineering (pressman,
Somerville and Van Vilest), Object Oriented Development (Brooch, Rum
Baugh, Bernard and Warf’s-Brocks), various SEI reports, Dodd-Std and Mil-
Std documentation requirement (2167/2167A) and IEEE documentation
standards (particularly IEEE-1016 for software designs and IEEE-830 for
software requirement).A complete software design specification must meet
the following criteria:project member.
14
It should be able to adequately serve as training material for new
software impairing to them enough information and understanding about the
project implementation so that they are able to understand what is being said
in design meeting and won’t feel as if they are drowning when they are first
asked to create or modify source code.
It should serve as “object evidence “that the designer and/or
implementers are following through on their commitment to implement the
functionality described in the requirement specification.
It needs to be as detailed as possible while at the same time not
imposing too much of a burden on the designers and/or implementers that it
becomes overly difficult to create or maintain. This is the documentation for
the project named, “BANKING SYSTEM”.
DESIGN CONSIDERATION :
This section describes many of the issues which need to be addressed
or resolved before attempting to devise a complete design solution.
GENERAL CONSTRAINTS :
Describes any global limitations or constraints that have a significant
impact on the design of the system’s software. Such constraints may be
imposed by any of the following.
Administrators alone have a permission to edit database.
Actor cannot change their details.
Whenever database is lost information cannot be retained.
15
GOALS AND GUIDELINES:
The main goals are,
This project is simple to understand.
Database is easy to access.
Working, looking or “feeling” like an existing product.
For each such goals or guidelines, unless it is implicitly, describes the reason
for Its desirability.
DEVELOPMENT METHODS :
The methods or approach used for this software design are,
Software Design-Rational Enterprise Suite.
Project Registration-Rational Administrator.
Requirement analysis-requisite pro.
Design Specification-Rational Rose.
Software Implementation- ‘C++’ Language.
Database-FILE.
ARCHITECTURAL STRATEGIES :
It describes any design decisions and/or strategies that affect the
overall organization of the system and its higher-level structures. It describes
the reasoning employed for each decision and how the design goals or
priorities were balanced or traded-off. Such decisions are,
Programming Language- ‘C++’; Database-FILE.Future plans-to reduce the
workload of any organization for maintaining the pay role.System input-
Actor identity.
External database-FILE for storing the project details.
16
Enables distribution data and control over a network.
Provide concurrency and synchronization.
SYSTEM ARCHITECTURE :
The main purpose of system architecture is that it should provide a
high-level overview of how the functionality and responsibility of that, were
partitioned and then assigned to subsystem or components, to gain a general
understanding of how and why the system was decomposed and how the
individual parts work together to provide the functionality. The top most
level, describe the major responsibility to maintain the details.
POLICIES AND TACTICS :
It describes the design policies and/or tactics that do not have
sweeping architectural implication, meaning they would not significantly
affect the overall organization of the system and its high-level structures, but
which nonetheless affect the details of the interface and/or implementation of
various aspects of the system Database.
Coding guidelines and conventions.
Plans for ensuring requirements traceably.
Plans for testing the software.
Plans for maintaining software.
17
2.2 VALIDATION
Validation is the process of validating the software according to the user requirement. Successful validation should establish confidence that at the application is fits for purpose. The validation is done in all modules and is to ensure that proper results are only obtained.
Few validations done are as follows,
Recovery testing: It was checked whether the software can able to recover from faults and resume processing within the predefined time.
Security testing:
Security testing attempt to verify that production mechanism built into a system will in fact product it from improper penetration.
Stress testing: The validation of the stress testing is sensitivity testing.
18
2.3 DEBUGGINGTHE ART OF DEBUGGING
Software testing is a process that can be systematically planned and specified. Test case design can be conducted; a strategy and results can be evaluated against prescribed exceptions.
Debugging occurs as a consequence of successful testing. When a test case uncovers an error, debugging is the process that results in the removal of the error.
THE DEBUGGING PROCESS
Debugging is not testing but always occurs as a consequence of testing .The following are some general guidelines for effective debugging.
Debugging requires a through understanding of the program design.Debugging may sometimes even require full redesign of the system.One must be clear of the possibility that any one error correction may introduce new errors.
DEBUGGING APPROACHES
Debugging has one overriding objectives to find and correct the causes of a software error. The objectives are realized by a combination of systematic evaluation, intuition and luck.
Three categories for debugging approaches may be proposed. Brute force
Back tracking Cause elimination
The brute force of category of debugging is probably the most common and least efficient method for isolating the cause of a software error. This method for isolating the causes of a software error. This method is effective when all else fails.
19
Back tacking is a fairly common debugging approach that can be used successfully in small programs. If the error is not debugged, then the source code is traced backward until the site of the cause is found as a number of line increases, the number of potential backward paths may become large.
The third approach to debugging –causes elimination –is manifested by induction or deduction and introduces the concept of binary partitioning data related to the error occurrence are organized to isolate potential cause. A ‘causes hypothesis’ is devised and solution is derived.
20
USER-CASE DIAGRAM
Figure 3
21
ACCOUNTS EDIT ACNT TRANSACTIONS OPEN NEW ACNT
LIST ACNTS SEE ACNTDEPOSIT WITHDRAW
MODIFY CLOSE
DEPOSIT
BAL=BAL + AMOUNTADMINISTRATOR
BAL=BAL - AMOUNT
WITHDRAW
HELP
QUIT
PROVIDES HELP TO USER
QUITS
Date flow diagrams
LEVEL-1 DFD:OPEN AN ACCOUNT:
Figure 4
22
OPEN NEW ACCOU
A/C NO
NAME
ADDRESS
INITIAL DEPOSIT
GUARANTORS
LEVEL-2 DFD:ACCOUNT LIST OF BANK:
Figure 5
23
A/C LIST
A/C NO
IND A/C
A/C
INITIAL DEPOSIT
DETAILS
LEVEL-3 DFD:INDIVIDUAL ACCOUNT:
Figure 6
24
IND A/C
A/C NO
NAME
ADDRESS
INITIAL DEPOSIT
GUARANTORS
LEVEL-4 DFD:DAILY TRANSCATIONS:
Figure 7
25
ACCOUNT
NAME
ADDRESS
DATE
INITIAL DEPOSIT
BALANCE
Implementation:
#include<iostream.h>#include<conio.h>#include<stdio.h>#include<stdlib.h>#include<time.h>#include<dos.h>#include<math.h>int e;float g,f,l;static int coun,count=0;
class person{ //static int count;
char name[100],add[100];char branch[100],city[100];float age,amt;int an;clock_t start, end;public:void getdetails();void deposit();void withdraw();void details();//int time();void interest();
};/*int person::time(){
start = clock();
delay(200);
end = clock();
g=(end - start) / CLK_TCK;
return g;
26
}*/void person::interest(){ cout<<"\t\t\t\Enter the Account number\n"; int c; cin>>c; if(c==an) { cout<<"enter the rate of interst"<<endl;
cin>>l;f=((amt*l)/100);amt=amt+f;
cout<<"\t\t\tName :"<<name<<endl;cout<<"\t\t\tAddress :"<<add<<endl;cout<<"\t\t\tBranch :"<<branch<<endl;cout<<"\t\t\tcity :"<<city<<endl;cout<<"\t\t\tAccount number :"<<an<<endl;//cout<<"\t\t\tTotal Amount :"<<amt<<endl;cout<<"total amount in the account is :"<<amt<<endl;
}} // int person::count=0;
/*void person :: getdetails(){
clrscr();cout<<"\t\t\tWelcome to MY Bank"<<endl;cout<<"\t\t\t---------------------"<<endl;cout<<"\t\t\tEnter the Name of the Account Holder"<<endl;cin>>name;
cout<<"\t\t\tEnter the Age of the Account Holder"<<endl;cin>>age;cout<<"\t\t\tEnter the Branch of the Account Holder"<<endl;cin>>branch;cout<<"Enter the Address of the Account Holder"<<endl;cin>>add;cout<<"\t\t\tEnter the City of the Account Holder"<<endl;cin>>city;coun=++count;cout<<"\t\t\tyour account number is :"<<coun;cout<<"\t\t\tThank You!"<<endl;
}*/
27
void person::deposit(){
cout<<"Enter the Name of the Account Holder"<<endl;cin>>name;cout<<"Enter the Amount to be deposited"<<endl;cin>>amt;cout<<"Enter the Address of the Account Holder"<<endl;cin>>add;cout<<"Enter the Branch Name"<<endl;cin>>branch;
cout<<"Enter the City Name"<<endl;cin>>city;coun=++count;cout<<"Your Account number is :"<<coun<<endl;cout<<"Enter the Account Number for Verification\n";cin>>an;/*if(coun|=an){
cout<<"enter the account no properly"<<endl;}else */cout<<"Thank You!"<<endl;
}
void person::withdraw(){
clrscr();//cout<<"Enter the Name of the Account Holder"<<endl;//cin>>name;
//for(int i=0;i<2;i++)//{
cout<<"Enter the Account number of the Account Holder"<<endl;
int n;cin>>n;if(n==an)
{
cout<<"\t\t\tName :"<<name<<endl;
28
cout<<"\t\t\tAddress :"<<add<<endl;cout<<"\t\t\tBranch :"<<branch<<endl;cout<<"\t\t\tcity :"<<city<<endl;cout<<"\t\t\tAccount number :"<<n<<endl;cout<<"Total Amount :"<<amt<<endl;cout<<"Enter the Amount to be Withdrawn"<<endl;float c;cin>>c;{if(c>amt){
cout<<"Insufficient Balance"<<endl;cout<<"Sorry !"<<endl;
}else{
float b;b=amt-c ;cout<<"Balanced Amount :Rs "<<b<<endl ;amt=b;
}}
}else{
cout<<"Enter the Account Number Properly"<<endl;//}
cout<<"Sorry !";}//break;
}
void person::details(){
clrscr(); // for(int i=0;i<2;i++)
//{
cout<<"Enter the Account number of the Account Holder"<<endl;
float n;cin>>n;if(n==an)
29
{clrscr();cout<<"\t\t\tName :"<<name<<endl;cout<<"\t\t\tAddress :"<<add<<endl;cout<<"\t\t\tBranch :"<<branch<<endl;cout<<"\t\t\tcity :"<<city<<endl;cout<<"\t\t\tAccount number :"<<n<<endl;cout<<"\t\t\tTotal Amount :"<<amt<<endl;
}else{cout<<"Enter the Account number properly"<<endl;
//}cout<<"Sorry !";}//break;
}
void main(){person p;do{
cout<<"\t\t\tWelcome to MY bank"<<endl;cout<<"\t\t\t--------------------"<<endl;cout<<"\t\t\t********MENU********"<<endl;//cout<<"\t\t\tPress 1 for Entering Account holder's
Details"<<endl;cout<<"\t\t\tPress 1 for Depositing Money"<<endl;cout<<"\t\t\tPress 2 for Withdrawing money"<<endl;cout<<"\t\t\tPress 3 for Viewing Details without
interest"<<endl;cout<<"\t\t\tPress 5 for Viewing the total amount with
interest"<<endl;cout<<"\t\t\tEnter 0 for Exit"<<endl;cout<<"\t\t\tEnter your choice\t";
// int e;cin>>e;switch(e){
//case 1:clrscr();//p.getdetails();//break;
30
case 1:clrscr();p.deposit();break;
case 2:clrscr();p.withdraw();//p.details();break;
case 3:p.details();break;
case 5:p.interest();break;
case 0:break;default:cout<<"Enter the Correct Choice"<<endl;}
}while(e);}
31
Output Snapshots
Sample Output
Menu
32
Verification
33
Balance Withdrawal
34
Amount without Interest
35
Amount with Interest
36
CONCLUSION
This bank management system project will serve as a useful approach
to data base dialog box to deposit and withdraw the money for the person.
It serves as a helpful approach for the users. It provides easy way of the
deposit and withdraw the money. It reduces the time taken by the user to
save the money. Thus the project is the user friendly approach. It locates
the problems source and the way to correct the errors.
37
REFERENCES
Software Engineering –‘a practitioners approach’.(Author: Roger S. Pressman, fifth edition Publishers: Mc Graw Hill internationals)
Encyclopedia of Software Engineering, 2nd edition, John Wiley and Sons, inc, New York, December 2001.
Software Engineering –Ian Sommerville, 2nd edition, December 2004
www.google.com( bank management)
www.pscodes.com (implementation and OBDC connectivity)
38