The main objective of the proposed solution is to be automated the various 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 bankers and account holders can generate various kinds of reports. 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 transaction details across various databases. Value Added Service 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 of making payment to various government organizations for various services. An account 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, which are confidential. It is therefore imperative to provide a means though which 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 other at administrative level at the bank’s office.

The Net Banking is a web-based application some of its features are pointed out 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 clock to the customers. Even though it is a web-based application it will keep the details of its clients private and no body is allowed to tinker with the details. 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 use and user friendly interface for the user. 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. by expert personalities maintaining the web site. The user can access the system at any time, because it’s 24-hour online from any where in the world. 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 dayto – day life.

Output Alert message. Savings Account Input Customer Details. Input Customer account details Output Alert message Term Deposit Term Deposit can be of two types: Flexible deposit and Cumulative deposit. Account can be opened in the following methods explained below. Output Alert message.ii. Current Account Input Customer Details. Credit card account will be linked with their savings/current account.2. PRELIMINARY INVESTIGATION New Account Opening an account is possible through Internet. Customer needs to give their account detail when applying for the credit card.  Input  Customer details  Amount . Flexible Deposit Flexible deposit has links with the savings bank account. Credit Card Customer needs to open a savings/current account bank account before opening the credit card account.

 Period o o o Years Months Days  Renewal Option o o Repay the deposit Auto Renewal    Output Alert message. Cumulative Deposit  Input  Customer details  Amount  Period o o o  Output Alert message Recurring Deposit  Input  Customer details  Period  Installment amount  Output Alert message Years Months Days Principal only Principal along with interest .

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. customer can enter from and to dates to see the opening balance and the closing balance. Further. On entering these. It provides account summary of the customer. Here the customer selects their account type and the account number will be entered further.  Input  Account Type  Account Number  Statement Duration  Output  Date  Description  Credit/Debit  Amount  Balance . the account summary is displayed. the type of accounts field will be displayed.Teller Services Customer can use the facility of Teller to receive the details of their account. Account summary will be grouped as: Regular Accounts Investment Accounts Loan Accounts Credit card Account On selecting the account summary field.

 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.  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.Transaction Details User can use the transaction details option to obtain the details of their particular transactions. 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 .

 Input  Origin account number  Destination account number  Destination Bank  Destination Branch  Transfer Amount  Frequency (One Time/Monthly/Quarterly/Yearly)  Transfer Date . A separate table is being maintained for tracking cheque clearance. 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.  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. Output  Date  Description (loan no.

provided the bank has a tie up with the provider. Output Alert message. Bank will make payment to these service providers as they get on line instructions from the customer. the same must be alerted to the customer. Service providers publish the bills to the bank and the customers will be alerted subsequently. . gas. Bank debits service charge from customer’s account for providing the service. In case if there is no sufficient fund in the origin account. Tax Payment The Tax Payment component facilitates the customer to calculate tax payment amount and remit the same to the tax collecting authority. Options provided to the customer include: Tax Payment request Tax Payment modification Tax Payment Cancellation     Input  Account Type  Account Number  Tax Payer ID  Taxing Period  Income during the above period  Tax Payment amount  Tax Collecting Authority  Output Alert message. water etc. Bill Payment Services Bill Payment Service components facilitate customers to instruct the banks to issue payment to their bills regularly against utilities such as electricity. Customer nominates the service provider to the bank.

Following details will be displayed and the customer has multiple options to choose:  Bill No.  Input User has to enter the following fields:  Payee Name  Payment frequency  Start date  End date  Payment Amount .  Bill date  Bill period  Payee  Amount  Description  Select for payment (check box) Customer has to select bills to be paid from the check box option. The customer also gives the account number in which the amount has to be debited. 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.  Output Alert message will be displayed to the user showing the service charge amount that will be debited from his account. Other Payments Other Payments component incorporates the following services: Recurring Payments Remittances Recurring Payments    A customer can move the regular payment facility from one account to another. the Customer instructs the bank to remit their recurring payment.

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. Account Type  Account No. the customer can request for the following services:     Cheque Reorder New Card Request Draft / Cashier’s Cheque Stop Payment Cheque Reorder .  Branch  Output Alert message showing the service charge for providing the service. Output Alert message showing the service charge to be debited from the customer’s Requests Under this module.  Branch  account.  Input The customer provides following details:  Payee name  Payee bank name and branch  Payee account number  Amount  Account type  Account No.

Input Card No. the customer requests for a new card when he has lost his current card. the customer requests bank to issue a new chequebook and the bank may charge the customer for it.In this case. Card Type Lost on Date Output Alert message showing the service charge to be debited from the customer’s account. customer enters the following details: . Bank may deliver the DD/cashier’s cheque at users’ doorstep or payee’s doorstep. Bank will charge customer accordingly. Draft / Cashier Cheque The customer requests bank to issue draft/cashier’s cheque. New Card Request In this process. Input  Account Type  Account No. Input Draft Cashier’s cheque Output  Alert message showing the service charge to be debited from the customer’s     Options to user:   Further.  account.

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. Street Area City PIN  account. Payee name  Drawn on  Amount  Delivery options o o Deliver at customer’s doorstep Deliver at payee’s doorstep  Payee’s address o o o o o Door No. Stop Payment Output Alert message showing the service charge to be debited from the customer’s In this process. following will be displayed: Payee Name Date of issue Branch    .

 Input  Customer ID  Customer details  Output Alert message showing the new account number. an existing customer opens another account. Maintenance Services Maintenance Services module comprises the following components: Open another account Close account Modify account info Modify customer info     Open Another Account In this process.Alert message also will be displayed to the customer with service charge.  Input  Account type  Account number  Branch  Reason  For remittance of balance o Account Transfer    o  Output Account number Bank name Branch Cashier’s cheque details . Close Account In this process. an existing account holder closes his account.

phone number etc. Modify Customer Info In this process.Account summary will be presented to the customer. the customer wants to change information about him such as address. a customer modifies his account information.  Input Customer has to enter the following information:  Account type  Account number  Branch  Mode of operation  Account link  Threshold  Output Alert message displaying that the account details have been modified. Check list will be provided to the customer regarding pending standing instructions.  Input  Account type  Account number  Branch  Applicant number  Customer details  Output Alert message showing that the customer’s details have been modified. Modify Account Info In this process. User Alerts The User Alerts module consists of the following processes:   Credit card payment Flexible deposit maturity . pending Cheque etc.

In addition. Credit Card Payment User will be provided with two options:    Two days before the due date One week before the due date Input  Credit Card number  Bank name  Branch  Alert message option  Output Alert message displaying that the customer’s request was processed. these alert messages will be consolidated and displayed when the user logs into the application.The module provides options to user to receive the alert messages. Flexible Deposit Maturity User will be provided with two options: Two days before the date of maturity One week before the date of maturity Input  Account number  Amount  Start date  Maturity date  Bank  Branch    . Customer requests will be maintained in the database and the alert messages will be triggered whenever required and reach the customer through email.

. Output Alert message displaying that the customer’s request was processed.

We can deploy and used it in any operating system. . So. Months or years of effort. We can use this application in any OS. So many objects such as button. They can have their own security and transactional advantages. It uses TCP/IP protocol. we concentrate our attention on four primary areas of interest: Technical Feasibility This application in going to be used in an Internet environment called www (World wide web).to capture the information from the customer.3. Application on developed with J2EE (Java 2 Enterprise Edition platform) Technology. GUI is developed using HTML. and untold professional embarrassment can be averted if an ill-conceived system is recognized early in the definition phase. It is both necessary and prudent to evaluate the feasibility of a project at the earliest possible time. But are the responsible for selecting suitable and secured OS. Feasibility and risk analysis are related in many ways. however. HTML is used to display the content on the browser. text fields. If project risk is great the feasibility of producing quality software is reduced. During product engineering. It is very easy to develop a page/document using HTML some RAD (Rapid Application Development) tools are provided to quickly design/develop our application. One major advantage in application is platform neutral. which is suitable to our application. FEASIBILITY STUDY All projects are feasible – given unlimited resources and infinite time! Unfortunately. thousands or millions of dollars. the development of computer-based system or product is more likely plagued by a scarcity of resources and difficult delivery dates. it is necessary to use a technology that is capable of providing the networking facility to the application. and text area etc are providing to capture the information from the customer. It is an interpreted language. This application as also able to work on distributed environment.

Operational Feasibility: In our application front end is developed using GUI. So he/she needs to spend some time to complete this protocol.The back-end Oracle 8i and front-end application are platform independent. It is time consuming process some times customer not able to spend that much of time. But customer has some knowledge on using web applications before going to use our application. For doing this process electronically have to spend some time. If it is developed in electronic payment system. In such case needs to pay some additional payment to the biller for late payment. Economical Feasibility In present system customer need to go to biller’s place to pay the bill. . No need to travel to pay the bills. So it is very easy to the customer to enter the necessary information. So we can port this enterprise application in any environment. Both are having their individual configuration to get better performance and backup issues. He can pay the bill from any where in the world.

SOFTWARE ENGINEERING PARADIGM APPLIED DESIGN SPECIFICATION Design of software involves conceiving planning out and specifying the externally observable characteristics of the software product. The goals of design process it to provide a blue print for implementation.4. These are explained in the following section. 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 independent sub-modules. which are small enough to group mentally and to code in a straightforward manner. which focuses on the flow of control. DATA DESIGN The primary activity during data design is to select logical representations of data objects identified during requirement analysis and software analysis. We have data design. Top Down Design Bottom Up Design Top Down Design is basically a decomposition process. DESIGN METHODOLOGY The two basic modern design strategies employed in software design are 1. architectural design and user interface design in the design process. A data dictionary should be established and used to define both data and program design. 2. and maintenance activities. The process is Repeated one to obtain modules. A data dictionary explicitly on the elements of the data structure. testing. One important feature is that at each level the details . At later stages it concern itself with the code production.

general techniques for the design of database are limited. It vaguely represents a synthesis process explained in previous section. This is called back to front design. It allows making small design changes when the design is half way through. Only the necessary data and control that must be called back and forth over the interface are defined. There is danger that the specifications will be incompatible and this will not be discovered until late in the design process. Similarly one can start with the required outputs and work backwards evolving so called front-back design. We have applied both the top down and bottom up approach in our design approach.of the design at the lower level are hidden. Each particular DBMS has somewhat unique characteristics. By contrast the bottom-up strategy first focuses on the crucial part so that feasibility of the design is tested at early stage. particularly the work of . 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. DATABASE DESIGN Databases are normally implemented by using a package called a Data Base Management System (DBMS). One storage point of the top-down method is that it postpones details of the decision until the last stage of the decision. 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 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. and so such. In a complex problem. 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.

the reduction of third normal form involves examining each record. by removing repeating items showing them as separate records but including in them the key fields of the original record. This is done until each record contains data items. which are entirely dependent on the key of their record. The next stage of reduction to the second normal form is to check that the record. NORMALIZATION The first stage is normalization is to reduce the data to its first normal form. The characteristics (called attributes) of each object are identified and relationships between these objects are defined. Each stage has a procedure to follow. If a data item is not dependent on the key of the 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. Unnormalized data are converted into normalized data by three stages.F. The final stage of the analysis. all the items in each record are entirely dependent on the key of the record. . which one is in second normal form to see whether any items are mutually dependent. but on the other data item. 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.E. then it is removed with its key to form another record. this method of analyzing data is called “Normalization”. which one is first normal form.Codd.

PROCESS MODELING: The data objects defined in the data-modeling phase are transformed to achieve the information flow necessary to implement a business function. Processing description are created for addition, modifying, deleting, or retrieving a data object. THE LINEAR SEQUENTIAL MODEL: 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 through analysis, design, coding, testing, and maintenance. The linear sequential model is the oldest and the most widely used paradigm for software engineering. Modeled after the conventional engineering cycle, the linear

sequential model encompasses the following activities: 1) SYSTEM/INFORMATION ENGINEERING AND MODELLING:  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 interface with other elements such as hardware, people, and databases.  System engineering and analysis encompasses requirements gathering at the system 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 business level and at the business area level. 2) SOFTWARE REQUIREMENTS ANALYSIS:  The requirements gathering process is intensified and focused specifically on 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 of a program: data structure, software architecture, interface representations, and procedural detail. The design process translates requirements into a representation of the software that can be assessed for quality before code generation begins. Like requirements the design is documented and becomes part of the software 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 can be accomplished mechanistically. 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:  Software will undoubtedly undergo change after it is delivered to the customer. Change will occur because errors have been encountered, because the software must be adapted to accommodate changes in its external environment (e.g., a change required because of a new operating system or peripheral devices), or because the customer requires functional or performance enhancement. Software maintenance reapplies each of the preceding phases to an existing program rather than a new one


