Virtual Bank
Virtual Bank
Virtual Bank
functions and activities of the bank through Internet. The solution will facilitate to the
bank employees and the account holders with the different modules. This solution is very
much necessary for the private sector banks and the corporate sector. The banking
industry will take a new shape and explore like never before. Using the solution the
BUSINESS REQUIREMENTS:
Searching Capabilities:
For the account holder’s convenience and on hand information, this solution
provides certain searching and checking features for his account. The account holder can
any time and any number of time can log on and search for various details as the
account’s balance, details of transactions, interest amounts, debits / credits, etc. The
account holder will have his unique id and password for logging on to the account’s
information.
User friendly:
The solution provides very simple and modified features, which are very easy to
view and operate various features. The said project is designed and organized in very
simplified manner to suit the current requirements of the account holders of various
models such as Saving Bank Account, Current Account and Recurring Deposit Account.
Transaction Management:
The transaction made through either net or manually in bank need to have
a consistency with respect to the account details and other related information like
The solution provides good number of value added services in comparison to the
normal banking services. Account holder can view his accounts and give the instructions
holder can issue the instructions to transfer certain amount to any particular account
number of the same / different bank. Individual can log on to the site and open new bank
account in his name online by following the simplified registration form instructions
Security
The Net Banking system deals with a lot of proprietary information for its users,
information can be kept confidential. This is also ensures that the data that is put into the
system maintains its integrity because malicious or unauthorized individual will not have
access to alter them. The security is at two different levels, one at account holder and
here:
The proposed system can be accessed from any part of the world, as opposed to
stand alone or manual system, and provides information at any time, anywhere round the
Even though it is a web-based application it will keep the details of its clients
The customer needs to register, by which he is given user name and password through
which he can login and do the transactions whatever he wants to do. It provides easy to
The system provides freedom to the user to move freely around various screens
and status of the system returned, as it was when he left the screen.
The user can access the system at any time, because it’s 24-hour online from any
The customer can do all the work online without persisting him to go to the bank
like he can deposit the money, transfer amount from account to another account, can get
this available balance, able to see the transaction reports that has done etc to mention a
few.
The customer can save his money and time that is a valuable one in today’s day-
to – day life.
2.ii. PRELIMINARY INVESTIGATION
New Account
Opening an account is possible through Internet. Account can be opened in the
following methods explained below.
Savings Account
Input
Customer Details.
Output
Alert message.
Current Account
Input
Customer Details.
Output
Alert message.
Credit Card
Customer needs to open a savings/current account bank account before opening
the credit card account. Credit card account will be linked with their savings/current
account. Customer needs to give their account detail when applying for the credit card.
Input
Customer account details
Output
Alert message
Term Deposit
Term Deposit can be of two types: Flexible deposit and Cumulative deposit.
Flexible Deposit
Flexible deposit has links with the savings bank account.
Input
Customer details
Amount
Period
o Years
o Months
o Days
Renewal Option
o Repay the deposit
o Auto Renewal
Principal only
Principal along with interest
Output
Alert message.
Cumulative Deposit
Input
Customer details
Amount
Period
o Years
o Months
o Days
Output
Alert message
Recurring Deposit
Input
Customer details
Period
Installment amount
Output
Alert message
Teller Services
Customer can use the facility of Teller to receive the details of their
account. Teller services component provides the following services:
Account Summary
Transaction Details
Card Transaction
Interest Statement
Un Cleared Cheque
Account Summary
Customer can go to the Teller option and select the Account Summary. It provides
account summary of the customer. Account summary will be grouped as:
Regular Accounts
Investment Accounts
Loan Accounts
Credit card Account
On selecting the account summary field, the type of accounts field will be
displayed. Here the customer selects their account type and the account number will be
entered further. On entering these, the account summary is displayed. Further, customer
can enter from and to dates to see the opening balance and the closing balance.
Input
Account Type
Account Number
Statement Duration
Output
Date
Description
Credit/Debit
Amount
Balance
Transaction Details
User can use the transaction details option to obtain the details of their particular
transactions.
Input
Account type
Account number
Period of transaction
Output
Transaction history for the specified period
Card Transaction
The card transaction option will be provided for displaying the card transaction
details.
Input
Card Type
Card Number
Period of transaction
Output
Card Number
Account Number
Expiry Date
Date of transaction
Pay To
Amount
Interest Statement
In this option, a customer receives statement on interest earned/debited in their
account for a particular period
Input
Account Type
Account Number
Interest type (accrued/credited/debited)
From and to dates
Output
Date
Description (loan no. or flexi deposit no etc)
Interest Accrued/Credited/Debited
Interest credited during last year
Interest credited during the current year
Un Cleared Cheque
Here, a customer gets report about the Un Cleared Cheque. A separate table is
being maintained for tracking cheque clearance.
Input
Account type
Account number
Output
Details of Un-Cleared Cheque:
Date
Drawn on
Cheque number
Amount
Transaction Services
This module offers two types of services:
Funds Transfer
Tax Payment
Funds Transfer
Customers can use this service for regular payment from one account to
another.
Input
Origin account number
Destination account number
Destination Bank
Destination Branch
Transfer Amount
Frequency (One Time/Monthly/Quarterly/Yearly)
Transfer Date
Output
Alert message. In case if there is no sufficient fund in the origin account, the same
must be alerted to the customer.
Tax Payment
The Tax Payment component facilitates the customer to calculate tax payment
amount and remit the same to the tax collecting authority.
Input
Account Type
Account Number
Tax Payer ID
Taxing Period
Income during the above period
Tax Payment amount
Tax Collecting Authority
Output
Alert message.
Recurring Payments
Remittances
Recurring Payments
A customer can move the regular payment facility from one account to another.
Bank determines the service charge for providing the service to the user. It will be
displayed to the user for information to decide for utilizing the services provided by the
bank.
Here, the Customer instructs the bank to remit their recurring payment.
Input
User has to enter the following fields:
Payee Name
Payment frequency
Start date
End date
Payment Amount
Account Type
Account No.
Branch
Output
Alert message showing the service charge for providing the service.
Remittances
Following services are provided to the customer:
Transferring funds from one account to another within the bank.
Making remittances.
Service charges will be displayed for the customer to avail the facility and will be
determined by the bank.
Input
The customer provides following details:
Payee name
Payee bank name and branch
Payee account number
Amount
Account type
Account No.
Branch
Output
Alert message showing the service charge to be debited from the customer’s
account.
Requests
Under this module, the customer can request for the following services:
Cheque Reorder
New Card Request
Draft / Cashier’s Cheque
Stop Payment
Cheque Reorder
In this case, the customer requests bank to issue a new chequebook and the bank
may charge the customer for it.
Input
Account Type
Account No.
Output
Alert message showing the service charge to be debited from the customer’s
account.
New Card Request
In this process, the customer requests for a new card when he has lost his current
card.
Input
Card No.
Card Type
Lost on Date
Output
Alert message showing the service charge to be debited from the customer’s
account.
Input
Options to user:
Draft
Cashier’s cheque
Output
Alert message showing the service charge to be debited from the customer’s
account.
Stop Payment
In this process, the customer informs the bank to hold payment for the cheques he
has issued.
Input
Account Number
Branch
Cheque No
Output
On entering the cheque number, following will be displayed:
Payee Name
Date of issue
Branch
Alert message also will be displayed to the customer with service charge.
Maintenance Services
Maintenance Services module comprises the following components:
Output
Alert message showing the new account number.
Close Account
In this process, an existing account holder closes his account.
Input
Account type
Account number
Branch
Reason
For remittance of balance
o Account Transfer
Account number
Bank name
Branch
o Cashier’s cheque details
Output
Account summary will be presented to the customer. Check list will be provided
to the customer regarding pending standing instructions, pending Cheque etc.
Output
Alert message displaying that the account details have been modified.
Input
Account type
Account number
Branch
Applicant number
Customer details
Output
Alert message showing that the customer’s details have been modified.
User Alerts
The User Alerts module consists of the following processes:
Input
Credit Card number
Bank name
Branch
Alert message option
Output
Alert message displaying that the customer’s request was processed.
Input
Account number
Amount
Start date
Maturity date
Bank
Branch
Output
Alert message displaying that the customer’s request was processed.
3. FEASIBILITY STUDY
All projects are feasible – given unlimited resources and infinite time!
plagued by a scarcity of resources and difficult delivery dates. It is both necessary and
prudent to evaluate the feasibility of a project at the earliest possible time. Months or
Feasibility and risk analysis are related in many ways. If project risk is great the
Technical Feasibility
(World wide web). So, it is necessary to use a technology that is capable of providing the
networking facility to the application. This application as also able to work on distributed
Technology. One major advantage in application is platform neutral. We can deploy and
GUI is developed using HTML.to capture the information from the customer.
HTML is used to display the content on the browser. It uses TCP/IP protocol. It is an
interpreted language. It is very easy to develop a page/document using HTML some RAD
application. So many objects such as button, text fields, and text area etc are providing to
We can use this application in any OS. They can have their own security and
transactional advantages. But are the responsible for selecting suitable and secured OS,
can port this enterprise application in any environment. Both are having their individual
Economical Feasibility
In present system customer need to go to biller’s place to pay the bill. So he/she
needs to spend some time to complete this protocol. It is time consuming process some
times customer not able to spend that much of time. In such case needs to pay some
If it is developed in electronic payment system, He can pay the bill from any
where in the world. No need to travel to pay the bills. For doing this process
Operational Feasibility:
In our application front end is developed using GUI. So it is very easy to the
customer to enter the necessary information. But customer has some knowledge on using
APPLIED
DESIGN SPECIFICATION
Design of software involves conceiving planning out and specifying the externally
design and user interface design in the design process. These are explained in the
following section. The goals of design process it to provide a blue print for
DATA DESIGN
The primary activity during data design is to select logical representations of data
objects identified during requirement analysis and software analysis. A data dictionary
explicitly on the elements of the data structure. A data dictionary should be established
DESIGN METHODOLOGY
The two basic modern design strategies employed in software design are
2. Bottom Up Design
flow of control. At later stages it concern itself with the code production. The first step is
to study the overall aspects of the tasks at hand and to break it into a number of
independent modules. The second step is to break each one of these modules further into
Repeated one to obtain modules, which are small enough to group mentally and to
code in a straightforward manner. One important feature is that at each level the details
of the design at the lower level are hidden. Only the necessary data and control that must
In a bottom-up design one first identifies and investigates parts of design that are
most difficult and necessary designed decision are made the reminder of the design is
tailored to fit around the design already chose for crucial part. It vaguely represents a
One storage point of the top-down method is that it postpones details of the
decision until the last stage of the decision. It allows making small design changes when
the design is half way through. There is danger that the specifications will be
incompatible and this will not be discovered until late in the design process. By contrast
the bottom-up strategy first focuses on the crucial part so that feasibility of the design is
In mixing top-down and bottom-up design it often appears that we start in the
middle of the problem and work our way both up and down there. In a complex problem,
it is often difficult to decide how to modularize the various procedures in such cases one
might consider a list of system inputs and decide what functions are necessary to process
these inputs. This is called back to front design. Similarly one can start with the required
outputs and work backwards evolving so called front-back design. We have applied both
DATABASE DESIGN
characteristics, and so such, general techniques for the design of database are limited.
One of the most useful methods of analyzing the data required by the system for the data
dictionary has developed from research into relational database, particularly the work of
E.F.Codd. this method of analyzing data is called “Normalization”. Unnormalized data
are converted into normalized data by three stages. Each stage has a procedure to follow.
NORMALIZATION
The first stage is normalization is to reduce the data to its first normal form, by
removing repeating items showing them as separate records but including in them the key
The next stage of reduction to the second normal form is to check that the record,
which one is first normal form, all the items in each record are entirely dependent on the
key of the record. If a data item is not dependent on the key of the record, but on the
other data item, then it is removed with its key to form another record. This is done until
each record contains data items, which are entirely dependent on the key of their record.
The final stage of the analysis, the reduction of third normal form involves
examining each record, which one is in second normal form to see whether any items are
mutually dependent. If there are any item there are removed to a separate record leaving
one of the items behind in the original record and using that as the key in the newly
created record.
BUSINESS MODELING:
The information flow among business function is modeled in a way that answers
the following questions: what information drives the business process? What information
is generated? What generate it? Where does the information go? Who process it?
DATA MODELING:
The information flow defined as a process of the business modeling is refined into
a set of data objects that are needed to support the business. The characteristics (called
attributes) of each object are identified and relationships between these objects are
defined.
PROCESS MODELING:
The data objects defined in the data-modeling phase are transformed to achieve
The linear sequential model for software engineering some times called the
“classic model” or the “water fall model,” the linear sequential suggests a systematic,
sequential approach to software development that begins at eth system level and process
The linear sequential model is the oldest and the most widely used paradigm for
software engineering. Modeled after the conventional engineering cycle, the linear
Because software is always part of a larger system (or business), work begins by
establishing requirements for all system elements and then allocating some subset of
these requirements to software. This system view is essential when software must
level with a small amount of top-level analysis and design. Information engineering
encompasses requirements gathering at the strategic business level and at the strategic
software. To understand the nature of the programs to be built, the software Engineer
must under stand the information domain for the software, as well as required
function, behavior, performance, and inter facing. Requirements for the both the
system and the software are documented and reviewed with the customer.
3) DESIGN:
Software design is actually a multi step process that focuses on four distinct attributes
the software that can be assessed for quality before code generation begins. Like
configuration.
4) CODE GENERATION:
The design must be translated into a machine-readable form. The code generation
step performs this task. If design is performed in a detailed manner, code generation
5) TESTING:
Once code has been generated, program testing process focuses on the logical
internals of the software, assuring that all statements have been tested, and on the
functional externals that is, conducting tests to uncover errors and ensure that defined
input will produce actual results that agree with required results.
6) MAINTENANCE:
Change will occur because errors have been encountered, because the software must
reapplies each of the preceding phases to an existing program rather than a new one
.5. SOFTWARE AND HARDWARE SPECIFICATIONS
hardware and software, we have to mention requirements on both the Client and Server
part.
The Internet helped catapult Java to the forefront of programming and Java in turn
has had a profound effect on the Internet. The reason is simple: Java expands the
universe of objects that can move about freely in cyberspace. In a network, there are two
broad categories of objects transmitted between the Server and your Personal Computer:
passive information and dynamic, active programs like an object that can be transmitted
an active agent ton the client computer, yet the server would initiate it. As desirable as
dynamic, networked programs are, they also present serious problems in the areas of
security and portability. Prior to Java cyberspace was effectively closed to half the
entities that now live there. Java addresses these concerns and doing so, has opened the
The rise of server-side Java applications is one of the latest and most exciting trends
in Java programming. It was first hyped as a language for developing elaborate client-side
web content in the form of applets. Now, Java is coming into its own as a language
ideally suited for server-side development. Businesses in particular have been quick to
recognize Java’s potential on the server-Java is inherently suited for large client/server
applications. The cross platform nature of Java is extremely useful for organizations that
allows developers to cut development cycles and increase reliability. In addition, Java’s
built-in support for networking and enterprise API provides access to legacy data, easing
small, plug gable extension to a server that enhances the server’s functionality. Servlets
allow developers to extend and customize and Java enabled server a web server, a mail
server, an application server, or any custom server with a hitherto unknown degree of
Java Server Pages is a simple, yet powerful technology for creating and
Java Server Pages offers proven portability, open standards, and a mature re-usable
component model.
PORTABILITY
Java Server Pages files can be run on any web server or web-enabled
application server that provides support for them. Dubbed the JSP engine, this support
involves recognition, translation and management of the Java Server Pages lifecycle
The JSP engine for a particular server might be built-in or might be provided
through a 3rd –party add-on. As long as the server on which you plan to execute the
Java Server Pages supports the same specification level as that to which the file was
written, no change should be necessary as you move your files from server to server.
Note, however, that instructions for the setup and configuration of the files may differ
between files.
COMPOSITION
It was mentioned earlier that the Java Server Pages architecture could include
reusable Java components. The architecture also allows for the embedding of a
scripting language directly into the Java Server Pages file. The components current
supported include Java Beans and Serves. As the default scripting language, Java
Server Pages use the Java Programming language. This means that scripting on the
server side can take advantage of the full set of capabilities that the Java programming
language offers.
PROCESSING
A Java Server Pages file is essentially an HTML document with JSP scripting
or tags. It may have associated components in the form of. class, .jar, or .ser files- -or
The Java Server Pages file has a .jsp extension to identify it to the server as a
Java Server Pages file. Before the page is served, the Java Server Pages syntax is
parsed and processed into a servlet on the server side. The servlet that is generated,
outputs real content in straight HTML for responding to the customer. Because it is
ACCESS MODELS
A Java Server Pages file may be accessed in at least two different ways: A client
Request Bea
n
Browser
Response
JSP
In this scenario, suppose the page accessed reusable Java Bean components
result of the Bean’s computations, called result sets is stored within the Bean as
properties. The page uses such Beans to generate dynamic content and present it back
JDBC
Servlet
Result Database
Request Bean Bean
Browser
Response
JSP
The servlet generates the dynamic content. To handle the response to the
client, the servlet creates a Bean and stores the dynamic content (sometimes called the
result set) in the Bean. The servlet then invokes a Java Server Page that will present
the content along with the Bean containing the generated from the servlet.
There are two APIs to support this model of request processing using Java
Server Pages. One API facilitates passing context between the invoking servlet and
the Java Server Page. The other API lets the invoking servlet specify which Java
In both of the above cases, the page could also contain any valid Java code.
The Java Server Pages architecture separation of content from presentation- -it does
For example, our application might present a menu of database tasks from which to
choose. After a task is selected, the application presents prompts and blanks for filling
information needed to carry out the selected task. With the requested input typed in,
“middle tier” of services, which then send SQL statements to the database. The
database process the SQL statements and sends the results back to the middle tier,
which then sends them to the user. JDBC is important to allow database access from a
What Is JDBCTM?
JDBCTM is a JavaTM API for executing SQL statements. (As a point of interest,
JDBC is a trademarked name and is not an acronym; nevertheless, JDBC is often thought
interfaces written in the Java programming language. JDBC provides a standard API for
tool/database developers and makes it possible to write database applications using a pure
Java API.
database. In other words, with the JDBC API, it isn't necessary to write one program to
access a Sybase database, another program to access an Oracle database, another program
to access an Informix database, and so on. One can write a single program using the
JDBC API, and the program will be able to send SQL statements to the appropriate
database. And, with an application written in the Java programming language, one also
doesn't have to worry about writing different applications to run on different platforms.
The combination of Java and JDBC lets a programmer write it once and run it anywhere.
Java being robust, secure, easy to use, easy to understand, and automatically
What is needed is a way for Java applications to talk to a variety of different databases.
JDBC extends what can be done in Java. For example, with Java and the JDBC
API, it is possible to publish a web page containing an applet that uses information
obtained from a remote database. Or an enterprise can use JDBC to connect all its
employees (even if they are using a conglomeration of Windows, Macintosh, and UNIX
machines) to one or more internal databases via an intranet. With more and more
programmers using the Java programming language, the need for easy database access
MIS managers like the combination of Java and JDBC because it makes
disseminating information easy and economical. Businesses can continue to use their
installed databases and access information easily even if it is stored on different database
management systems. Development time for new applications is short. Installation and
update once, put it on the server, and everybody has access to the latest version. And for
businesses selling information services, Java and JDBC offer a better way of getting out
CONNECTION
session includes the SQL statements that are executed and the results that are returned
over the connection. A single application can have one or more connections with a
The Driver Manager class, referred to a the JDBC management layer, attempts to
locate a driver than can connect to the database represented Driver classes, and when
the method get Connection is called, it checks with each driver in the list until it finds
one that can connect uses this URL to actually establish the connection.
protocol name is “oracle”, which has been reserved for URLs that specify “thin”-style
<Sub name>- a way to identify the database. The sub names can vary,
depending on the sub protocol, and it can have a sub name with any internal syntax the
driver writer chooses. The point of a sub name is to give enough information to locate
the database.
SENDING STATEMENT:
underlying database. JDBC does not put any restrictions on the kinds of SQL
statements that can be sent; this provides a great deal of flexibility, allowing the use of
the user be responsible for making sure that the underlying database can process the
DRIVER MANAGER:
between the user and the drivers. It keeps track of the drivers that are available and
handles establishing a connection between a database and the appropriate driver. It
addition, the driver manager class attends to things like driver login time limits and
the printing of log and tracing messages. The only method in this class that a general
ORACLE 8i
Introduction to Oracle:
data being managed is called a Database. Hence, in very simple terms, these
All Databases Management Systems (that is, Oracle is DBMS) allow users to
create containers for data stories and management. These containers are called ‘cells’.
The minimum information that has to be given to Oracle for a suitable container to be
Another name that programming environments use for a ‘Cell’ is ‘Field’. These
designed, built and populated with data for a specific purpose. A database stores data that
is useful to us. This data is only a part of the entire data available in the world around us.
To be able to successfully design and maintain databases we have to do the
following:
Identify what specific objects in that part of the world’s data are of interest to us.
Hence the objects, their attributes and the relationship between them that are of
interest to us are still owed in the database that is designed, built and populated with data
Has a centralized data dictionary for the storage of information pertaining to data
Enforces data access authorization has automatic, intelligent backup and recovery
15) CHEQUES Table contains details of Cheques submitted by the Account Holders.
20) DRAFT_CHEQUE Table contains the details of Drafts and Cheques Issued.
ZERO-LEVEL
Account Net
Transaction & Banking
Reports
Services System
DFD-I
Account-Types
States
Get
Store
Nominee
Accounts
DFD-II
Accounts
Get
Store
Funds-Transfers
DFD-III
Accounts
Get
Store
Tax-Payments
DFD-IV
Accounts
Get
Store
Bill- Payments
DFD-V
Accounts
Get
Check Check
Reorder
Reorder Reordered
Details
Store
Cheque-Reorders
DFD-VI
Accounts Credit-cards
Get
Store
Credit-Cards
DFD-VII
Accounts
Get
Store
Draft-Cheque
DFD-VIII
Draft-Cheque
Get
Store
Draft-Cheque
DFD-IX
Customers Nominee
Accounts
Get
Store
DFD-X
Accounts
Get
Close Account
Account Account
Details Closed
Store
Transaction
Accounts Nominee
Get
Store
Accounts Nominee
DFD-XII
Customers
Get
Modify
Customer Customer Customer Details
Details Details Modified
Store
Customers
DFD-XIV
Accounts Loan-Types
Get
Store
Loans
Visualizing:
Through UML we view an existing system and ultimately we visualize how the system is
going to be after implementation. Unless we think, we cannot implement. UML helps to
visualize, how the components of the system communicate and interact with each other.
Specifying:
Specifying means building models that are precise, unambiguous and complete
UML addresses the specification of all the important analysis design, implementation
decisions that must be made in developing and deploying a software system.
Constructing:
UML models can be directly connected to a variety of programming language
through mapping a model from UML to a programming language like JAVA or C++ or
VB.Forward Engineering and Reverse Engineering is possible through UML.
Documenting:
The Deliverables of a project apart from coding are some Artifacts, which are
critical in controlling, measuring and communicating about a system during its
development viz. requirements, architecture, desire, source code, project plans, tests,
prototypes, releasers etc.
Diagrams in Uml:
Diagrams are graphical presentation of set of elements. Diagrams project a
system, or visualize a system from different angles and perspectives. The UML has 9
diagrams. These diagrams can be classified into the following groups.
Static:
1. Class Diagrams.
2. Object Diagrams.
3. Component Diagrams.
4. Deployment Diagrams.
Dynamic:
1. Use-Case Diagram.
2. Sequence Diagram
3. Collaboration Diagram.
4. State Chart Diagram
5. Activity Diagram.
Use case Diagram:
Shows a set of use cases and actors and their relationships. These diagrams
illustrate the static use case view of a system and are important in organizing and
modeling the behaviors of a system.
The Use case diagram is used to identify the primary elements and processes that
form the system. The primary elements are termed as "actors" and the processes are
called "use cases." The Use case diagram shows which actors interact with each use case.
A use case diagram captures the functional aspects of a system. More specifically, it
captures the business processes carried out in the system. Due to the simplicity of use
case diagrams, and more importantly, because they are shorn of all technical jargon, use
case diagrams are a great storyboard tool.
N ew A / c C reat ion
I nt eres t S t at em ent
N ew A / c T y pe
F ix ed D epos it M at urit y
A c c ount S um m ary
O t her P ay m ent s
B ank C us t om er
F unds T rans f er
T ax P ay m ent
R eques t s
T rans ac t ions
new Customer
1: Choose A/c Type 2: A/c Details 3: Tran Type 4: Get T ran Det.
register
personal details
5: Vali dation
validate()
store
existing customer
sign up
id, password
forward id
get pwd
CLASS DIAGRAM :
authenticate()
get pwd
validate pwd
new pwd
G U I C om ponent
D at a S t ore
Loan_I s s ue Cust om ers Loans
M enu I nput S c reen C heque_R eorder
D at a M anipulat or
ACTIVITY DIAGRAM :
( id,pwd )
( id,pwd ) ( ok )
unauthenticated validation authenticated
( oldpwd,new pwd )
Ready Validation ( valid ) Changed
( invalid )
7. SAMPLE CODE
AccountDetails.jsp:
<%@ page import="java.sql.*,java.util.*" session="true"%>
<%
int accno=0;
String type=(String)session.getAttribute("acctype");
String top="";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:netbank" ,
"scott" , " “tiger");
Statement st=con.createStatement();
ResultSet rs=null;
PreparedStatement pst=null;
rs=st.executeQuery("select max(accno) from auto");
if(rs.next()) {
accno=rs.getInt(1);
accno+=1;
pst=con.prepareStatement("insert into auto(accno) values(?)");
pst.setInt(1,accno);
pst.execute();
} else accno=1000;
if(type.equals("SB")) top="SB"+accno;
else if(type.equals("CA")) top="CA"+accno;
else if(type.equals("CC")) top="CC"+accno;
else if(type.equals("TD")) top="TD"+accno;
else top="RD"+accno;
} catch(Exception e) {out.println("<h1>"+e+"</h1>");}
%>
<html>
<head>
<title>
Account Details
</title>
</head>
<body id=body>
<SCRIPT Language="JavaScript" Purpose="Dom" Runat="Browser"
SRC="validate.js"></SCRIPT>
<SCRIPT Language="VBScript" Purpose="Dom" Runat="Browser"
SRC="warn.vbs"></SCRIPT>
<SCRIPT Language="JavaScript">onload=function() {
elementEffect();
document.getElementById('grad').style.cssText="padding:10px;filter:alpha(style=
1,startX=100,startY=0);background:green;color:aliceblue;font-
family:tahoma;font-size:30px;height:120px";
document.getElementById('body').style.cssText="margin:0px;background:floralw
hite";}
</script>
<Table width=100% cellspacing=0 cellpadding=0><TR><Td id=grad
valign=top>Online Net Banking Solutions For Life Time</td></tr></table>
<h1 align="center">Account Details </h1>
<form action="Accounts.jsp">
<table align="center"> <tr><td>Account No</td><td> <input type="text"
name="acctnum" value='<%=top%>' readonly/> </td></tr>
<tr><td>Account Category</td><td><select name="acctcategory" >
<option value="s">Single
<option value="j">Joint
<option value="c">Custodial
</select></td></tr>
<tr><td>Operation Mode</td><td><select name="opermode" >
<option value="s">Self
<option value="f">Former/Survivor
<option value="e">Either/Survivor
</select></td></tr>
<tr><td>Open Date </td><td> <input type="text" name="opendate"
value="" />*dd-mmm-yy</td></tr>
<tr><td>Balance Amount</td><td> <input type="text"
name="balanceamt" value="" /></td></tr>
<tr><td>Introducer Name</td><td> <input type="text"
name="introdname" value="" /> </td></tr>
<tr><td>Introducer Account No</td><td> <input type="text"
name="introacno" value="" /> </td></tr>
<tr><td>Branch</td><td> <input type="text" name="branch"
value="" /> </td></tr>
<tr><td>Known Applicants</td><td> <input type="text"
name="knownApplicants" value="" maxlength=2 onkeypress="return
blockkey(this)" /> </td></tr>
</table><br><br>
<center>
<input type="submit" name="submit" value="SUBMIT"/>
<input type="reset" name="reset" value="Cancel"/>
</center
</form>
</body></html>
Accounts.jsp:
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*" session="true"%>
<html>
<head><title>Account Information</title></head>
<body background="pink">
<hr color=#bb055E>
<%
String accno = request.getParameter("acctnum").trim();
String acccat = request.getParameter("acctcategory").trim();
String opermode = request.getParameter("opermode").trim();
String opendate=request.getParameter("opendate").trim();
float balamt=Float.parseFloat(request.getParameter("balanceamt"));
String introname=request.getParameter("introdname").trim();
String introacno=request.getParameter("introacno").trim();
String bran=request.getParameter("branch").trim();
int knowapp=Integer.parseInt(request.getParameter("knownApplicants"));
try {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (Exception ex) {
System.out.println("Error while loading the Driver : " + ex);
}
if(n>0)
{
session.setAttribute("account",accno);
response.sendRedirect("customers_reg.jsp");
}else
out.println("<html><body bgcolor=pink><h2>Not
Successful");
ps.close();
con.close();
} catch (Exception e) {
out.println("Error occured Due to the insertion os date"+e);
}
%>
AccoutsType.jsp:
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:netbank" , "scott" ,
"tiger");
PreparedStatement ps=con.prepareStatement("insert into account_types
values(?,?,?,?,?)");
ps.setString(1,acc);
ps.setString(2,acccat);
ps.setInt(3,opermode);
ps.setFloat(4,itrname);
ps.setInt(5,intronum);
int n=ps.executeUpdate();
if(n>0) {
out.println(" <a href='javascript:self.close()'>Back to
Home Page</a>");}
//response.sendRedirect("customers_reg.jsp"); }
else out.println("<h1>Invalid
Transaction</h1><center><BR><a href=\"javascript:history.back()\">Back to Accounts
</a></center>");
} catch(Exception e) { out.println("Error occured Due to the insertion date"+e);}
%>
customers.jsp:
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*" %>
<%@ page session="true" %>
<html>
<head><title>Account Information</title></head>
<body background="pink">
<hr color=#bb055E>
<%
String cuscode = request.getParameter("customercode").trim();
int appnum =Integer.parseInt(request.getParameter("applnum").trim());
String accnum = request.getParameter("accnum").trim();
String secondappno=request.getParameter("secondappno").trim();
String ftname=request.getParameter("ftname").trim();
String midname=request.getParameter("midname").trim();
String lstname=request.getParameter("lstname").trim();
String houseno=request.getParameter("houseno").trim();
String street1=request.getParameter("street1").trim();
String street2=request.getParameter("street2").trim();
String area=request.getParameter("area").trim();
String city=request.getParameter("city").trim();
String pin=request.getParameter("pin").trim();
String statecd=request.getParameter("statecd").trim();
String resphn=request.getParameter("resphn").trim();
String cellphn=request.getParameter("cellphn").trim();
String email=request.getParameter("email").trim();
int noyersadds=Integer.parseInt(request.getParameter("noyersadds").trim());
String profession=request.getParameter("profession").trim();
String orgni=request.getParameter("orgni").trim();
String worksin=request.getParameter("worksin").trim();
String designation=request.getParameter("designation").trim();
String offdoorno=request.getParameter("offdoorno").trim();
String offstreet=request.getParameter("offstreet").trim();
String offarea=request.getParameter("offarea").trim();
String offcity=request.getParameter("offcity").trim();
String offpin=request.getParameter("offpin").trim();
String offstatecd=request.getParameter("offstatecd").trim();
String offphone=request.getParameter("offphone").trim();
String pangrin=request.getParameter("pangrin").trim();
String gender=request.getParameter("gender").trim();
String datebirth=request.getParameter("datebirth").trim();
String marstatus=request.getParameter("marstatus").trim();
String relshipapp=request.getParameter("relshipapp").trim();
String eduquali=request.getParameter("eduquali").trim();
float monthincome=Float.parseFloat(request.getParameter("monthincome").trim());
String garname=request.getParameter("garname").trim();
try {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (Exception ex) {
System.out.println("Error while loading the Driver : " + ex);
}
ps.setString(11,area);
ps.setString(12,city);
ps.setString(13,pin);
ps.setString(14,statecd);
ps.setString(15,resphn);
ps.setString(16,cellphn);
ps.setString(17,email);
ps.setInt(18,noyersadds);
ps.setString(19,profession);
ps.setString(20,orgni);
ps.setString(21,worksin);
ps.setString(22,designation);
ps.setString(23,offdoorno);
ps.setString(24,offstreet);
ps.setString(25,offarea);
ps.setString(26,offcity);
//ps.setString(25,offcity);
ps.setString(27,offpin);
ps.setString(28,offstatecd);
ps.setString(29,offphone);
ps.setString(30,pangrin);
ps.setString(31,gender);
ps.setString(32,datebirth);
ps.setString(33,marstatus);
ps.setString(34,relshipapp);
ps.setString(35,eduquali);
ps.setFloat(36,monthincome);
ps.setString(37,garname);
int n=ps.executeUpdate();
if(n>0){
out.println("You are successfully registered your ccount");
out.println("<h3><a href='home.htm'>Back to Home
Page</a></h3>");
}else
out.println("<html><body bgcolor=pink><h2>Not successful");
ps.close();
con.close();
} catch (Exception e) {
out.println("Error occured Due to the insertion os date"+e);
//out.println("<a href='accountdetails.html'>Back to Account</a>");
}
%>
billpmt.jsp:
<%@ page import="java.util.*,java.sql.*,java.text.*"%>
<%
String bill_pay_code=request.getParameter("billpaycode").trim();
String
account_no=request.getParameter("account_no").trim().toUpperCase();
String bill_no=request.getParameter("bill_no");
String bill_date=request.getParameter("bill_date");
String bill_from=request.getParameter("bill_from");
String bill_to=request.getParameter("bill_to");
// java.sql.Date bill_date=new java.sql.Date( new
java.util.Date(request.getParameter("bill_date")).getTime());
// java.sql.Date bill_from= new java.sql.Date( new
java.util.Date(request.getParameter("bill_from")).getTime());;
// java.sql.Date bill_to = new java.sql.Date( new
java.util.Date(request.getParameter("bill_to")).getTime());;
String payee=request.getParameter("payee");
float bill_amount=Float.parseFloat(request.getParameter("bill_amount"));
String bill_desc=request.getParameter("bill_desc");
Connection con=null;
PreparedStatement pst=null;
Statement st=null;
ResultSet rs=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:netbank","scott","tiger");
String cmd1="Select Balance_amt from Accounts where
account_no='"+account_no+"'";
st=con.createStatement();
ResultSet rs1=st.executeQuery(cmd1);
long a=0,b=0;
if(rs1.next()){
a=rs1.getInt(1);
if(a-300>bill_amount){
a-=bill_amount;
String cmd2="UPDATE ACCOUNTS SET BALANCE_AMT='"+a+"' where
account_no='"+account_no+"'";
PreparedStatement pstup=con.prepareStatement(cmd2);
pstup.executeUpdate();
String cmd="INSERT INTO BILL_PAYMENTS VALUES(?,?,?,?,?,?,?,?,?)";
pst=con.prepareStatement(cmd);
pst.setString(1,bill_pay_code);
pst.setString(2,account_no);
pst.setString(3,bill_no);
pst.setString(4,bill_date);
pst.setString(5,bill_from);
pst.setString(6,bill_to);
pst.setString(7,payee);
pst.setFloat(8,bill_amount);
pst.setString(9,bill_desc);
pst.execute();
out.println("<h1>Bill Payment Accepted</h1>");
out.println("<h4><a href='billpayment.jsp'>Want to pay Another Payment?
</a></h4>");
out.println("<h4><a href=\"javascript:self.close()\">Back to Home
Page</a></h4>");
}else{ out.println("Your Balance amount is less to pay your bill");
out.println("<h4><a href=\"javascript:self.close()\">Back to Home
Page</a></h4>");}
}else{ out.println("Check your account no:");
out.println("<h4><a href=\"javascript:self.close()\">Back to Home
Page</a></h4>"); }
//String comm="insert into
bill_payments(bill_pay_code,account_no,bill_no,bill_date,bill_from,bill_to,payee,
bill_amount,bill_desc) values(?,?,?,?,?,?,?,?,?)";
}catch(Exception e){ out.println(e);}
%>
newuser.jsp:
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*" %>
<html>
<head><title> Login Authentication</title></head>
<body background="background.jpg">
<SCRIPT Language="JavaScript" Purpose="Dom" Runat="Browser"
SRC="validate.js"></SCRIPT>
<SCRIPT Language="VBScript" Purpose="Dom" Runat="Browser"
SRC="warn.vbs"></SCRIPT>
<SCRIPT Language="JavaScript">onload=function() {
elementEffect();
document.getElementById('grad').style.cssText="padding:10px;filter:alpha(style=1,start
X=100,startY=0);background:green;color:aliceblue;font-family:tahoma;font-
size:30px;height:120px";
document.getElementById('body').style.cssText="margin:0px;background:floralwhite";}
</script>
<Table width=100% cellspacing=0 cellpadding=0><TR><Td id=grad valign=top>Online
Net Banking Solutions For Life Time</td></tr></table>
<hr color=#bb055E>
<%
String uname = request.getParameter("account").trim();
String pass = request.getParameter("upass").trim();
String repass = request.getParameter("repass").trim();
if(pass.equalsIgnoreCase(repass)) {
try {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (Exception ex) {
System.out.println("Error while loading the Driver : " + ex);
}
Connection con = DriverManager.getConnection("jdbc:odbc:netbank" , "scott" ,
"tiger");
int accno=-1;
PreparedStatement ps=con.prepareStatement("INSERT INTO USERS VALUES(?,?)");
ps.setString(1,uname);
ps.setString(2,pass);
int n=ps.executeUpdate();
if(n>0){
out.println("User Successfully Registered");
out.println("<a href='login.html'>Back to Login</a>");}
ps.close();
con.close();
} catch (Exception e) {out.println("error"+e);}
}
%>
useracctype:
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*" session="true" %>
<html>
<head><title>Account Information</title></head>
<body background="pink">
<hr color=#bb055E>
<%
String acc = request.getParameter("acctcode").trim();
String acccat = request.getParameter("acctypedesc").trim();
int opermode =Integer.parseInt(request.getParameter("miniamtdep").trim());
float itrname=Float.parseFloat(request.getParameter("interestrate").trim());
int intronum=Integer.parseInt(request.getParameter("minpermonths").trim());
out.println(acc+"<BR>"+acccat+"<BR>"+opermode+"<BR>"+itrname+"<BR>"+intronu
m);
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:netbank" , "scott" ,
"tiger");
PreparedStatement ps=con.prepareStatement("insert into user_account_types
values(?,?,?,?,?)");
ps.setString(1,acc);
ps.setString(2,acccat);
ps.setInt(3,opermode);
ps.setFloat(4,itrname);
ps.setInt(5,intronum);
int n=ps.executeUpdate();
if(n>0) {
session.setAttribute("acctype",acc);
response.sendRedirect("accountdetails.jsp"); }
else
out.println("<h1>Invalid Transaction</h1><center><BR><a
href=\"javascript:history.back()\">Back to Accounts </a></center>");
} catch(Exception e) { out.println("Error occured Due to the insertion date"+e);}
%>
carddetails.jsp:
<%@ page import="java.sql.*,java.util.*"%>
<body id=body>
<SCRIPT Language="JavaScript" Purpose="Dom" Runat="Browser"
SRC="validate.js"></SCRIPT>
<SCRIPT Language="VBScript" Purpose="Dom" Runat="Browser"
SRC="warn.vbs"></SCRIPT>
<SCRIPT Language="JavaScript">onload=function() {
elementEffect();
document.getElementById('grad').style.cssText="padding:10px;filter:alpha(style=
2,startX=100,startY=0);background:green;color:aliceblue;font-
family:tahoma;font-size:30px;height:50px";
document.getElementById('body').style.cssText="margin:0px;background:floralw
hite";}
</script>
<Table width=100% cellspacing=0 cellpadding=0><TR><Td id=grad valign=top
align=center>Online Net Banking Solutions For Life Time</td></tr></table>
<fieldset>
<legend align=center><font face=tahoma>CardCard Issuing </legend><BR>
<%
int crcardno=0;
String top="a";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:netbank" , "scott" ,
"tiger");
Statement st=con.createStatement();
ResultSet rs=null;
PreparedStatement pst=null;
rs=st.executeQuery("select max(credit_cardno) from auto");
if(rs.next()) {
crcardno=rs.getInt(1);
crcardno+=1;
pst=con.prepareStatement("insert into auto(credit_cardno) values(?)");
pst.setInt(1,crcardno);
pst.execute();
} else
crcardno=100;
top= "cre"+crcardno;
} catch(Exception e) {out.println("<h1>"+e+"</h1>");}
%>
<table style="border:1px solid gray" align="center" id=register width=500
cellspacing=0 cellpadding=2><form action="CreditCardIssue.jsp" method="post"
onsubmit="return validate(this)">
<tr><td align=right>CardNo</td><td><input type="text" name="cardnum"
value="<%=top%>" maxlength=10 readonly /></td></tr>
<tr><td align=right>AccountNo</td><td><input type="text" name="accountno"
value="" /></td></tr>
<tr><td align=right>IssueDate</td><td><input type="text" name="issuedate"
value="" />*dd-mmm-yy</td></tr>
<tr><td align=right>ExpiryDate</td><td><input type="text" name="expirydate"
value="" />*dd-mmm-yy</td></tr>
<tr><td align=right>MaximumAmount</td><td><input type="text"
name="maxamt" value="" maxlength=6/></td></tr>
<tr><td align=right>Status</td><td><select name="status">
<option value="v">valid</option><option value="l">lost</option></td></tr>
<tr bgcolor=mistyrose><td colspan=2 align=center><button
type="submit"><u>S</u>ubmit</button> <button
type=reset><u>R</u>eset</button></td></tr>
</form></table><br></fieldset><script>setColor()</script>
</body>
</html>
transferfunds.jsp:
%>
8. CODE EFFICIENCY
1. Uniqueness: The code structure must ensure that only one value of the code with
2. Expandability: The code structure are designed for in a way that it must allow for
growth of it’s set of entities or attributes, thus providing sufficient space for the
4. Uniform size and format: Uniform size and format is highly desirable in
mechanized data processing system. The addition of prefixes and suffixes to the
uniqueness requirement.
5. Simplicity: The codes are designed in a simple manner to understand and simple
to apply.
7. Sortability: Reports are most valuable for user efficiency when sorted and
collaged, the representative code for the date does not need to be in a sortable
efficiency. Individual code assignments for a given entity should be made with a
minimal likelihood of change either in the specific code or in the entire coding
structure.
10. Operatability: The code is adequate for present and anticipated data processing
both for machine and human use. Care is taken to minimize the clerical effort and
INTRODUCTION:
A good program is not the one that solves the intended problem alone but the one
that does it efficiently. An ideal compiler should produce target code that is as good as
can be written by hand crafted meticulously to run on the target machine in the most
efficient manner both in terms of time of execution and memory requirements. The reality
however is that this goal is achieved only in limited, cases and that too with difficulty.
Nonetheless, the code produced by straight forward compiling algorithms can often be
made more space and time efficient. This is accomplished by applying transformations on
the produced code. These transformations aiming at optimization of compiled code are
known as code optimization and compilers that apply code improving transformations are
independent optimization is a set of program transformations that improve the target code
without taking into consideration any properties of the target machine. Machine dependent
identify the frequently executed parts of a program and then make these parts as efficient
as much as possible. According to Pareto principle, most programs spend ninety per cent
of their execution time in ten percent of the code. While the actual percentages may vary,
it is often the case that a small fraction of a program accounts for most of the running
In practice, the program's inner loops are good candidates for improvement. In a
language that emphasizes control constructs like while and for statements, the loops may
be evident from the syntax of the program; in general, a process called contra/flow
The best technique for deciding what transformations are worthwhile to put into a
compiler is to collect statistics about the source programs and evaluate the benefit of a
There are often levels at which a program can be improved algorithm level, source
program level, intermediate level or target level. Since the techniques needed to analyze
and transform a program do not change significantly with the level, this chapter
below:
Front end Code Code
Optimizer Optimizer
Control Data
Flow Flow Transformations
Analysis Analysis
In the code optimizer programs are represented by flow graphs, in which edges indicate
the flow of control and nodes represent basic blocks. Unless otherwise specified a
Sources of Optimization
only at can perform it the statements in a basic block are called local otherwise, it is
called global. Many transformations can be performed at both the local and global levels.
Function-preserving Transformations
There are a number of ways in which a compiler can improve a program without
propagation, dead code elimination, and constant folding are common examples of such
function-preserving transformations.
Frequently, a program will include several calculations of the same value, such as an
offset in an array. The programmer cannot avoid some of these duplicate calculations
because they lie below the level of detail accessible within the source language.
Common sub-expressions
previously computed, and the values of variables in E have not changed since the
previous computation. We can avoid recomputing the expression if we can use the
previously computed value. Removing such command sub-expressions may optimize the
code.
COPY PROPAGATION
Dead-Code
otherwise, it is dead at that point. A related idea is dead or useless code, statements that
compute values that never get used. While the programmer is unlikely to introduce any
dead code intentionally, it may appear as the result of previous transformations. Deducing
at compile time that the value of an expression is a constant and using the constant instead
LOOP OPTIMIZATIONS
Loops are very important place for optimizations where programs tend to spend
the bulk of their time. rf we decrease the number of instructions in an inner loop, even if
we increase the amount of code outside that loop, the running time of a program may be
improved considerably. Three important techniques for loop optimization are - code
apply to eliminate loop indices from the inner loops; and reduction in strength, which
loop. It takes an expression and transforms it yielding the same result independent of the
number of times a loop is executed (i.e. a loop-invariant computation) and places the
expression before the loop. The assumption made here is that an entry for the loop exists.
statement:
ttt = aaa;
Clearly the code motion technique has reduced the number of computations in this form.
Code motion may not be applicable to all the situations. Loops are usually processed from
Note that the values of j and t2 remain in lock step; every time the value of j
rid of all but one when more than one induction variables are present.
constructing a directed-cyclic-graph (DAG) for a basic block. There is a node in the DAG
for each of the initial values of the variables appearing in the basic block, and there is a
node n associated with each statement s within the block. The children of n are those
nodes corresponding to statements that are the last definitions prior to s of the operands
used by s. Node n is labeled by the operator applied at s, and also attached to n is the list
of variables for which it is the definition within the block. We also note those nodes, if
any, whose are live on exit from the block; these are the output nodes.
10. VALIDATION CHECKS
In the text boxes like name, address etc., only alphabets and number could be
entered thus if the operator by mistake enters other special characters, it would not be
entered.
In the text boxes like age, telephone number only numbers could be entered.
If the users do not fill any of the fields, which could not be empty,, a message
When a user starts the applications, a login form will be displayed prompting to
enter the username and password, if even any one of them is not matched with the details
stored in the database, the user will be warned to re-enter the correct details.
While entering the details of new customer, the customer number which cannot be
null value will be automatically generated which is one greater than the highest number
existing previously.
When the details of one customer are modified even if one parameter is missed a
TESTING OBJECTIVES:
2. A good test case design is one that has a probability of finding an as yet
undiscovered error.
Testing cannot show the absence of defects, it can only show that software errors
are present.
1. White Box Testing: This testing is also called as glass box testing. In this
testing, by knowing the specified function that a product has been designed to perform
test can be conducted that demonstrates each function is fully operation at the same
time searching for errors in each function. It is a test case design method that uses the
control structure of the procedural design to derive test cases. Basis path testing is a
i. Condition testing
product, tests can be conducted to ensure that “ all gears mesh”, that is the internal
operation performs according to specification and all internal components have been
software.
A software testing strategy provides a road map for the software developer.
Testing is a set of activities that can be planned in advance and conducted systematically.
For this reason a template for software testing a set of steps into which we can place
specific test case design methods should be defined for software engineering process.
1. Testing begins at the module level and works “outward” toward the integration of
3. The developer of the software and an independent test group conducts testing.
Unit Testing: Unit testing focuses verification efforts in smallest unit of software
design (module).
the program structure while conducting tests to uncover errors associated with interfacing.
throw the control hierarchy beginning with the main control module.
testing is the re execution of some subset of test that have already been conducted to
VALIDATION TESTING:
package; interfacing errors have been uncovered and corrected, and a final series of
software tests – validation testing may begin. Validation can be fined in many ways, but
a simple definition is that validation succeeds when software functions in a manner that
document that describes all user-visible attributes of the software. The specification
contains a section titled “Validation Criteria”. Information contained in that section forms
demonstrate conformity with requirement. A test plan outlines the classes of tests to be
conducted, and a test procedure defines specific test cases that will be used in an attempt
to uncover errors in conformity with requirements. Both the plan and procedure are
designed to ensure that all functional requirements are satisfied; all performance
After each validation test case has been conducted, one of two possible conditions
exist: (1) The function or performance characteristics conform to specification and are
CONFIGURATION REVIEW:
intent of the review is to ensure that all elements of the software configuration have been
properly developed, are catalogued, and have the necessary detail to support the
maintenance phase of the software life cycle. The configuration review sometimes called
an audit.
It is virtually impossible for a software developer to foresee how the customer will
really use a program. Instructions for use may be misinterpreted; strange combination of
data may be regularly used; and output that seemed clear to the tester may be
When custom software is built for one customer, a series of acceptance tests are
conducted to enable the customer to validate all requirements. Conducted by the end user
rather than the system developer, an acceptance test can range from an informal “test
drive” to a planned and systematically executed series of tests. In fact, acceptance testing
can be conducted over a period of weeks or months, thereby uncovering cumulative errors
impractical to perform formal acceptance tests with each one. Most software product
builders use a process called alpha and beta testing to uncover errors that only the end
a natural setting with the developer “looking over the shoulder” of the user and recording
errors and usage problems. Alpha tests are conducted in controlled environment.
The beta test is conducted at one or more customer sites by the end user of the
software. Unlike alpha testing, the developer is generally not present. Therefore, the beta
the developer. The customer records all problems that are encountered during beta testing
and reports these to the developer at regular intervals. As a result of problems reported
during bets test, the software developer makes modification and then prepares for release
IMPLEMENTATION:
Implementation is the process of having systems personnel check out and put new
equipment into use, train users, install the new app Depending on the size of the
organization that will be involved in using the application and the risk associated with its
use, systems developers may choose to test the operation in only one area of the firm, say
in one department or with only one or two persons. Sometimes they will run the old and
new systems together to compare the results. In still other situation, developers will stop
using the old system one-day and begin using the new one the next. As we will see, each
implementation strategy has its merits, depending on the business situation in which it is
Once installed, applications are often used for many years. However, both the
organization and the users will change, and the environment will be different over weeks
modifications and changes will be made to the software, files, or procedures to meet
emerging user requirements. Since organization systems and the business environment
undergo continual change, the information systems should keep pace. In this sense,
Evaluation of the system is performed to identify its strengths and weakness. The
including ease of use, response time, suitability of information formats, overall reliability,
User Manager Assessment: Evaluation of the attitudes of senior and user mangers
with such yardsticks as overall development time and effort, conformance to budgets and
Unfortunately system evaluation does not always receive the attention it merits.
Where properly managed however, it provides a great deal of information that can
processing or transit, and against the denial of service to authorized users of the provision
Many questions regarding security are related to the software life cycle itself. In
particular, the security of code and software processes must be considered during the
design and development phase. In addition, security must be preserved during operation
deceive us into believing that our jobs as secure system designers are already done.
However, computers and networks are incredibly insecure. The lack of security stems
from two fundamental problems. Systems, which are theoretically secure, may not be
more opportunities for attacks. It is much easier to prove that a system is insecure than to
demonstrate that one is secure to prove insecurity, one simply exploits certain system
vulnerability. On the other hand, proving a system secure requires demonstrating that all
possible exploits can be defended against (a very daunting, if not impossible, task).
GOOD PRACTICE
Security requires more managing and mitigating risk than it does technology.
When developing software one must first determine the risks of a particular application.
For example, today's typical web site may be subject to a variety of risks, ranging from
Once the risks are identified, identifying appropriate security measures becomes
application will be used, who will be using the application, etc. With that knowledge, one
can decide whether or not to support complex features like auditing, accounting, no
repudiation, etc.
Another potentially important issue is how to support naming. The rise of distributed
to use that name searches for it (phone books and directories are examples). For example,
in a system such as a resource discovery system, both the resources and the individuals
using those resources must be named. Often there are tradeoffs with respect to naming:
while naming can provide a level of indirection, it also can create additional problems if
the names are not stable. Names can allow principals to play different roles in a particular
develop the software to satisfy the given requirements, and how much time development
will take. These estimates are needed before development is initiated. The primary reason
for cost and schedule estimation is to enable the client or developer to perform a cost-
benefit analysis and for project monitoring and control. Automation more practical use of
these estimates is in bidding for software projects, where the developers must give cost
For a software development project, detailed and accurate cost and schedule
estimates are essential prerequisites for managing the project. Otherwise, even simple
questions like “is the project late”, “are there cost overruns” and “when is the project
likely to complete” cannot be answered. Cost and schedule estimates are also required to
determine the staffing level for a project during different phases. It can be safely said that
cost and schedule estimates are fundamental to any form of project management and
Cost in a project is due to the requirements for software, hardware, and human
resources. Hardware resources are such things as the computer time, terminal time, and
memory required for the project, whereas software resources include the tools and
compilers needed during development. The bulk of the cost of software development is
due to the human resources needed, and most cost estimation procedures focus on this
aspect. Most cost estimates are determined in terms of person-months (PM). By properly
including the “Overheads” (i.e. the cost of hardware, software, office space etc,) in the
dollar cost of the person-month, besides including the direct cost of the person-month,
most costs for a project can be incorporated by using PM as the basic measure.
Estimates can be based in subjective opinion of some person or determined
through the user of models. Though there are approaches to structure the opinions of
persons for achieving a consensus on the cost estimate it is generally accepted that it is
important to have a more scientific approach to estimate though the user of models.
One can perform cost estimation at any point in the software life circle. As the
cost of the project depends on the nature and characteristics of the project, at any point,
the accuracy of the estimate will depend on the among or reliable information we have
about the final product. Clearly, when the product is delivered, the cost can be accurately
determined, as all the data about the project and the resources spent be fully known by
then. This is cost estimation with complete knowledge about be fully known by then. This
is cost estimation with complete knowledge about the project. On the other extreme is the
point when the project is being initiated or during the feasibility study. At this time
14. SCREENS
17. BIBLIOGRAPHY
The following books and manuals provided a lot of help to us in making this project a reality.
JAVA COMPLETE REFERENCE
PATRICK NAUGHTON,
HERBERT SCHILDT
JAVA HOW TO PROGRAM
DEITERL & DEITEL
JAVA UNLEASHED
JDBC DATABASE ACCESS WITH JAVA
GRAHAM AMELTON,
RICK CATTEL,
MATDENE FISHER.
SERVLET PROGRAMMING
O’RELLY
SOFTWARE ENGINEERING
R. E. FAIRELY
SOFTWARE ENGINEERING
PRESSMAN
AN INTEGRATED APPROACH TO SOFTWARE
ENGINNERING
PANKAJ JALOTE
NAROSA PUBLISING HOUSE
FUNDAMENTALS OF DATABASE SYSTEMS
ELMASRI & NAVATHE
ADDISON WESLY
LEARN SQL IN 21 DAYS
TECH MEDIA
SQL, PL/SQL
IVAN BAYROSS
BPB PUBLICATIONS
SYSTEM ANALYSIS AND DESIGN
ELIAS M AWAD
GALGOTIA
J2EE 2ND EDITION
WROX PRESS