Documente Academic
Documente Profesional
Documente Cultură
INTRODUCTION
The project mainly deals with the automation of the activities performed at Andhra Pradesh State Finance Corporation (APSFC), which issued various kinds of loans to their Customers and accepts monthly installments from them. All the master information is gathered pertaining to the employees working in the organization, Industries to whom the loans are issued. Different types of loans available are designed and the interest rates applicable are set in the master tables. Initially after the customer is registered, loan is sanctioned according to his requirement and eligibility. Details of a particular loan are gathered such as loan number, customer number, loan code, amount, interest, and number of months, monthly installment and date of sanction. When the Industries pay the loan installments, details of loan number, payment id, amount and date of payment are gathered and stored. Simply choosing the appropriate menus such as Employee details report, Customer details report, generates various reports, Loan details report, Interest report, Customer-loan details report & Payment details report. The system security is taken care of by a login form, which allows only authorized users to utilize the system.
1.1 Motivation
The main aim/objective is to develop an effective system, which is fast, accurate, consistent, reliable, and flexible enough so that in can accommodate any further expansion.
1.2 Objective
APSFC wishes to put in place a comprehensive business / IT solution covering several areas within APSFC. Towards this, APSFC wishes to select a competent Software Developer (SD) who would be able to put together the different functions to deliver this solution to APSFC. As a first step towards selection of this SD, APSFC has issued this Request for Expression of Interest. The purpose behind this step is to identify the key set of vendors from whom APSFC would invite detailed technical and commercial proposals. 1
2. LITERATURE SURVEY
2.1 Introduction to JAVA
Java is a general purpose, object-oriented programming language developed by Sun Microsystems of USA in 1991. JAVA is Originally called Oak by James Gosling, one of the inventors of the language. In 1990, Sun Microsystems divided to develop special software that could be used to manipulate consumer devices. A team of Sun Microsystems programmers leaded by James Gosling was formed to undertake this task Java was developed by sun micro system and is a multithreaded object oriented programming language it is a new programming language with complete functionality like that of C++. Probably the most important thing that Java brings to the web are The capacity for more interactivity on the internet through multi media and animation. The Internet employer (version 3.0) and Netscape navigator (version 2.0) are two prominent browsers on the net that support Java. Java is an object oriented programming language with a built in applicationprogramming interface (API) that can handle graphics and user interfaces and that can be used to create applications or applets. Because of such section of APIs similar to Macintosh and windows, and its platform independence, Java can also be thought of as a platform in itself. Java also has standard libraries for doing mathematics. Java is platform-independent which means on compiled java program can be accessed by several different environments. Java handles all memory management automatically making it an extremely powerful, useful and versatile programming language
2.1.1 Concepts of Object Oriented Programming The major objective of objected oriented approach is to eliminate some of the flaws encountered in the procedural approach.
2.1.2 Features of Object Oriented Paradigm Emphasis is on data rather than procedure. Programs are divided into what are known as objects. Data structures are designed such that they characterize the objects. Methods that operate on the data of an object are tied together in the data structure. Data is hidden and cannot be accessed by external functions. Objects may communicate with each other through methods. New data and methods can be easily added whenever necessary. Follows bottom-up approach in program design. The general concepts of object oriented programming which form the heart of java language: Objects and classes Data abstraction and encapsulation Inheritance Polymorphism Dynamic binding Message communication 2.1.3 Objects Objects are the basic runtime entities in an object-oriented system. Any programming problem is analyzed in terms of objects and the nature of communication between them. When a program is executed, the objects interact by sending messages to one another. 2.1.4 Class The entire set of data and code of an object can be made a user-defined data type using the concept of class. Once a class has been defined, we can create any number of objects belonging to that class. Each object is associated with the data of type class with which they are created. Thus a class is collection of objects of similar type.
2.1.5 Data Encapsulation The wrapping up of data and methods in to a single unit (called class) is known as encapsulation. Data encapsulation is the most striking feature of a class. The data is not accessible to the outside world and only those methods, which are wrapped in the class, can access it. These methods provide the interface between the Objects data and program. This insulation of the data from direct access by the program is called data hiding. 2.1.6 Data Abstraction It allows us to focus on only those parts of an object that concerns us. Inheritance is the process by which objects of one class acquire the properties of object of another class. Inheritance supports the concept of hierarchical classification. In object oriented programming, the concept of inheritance provides the idea of reusability i.e., we can add additional features to an existing class without modifying it. This is possible by deriving a new class from the existing one. The new class will have the combined features of both the classes. 2.1.7 Polymorphism It means the ability to take more than one form. The behavior depends upon the type of data used in the operation. Polymorphism plays an important role in allowing objects having different internal structures to share the same external interface. 2.1.8 Dynamic Binding It means that the code associated with a given procedure Call is not known until the time of call at run time 2.1.9 Benefits of Object Oriented Programming Though inheritance, we can eliminate redundant code and extend the use of existing classes. Thus saving time & effort. The principle of data hiding, you can side the data which you do not want users of the class to access It is possible to have multiple objects to coexist without any interference.
Real world implementation, you can model software systems based on real world objects. It is easy to partition the work in a project based on objects. Abstractions, you can give the users the ability to ignore irrelevant details and concentrate on essentials. Object oriented systems can be early upgraded from small to large systems. Message passing techniques for communication between objects makes much simple. Software complexity can be early managed.
2.1.10 JAVA Features Sun Microsystems officially describes java with the following attributes Complied & Interpreted Platform independent and portable Object oriented Robust and secure Distributed Familiar, simple, small Multithreaded and Interactive High performance Dynamic and extensible
to access a Sybase database, another program to access an Oracle database, another program to access an Informix database, and so on. One can write a single program using the JDBC API, and the program will be able to send SQL statements to the appropriate database. And, with an application written in the Java programming language, one also doesn't have to worry about writing different applications to run on different platforms. The combination of Java and JDBC lets a programmer write it once and run it anywhere. Java being robust, secure, easy to use, easy to understand, and automatically downloadable on a network, is an excellent language basis for database applications. What is needed is a way for Java applications to talk to a variety of different databases. JDBC is the mechanism for doing this. JDBC extends what can be done in Java. For example, with Java and the JDBC API, it is possible to publish a web page containing an applet that uses information obtained from a remote database. Or an enterprise can use JDBC to connect all its employees (even if they are using a conglomeration of Windows, Macintosh, and UNIX machines) to one or more internal databases via an intranet. With more and more programmers using the Java programming language, the need for easy database access from Java is continuing to grow. MIS managers like the combination of Java and JDBC because it makes disseminating information easy and economical. Businesses can continue to use their installed databases and access information easily even if it is stored on different database management systems. Development time for new applications is short. Installation and version control are greatly simplified. A programmer can write an application or an update once, put it on the server, and everybody has access to the latest version. And for businesses selling information services, Java and JDBC offer a better way of getting out information updates to external customers. JDBC does the following things: Establish a connection with a database Send SQL statements Process the results. The following code fragment gives a basic example of these three steps: 7
Class.forName (oracle.jdbc.driver.OracleDriver); Connectioncon=DriverManager.getConnection(jdbc:oracle:thin:@192.168.0.2:15 21:tit,scott,tiger); Statement stmt=con.createStatement (); 2.2.1 Connection A connection object represents a connection with a database. A connection session includes the SQL statements that are executed and the results that are returned over the connection. A single application can have one or more connections with a single database, or it can have connections with many different databases. 2.2.2 Opening A Connection The standard way to establish a connection with a database is to call the method DriverManager.getConnection. This method takes a string containing a URL. The Driver Manager class, referred to a the JDBC management layer, attempts to locate a driver than can connect to the database represented driver classes, and when the method get Connection is called, it checks with each driver in the list until it finds one that can connect uses this URL to actually establish the connection. The standard syntax for JDBC URLs is: Jdbc: < sub protocol>: < sub name> A JDBC URL has three parts, which are separated by colons: jdbc-the protocol. The protocol in a JDBC URL is always jdbc. <Sub protocol>-usually the driver or the database connectivity mechanism, which may be supported by one or more drivers. A prominent example of a sub protocol name is oracle, which has been reserved for URLs that specify thin-style data source names. <Sub name>- a way to identify the database. The sub names can vary, depending on the sub protocol, and it can have a sub name with any internal syntax the driver writer chooses. The point of a sub name is to give enough information to locate the database. 8
2.2.3 Sending Statement Once a connection is established, it is used to pass SQL statements to its underlying database. JDBC does not put any restrictions on the kinds of SQL statements that can be sent; this provides a great deal of flexibility, allowing the use of database-specific statements or even non-SQL statements. It requires, however, 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. 2.2.4 Driver Manager The Driver Manager class is the management layer of JDBC, working between the user and the drivers. It keeps track of the drivers that are available and handles establishing a connection between a database and the appropriate driver. In addition, the driver manager class attends to things like driver login time limits and the printing of log and tracing messages. The only method in this class that a general programmer needs to use directly is DriverManager.getConnection. As its name implies, this method establishes a connection to a database. JDBC Is A Low-Level API & A Base For Higher-Level APIs JDBC is a "low-level" interface, which means that it is used to invoke (or "call") SQL commands directly. It works very well in this capacity and is easier to use than other database connectivity APIs, but it was designed also to be a base upon which to build higher-level interfaces and tools. A higher-level interface is "user-friendly," using a more understandable or more convenient API that is translated behind the scenes into a low-level interface such as JDBC. At the time of this writing, two kinds of higherlevel APIs are under development on top of JDBC: 1. An embedded SQL for Java. At least one vendor plans to build this. DBMSs implement SQL, a language designed specifically for use with databases. JDBC requires that the SQL statements be passed as Strings to Java methods. An embedded SQL preprocessor allows a programmer to instead mix SQL statements directly with Java: for example, a Java variable can be used in a 9
SQL statement to receive or provide SQL values. The embedded SQL preprocessor then translates this Java/SQL mix into Java with JDBC calls. 2. A direct mapping of relational database tables to Java classes. Javasoft and others have announced plans to implement this. In this "object/relational" mapping, each row of the table becomes an instance of that class, and each column value corresponds to an attribute of that instance. Programmers can then operate directly on Java objects; the required SQL calls to fetch and store data are automatically generated "beneath the covers." More sophisticated mappings are also provided, for example, where rows of multiple tables are combined in a Java class. As interest in JDBC has grown, more developers have been working on JDBC-based tools to make building programs easier, as well. Programmers have also been writing applications that make accessing a database easier for the end user. For example, an application might present a menu of database tasks from which to choose. After a task is selected, the application presents prompts and blanks for filling in information needed to carry out the selected task. With the requested input typed in, the application then automatically invokes the necessary SQL commands. With the help of such an application, users can perform database tasks even when they have little or no knowledge of SQL syntax. 2.2.5 JDBC Versus ODBC And Other APIs At this point, Microsoft's ODBC (Open Database Connectivity) API is probably the most widely used programming interface for accessing relational databases. It offers the ability to connect to almost all databases on almost all platforms. So why not just use ODBC from Java? The answer is that you can use ODBC from Java, but this is best done with the help of JDBC in the form of the JDBC-ODBC Bridge, which we will cover shortly. The question now becomes, "Why do you need JDBC?" There are several answers to this question: 1. ODBC is not appropriate for direct use from Java because it uses a C interface. Calls from Java to native C code have a number of drawbacks in the security, implementation, robustness, and automatic portability of applications.
10
2. A literal translation of the ODBC C API into a Java API would not be desirable. For example, Java has no pointers, and ODBC makes copious use of them, including the notoriously error-prone generic pointer "void *". You can think of JDBC as ODBC translated into an object-oriented interface that is natural for Java programmers. 3. ODBC is hard to learn. It mixes simple and advanced features together, and it has complex options even for simple queries. JDBC, on the other hand, was designed to keep simple things simple while allowing more advanced capabilities where required. 4. A Java API like JDBC is needed in order to enable a "pure Java" solution. When ODBC is used, the ODBC driver manager and drivers must be manually installed on every client machine. When the JDBC driver is written completely in Java, however, JDBC code is automatically installable, portable, and secure on all Java platforms from network computers to mainframes.
In summary, the JDBC API is a natural Java interface to the basic SQL abstractions and concepts. It builds on ODBC rather than starting from scratch, so programmers familiar with ODBC will find it very easy to learn JDBC. JDBC retains the basic design features of ODBC; in fact, both interfaces are based on the X/Open SQL CLI (Call Level Interface). The big difference is that JDBC builds on and reinforces the style and virtues of Java, and, of course, it is easy to use. More recently, Microsoft has introduced new APIs beyond ODBC: RDO, ADO, and OLE DB. These designs move in the same direction as JDBC in many ways, that is, in being an objectoriented database interface based on classes that can be implemented on ODBC. However, we did not see compelling functionality in any of these interfaces to make them an alternative basis to ODBC, especially with the ODBC driver market well established. Mostly they represent a thin veneer on ODBC. This is not to say that JDBC does not need to evolve from the initial release; however, we feel that most new functionality belongs in higher- level APIs such as the object/relational mappings and embedded SQL mentioned in the previous section. 2.2.6 Two-Tier And Three-Tier Models The JDBC API supports both two-tier and three-tier models for database access. In the two-tier model, a Java applet or application talks directly to the database. This 11
requires a JDBC driver that can communicate with the particular database management system being accessed. A user's SQL statements are delivered to the database, and the results of those statements are sent back to the user. The database may be located on another machine to which the user is connected via a network. This is referred to as a client/server configuration, with the user's machine as the client, and the machine housing the database as the server. The network can be an intranet, which, for example, connects employees within a corporation, or it can be the Internet. In the three-tier model, commands are sent to a "middle tier" of services, which then send SQL statements to the database. The database processes the SQL statements and sends the results back to the middle tier, which then sends them to the user. MIS directors find the three-tier model very attractive because the middle tier makes it possible to maintain control over access and the kinds of updates that can be made to corporate data. Another advantage is that when there is a middle tier, the user can employ an easy-to-use higher-level API which is translated by the middle tier into the appropriate low-level calls. Finally, in many cases the three-tier architecture can provide performance changes
Until now the middle tier has typically been written in languages such as C or C++, which offer fast performance. However, with the introduction of optimizing compilers that translate Java byte code into efficient machine-specific code, it is becoming practical to implement the middle tier in Java. This is a big plus, making it possible to take advantage of Java's robustness, multithreading, and security features. JDBC is important to allow database access from a Java middle tier.
not a major problem, or for application server code written in Java in a threetier architecture. 2. Native-API partly-Java driver This kind of driver converts JDBC calls into calls on the client API for Oracle, Sybase, Informix, DB2, or other DBMS. Note that, like the bridge driver, this style of driver requires that some binary code be loaded on each client machine. 3. JDBC-Net pure Java driver This driver translates JDBC calls into a DBMS- independent net protocol, which is then translated to a DBMS protocol by a server. This net server middleware is able to connect its pure Java clients to many different databases. The specific protocol used depends on the vendor. In general, this is the most flexible JDBC alternative. It is likely that all vendors of this solution will provide products suitable for Intranet use. In order for these products to also support Internet access, they must handle the additional requirements for security, access through firewalls, and so on, that the Web imposes. Several vendors are adding JDBC drivers to their existing database middleware products. 4. Native-protocol pure Java driver This kind of driver converts JDBC calls into the network protocol used by DBMS directly. This allows a direct call from the client machine to the DBMS server and is a practical solution for Intranet access. Since many of these protocols are proprietary, the database vendors themselves will be the primary source, and several database vendors have these in progress.
Eventually, we expect that driver categories 3 and 4 will be the preferred way to access databases from JDBC. Driver categories 1 and 2 are interim solutions where direct pure Java drivers are not yet available. There are possible variations on categories 1 and 2 (not shown in the table below) that require a connector, but these are generally less desirable solutions. Categories 3 and 4 offer all the advantages of Java, including automatic installation (for example, downloading the JDBC driver with an applet that uses it).
13
The following chart shows the four categories and their properties: DRIVER CATEGORY 1 JDBC-OCBC Bridge 2 Native API as basis 3 JDBC-Net 4 Native protocol as basis ALL JAVA? No No Yes Yes NET PROTOCOL Direct Direct Requires Connector Direct
14
Components
It was mentioned earlier that the Java Server Pages architecture can include reusable Java components. The architecture also allows for the embedding of a scripting language directly into the Java Server Pages file. The components current supported include Java Beans, and Servlets.
Processing
A Java Server Pages file is essentially an HTML document with JSP scripting or tags. The Java Server Pages file has a JSP extension to the server as a Java Server Pages file. Before the page is served, the Java Server Pages syntax is parsed and processed into a servlet on the server side. The servlet that is generated outputs real content in straight HTML for responding to the client. JSP 2.0 The new version of the JSP specification includes new features meant to improve programmer productivity. Namely:
A faster/easier way to display parameter values. A clearer way to navigate nested beans
2.3.2 Life Cycle of A JSP JSP life cycle is described by 3- life cycle methods and 6- lifecycle phases. jspInit() jspDestroy() _jspService(request, response). 1. Life Cycle Phases Of A JSP Translation Phase. Compilation Phase. Installation phase. Initialization Phase. Servicing Phase. Destruction Phase. 15
2.3.3 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. The reason is simple: Java expands the universe of objects that can move about freely in cyberspace. In a network, there are two broad categories of objects transmitted between the Server and your Personal Computer: passive information and dynamic, active programs like an object that can be transmitted to your computer, which is a dynamic, self-executing program. Such a program would be an active agent to the client computer, yet the server would initiate it. As desirable as dynamic, networked programs are, they also present serious problems in the areas of security and portability. Prior to Java cyberspace was effectively closed to half the entities that now live there. Java addresses these concerns and doing so, has opened the door to an exiting a new form of program. The rise of server-side Java applications is one of the latest and most exciting trends in Java programming. It was first hyped as a language for developing elaborate client-side web content in the form of applets. Now, Java is coming into its own as a language ideally suited for server-side development. Businesses in particular have been quick to recognize Javas potential on the server-Java is inherently suited for large client/server applications. The cross platform nature of Java is extremely useful for organizations that have a heterogeneous collection of servers running various flavors of the Unix of Windows operating systems. Javas modern, object-oriented, memory-protected design allows developers to cut development cycles and increase reliability. In addition, Javas built-in support for networking and enterprise API provides access to legacy data, easing the transition from older client/server systems. Java Servlets are a key component of server-side java development. A Servlet is a small pluggable extension to a server that enhances the servers functionality. Servlets allow developers to extend and customize and Java enabled server a web server, a mail server, an application server, or any custom server with a hitherto unknown degree of portability, flexibility and ease.
16
2.4 Internet Terminology 2.4.1 Internet The Internet is a worldwide network of computer networks. People use the Internet to send electronic mail, participate in discussion forums, search authority that controls or regulates the Internet Currently there are more than 30 million people use the Internet and the number is growing at a rate of one million new users per month. 2.4.2 Intranet An internal network owned and managed by a company or organization uses the same kinds of software that you would use to explore the Internet, but only for internal use. An Internet enables a company to share its resources with it employees without confidential information being made available to everyone with Internet access. 2.4.3 Web Browser A web browser is a program run on a client workstation used to navigate the World Wide Web (WWW). 2.4.4 World Wide Web(WWW) WWW is a collection of resources (make up of Hypertext, graphics, sound files, etc) located on globally networked web/internet servers that can be accessed on the Internet by using HTTP, FTP, Telnet, Gopher and some other tools. 2.4.5 TCP-IP This is the suite of protocols that defines the Internet. It is originally designed for the Unix Operating system. TCP/IP software is now available for every major kind of computer operating system. TCP/IP stacks is required for computers want to access the Internet.
17
Uniform Resource Locator (URL) The standard way to give the address of any resource on the Internet that is part of the World Wide Web (WWW). A URL looks like this. The most common way to use a URL is to enter into a WWW browser program, such as Internet Explorer. 2.5 ORACLE 10g Server 2.5.1 Introduction to Oracle Any programming environment used to create containers, to manage human data, in the conceptualization as a Data Management System. Traditionally, the block of human data being managed is called a Database. Hence, in very simple terms, these programming environments can the conceptualized as Database Management Systems, in short DBM systems. All Databases Management Systems (that is, Oracle is DBMS) allow users to create containers for data stories and management. These containers are called cells. The minimum information that has to be given to Oracle for a suitable container to be constructed, which can hold free from human data, is: The cell name The cell length
Another name that the programming environments use for a Cell is Field. These can the conceptualized as follows: 2.5.2 Basic Database Concepts A database is a corporate collection of data with some inherent meaning, designed, built and populated with data for a specific purpose. A database stores data that is useful to us. This data is only a part of the entire data available in the world around us. To be able to successfully design and maintain databases we have to do the following:
18
Identify which part of the worlds data is of interest to us. Identify what specific objects in that part of the worlds data are of interest to us.
Identify a relationship between the objects. Hence the objects, their attributes and the relationship between them that are
of interest to us are still owed in the database that is designed, built and populated with data for a specific purpose. 2.5.3 Characteristics of a Database Management System It represents a complex relationship between data. Keeps a tight control of debtor redundancy. Enforces user-defined rules to ensure integrity of table data. Has a centralized data dictionary for the storage of information pertaining to data and its manipulation. Ensures that data can be shared across applications. Enforces data access authorization has automatic, intelligent backup and recovery procedures for data. Have different interfaces via which users can manipulate data.
2.5.3.1 Relational Database Management A relational database management system uses only its relational capabilities to manage the information stored in its databases.
19
2.5.3.2 Information Representation All information stored in a relational database is represented only by data item values, which are stored in the tables that make up the database. Associations between data items are not logically represented in any other way, such as the use of pointers from one table to the other. 2.5.3.3 Logical accessibility Every data item value stored in relational database is accessible by stating the nature of the table it is stored in, the name of the column under which it is stored and the value of the primary key that defines the row in which it is stored. 2.5.3.4 Representation of null values The database management system has a consistent method for representing null values. For example, null values for numeric data must be distinct from zero or any other numeric and for the character data it must be different from a string of blanks or any other character value. 2.5.3.5 Catalogue facilities The logical description of the relation database is represented in the same manner as ordinary data. This is done so that the facilities of the relation database management system itself can be used to maintain database description. 2.5.3.6 Data Language The relational database management system may support many types of languages for describing data and accessing the database. However, there must be at least one language that uses ordinary character strings to support the definition of data, the definition of views, the manipulation of data, constraints on data integrity, information concerning authorization and the boundaries for recovery of units.
20
2.5.3.7 View Updatability Any view that can be defined using combination of basic tables, that are theoretically up-dateable, these capital of being updated by the relational database management system. 2.5.3.8 Insert, Update and Delete Any operand that describes the results of a single retrieval operation is capable of being applied to an insert update or delete operation as well. 2.5.3.9 Physical data independence Changes made to physical storage representation or access methods do not require changes to be made to application programmers. 2.5.3.10 Logical Data Independence Changes made to tables, that do not modify any data stored in that table, do not require changes to be made to application programmers. 2.5.3.11 Integrity Constraints Constraints that apply to entity integrity and referential integrity are specifiable by the data language implemented by the database management system and not by the statements coded into the application program. 2.5.3.12 Database Distribution The data language implemented by the relation database management system supports the ability to distribute the database without requiring changes to be made to application programmers. This facility must be provided in the data language, whether or not the database management system itself supports distributed databases. 2.5.3.13 Non- Subversion If the relational database management system supports facilities that allow application programmers to operate on the tables a row at a time, an application programmer 21
using this type access is prevented from by passing entity integrity or referential integrity constraints that are defined for the database.
2.6 HTML
HTML (Hypertext Markup Language) is a computer language used to build web pages. It is a language used to create hypertext documents that have hyperlinks embedded in them. It is basically a formatting language and not a programming language. Hyperlinks are underlined or emphasized words of locations in a screen that lead to other documents. WWW is a global, interactive, dynamic, cross-platform, distributed, graphical hypertext information system. HTML is Platform Independent If you can access Internet, you can access WWW. Whatever may be your operating system, whatever may be the operating system of the web server you are accessing, all you require is a browser and a connection to the internet to get connected to WWW and download and view the HTML files. Hyper Text Markup Language (HTML) HTML is the language for describing structured documents HTML describes the structure of documents-lists, headings, paragraphs etc. Elements of Web document are leveled through the usage of HTML tags. It is the tags that describe the documents. Anything that is not a tag is part of the document itself. Advantages
HTML document is small and hence easy to send over the net. It does not include format information and so it is not big in size. HTML documents are cross platform compatible and device independent. Only HTML readable is required. Font names, locations etc., are not required. Currently the standard fully supported HTML is 4.0. HTML 5.0 is in offing.
time consuming. Apart from this the data entered was highly inconsistent due to several reasons.
23
3. ANALYSIS
3.1 Introduction
The system mainly deals with the automation of the activities performed at Andhra Pradesh State Finance Corporation (APSFC), which issued various kinds of loans to their customers and accepts monthly installments from them. The main aim/objective is to develop an effective system, which is fast, accurate, consistent, and flexible enough so that it can accommodate further expansion.
The system security should provide by a login form, which has to allow only
authorized users to utilize the system.
This test-plan can be updated as and when new scenarios come to mind.
Internet connection with 33.6 KBPS Modem. Pentium 233MHz. 42 GB HD, 256 MB RAM (Server). Any P.C with Windows/Unix compatibility, 12 MB RAM (Client). JDK 1.4.1, Web Server, running on any platform. JDBC/ODBC drivers installed. Servlets 2.0 and JSP Functional Java enabled browser. Data Base (Oracle 8i). Operating System (Windows/Unix/Linux). Rational Rose98.
25
3.3 Flowcharts
3.3.1 Online Transaction Processing
TEXT LEVEL DFD ONLINE TRANSACTION PROCESSING
Industries
Data In / Out
Records
26
LEVEL 1 DFD
Customer
Records
Records
27
Customer
Customer-loan details
Payment details
28
BEGIN
NO
END
29
BEGIN
Check the eligibility Conditions, loan & Interest calculations Is the customer Eligible for loan ?
NO
YES
Sanction the loan amount of the customer and store/update the appropriate tables
Input details of Loan installment Payment Store / update the Payment details in the Appropriate tables END
30
BEGIN
NO
YES
Query The Database According To The Required Columns And Retrieve The Information
END
31
DESIGN
4.1 Introduction
4.1.1 Code design The code design should be such that with less amount of code, the results can be achieved more easily. The speed of the system will be more if the coding is less. Whether the data in the system is unusable and readable by the system is depending on the code. 4.1.2 Data Flow Diagrams The data flow diagram is a graphical representation that depicts information flow and the transforms that are applied as data move from input to output. A data flow diagram may be used to represent a system or software at any level of abstraction. DFDs can be partitioned into levels that represent increasing information flow and functional details. A level 0 DFD also called as fundamental system model or a context model represents the entire software element as a single bubble with input and output data indicated by incoming and outgoing arrows respectively. Each of the process required at level 1 is a sub-function of the overall system depicted in a context model 4.1.3 Data Flow Diagram Symbols
-Process
-Storage
32
4.2.3 Sequence Diagram Sequence diagrams emphasize on the time ordering of messages, which sends and receives the messages among objects.
33
4.2.4 Collaboration Diagram A collaboration diagram emphasizes the structural organization of the objects, which send and receives the messages among objects.
pay ment
v iew loans
interest report
customer
password change
retistration
customer loan
employ ee
34
DataStore GUIComponent
InputScreen
Menu
DataManipulator
PwdValidator
Interest Calculator
Regn.Validator
Payment
Application Validator
35
: loan
: Report
: Payment
display
choose
choose
36
: employee
: Menu
: Interest Calculator
: Employee Details
: Customer Details
: Report
display
choose
emp id display
choose
cust id display
37
Int_Code INTEREST
Int_Rate
Int_Code
CUSTOMER LOAN
PAYMENT
Pmt_Amt
has
Is of
LOAN MASTER
Pmt_Date
Cust_Code
Cont_Person
Ann_Turnove r
CUSTOMER Organizatio n
Designation Phone
Address
38
characteristics, and so such, general techniques for the design of database are limited. One of the most useful methods of analyzing the data required by the system for the data dictionary has developed from research into relational database, particularly the work of E.F.Codd. This method of analyzing data is called Normalization. Unnormalized data are converted into normalized data by three stages. Each stage has a procedure to follow:Normalization The first stage is normalization is to reduce the data to its first normal form, by removing repeating items showing them as separate records but including in them the key fields of the original record. The next stage of reduction to the second normal form is to check that the record, which one is first normal form, all the items in each record are entirely dependent on the key of the record. If a data item is not dependent on the key of the record, but on the other data item, then it is removed with its key to form another record. This is done until each record contains data items, which are entirely
dependent on the key of their record. The final stage of the analysis, the reduction of third normal form involves examining each record, which one is in second normal form to see whether any items are mutually dependent. If there are any item there are removed to a separate record leaving one of the items behind in the original record and using that as the key in the newly created record. Business Modeling The information flow among business function is modeled in a way that answers the following questions: what information drives the business process? What information is generated? What generate it? Where does the information go? Who process it?
39
Data Modeling The information flow defined as a process of the business modeling is refined into a set of data objects that are needed to support the business. The characteristics (called attributes) of each object are identified and relationships between these objects are defined. Process Modeling The data objects defined in the data-modeling phase are transformed to achieve the information flow necessary to implement a business function. Processing description is created for addition, modifying, deleting, or retrieving a data object. 4.4.1 Database Tables
1) Customer Details
NAME OF FIELD CNAME CODE ONAME CSCALE CINCOME ADDRESS PHONE ZIP
DATA TYPE VARCHAR(30) VARCHAR(5) VARCHAR(30) VARCHAR(15) NUMBER (12) VARCHAR(15) VARCHAR(11) NUMBER (7)
DESCRIPTION Customer Name Customer Code Organization name Designation Monthly sales Address Phone number Zip code
40
2) Customer Loan NAME OF FIELD LOANNO CCODE LCODE ICODE IAMOUNT MONTHS PAMENT DATE TOTAL DATA TYPE VARCHAR (6) VARCHAR (5) VARCHAR(5) VARCHAR (5) NUMBER (15) NUMBER (3) NUMBER (6) DATE NUMBER (15) DESCRIPTION Loan number Customer number Loan code Interest code loan amount Number of months Monthly payment Loan date Total amount
PRIMARY KEY (LOANNO) FOREIGN KEY (CCODE) FOREIGN KEY (LCODE) FOREIGN KEY (ICODE)
41
3) Employee Details
DATA TYPE VARCHAR(5) VARCHAR(30) VARCHAR(15) NUMBER (15) VARCHAR(20) NUMBER (11)
DESCRIPTION Employee number Employee name Designation Salary Address Phone number
4) Interest Details
42
5) Loan Details NAME OF FIELD LOANCODE DES DATE TYPE VARCHAR (4) VARCHAR (30) DESCRIPTION Loan code Loan description
7) PaymentDetails
PRIMARY KEY (PMT_ID) FOREIGN KEY (LN_NO), REFERENCE TABLE APSFC_CUST_LOAN (LN_NO). FOREIGN KEY(RECD_BY)REFERENCE TABLE APSFC_EMP(EMP_NO) 43
The Linear Sequential Model The linear sequential model for software engineering sometimes 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 understand 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. 44 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. generation step performs this task. The code
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
45
46
Evaluation of the system is performed to identify its strengths and weakness. The actual evaluation can occur along any of the following dimensions.
Operational Evaluation Assessment of the manner in which the system functions, including ease of use, response time, suitability of information formats, overall reliability, and level of utilization.
47
Organization Impact Identification and measurement of benefits to the organization in such areas as financial concerns, operational efficiency, and competitive impact. Includes impact on internal and external information flows. User Manager Assessment Evaluation of the attitudes of senior and user mangers within the organization, as well as end-users.
Development Performance Evaluation of the development process in accordance with such yardsticks as overall development time and effort, conformance to budgets and standards, and other project management criteria. Includes assessment of development methods and tools. Unfortunately system evaluation does not always receive the attention it merits. Where properly managed however, it provides a great deal of information that can improve the effectiveness of subsequent application efforts.
48
Statement st=null; ResultSet rs=null; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") con=DriverManager.getConnection("jdbc:odbc:apsfc","apsfc","apsfc"); String cmd="Select * from login where username='"+user+"' and
50
5.2.2 Code For Employee Details Terminal <%@ page import="java.sql.*;"%> <% String empnum=request.getParameter("user_eno"); String emplyename=request.getParameter("user_ename"); String desig=request.getParameter("user_designation"); String salr=request.getParameter("user_monthlysalary"); String addr=request.getParameter("user_address"); String phn=request.getParameter("user_phoneno");
PreparedStatement st=null; Statement sst=null; ResultSet rs=null; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:apsfc","apsfc","apsfc"); String cmd="INSERT INTO EMPLOYEEDETAILS VALUES(?,?,?,?,?,?)"; st=con.prepareStatement(cmd); st.setString(1,empnum); st.setString(2,emplyename); st.setString(3,desig); st.setString(4,salr); st.setString(5,addr); st.setString(6,phn); st.execute(); if(st!=null) { out.println("<br><br><br><br><br><h1>Information entered Successfully</h1>");
} 51
%>
52
5.2.3 Code For Employee Details Report <%@ page import="java.sql.*" %> <%@ page import="java.io.*" %> <html> <% String loanno=request.getParameter("a");
<%
try { Connection con = null; Statement statement = null; ResultSet rs = null; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:apsfc","apsfc","apsfc"); statement = con.createStatement(); String QueryString = "Select * from employeedetails"; rs = statement.executeQuery(QueryString); %> <center> <fieldset style="BORDER-RIGHT: 000000 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: 000000 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; BORDER-LEFT: 000000 1px solid; WIDTH: 400px; PADDING-TOP: 0px; BORDER-BOTTOM: 000000 1px solid; HEIGHT: 300px"> <legend style="color: #000033; font-family:verdena; font-size: 16pt;"><b>EMPLOYEE REPORT</b></legend>
53
<TABLE cellpadding="7" border="0" align=center width="30%"> <tr><td colspan=4 align="center"></td></tr> <td align="center"><font size="4" color="#080000 " face="Arial"><b>Employee No</b></font></td> <td align="center"><font size="4" color="#080000 " face="Arial"><b>Employee Name</b></font></td> <td align="center"><font size="4" color="#080000 face="Arial"><b>Designation</b></font></td> <td align="center"><font size="4" color="#080000 " face="Arial"><b>Salary</b></font></td> <td align="center"><font size="4" color="#080000 " face="Arial"><b>Address</b></font></td> <td align="center"><font size="4" color="#080000 " face="Arial"><b>Phone No</b></font></td>
<TR bgcolor= "#8B668B"> <TD align="center"><font size="4" color="#080000 " face="Monotype Corsiva"><b><%=rs.getString(1)%></b></font></TD> <TD align="center"><font size="4" color="#080000 " face="Monotype Corsiva"><b><%=rs.getString(2)%></b></font></TD> <TD align="center"><font size="4" color="#080000 " face="Monotype Corsiva"><b><%=rs.getString(3)%></b></font></TD> <TD align="center"><font size="4" color="#080000 " face="Monotype Corsiva"><b><%=rs.getString(4)%></b></font></TD> <TD align="center"><font size="4" color="#080000 " face="Monotype Corsiva"><b><%=rs.getString(5)%></b></font></TD> <TD align="center"><font size="4" color="#080000 " face="Monotype Corsiva"><b><%=rs.getString(6)%></b></font></TD>
54
</TR> <% } %> <% rs.close(); statement.close(); con.close(); } catch (Exception ex) { %>
<% out.println("Unable to connect to database."); } %> </TABLE> </fieldset> </center> </body> </html>
55
Menu Page
56
Home Page
Administration Page
57
Employee Details
Loan Details
58
Customer Details
Interest Rates
59
Customer Loan
Payment Details
60
Transaction
Reports
61
Employee Report
Loan Report
62
Customer Report
Interest report
63
Payment Report
64
About Us
Re-login
65
b) Control Structure Testing i. ii. iii. Condition testing Data flow testing Loop testing 66
2. Black Box Testing: In this testing by knowing the internal operation of a product, tests can be conducted to ensure that all gears mesh, that is the internal operation performs according to specification and all internal components have been adequately exercised. It fundamentally focuses on the functional requirements of the software. The steps involved in black box test case design are: i. ii. iii. iv. 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. Testing is a set of activities that can be planned in advance and conducted systematically. For this reason a template for software testing a set of steps into which we can place specific test case design methods should be defined for software engineering process. Any software testing strategy should have the following characteristics: 1. Testing begins at the module level and works outward toward the integration of the entire computer based system. 2. Different testing techniques are appropriate at different points in time. 3. The developer of the software and an independent test group conducts testing. 4. Testing and Debugging are different activities but debugging must be accommodated in any testing strategy. Unit Testing: Unit testing focuses verification efforts in smallest unit of software design (module). 1. Unit test considerations 2. Unit test procedures
67
Integration Testing: Integration testing is a systematic technique for constructing the program structure while conducting tests to uncover errors associated with interfacing. There are two types of integration testing: Top- Down Integration Top down integration is an incremental approach to construction of program structures. Modules are integrated by moving down wards throw the control hierarchy beginning with the main control module.
1. Bottom-Up Integration Bottom up integration as its name implies, begins construction and testing with automatic modules. 2. 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.
6.3 Validation
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 68
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 humanengineered; 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.
69
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 developers 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.
70
7. CONCLUSION
7.1 Project Conclusion
The system computerizes the working in APSFC. The system provides easy and effective storage of information related to a customer and also generates reports, for each and every customer activity carried out at APSFC. It provides the facility to store historical data. The project is designed in such a way that, it can be easily understood even by a new computer user. The designed project is accurate, efficient and time saving.
71
8. REFERENCES
1) ORACLE 8i MASTERING CLIENT-SERVER CONCEPTS, Steven M. Bobrowski 2) SYSTEM ANALYSIS AND DESIGN, James A. Senn 3) JAVA COPLETE REFERENCE, Patrick Naughton 4) SOFTWARE ENGINEERING, Roger s. Pressman 5) J2EE 2nd EDITION, Wrox Press 6) URL: http://www.google.com , http://www.w3schools.com
72
73