Net Banking System is a network-based application. When we talk about

hardware and software, we have to mention requirements on both the Client and Server part. • • • • • • • • • • Internet connection with 33.6 KBPS Modem. Pentium 2.77 GHz. 40 GB HDD, 512 MB RAM (Server). Any P.C with Windows compatibility, 64 MB RAM (Client). JDK 1.4 Enterprise Edition (J2EE) Weblogic version 7.0. Enterprise Java Beans JDBC/ODBC drivers installed. Functional Java enabled browser. Data Base (Oracle). Operating System (Windows).

has opened the door to an exiting a new form of program. Java addresses these concerns and doing so. which is a dynamic. Prior to Java cyberspace was effectively closed to half the entities that now live there. The reason is simple: Java expands the universe of objects that can move about freely in cyberspace. The cross platform nature of Java is extremely useful for organizations that have a heterogeneous collection of servers running various flavors of the Unix of Windows operating systems. object-oriented. self-executing program. Now. . In a network. As desirable as dynamic. yet the server would initiate it. It was first hyped as a language for developing elaborate client-side web content in the form of applets. they also present serious problems in the areas of security and portability. Such a program would be an active agent ton the client computer. memory-protected design allows developers to cut development cycles and increase reliability. 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 rise of server-side Java applications is one of the latest and most exciting trends in Java programming. active programs like an object that can be transmitted to your computer. Java’s built-in support for networking and enterprise API provides access to legacy data. easing the transition from older client/server systems. there are two broad categories of objects transmitted between the Server and your Personal Computer: passive information and dynamic. Java’s modern.INTERNET TERMINOLOGY Java and Internet: The Internet helped catapult Java to the forefront of programming and Java in turn has had a profound effect on the Internet. In addition. networked programs are.

that instructions for the setup and configuration of the files may differ between files. JAVA SERVER PAGE (JSP) Java Server Pages is a simple. Java Server Pages offers proven portability. Note. flexibility and ease. however. and a mature re-usable component model. . this support involves recognition. a mail server. open standards. Dubbed the JSP engine.Java Servlets are a key component of server-side java development. The JSP engine for a particular server might be built-in or might be provided through a 3rd –party add-on. translation and management of the Java Server Pages lifecycle and its interaction with associated components. A Servlets is a 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. 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. Based on the Java programming language. no change should be necessary as you move your files from server to server. or any custom server with a hitherto unknown degree of portability. an application server. PORTABILITY Java Server Pages files can be run on any web server or web-enabled application server that provides support for them. yet powerful technology for creating and maintaining dynamic-content web pages.

The components current supported include Java Beans and Serves.jar. outputs real content in straight HTML for responding to the customer.-or it may not. PROCESSING A Java Server Pages file is essentially an HTML document with JSP scripting or tags. the Java Server Pages syntax is parsed and processed into a servlet on the server side.COMPOSITION It was mentioned earlier that the Java Server Pages architecture could include reusable Java components. or . Before the page is served. Because it is standard HTML. class. The Java Server Pages file has a . The servlet that is generated.jsp extension to identify it to the server as a Java Server Pages file.ser files. The use of components is not required. the dynamically generated response looks no different to the customer browser than a static response. Request Bea n Browser Response JSP . The architecture also allows for the embedding of a scripting language directly into the Java Server Pages file. This means that scripting on the server side can take advantage of the full set of capabilities that the Java programming language offers. As the default scripting language. It may have associated components in the form of. Java Server Pages use the Java Programming language. . ACCESS MODELS A Java Server Pages file may be accessed in at least two different ways: A client request comes directly into a Java Server Page.

The Java Server Pages architecture separation of content from presentation. There are two APIs to support this model of request processing using Java Server Pages. The other API lets the invoking servlet specify which Java Server Page to use. JDBC Servlet Request Bean Result Bean Database Browser Response JSP The servlet generates the dynamic content. the page could also contain any valid Java code. A request comes through a servlet. The servlet then invokes a Java Server Page that will present the content along with the Bean containing the generated from the servlet.-it does not mandate it. One API facilitates passing context between the invoking servlet and the Java Server Page.In this scenario. . The result of the Bean’s computations. To handle the response to the client. called result sets is stored within the Bean as properties. In both of the above cases. the servlet creates a Bean and stores the dynamic content (sometimes called the result set) in the Bean. suppose the page accessed reusable Java Bean components that perform particular well-defined computations like accessing a database. The page uses such Beans to generate dynamic content and present it back to the client.

What Is JDBCTM? JDBCTM is a JavaTM API for executing SQL statements. and so on. which then send SQL statements to the database. with the JDBC API. it is easy to send SQL statements to virtually any relational database. the application then automatically invokes the necessary commands. one also doesn't have to worry about writing different applications to run on different platforms. In this project we have implemented three-tier model. Using JDBC. with an application written in the Java programming language. the application presents prompts and blanks for filling information needed to carry out the selected task. commands are sent to a “middle tier” of services. JDBC is a trademarked name and is not an acronym. For example. which then sends them to the user. (As a point of interest. JDBC is important to allow database access from a Java middle tier. JDBC provides a standard API for tool/database developers and makes it possible to write database applications using a pure Java API. The database process the SQL statements and sends the results back to the middle tier. it isn't necessary to write one program to access a Sybase database. In other words. With the requested input typed in.) It consists of a set of classes and interfaces written in the Java programming language. our application might present a menu of database tasks from which to choose. and the program will be able to send SQL statements to the appropriate database. One can write a single program using the JDBC API. another program to access an Informix database. nevertheless. JDBC is often thought of as standing for "Java Database Connectivity". The combination of Java and JDBC lets a programmer write it once and run it anywhere. And.JDBC requires that the SQL statements be passed as Strings to Java methods. another program to access an Oracle database. . After a task is selected.

A single application can have one or more connections with a single database. Or an enterprise can use JDBC to connect all its employees (even if they are using a conglomeration of Windows. A programmer can write an application or an update once. 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. JDBC is the mechanism for doing this. easy to understand. easy to use. is an excellent language basis for database applications.Java being robust. Java and JDBC offer a better way of getting out information updates to external customers. put it on the server. . secure. or it can have connections with many different databases. Development time for new applications is short. What is needed is a way for Java applications to talk to a variety of different databases. and everybody has access to the latest version. Macintosh. the need for easy database access from Java is continuing to grow. And for businesses selling information services. and UNIX machines) to one or more internal databases via an intranet. Installation and version control are greatly simplified. and automatically downloadable on a network. A connection session includes the SQL statements that are executed and the results that are returned over the connection. With more and more programmers using the Java programming language. Businesses can continue to use their installed databases and access information easily even if it is stored on different database management systems. JDBC extends what can be done in Java. MIS managers like the combination of Java and JDBC because it makes disseminating information easy and economical. CONNECTION A connection object represents a connection with a database.

it is used to pass SQL statements to its underlying database. It requires.getConnection. <Sub protocol>-usually the driver or the database connectivity mechanism. 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. allowing the use of database-specific statements or even non-SQL statements. depending on the sub protocol. however. A prominent example of a sub protocol name is “oracle”. SENDING STATEMENT: Once a connection is established. It keeps track of the drivers that are available and . This method takes a string containing a URL. <Sub name>.a way to identify the database. which has been reserved for URLs that specify “thin”-style data source names. that the user be responsible for making sure that the underlying database can process the SQL statements being sent and suffer the consequences if it cannot. JDBC does not put any restrictions on the kinds of SQL statements that can be sent. The point of a sub name is to give enough information to locate the database. this provides a great deal of flexibility. and it can have a sub name with any internal syntax the driver writer chooses. working between the user and the drivers. DRIVER MANAGER: The Driver Manager class is the management layer of JDBC. The sub names can vary. The Driver Manager class.OPENING A CONNECTION The standard way to establish a connection with a database is to call the method DriverManager. which may be supported by one or more drivers. referred to a the JDBC management layer.

built and populated with data for a specific purpose. These can the conceptualized as follows. Hence. the driver manager class attends to things like driver login time limits and the printing of log and tracing messages. in the conceptualization as a Data Management System. the block of human data being managed is called a Database. Oracle is DBMS) allow users to create containers for data stories and management. All Databases Management Systems (that is. implies.getConnection. It addition. in very simple terms. As its name . in short DBM systems. The only method in this class that a general programmer needs to use directly is DriverManager.handles establishing a connection between a database and the appropriate driver. ORACLE 8i Introduction to Oracle: Any programing environment used to create containers. which can hold free from human data. to manage human data. Basic Database Concepts: A database is a corporate collection of data with some inherent meaning. The minimum information that has to be given to Oracle for a suitable container to be constructed. these programming environments can the conceptualized as Database Management Systems. is The cell name The cell length Another name that programming environments use for a ‘Cell’ is ‘Field’. designed. this method establishes a connection to a database. These containers are called ‘cells’. Traditionally. This data is only a part of the entire data available in the world around us. A database stores data that is useful to us.

Characteristics of a Database Management System: It represents a complex relationship between data. Keeps a tight control of debtor redundancy. Have different interfaces via which users can manipulate data. intelligent backup and recovery procedures for data. their attributes and the relationship between them that are of interest to us are still owed in the database that is designed. Hence the objects. Enforces user-defined rules to ensure integrity of table data. Ensures that data can be shared across applications. Identify a relationship between the objects. . Has a centralized data dictionary for the storage of information pertaining to data and its manipulation. Enforces data access authorization has automatic. built and populated with data for a specific purpose. Identify what specific objects in that part of the world’s data are of interest to us.To be able to successfully design and maintain databases we have to do the following: Identify which part of the world’s data is of interest to us. Relational Database Management: A relational database management system uses only its relational capabilities to manage the information stored in its databases.

Field Name ACCOUNT_NO ACC_CAT OPERATION_MODE OPEN_DATE BALANCE_AMT INT_NAME INT_ACC_NO BRANCH KNOW_APPLICANTS * Possible values include: S – Single J – Joint Data Type/Size Char(8) Char(1) Char(1) Date Number(10.2) Varchar(25) Char(8) Varchar(20) Number(2)) Description Account Number (Primary Key) Account Category* Operation Mode# Opening Date Balance Amount Introducer’s Name Introducer’s Account Number Introducer’s Branch Introducer knows applicants since number of months C – Custodial # Possible values include: S – Self F – Former/Survivor E – Either/Survivor C – 4) CUSTOMERS Table contains details of each Customer.i.2) Number(2) Description Account Type Code (Primary Key)* Account Type Description Minimum Amount to Deposit Rate of Interest Minimum Period in Months CA – Current Account TD – Term Deposit *Possible values are: SB – Saving Banks Account CC – Credit Card Account RD – Recurring Deposit 2) STATES Table contains details of the Indian States. Field Name ACC_TYPE_CD ACC_TYPE_DESC MIN_AMT INTEREST_RATE MIN_PERIOD Data Type/Size Char(2) Varchar(20) Number(5) Number(4. . DATABASE DESIGN 1) ACCOUNT_TYPES Table contains details of different types of Accounts.6. System Design 6. Field Name STATE_CD STATE_NAME Data Type/Size Char(2) Varchar(30) Description State Code (Primary Key) State Name 3) ACCOUNTS Table contains details of each Account.

2) Number(2) Number(2) Description Account Number Deposit Amount Tenure Years Tenure Months .Field Name Cust_code APPLICANT_NO ACCOUNT_NO ACCOUNT_NO2 CUST_FNAME CUST_MNAME CUST_LNAME HOUSE_NO STREET1 STREET2 AREA CITY PIN STATE_CD RES_PHONE CELL_PHONE EMAIL NO_YEARS_ADDRESS PROFESSION ORGANIZATION WORKING_SINCE DESIGNATION OFF_DOOR_NO OFF_STREET OFF_AREA OFF_CITY OFF_PIN OFF_STATE_CD OFF_PHONE PAN_GIRN GENDER BIRTH_DATE MAR_STATUS REL_FIRST_APP EDUCATION MONTHLY_INCOME GUARDIAN_NAME Data Type/Size Char(7) Number(1) Char(8) Char(8) Varchar(25) Varchar(25) Varchar(25) Varchar(10) Varchar(20) Varchar(20) Varchar(20) Varchar(20) Char(6) Char(2) Char(13) Char(10) Varchar(30) Number(2) Varchar(20) Varchar(20) Date Varchar(20) Varchar(10) Varchar(20) Varchar(20) Varchar(20) Char(6) Char(2) Char(13) Char(10) Char(1) Date Char(1) Varchar(10) Varchar(20) Number(6) Varchar(25) Description Customer Code (Primary Key) Applicant Number (1 or 2 or 3) Account Number Second Account Number (Optional) Customer’s First Name Customer’s Middle Name Customer’s Last Name House Number Street Name Street Name Area Name City Name PIN Code State Code Residence Phone Cell Phone E-Mail Address Number of years residing in the address Profession Name Organization Name Date since working Designation Name Office Door Number Office Street Name Office Area Name Office City Name Office PIN Code Office State Code Office Phone Number PAN/GIRN Number Gender (Male/Female) Date of Birth Marital Status Relationship with the First Application Educational Qualification Monthly Income Guardian Name 5) TERM_DEPOSITS Table contains details of Term Deposit Accounts Field Name ACCOUNT_NO DEPOSIT_AMT TENURE_YEARS TENURE_MONTHS Data Type/Size Char(8) Number(10.

TENURE_DAYS PAYMENT_PERIOD RENEWAL_OPTION ACCOUNT_NO Number(2) Char(1) Char(1) Char(8) Tenure Days Payment Period* Renewal Option# Account Number O – On Maturity B – Principal + Interest * Possible values include: M – Monthly Q – Quarterly # Possible values include: P – Principal only D – Repay Deposit 6) TERM_DEPOSIT_ALERTS Table contains details of Alerts for Term Deposits.2) Date Char(1) Description Account Number Transaction Type* Transaction Description Transaction Amount Transaction Date Transaction Mode# * Possible values include: C – Credit D – Debit # Possible values include: C – Cash Q – Cheque D – Demand Draft 8) NOMINEE Table contains details of Nominees. Field Name ACCOUNT_NO TRANS_TYPE TRANS_DESC AMOUNT TRANS_DATE TRANS_MODE Data Type/Size Char(8) Char(1) Varchar2(30) Number(10. Field Name ACCOUNT_NO ALERT_OPTION Data Type/Size Char(8) Char(1) Description Account Number Alert Option* * Possible values include: T – Two days O – One week (before the date of maturity) 7) TRANSACTIONS Table contains details of Credit and Debit Transactions. Field Name ACCOUNT_NO NOM_NAME NOM_ADDR NOM_AGE RELATIONSHIP Data Type/Size Char(8) Varchar(25) Varchar(40) Number(3) Varchar(10)) I – Internet S – Service Charge Description Account Number Nominee Name Nominee Address Nominee Age Relationship with Account Holder .

Field Name ACCOUNT_NO INSTAL_AMT TENURE_YEARS TENURE_MONTHS TENURE_DAYS Data Type/Size Char(8) Number(10.9) CREDIT_CARDS Table contains details of Credit Card Accounts. Field Name CREDIT_CARD_NO DESCRIPTION CREDIT_AMT CREDIT_DATE PAYTO Data Type/Size Char(10) Varchar(50) Number(10. Field Name LOAN_TYPE LOAN_DESC INTEREST_RATE Data Type/Size Char(3) Varchar(20) Number(4. Field Name CREDIT_CARD_NO ACCOUNT_NO ISSUE_DATE EXPIRY_DATE MAX_AMT STATUS Data Type/Size Char(10) Char(8) Date Date Number(6) Char(1) Description Credit Card Number (Primary Key) Account Number Date of Issue Date of Expiry Maximum Credit Amount Status* * Possible values include: V – Valid L – Lost 10) CARD_TRANSACTIONS Table contains details of Card Transaction. Field Name CREDIT_CARD_NO ALERT_OPTION Data Type/Size Char(10) Char(1) Description Credit Card Number Alert Option* * Possible values include: T – Two days O – One week (before the date of maturity) 12) RECURRING_DEPOSITS Table contains details of Recurring Deposit Accounts.2) Description Loan Type Code (Primary Key) Loan Type Description Rate of Interest .2) Number(2) Number(2) Number(2) Description Account Number Installment Amount Tenure Years Tenure Months Tenure Days 13) LOAN_TYPES Table contains details of different Types of Loans.2) Date Varchar(30) Description 11) CREDIT_CARD_ALERTS Table contains details of Alerts for Credit Cards.

2) Date Char(8) Varchar2(20) Varchar2(20) Char(1) Number(2) Description Funds Transfer Code Origin Account Number Transfer Amount Transfer Date Destination Account Number Destination Bank Name Destination Bank Branch Frequency of Transfer Number of Installments 17) TAX_PAYMENTS Table contains the details of Tax Payments. Field Name LOAN_CODE LOAN_TYPE ACCOUNT_NO APPLIED_DATE LOAN_PERIOD LOAN_AMT EMI DOC_DETAILS STATUS NO_OF_INSTAL LAST_PAID Data Type/Size Char(9) Char(3) Char(8) Date Number(3) Number(6) Number(6) Long Char(1) Number(3) Date Description Loan Code (Primary Key) Loan Type Code Account Number Date of applying for Loan Loan Period in Months Loan Amount Equal Monthly Installments Document Details Status Total Number of Installments Date of Last Payment 15) CHEQUES Table contains details of Cheques submitted by the Account Holders.2) Cheque Amount STATUS Char(2) Status of Cheque 16) FUNDS_TRANSFERS Table contains details of Funds Transfers. Field Name TAX_PAY_CODE ORIGIN_ACC_NO TAX_PAYER_ID TAX_PAY_DATE TAX_FROM Data Type/Size Char(10) Char(8) Char(10) Date Date Description Tax Payment Code Origin Account Number Tax Payer ID Tax Payment Date Tax From Date . Field Name Data Type/Size Description CHEQUE_NO Varchar(10) Cheque Number PAYER_ACC_NO Char(8) Account Number of Payer PAYER_BANK Varchar(20) Bank of Payer PAYER_BRANCH Varchar(15) Branch of Payer Bank PAYEE_ACC_NO Char(8) Account Number CHEQUE_DATE Date Cheque Date SUBMITTED_DATE Date Submitted Date CHEQUE_AMT Number(10.14) LOANS Table contains details of Loans availed by different Account Holders. Field Name FUNDS_TRANS_CODE ORIGIN_ACC_NO TRANS_AMT TRANS_DATE DEST_ACC_NO DEST_BANK DEST_BRANCH FREQUENCY INSTALMENTS Data Type/Size Char(10) Char(8) Number(10.

Field Name BILL_PAY_CODE ACCOUNT_NO BILL_NO BILL_DATE BILL_FROM BILL_TO PAYEE BILL_AMOUNT BILL_DESC Data Type/Size Char(10) Char(8) Char(10) Date Date Date Varchar(30) Number(10.2) Varchar(30) Description Bill Payment Code Account Number Bill Number Bill Date Bill From Date Bill To Date Payee Name Bill Amount Bill Description 19) CHEQUE_REORDER Table contains the details of the Cheque Reorders. Field Name ACCOUNT_NO DD_OR_CHEQ PAYEE DRAWN_ON DD_CHEQ_NO AMOUNT DELIVERY PAYEE_DOOR_NO PAYEE_STREET PAYEE_AREA PAYEE_CITY PAYEE_PIN STATUS * Possible values include: C – Customer’s doorstep Data Type/Size Char(8) Char(1) Varchar(30) Date Varchar(10) Number(10.TAX_TO INCOME TAX_AMOUNT TAX_AUTHORITY Date Number(10.2) Varchar(30) Tax To Date Income during above period Tax Amount Tax Authority 18) BILL_PAYMENTS Table contains the details of Bill Payments.2) Number(8. Field Name CHEQ_RO_CODE ACCOUNT_NO REQUEST_DATE Data Type/Size Char(9) Char(8) Date Description Cheque Reorder Code Account Number Request Date 20) DRAFT_CHEQUE Table contains the details of Drafts and Cheques Issued.2) Char(1) Varchar(10) Varchar(20) Varchar(20) Varchar(20) Char(6) Char(1) Description Account Number DD or Cheque Payee Name Drawn On Date DD or Cheque Number Amount Delivery Option* Payee Door Number Payee Street Payee Area Payee City Payee PIN Code Status P – Payee’s doorstep .

ii.6. DATA FLOW DIAGRAMS ZERO-LEVEL Net Banking System DFD-I Account-Types Account Transaction & Services Reports States Get New Account Report Details New Account Details New A/C Store Accounts Nominee Require-Deposits Term-Deposits Credit-Cards Customers DFD-II Accounts Get Funds Transfer Details Funds Transfer Funds Transferred Store Funds-Transfers .

DFD-III Accounts Get Tax Details Tax Payment Tax Paid Store Tax-Payments DFD-IV Accounts Get Bill Details Bill Payment Bill Paid Store Bill.Payments .

DFD-V Accounts Get Reorder Details Check Reorder Check Reordered Store Cheque-Reorders DFD-VI Accounts Credit-cards Get New Card Details New Card Request New Card Created Store Credit-Cards .

DFD-VII Accounts Get Draft/Cheque Details Draft/ Cheque Draft/ Cheque Created Store Draft-Cheque DFD-VIII Draft-Cheque Get Stop Payment Store Cheque Details Cheque Payment Stopped Draft-Cheque .

DFD-IX Accounts Customers Nominee Get New Account Details Open Another Account New Account Created Store Accounts Customers DFD-X Nominee Accounts Get Account Details Close Account Account Closed Store Transaction Accounts Customers Nominee .

DFD-XI Accounts Get Modify A/C Info Nominee Account Details Account Details Notified Store Accounts Nominee DFD-XII Customers Get Customer Details Modify Customer Details Customer Details Modified Store Customers .

we cannot implement. configure.2 UML DIAGRAMS The Unified Modeling language is a standard language for specifying. It captures the decisions and understandings about systems that must be constructed. It is used to understand. It is a graphical language. Unless we think. . how the components of the system communicate and interact with each other. design. The UML focuses on the conceptual and physical representation of the system. maintain and control information about the systems. which provides a vocabulary and set of semantics and rules.DFD-XIV Accounts Loan-Types Get New Loan Loan Created Loan Details Store Loans 3. visualizing. Visualizing: Through UML we view an existing system and ultimately we visualize how the system is going to be after implementation. constructing and documenting the software system and its components. UML helps to visualize.

or visualize a system from different angles and perspectives. releasers etc. Diagrams in Uml: Diagrams are graphical presentation of set of elements. Documenting: The Deliverables of a project apart from coding are some Artifacts. project plans. State Chart Diagram 5. . 4. 2. desire.Forward Engineering and Reverse Engineering is possible through UML. 3. Static: 1. architecture. Use-Case Diagram. measuring and communicating about a system during its development viz. 4. Collaboration Diagram. The UML has 9 diagrams. These diagrams can be classified into the following groups. which are critical in controlling. 2. 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. Activity Diagram. requirements. prototypes. Object Diagrams. Diagrams project a system. Sequence Diagram 3. Dynamic: 1. source code. unambiguous and complete UML addresses the specification of all the important analysis design. tests. implementation decisions that must be made in developing and deploying a software system.Specifying: Specifying means building models that are precise. Component Diagrams. Class Diagrams. Deployment Diagrams.

and more importantly. use case diagrams are a great storyboard tool. it captures the business processes carried out in the system. . A use case diagram captures the functional aspects of a system. The primary elements are termed as "actors" and the processes are called "use cases. The Use case diagram is used to identify the primary elements and processes that form the system. More specifically." The Use case diagram shows which actors interact with each use case. Due to the simplicity of use case diagrams.Use case Diagram: Shows a set of use cases and actors and their relationships. because they are shorn of all technical jargon. These diagrams illustrate the static use case view of a system and are important in organizing and modeling the behaviors of a system.

N ew A / c C reat ion M aint enanc e S erv ic es 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 C ard T rans ac t ions B ill P ay m ent s A c c ount S um m ary O t her P ay m ent s C us t om er B ank F unds T rans f er T ax P ay m ent R eques t s T rans ac t ions C redit C ard P ay m ent .

password forward id CLASS DIAGRAM : authenticate() get pwd press change password id. 5: Vali validate() dation store existing customer sign up id.SEQUENCE DIAGRAM : : Customer : Menu : Bank : InputScreen : PersonalInfo : Authenticator : Options New Account Validator Screen Input T ransactions Creation 3: Tran Type : ChangePwd Account Summary : PersoalInfo 1: Choose A/c Type 2: A/c Details new Customer register personal details 4: Get T ran Det.oldpwd forward id get pwd validate pwd new pwd .

new pwd ) Validation ( valid ) ( invalid ) Changed .pwd ) ( id.G U I C om ponent D at a S t ore M enu I nput S c reen Loan_I s s ue Cust om ers Loans C heque_R eorder C redit _C ards O pt ions R eport Loan_T y pes T rans ac t ions < < ins t ant iat es > > < < us es > > F unds _T rans f ersT ax_P ay m ent s A c count s U s er_A c c _T y pes A c c ount _T y pes B ill_P ay m ent s N om inee D raf t _C heque D at a M anipulat or N ew A c c ount M aint enance B ill P ay m ent s U s er A lert s R eport s T eller S erv ic es T rans ac t ion S erv icesR eques t s ACTIVITY DIAGRAM : ( id.pwd ) ( ok ) unauthenticated validation authenticated Ready ( oldpwd.

accno).jsp: <%@ page import="java.createStatement().equals("TD")) top="TD"+accno.getConnection("jdbc:odbc:netbank" .sql.java. "scott" .execute().util. String top="". if(type. SAMPLE CODE AccountDetails. } catch(Exception e) {out. Statement st=con.JdbcOdbcDriver"). Connection con = DriverManager. rs=st.vbs"></SCRIPT> <SCRIPT Language="JavaScript">onload=function() { .js"></SCRIPT> <SCRIPT Language="VBScript" Purpose="Dom" Runat="Browser" SRC="warn.prepareStatement("insert into auto(accno) values(?)").getAttribute("acctype").getInt(1).*" session="true"%> <% int accno=0. accno+=1. ResultSet rs=null. String type=(String)session.equals("CC")) top="CC"+accno.} %> <html> <head> <title> Account Details </title> </head> <body id=body> <SCRIPT Language="JavaScript" Purpose="Dom" Runat="Browser" SRC="validate. " “tiger").println("<h1>"+e+"</h1>").equals("SB")) top="SB"+accno.jdbc.7.executeQuery("select max(accno) from auto"). else if(type. } else accno=1000. else if(type. try { Class.forName("sun. if(rs. else if(type. PreparedStatement pst=null. pst.equals("CA")) top="CA"+accno.setInt(1. pst. else top="RD"+accno.*.next()) { accno=rs. pst=con.odbc.

filter:alpha(style= 1.style.cssText="margin:0px.style.cssText="padding:10px.startY=0).color:aliceblue.elementEffect().fontfamily:tahoma.getElementById('body'). document.startX=100.background:green.getElementById('grad').height:120px".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> . document.} </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.font-size:30px.background:floralw hite".

// int accno=-1.setInt(9.setString(2. if(n>0) .?.executeUpdate().sql.trim().?.setString(8.?)"). PreparedStatement ps=con. float balamt=Float.getParameter("acctcategory"). String bran=request. } Connection con = DriverManager."SB").?. ps.opendate).?.jdbc.getParameter("branch"). ps.setString(10.getParameter("balanceamt")).balamt). ps.*"%> <%@ page import="java.trim().setFloat(5.acccat). ps.setString(4.getParameter("opendate"). ps.opermode). ps. "tiger").bran).*"%> <%@ page import="java.trim().odbc.jsp: <%@ page import="java.Accounts.?.util.out.setString(1.getParameter("introacno").trim(). } catch (Exception ex) { System.*" session="true"%> <html> <head><title>Account Information</title></head> <body background="pink"> <hr color=#bb055E> <% String accno = request.trim(). ps.parseFloat(request.setString(3.forName("sun.?.getParameter("opermode"). String introacno=request.introacno). "scott" . ps.prepareStatement("insert into accounts values(?. int knowapp=Integer.getParameter("introdname").println("Error while loading the Driver : " + ex).?.JdbcOdbcDriver"). ps.getParameter("knownApplicants")).io.getParameter("acctnum").accno). String opermode = request.trim().getConnection("jdbc:odbc:netbank" .?. String opendate=request.parseInt(request. ps. String acccat = request. try { try { Class.trim().introname).setString(6. int n=ps.setString(7.knowapp). String introname=request.

parseFloat(request.?)").sql. PreparedStatement ps=con.getParameter("acctcode").sendRedirect("customers_reg. try { Class. "tiger").trim()).setInt(3.prepareStatement("insert into account_types values(?. response.jsp: <%@ page import="java.util.opermode).close().accno). ps.trim().acccat).println(" <a href='javascript:self.close()'>Back to Home Page</a>").*"%> <%@ page import="java.println("Error occured Due to the insertion os date"+e).} //response. int intronum=Integer.io. ps.trim().executeUpdate().jsp"). ps. if(n>0) { out.jdbc. }else out.intronum). Connection con = DriverManager.getParameter("minpermonths").setString(1. } %> AccoutsType. ps.setString(2.sendRedirect("customers_reg.close().odbc.{ session.setInt(5.getParameter("acctypedesc"). int n=ps.getParameter("interestrate").parseInt(request.*"%> <%@ page import="java.parseInt(request. int opermode =Integer.?.?. con.setFloat(4. String acccat = request. float itrname=Float. } .trim()).*" %> <html> <head><title>Account Information</title></head> <body background="pink"> <hr color=#bb055E> <% String acc = request.acc).forName("sun.JdbcOdbcDriver").?.jsp"). ps.itrname). "scott" .getConnection("jdbc:odbc:netbank" .trim()).println("<html><body bgcolor=pink><h2>Not Successful").setAttribute("account". } catch (Exception e) { out. ps.getParameter("miniamtdep").

String email=request. String ftname=request.getParameter("cellphn"). String street2=request.trim().trim().*"%> <%@ page import="java.trim(). String lstname=request.else out. String offphone=request.getParameter("accnum").getParameter("designation").getParameter("orgni").jsp: <%@ page import="java.trim().trim(). String offstatecd=request.getParameter("offdoorno").getParameter("profession").getParameter("offstreet").parseInt(request.getParameter("customercode").getParameter("pin").trim()). String accnum = request. String pangrin=request. String offstreet=request. String offarea=request.trim().trim().trim(). String designation=request.getParameter("street1").getParameter("houseno"). String city=request.getParameter("ftname").getParameter("applnum"). String street1=request.util.trim().getParameter("pangrin").} %> customers. String offcity=request.*" %> <%@ page session="true" %> <html> <head><title>Account Information</title></head> <body background="pink"> <hr color=#bb055E> <% String cuscode = request. String pin=request.trim()).getParameter("area"). } catch(Exception e) { out.getParameter("worksin").trim().println("Error occured Due to the insertion date"+e).trim(). String secondappno=request.getParameter("noyersadds").println("<h1>Invalid Transaction</h1><center><BR><a href=###BOT_TEXT###quot;javascript:history.trim().trim().getParameter("resphn").getParameter("offpin").trim().getParameter("midname").trim().getParameter("street2").back()###BOT_TEXT###quot;>Back to Accounts </a></center>").getParameter("lstname"). String area=request.trim().trim(). int appnum =Integer.getParameter("offarea").getParameter("offstatecd").trim(). String profession=request.trim().parseInt(request. String worksin=request.getParameter("offphone").trim().trim().trim(). String offpin=request. String statecd=request. String offdoorno=request.trim(). String houseno=request.getParameter("city").io. int noyersadds=Integer.trim().sql.getParameter("secondappno").getParameter("offcity").getParameter("statecd"). String midname=request.trim(). String resphn=request.*"%> <%@ page import="java. String cellphn=request.trim(). .trim().trim(). String orgni=request.getParameter("email").

?.orgni).setString(21.cuscode).?.?. ps.?.?. "scott" . ps.setString(10.lstname).setString(25.pin). try { try { Class.midname).designation).setString(30.appnum).street1).trim()). ps. . ps.getConnection("jdbc:odbc:netbank" . ps. ps.city).setString(9.offarea).getParameter("eduquali").setString(6.cellphn).getParameter("gender").?.?.?.accnum).?.?.getParameter("relshipapp"). } catch (Exception ex) { System.?.?.offstatecd).?.trim().?.getParameter("marstatus").setString(5. ps.?.trim(). } Connection con = DriverManager.setString(8. ps. ps.?.offdoorno).setString(24. ps.setString(28.?.resphn). ps.offcity).?.?.houseno).?. float monthincome=Float.getParameter("monthincome").getParameter("garname").?.setInt(18.setInt(2.ftname).offphone).?. ps.?.offstreet).getParameter("datebirth"). String datebirth=request. ps.?.odbc.setString(15.setString(29.setString(11.profession).setString(25.setString(23.?. ps.setString(20.trim(). ps. //ps.offcity).area).?.?.?.?.jdbc.setString(16. ps. int accno=-1. ps. ps.?.offpin).email).JdbcOdbcDriver").?)").forName("sun.parseFloat(request. ps.setString(13. ps. ps.?. ps.setString(12. String marstatus=request. ps. ps.setString(19.?.out.String gender=request.pangrin). ps.setString(4. String garname=request.street2).noyersadds). ps.?.setString(14.setString(17.setString(7. String eduquali=request. ps.?.prepareStatement("insert into customers values(?.setString(26.setString(27. ps. String relshipapp=request. PreparedStatement ps=con.println("Error while loading the Driver : " + ex).statecd).setString(1.trim(). ps.worksin).secondappno). "tiger").trim().setString(3.setString(22.trim().?. ps.

trim().println("Error occured Due to the insertion os date"+e). String bill_no=request.executeUpdate().close().Date bill_date=new java.setString(34. try{ .setString(33.*"%> <% String bill_pay_code=request.getParameter("billpaycode").Date(request.getParameter("bill_to")). con.println("<h3><a href='home. ps. ps.setString(31. // java.Date bill_from= new java. int n=ps.*. ResultSet rs=null.util.parseFloat(request.sql. } %> billpmt.getParameter("bill_to").garname).getParameter("account_no"). ps. ps.setString(37.Date( new java.getParameter("payee").getParameter("bill_from")).toUpperCase(). String payee=request.jsp: <%@ page import="java.Date( new java.sql.setFloat(36. ps. //out.sql. // java.text.eduquali). Connection con=null.getParameter("bill_date")).Date(request.relshipapp).getTime()).java.sql. }else out. out.htm'>Back to Home Page</a></h3>").setString(32.close().util.Date(request.datebirth).getParameter("bill_amount")).Date bill_to = new java.sql. float bill_amount=Float.getTime()).trim().marstatus).monthincome).getParameter("bill_desc").sql. String bill_to=request..util.getParameter("bill_no").gender).*.Date( new java. PreparedStatement pst=null. String bill_from=request.. String account_no=request.getParameter("bill_date"). Statement st=null.html'>Back to Account</a>").println("<a href='accountdetails.println("<html><body bgcolor=pink><h2>Not successful").setString(35.getParameter("bill_from"). // java. String bill_date=request. if(n>0){ out.println("You are successfully registered your ccount"). } catch (Exception e) { out.util.java.ps. String bill_desc=request.getTime()).sql. ps. ps.

setString(5. out.account_no). ResultSet rs1=st.setString(9.getInt(1). pst.bill_no.?.?. pst. pst. out.bill_amount).bill_from.bill_from).?.close()###BOT_TEXT###quot;>Back to Home Page</a></h4>").?.JdbcOdbcDriver"). out.bill_to.setString(1.bill_desc) values(?. long a=0. pst. bill_amount.?.println("<h4><a href=###BOT_TEXT###quot;javascript:self. pst.?.setString(7.println("Check your account no:").?.bill_date). pst=con.getConnection("jdbc:odbc:netbank".payee.prepareStatement(cmd2).createStatement().payee). } //String comm="insert into bill_payments(bill_pay_code.println(e).forName("sun.println("<h1>Bill Payment Accepted</h1>"). out. pstup.close()###BOT_TEXT###quot;>Back to Home Page</a></h4>").?. String cmd2="UPDATE ACCOUNTS SET BALANCE_AMT='"+a+"' where account_no='"+account_no+"'".} }else{ out. String cmd="INSERT INTO BILL_PAYMENTS VALUES(?.jsp'>Want to pay Another Payment? </a></h4>").println("<h4><a href=###BOT_TEXT###quot;javascript:self. con=DriverManager.bill_desc). String cmd1="Select Balance_amt from Accounts where account_no='"+account_no+"'". pst. if(a-300>bill_amount){ a-=bill_amount.?.?.account_no.?. pst.?.println("<h4><a href='billpayment.bill_no). if(rs1. }catch(Exception e){ out.odbc. out.bill_pay_code). st=con.Class.?.next()){ a=rs1.} %> .?.println("<h4><a href=###BOT_TEXT###quot;javascript:self."tiger").bill_to).setString(2.setString(4. }else{ out. PreparedStatement pstup=con.?)".setString(3.b=0.prepareStatement(cmd).close()###BOT_TEXT###quot;>Back to Home Page</a></h4>"). pst.executeUpdate().println("Your Balance amount is less to pay your bill").jdbc.execute().setFloat(8.?)".bill_date. pst.executeQuery(cmd1).setString(6."scott". pst.

getParameter("repass").println("User Successfully Registered").fontsize:30px.println("<a href='login.html'>Back to Login</a>").color:aliceblue.getConnection("jdbc:odbc:netbank" .filter:alpha(style=1.odbc. PreparedStatement ps=con. } Connection con = DriverManager.*"%> <%@ page import="java.height:120px".jsp: <%@ page import="java.setString(2.pass).vbs"></SCRIPT> <SCRIPT Language="JavaScript">onload=function() { elementEffect(). "tiger").cssText="padding:10px.close().} } %> .forName("sun.?)"). String repass = request. String pass = request.*"%> <%@ page import="java.sql.trim().jdbc. int accno=-1. if(pass.setString(1.close().style. int n=ps.cssText="margin:0px.startY=0).trim(). if(n>0){ out. document.io.js"></SCRIPT> <SCRIPT Language="VBScript" Purpose="Dom" Runat="Browser" SRC="warn.background:floralwhite".executeUpdate().getElementById('body').newuser. ps.background:green.getParameter("account").trim().println("error"+e). } catch (Exception ex) { System. out.*" %> <html> <head><title> Login Authentication</title></head> <body background="background.println("Error while loading the Driver : " + ex). ps.out.font-family:tahoma. con.} ps. "scott" .getElementById('grad').equalsIgnoreCase(repass)) { try { try { Class.util.JdbcOdbcDriver"). } catch (Exception e) {out.jpg"> <SCRIPT Language="JavaScript" Purpose="Dom" Runat="Browser" SRC="validate.getParameter("upass").style.uname).start X=100.} </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. document.prepareStatement("INSERT INTO USERS VALUES(?.

*"%> <%@ page import="java.trim().getParameter("minpermonths").trim().?)"). } catch(Exception e) { out.?.*"%> <%@ page import="java.setString(2. if(n>0) { session.odbc. PreparedStatement ps=con. Connection con = DriverManager.prepareStatement("insert into user_account_types values(?. ps.println("Error occured Due to the insertion date"+e).?.acccat).setAttribute("acctype". ps.io.forName("sun.sql.parseInt(request.setInt(5.back()###BOT_TEXT###quot;>Back to Accounts </a></center>").util.getConnection("jdbc:odbc:netbank" . response.jdbc.getParameter("acctcode").*" session="true" %> <html> <head><title>Account Information</title></head> <body background="pink"> <hr color=#bb055E> <% String acc = request.intronum). "scott" . } else out. ps.jsp").getParameter("acctypedesc").opermode).println("<h1>Invalid Transaction</h1><center><BR><a href=###BOT_TEXT###quot;javascript:history.parseFloat(request. int intronum=Integer. out.useracctype: <%@ page import="java.setFloat(4.getParameter("miniamtdep"). ps.acc). float itrname=Float.JdbcOdbcDriver").acc).setString(1.?.itrname). try { Class.executeUpdate().sendRedirect("accountdetails. int opermode =Integer. String acccat = request. ps.println(acc+"<BR>"+acccat+"<BR>"+opermode+"<BR>"+itrname+"<BR>"+intronu m).} %> .parseInt(request.getParameter("interestrate").setInt(3.trim()).trim()).trim()). int n=ps. "tiger").

ResultSet rs=null.} </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.height:50px". "tiger").carddetails. document.crcardno).println("<h1>"+e+"</h1>").style.cssText="padding:10px. if(rs.sql.*.getInt(1).fontfamily:tahoma.filter:alpha(style= 2.prepareStatement("insert into auto(credit_cardno) values(?)").startY=0).jdbc. Connection con = DriverManager.setInt(1.startX=100. "scott" .font-size:30px.background:green. PreparedStatement pst=null. pst=con.jsp: <%@ page import="java.*"%> <body id=body> <SCRIPT Language="JavaScript" Purpose="Dom" Runat="Browser" SRC="validate.next()) { crcardno=rs. rs=st.js"></SCRIPT> <SCRIPT Language="VBScript" Purpose="Dom" Runat="Browser" SRC="warn.style.getConnection("jdbc:odbc:netbank" .java. top= "cre"+crcardno.execute().getElementById('grad').executeQuery("select max(credit_cardno) from auto"). String top="a". try { Class. pst.vbs"></SCRIPT> <SCRIPT Language="JavaScript">onload=function() { elementEffect().} %> .cssText="margin:0px.JdbcOdbcDriver"). document.util. Statement st=con. } catch(Exception e) {out.odbc. pst.forName("sun.getElementById('body'). } else crcardno=100.background:floralw hite". crcardno+=1.color:aliceblue.createStatement().

getConnection("jdbc:odbc:netbank".next()){ a=rs1. con=DriverManager.getParameter("oriacctnum").*"%> <% String ftranscode=request. PreparedStatement pst=null. Statement st=null.<button type=reset><u>R</u>eset</button></td></tr> </form></table><br></fieldset><script>setColor()</script> </body> </html> transferfunds.trim()). Connection con=null.util. if(rs1. st=con.java. ResultSet rs=null.<table style="border:1px solid gray" align="center" id=register width=500 cellspacing=0 cellpadding=2><form action="CreditCardIssue. .toUpperCase().getParameter("transamt"). String transdate=request.&nbsp.parseInt(request.trim().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>&nbsp. String desacctnum=request."tiger").trim().getParameter("desbank"). try { Class.*."scott".text.getParameter("ftranscode").sql.getParameter("desbranch"). ResultSet rs1=st.trim().*. int transamt = Integer.jsp: <%@ page import="java.trim(). String desbank=request.jdbc. String cmd1="Select Balance_amt from Accounts where account_no='"+oriacctnum+"'".trim().parseInt(request. long a=0.getParameter("desacctnum").getParameter("transdate").b=0.toUpperCase().forName("sun. int instal = Integer. String desbranch=request.odbc. String oriacctnum=request. String freq= request.JdbcOdbcDriver").java.trim().getParameter("freq").getInt(1).executeQuery(cmd1).getParameter("instal").createStatement().trim()).

oriacctnum).jsp'>Want to do Another Transaction</a></h4>").?.transamt). pst.desbank).htm'>Back to Home Page</a></h4>"). if(rs4. pstup.setString(3.?.execute(). pst.setString(4. }else{ out.executeUpdate().setFloat(6.} String cmd="INSERT INTO FUNDS_TRANSFERS VALUES(?.println("<h4><a href='fundstrans.println("<h4><a href='home.println("Check your account no:").jsp'>Want to do Another Transaction</a></h4>"). pstup1.setString(5.?.} } catch(Exception e) { out. String cmd3="UPDATE ACCOUNTS SET BALANCE_AMT='"+b+"' where account_no='"+desacctnum+"'". out.} %> .prepareStatement(cmd3).println("<h1>Funds Transfered</h1>"). b+=transamt.desacctnum). pst.?.setString(7.executeQuery(cmd4). pst.setString(1. PreparedStatement pstup1=con.transdate).prepareStatement(cmd2).ftranscode). out.next()). out.close()###BOT_TEXT###quot;>Back to Home Page</a></h4>").println(rs. String cmd4="Select balance_amt from accounts where account_no='"+desacctnum+"'".println("<h4><a href='fundstrans.?)".executeUpdate().freq).?.//out.println("<br><h1>Error Occured</h1>"+e). PreparedStatement pstup=con. out. String cmd2="UPDATE ACCOUNTS SET BALANCE_AMT='"+a+"' where account_no='"+oriacctnum+"'". }} else{out.prepareStatement(cmd).println("<h4><a href='home.instal). out.next()){ b=rs4.println("Your Transaction amount is exceeding the limit"). pst.setInt(8.?. pst=con. pst.createStatement().htm'>Back to Home Page</a></h4>").desbranch). pst. pst. out. out. Statement sst1=con.jsp'>Want to do Another Transaction</a></h4>").println("<h4><a href='fundstrans.if(a-300>transamt){ a-=transamt.setString(9. pst.setString(2. pst. ResultSet rs4=sst1.getInt(1).?.println("<h4><a href=###BOT_TEXT###quot;javascript:self.

Uniqueness: The code structure must ensure that only one value of the code with a single meaning is correctly applied to a give entity or attribute. the representative code for the date does not need to be in a sortable form if it can be correlated with another code that is sortable. characteristics and relationship of the encoded entities. 7. 5. 1. 4. CODE EFFICIENCY MEASURES OF CODE EFFICIENCY The code is designed with the following characteristics in mind. . thus providing sufficient space for the entry of new items with in each classification. Uniform size and format: Uniform size and format is highly desirable in mechanized data processing system. Such changes must result in a corresponding change in the code or coding structure. Conciseness: The code requires the fewest possible number of positions to include and define each item. Sortability: Reports are most valuable for user efficiency when sorted and presented in a predetermined format or order. 6.8. Versatility: The code allows modifying easily to reflect necessary changes in conditions. Simplicity: The codes are designed in a simple manner to understand and simple to apply. Expandability: The code structure are designed for in a way that it must allow for growth of it’s set of entities or attributes. 2. The addition of prefixes and suffixes to the root code should not be allowed especially as it is incompatible with the uniqueness requirement. 3. Although data must be sorted and collaged.

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. such as mnemonic features unless such a procedures results in inconsistency and inflexibility. Stability: Codes that do not require to be frequently updated also promote use efficiency. . 9.8. Operatability: The code is adequate for present and anticipated data processing both for machine and human use. Code value should reflect the characteristics of the coded entities. Care is taken to minimize the clerical effort and computer time required for continuing the operation. Meaningfulness: Code is meaningful. 10.

Unfortunately. 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.9. This is accomplished by applying transformations on the produced code. a compiler . depend on the target machine. most programs spend ninety per cent of their execution time in ten percent of the code. A machine independent optimization is a set of program transformations that improve the target code without taking into consideration any properties of the target machine. The overall performance of a program can be effectively improved if we can identify the frequently executed parts of a program and then make these parts as efficient as much as possible. it is often the case that a small fraction of a program accounts for most of the running time. Profiling the run-time execution of a program on representative input data accurately identifies the heavily traveled regions of a program. the code produced by straight forward compiling algorithms can often be made more space and time efficient. on the other hand. While the actual percentages may vary. These transformations aiming at optimization of compiled code are known as code optimization and compilers that apply code improving transformations are called optimizing compilers. such as register allocation and utilization of special machine instruction sequences. Machine dependent optimizations. The reality however is that this goal is achieved only in limited. cases and that too with difficulty. OPTIMIZATION OF CODE INTRODUCTION: A good program is not the one that solves the intended problem alone but the one that does it efficiently. According to Pareto principle. The optimization may be machine dependent or machine independent. Nonetheless.

the program's inner loops are good candidates for improvement. this chapter concentrates on the transformation of intermediate code using the organization shown below: .does not have the benefit of sample input data. intermediate level or target level. the loops may be evident from the syntax of the program. source program level. Since the techniques needed to analyze and transform a program do not change significantly with the level. a process called contra/flow analysis identifies loops in the flow graph of a program. in general. In a language that emphasizes control constructs like while and for statements. 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 given set of optimizations on a representative sample of real source programs. so it must make best guess as to where the program hot spots are. In practice. Organization for an optimizing compiler There are often levels at which a program can be improved algorithm level.

Function-preserving Transformations There are a number of ways in which a compiler can improve a program without changing the function it computes. Sources of Optimization Let us see some of the most useful code-improving transformations. such as an offset in an array. If looking only at can perform it the statements in a basic block are called local otherwise. and constant folding are common examples of such function-preserving transformations. The programmer cannot avoid some of these duplicate calculations . dead code elimination. a program will include several calculations of the same value. it is called global.Front end Code Optimizer Code Optimizer Control Flow Analysis Data Flow Analysis Transformations In the code optimizer programs are represented by flow graphs. Frequently. Local transformations are usually performed first. Common sub-expression elimination. in which edges indicate the flow of control and nodes represent basic blocks. copy propagation. Many transformations can be performed at both the local and global levels. Unless otherwise specified a program means a single procedure.

induction-variable elimination. and the values of variables in E have not changed since the previous computation. Removing such command sub-expressions may optimize the code. wherever possible after the copy statement f: =g. Deducing at compile time that the value of an expression is a constant and using the constant instead is known as constant folding. otherwise. Three important techniques for loop optimization are . which moves code outside a loop. statements that compute values that never get used. COPY PROPAGATION The idea behind the copy-propagation transformation is to use g for f. rf we decrease the number of instructions in an inner loop. even if we increase the amount of code outside that loop. LOOP OPTIMIZATIONS Loops are very important place for optimizations where programs tend to spend the bulk of their time. which we apply to eliminate loop indices from the inner loops. Dead-Code A variable is live at a point in a program if its value can be used subsequently. the running time of a program may be improved considerably. such as a multiplication by an addition. it is dead at that point. We can avoid recomputing the expression if we can use the previously computed value. it may appear as the result of previous transformations.because they lie below the level of detail accessible within the source language.code motion. Common sub-expressions An occurrence of an expression E is called a common sub-expression if E was previously computed. and reduction in strength. While the programmer is unlikely to introduce any dead code intentionally. Some of the loop optimization techniques are discussed below: . A related idea is dead or useless code. which replaces an expensive operation by a cheaper one.

For instance. There is a node in the DAG for each of the initial values of the variables appearing in the basic block. By the process of induction variable elimination in a loop. While (i < = ttt) Clearly the code motion technique has reduced the number of computations in this form. Induction Variables And Reduction In Strength Code motion may not be applicable to all the situations. and there is a node n associated with each statement s within the block. For example. a loop-invariant computation) and places the expression before the loop.e. evaluation of aaa is a loop-invariant computation in the following whilestatement: While (i < = aaa) Code motion will transform it into the following equivalent statements: ttt = aaa. Loops are usually processed from inside to outside. It takes an expression and transforms it yielding the same result independent of the number of times a loop is executed (i. consider the following loops: Note that the values of j and t2 remain in lock step. Basic Blocks Optimization Many of the structure-preserving transformations can be implemented by constructing a directed-cyclic-graph (DAG) for a basic block. it may be possible to get rid of all but one when more than one induction variables are present. that of t2 decreases by 5 because 5* j is assigned to t2. The children of n are those nodes corresponding to statements that are the last definitions prior to s of the operands . every time the value of j decreases by 1. The assumption made here is that an entry for the loop exists.Code Motion Code motion is an important modification that decreases the amount of code in a loop. Such identifiers are called induction variables.

We also note those nodes. if any. whose are live on exit from the block. and also attached to n is the list of variables for which it is the definition within the block.used by s. Node n is labeled by the operator applied at s. . these are the output nodes.

a message would be displayed asking to enter the required parameters. it would not be entered. While entering the details of new customer. if even any one of them is not matched with the details stored in the database. When the details of one customer are modified even if one parameter is missed a message will be displayed asking to enter complete details. the customer number which cannot be null value will be automatically generated which is one greater than the highest number existing previously.10. When a user starts the applications. only alphabets and number could be entered thus if the operator by mistake enters other special characters.. a login form will be displayed prompting to enter the username and password. VALIDATION CHECKS In the text boxes like name. which could not be empty. If the users do not fill any of the fields. the user will be warned to re-enter the correct details.. address etc. telephone number only numbers could be entered. . In the text boxes like age.

A successful test is one that uncovers an as yet undiscovered error. designing and coding. In this testing.11. TESTING OBJECTIVES: 1. TEST CASE DESIGN: Any engineering product can be tested in one of two ways: 1. It is a test case design method that uses the control structure of the procedural design to derive test cases. Testing cannot show the absence of defects. These above objectives imply a dramatic change in view port. Basis path testing is a white box 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. 2. SYSTEM TESTING & IMPLEMENTATION SOFTWARE TESTING TECHNIQUES: Software testing is a critical element of software quality assurance and represents the ultimate review of specification. 3. Testing is process of executing a program with the intent of finding an error. White Box Testing: This testing is also called as glass box testing. it can only show that software errors are present. A good test case design is one that has a probability of finding an as yet undiscovered error.

ii. that is the internal operation performs according to specification and all internal components have been adequately exercised. iii. Flow graph notation Cyclomatic Complexity Deriving test cases Graph matrices Control Structure Testing: i. Graph based testing methods Equivalence partitioning Boundary value analysis Comparison testing SOFTWARE TESTING STRATEGIES: A software testing strategy provides a road map for the software developer. ii. Condition testing Data flow testing Loop testing 2. iii.Basis Path Testing: i. It fundamentally focuses on the functional requirements of the software. 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 . iii. The steps involved in black box test case design are: i. Black Box Testing: In this testing by knowing the internal operation of a product. iv. tests can be conducted to ensure that “ all gears mesh”. ii. iv.

Unit test considerations 2. Unit test procedures Integration Testing: Integration testing is a systematic technique for constructing the program structure while conducting tests to uncover errors associated with interfacing. 1. Bottom-Up Integration: Bottom up integration as its name implies. Top-Down Integration: Top down integration is an incremental approach to construction of program structures. The developer of the software and an independent test group conducts testing. 3. 2.specific test case design methods should be defined for software engineering process. Testing and Debugging are different activities but debugging must be accommodated in any testing strategy. There are two types of integration testing: 1. 2. Modules are integrated by moving down wards throw the control hierarchy beginning with the main control module. Unit Testing: Unit testing focuses verification efforts in smallest unit of software design (module). Any software testing strategy should have the following characteristics: 1. begins construction and testing with automatic modules. Testing begins at the module level and works “outward” toward the integration of the entire computer based system. 4. . Different testing techniques are appropriate at different points in time.

3. Regression Testing: In this contest of an integration test strategy, regression testing is the re execution of some subset of test that have already been conducted to ensure that changes have not propagate unintended side effects.

VALIDATION TESTING: At the culmination of integration testing, software is completely assembled as a package; interfacing errors have been uncovered and corrected, and a final series of software 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 can be reasonably expected by the customer. Reasonable expectation is defined in the software requirement specification – a document that describes all user-visible attributes of the software. The specification contains a section titled “Validation Criteria”. Information contained in that section forms the basis for a validation testing approach. VALIDATION TEST CRITERIA: Software validation is achieved through a series of black-box tests that 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 requirements are achieved; documentation is correct and human-engineered; and other requirements are met. 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 accepted, or (2) a deviation from specification is uncovered and a deficiency list is

created. Deviation or error discovered at this stage in a project can rarely be corrected prior to scheduled completion. It is often necessary to negotiate with the customer to establish a method for resolving deficiencies.

CONFIGURATION REVIEW: An important element of the validation process is a configuration review. The 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. Alpha and Beta Testing: 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 unintelligible to a user in the field. 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 that might degrade the system over time. If software is developed as a product to be used by many customers, it is 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 user seems able to find.

A customer conducts the alpha test at the developer’s site. The software is used in 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 test is a “live” application of the software in an environment that cannot be controlled by 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 of the software product to the entire customer base. 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 considered. Regardless of the implementation strategy used, developers strive to ensure that the system’s initial use in trouble-free. 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 and months. Therefore, the application will undoubtedly have to be maintained; modifications and changes will be made to the software, files, or procedures to meet emerging user requirements. Since organization systems and the business environment

including ease of use. Unfortunately system evaluation does not always receive the attention it merits. Development Performance: Evaluation of the development process in accordance with such yardsticks as overall development time and effort. In this sense. Includes assessment of development methods and tools. conformance to budgets and standards. response time. and level of utilization. overall reliability. and other project management criteria. The actual evaluation can occur along any of the following dimensions. it provides a great deal of information that can improve the effectiveness of subsequent application efforts. .undergo continual change. implementation is ongoing process. Operational Evaluation: assessment of the manner in which the system functions. Evaluation of the system is performed to identify its strengths and weakness. the information systems should keep pace. Includes impact on internal and external information flows. suitability of information formats. as well as end-users. Where properly managed however. Organization Impact: Identification and measurement of benefits to the organization in such areas as financial concerns operational efficiency. and competitive impact. User Manager Assessment: Evaluation of the attitudes of senior and user mangers within the organization.

and against the denial of service to authorized users of the provision of service to unauthorized users. In particular. It is much easier to prove that a system is insecure than to demonstrate that one is secure to prove insecurity. However. software reliability. which are theoretically secure. and counter such threats." Many questions regarding security are related to the software life cycle itself. if not impossible. and user responsibility. The mass of security functionality employed by today's networked world. This script limits its scope to defining and discussing software security. . security must be preserved during operation and maintenance to ensure the integrity of a piece of software. Furthermore. The lack of security stems from two fundamental problems. whether in storage. SYSTEM SECURITY MEASURES Security in software engineering a broad topic. proving a system secure requires demonstrating that all possible exploits can be defended against (a very daunting. task). COMPUTER SYSTEMS ENGINEERING Software security applies information security principles to software development. might deceive us into believing that our jobs as secure system designers are already done. including those measures necessary to detect. systems are increasingly complex. one simply exploits certain system vulnerability. document. the security of code and software processes must be considered during the design and development phase. processing or transit.12. Systems. developer responsibility. complexity provides more opportunities for attacks. computers and networks are incredibly insecure. Information security is commonly defined as "the protection of information systems against unauthorized access to or modification of information. In addition. On the other hand. may not be secure in practice.

For example. Often there are tradeoffs with respect to naming: while naming can provide a level of indirection. When developing software one must first determine the risks of a particular application. ranging from defacement. described in detail later) attacks. today's typical web site may be subject to a variety of risks. it also can create additional problems if the names are not stable. both the resources and the individuals using those resources must be named. . no repudiation. For example. With that knowledge. identifying appropriate security measures becomes tractable. etc. in a system such as a resource discovery system. it is important to consider how the application will be used. who will be using the application. The rise of distributed systems has made naming increasingly important. Naming is typically handled by rendezvous: a principal exporting a name advertises it somewhere.GOOD PRACTICE Security requires more managing and mitigating risk than it does technology. to distributed denial of service (DDoS. one can decide whether or not to support complex features like auditing. etc. In particular. accounting. when defining requirements. to transactions with the wrong party. Names can allow principals to play different roles in a particular system. Once the risks are identified. and someone wishing to use that name searches for it (phone books and directories are examples). which can also be useful. Another potentially important issue is how to support naming.

and how much time development will take.) in the dollar cost of the person-month. Hardware resources are such things as the computer time.13. to a potential client for the development contract. Most cost estimates are determined in terms of person-months (PM). Cost and schedule estimates are also required to determine the staffing level for a project during different phases. office space etc. most costs for a project can be incorporated by using PM as the basic measure. Cost in a project is due to the requirements for software. besides including the direct cost of the person-month. COST ESTIMATION OF THE PROJECT For a given set of requirements it is desirable to know how much it will cost to develop the software to satisfy the given requirements. By properly including the “Overheads” (i. the cost of hardware. The bulk of the cost of software development is due to the human resources needed. “are there cost overruns” and “when is the project likely to complete” cannot be answered. It can be safely said that cost and schedule estimates are fundamental to any form of project management and generally always required for a project. . These estimates are needed before development is initiated. and memory required for the project.e. and most cost estimation procedures focus on this aspect. terminal time. hardware. Otherwise. and human resources. Automation more practical use of these estimates is in bidding for software projects. software. where the developers must give cost estimates. For a software development project. detailed and accurate cost and schedule estimates are essential prerequisites for managing the project. whereas software resources include the tools and compilers needed during development. The primary reason for cost and schedule estimation is to enable the client or developer to perform a costbenefit analysis and for project monitoring and control. even simple questions like “is the project late”.

This is cost estimation with complete knowledge about the project. the cost can be accurately determined. when the product is delivered. Uncertainties in cost estimation: One can perform cost estimation at any point in the software life circle. Clearly. as all the data about the project and the resources spent be fully known by then. At this time . As the cost of the project depends on the nature and characteristics of the project. at any point. On the other extreme is the point when the project is being initiated or during the feasibility study. 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. This is cost estimation with complete knowledge about be fully known by then.Estimates can be based in subjective opinion of some person or determined through the user of models. the accuracy of the estimate will depend on the among or reliable information we have about the final product.