Você está na página 1de 101

CHAPTER-I INTRODUCTION

1.1 INTRODUCTION
This project gives a new approach for the E-evaluation of the visually challenged people which can be on par with other general candidates. Even when VCPs get qualified in the Universities exams, next problem they face is the hurdle of screening tests are competitive exams conducted for the jobs by the difficult recruiting agencies like union and state PSCs, companies ,boards etc.., In this technological age where number of e-gadgets are available and software has penetrated into every nook and corner of our life ,the methods of E-learning and-evaluation can be used to reduce the hurdles of the VSP candidate. This project gives a model where in it explain how a VCP can take a screening test using E-gadgets and without any scribers help.screening test using E-gadgets and without any scribers help. In this model of E-evaluation for VCPs, the gadgets required are a computer with a keyboard, an earphone and a cd/storage device (with software and question paper).The candidate undergoing exam is to use these gadgets during exam. This model is aimed at the objective type exam that are most common for that screening tests. The algorithm of the software is presented in these project that explain how a VCP takes an exam and how the evaluation is carried out without the help of any other people The components of this project are: a) A computer b) Earphones c) VCP taking the exam and D) Keyboard COMPUTER: This is the platform on which the exam/screening test is held .It is the general configuration PC with a CPU, monitor, keyboard, earphone facility etc..The type of the computer setup is now a common hardware in any college/examine centre. KEYBOARD: This is a single way interface between the software and the candidate by which VCP answers and controls question paper. Only a small portion (right side of the board)of the ordinary computer keyboard is to be used by the candidate. The keys of this portion of the keyboard are to be pasted with symbols as shown in the picture below. On practice even this

may not be required by the candidate. The functions of the symbols/keys are explained in below table. There is a thought of developing a special keyboard.

E A B

R C D

ALT

ENTER

<-

FIG: 1.1.1 Keyboard

EARPHONES: This is also a single way interface between the software and candidate by which VCP hears the instructions and questions from the question paper. Before the exam starts, there will be some pre exam work, in most of the cases it involves: filling of hall ticket number, writing of name of exam, year, paper code etc but in this case there will be only entry of password and student id. Thus comes with all the information filled in application. As the software inserted in the computer, it auto place the program. In this time is already set and invigilator reads out the time to the candidate after entering his password. Then the candidate enters his/her id. Before actual start of exams, the instructions and details of the question paper are read by the computer and the candidate hears it through headphones. At the exact time, exam starts with the reading of question number 1. The candidate starts answering using the keyboard and the answer sheet in the database get updated as shown in the algorithm. The exam ends automatically with lapse of time as the 3

time period is already set in the program. The program automatically closes the attending of answer with the end of the exam and display results.

ALGORITHM OF THE SOFTWARE: This software uses the text reading software as a subroutine. Texts reading software is now-a-days became common and are used in many fields. The program software designed for our purpose reads the instructions and questions for the candidate. It takes the commands from the keyboard and operates the next function (i.e. marks/changes the answer sheet and reads the next question/message) as described in below algorithm. The answer sheet gets updated on the entering of keys A,B,C or D. End of every question or instruction reading waits for a command from keyboard and every entry from keyboard results in reading of next page.

Power on the computer Enter the password of invigilator

Enter the ID of the VCP candidate

Listen to the instructions of the exam

Exam start

Candidate doesto any of thethe following Press A,B,C,D choose sections Press ALT+A,ALT+B,ALT+C to selection of answers Press arrow for start exam Press R for repeat or result Press E to the end of the exam 4

Press 1,2,..9 to go to the respective question numbers

FIG: 1.1.2 Algorithm

Software&Questionpaper (Computer)

Ear Phone

Keyboard

5 VCP

FIG: 1.1.3 Course of Exam

ADVANTAGES
This system of evaluation of a VCP has many advantages over other existing system of evaluation. They are: 1) No scribe is required. So there is a total confidence on a candidates performance and evaluation 2) No external help for candidate makes him independent like normal candidate. The burden of getting the proper scribe is removed for the candidate. 3) Candidate can practice this model if he/she is given model software with the issue of hall ticket and he/she can learn with least difficulty as number of gadgets is few. 4) Due to the use of limited no of keys and that to a particular part of the keyboard, this model is user friendly. 5) It is language independent; an objective type test in any language can be conducted for the VCP, Provided the text reading software is available in that language.

ACTIONS REQUIRED FOR BETTER RESULTS


1) This model is to be practiced by the candidate before exam 2) This can be made practiced in VCP rehabilitation centres, colleges, etc. to get accustomed. 3) A practice copy to be issued by examining /recruiting agency with the issue of hall ticket. 4) Whether extra time to be given in this model can be decided by an expert committee involving VCP. 6

5) An efficient text reading softwares to be selected.

CHAPTER-II SYSTEM REQUIREMENT SPECIFICATIONS

2.1 INTRODUCTION TO INCREMENTAL MODEL

FIG: 2.1.1 Incremental Model The incremental approach attempts to combine the waterfall sequence with some of the advantages of prototyping. This approach is favored by many object-oriented practitioners. It basically divides the overall project into a number of increments. Then it applies the waterfall model to each increment. The system is put into production when the first increment is delivered. As time passes additional increments are completed and added to the working system. This approach is favored by many object-oriented practitioners.

Incremental Phases Inception


During the inception phase, the purpose, business rationale, and scope of the project is determined. This is similar to the feasibility analysis that is done in other life cycles. Elaboration During the elaboration phase, more detailed requirements are collected, high level analysis is performed, and a general architecture is determined. This phase divides the requirements into increments that can be built separately. As we will see, each increment consists of a subset of high level use cases that capture the user's requirements. Construction The construction phase builds increments of the system. Each increment is developed 9

using a waterfall approach. This includes detailed analysis and design for the use cases in the increment and coding and testing of the event processors that implement the sequence of events defined by the use cases. The result is production quality software that satisfies a subset of the requirements and is delivered to the end users. Work on different increments may be done in parallel.

Transisition The transition phase (not shown in the figure) is the last phase in the project. This may include such things a performance tuning and rollout to all users.

2.2 INTRODUCTION TO HTML


HTML stands for Hyper Text Language. Hypertext is ordinary text that has been dresses up with extra features, such as formatting, images, multimedia and links to other documents. Markup is the process of talking ordinary test and adding extra symbols. Language is actually a key point to remember about HTML. The hypertext markup language (HTML) is a simple markup language. Used to create a hypertext documents that are portable from one platform to another HTML documents are SGML (Standard generalized mark up language) documents with generic semantics that are appropriate for representing information from a wide range of applications. It has its own syntax, slag and rules for proper communication. HTML is neither a page layout language nor a printing language. The only thing HTML does is classifying parts of our document so that a browser can display it correctly. A set of instructions embedded in a document is called mark up language. These instructions describe what the document text means and how it should look like in a display. Hyper Text Mark Up language (HTML) is the language used to encode World Wide Web documents. It is universal language for classifying the function of different sections of a Document. It is used to define the different parts of our page. HTML is designed to Work on a wide variety of platforms and also to work on a variety of graphical workstations. The idea behind HTML is that if we mark up our document by indicating the parts of our document of function, then should be able to trust that document will be attractively and correctly displayed by any browser on any computer anywhere in the World. Advantages of HTML Flexibility 10

Deeper Understanding Free of Cost Independence

Structure of HTML HTML elements perform a defined task. HTML uses two types of elements Empty Tags Container Tags

Empty tags represent formatting constricts such as line breaks and horizontal rules. Container tags define a section of text, formats and dot all of the selected text. A container tag has both a beginning and an ending. HTML Layout An HTML document consists of text, which comprises the content of the document and tags, which, defines the structure, and appearance of the document. The structure of an HTML document is simple, consists of outer <HTML> tag enclosing the document header each document has a head and body delimited by the <HEAD> and <BODY> tag. The head is where you give your HTML document a title and where you indicate other parameters the browser may use when displaying the document. This includes the text for displaying the text. Tag also references special and indicates the hot spots that link your document to other documents. Creating a form usually involves two independent steps: Creating the layout for the form itself and then writing a script program on the server side to process the formation you get back from a form. Inside the opening and closing FORM tags are each of the individual form elements plus any other HTML content to create a layout for that form. The opening tag of the FORM element usually includes the attributes: METHOD and ACTION. The METHOD attributes can be either GET or POST which determines how your form data is sent to the script to process it. The ACTION attribute is a pointer to the script that processes the form on the server side. The ACTION can be included by a relative path or by a full URL to a script on your server or somewhere else. For example, the following <FORM> tag would call a script called form-name in cgi-bin directory on server www.myservser.com Example <FORM Method= post action=http://www.mytservser.com/cgi-bin/form-name.pl> . . . </FORM>

11

2.3 INTRODUCTION TO JAVA SERVER PAGE (JSP)


Java Server Pages (JSP) is a new technology for web application development that has received a great deal of attention since it was first announced.

FIG: 2.3.1 Java Server Page Flow Diagram

Why is JSP so exciting? 1. JSP is Java-based, and Java is well-suited for enterprise computing. In fact, JSP is a key part of the Java 2 Enterprise Edition (J2EE) platform and can take advantage of the many Java Enterprise libraries, such as JDBC, JNDI, and Enterprise Java Beans. 2. JSP supports a powerful model for developing web applications that separates presentation from processing.. In the early days of the Web, the only tool for developing dynamic web content was the Common Gateway Interface (CGI). CGI outlined how a web server made user input available to a program, as well as how the program provided the web server with dynamically generated content to send back. CGI scripts were typically written in Perl. (In fact, CGI Perl scripts still drive numerous dynamic web sites.) However, CGI is not an efficient solution. For every request, the web server has to create a new operating-system process, load a Perl interpreter and the Perl script, execute the script, and then dispose of the entire process when it's done. To provide a more efficient solution, various alternatives to CGI have been added to programmers' toolboxes over the last few years: Fast CGI, for example, runs each CGI 12

program in an external permanent process (or a pool of processes). In addition, mod_perl for Apache, NSAPI for Netscape, and ISAPI for Microsoft's IIS all run server-side programs in the same process as the web server itself. While these solutions offer better performance and scalability, each one is supported by only a subset of the popular web servers. The Java Servlet API, introduced in early 1997, provides a solution to the portability issue. However, all these technologies suffer from a common problem: HTML code embedded inside programs. If you've ever looked at the code for a servlet, you've probably seen endless calls to out.println ( ) that contain scores of HTML tags. For the individual developer working on a simple web site this approach may work fine, but it makes it very difficult for people with different skills to work together to develop a web application. This is becoming a significant problem. As web sites become increasingly complex and are more and more critical to the success of an organization, the appearance and usability of the web interface becomes paramount. New client technologies, such as clientside scripts and DHTML, can develop more responsive and interactive user interfaces, style sheets can make it easier to globally change fonts and colors, and images can make the interface more appealing. At the same time, server-side code is getting more complex, and demands for reliability, performance, and fault tolerance are increasing. The growing complexity of web applications requires a development model that allows people with different skills to cooperate efficiently. Java Server Pages provides just such a development model, allowing web page authors with skills in graphics, layout, and usability to work in tandem with programmers who are experienced in server-side technologies such as multithreading, resource pooling, databases, and caching. While there are other technologies, such as ASP, PHP and Cold Fusion, that support similar development models, none of them offers all the advantages of JSP.

13

JSP ARCHITECTURE
In the process of dynamic content generation, Sun Microsystems has introduced with a new concept as Logic separation from client.

Client1

Client2

LOGICS

Server

Client3

FIG: 2.3.2 Block Diagram for Logics

Logic which is required is written at one place and can be accessed by all the clients which are at different places when they require. So, in order to implement this, we have two Architectures known as Model 1 Model 2

Model-1 Architecture In Model-1 Architecture, presentation logics and Business logics are combined. When these two are combined, each presentation logic requires copy of business logic so that the model and server should work towards this, such thing is time and resource consume, so in order to overcome this Model 2 Architecture has been introduced. Model-1 Architecture is called as Java Bean. 14

Model

View

Request processing Data validation Business logic processing Data manipulation

Server

FIG: 2.3.3 Model-1 Architecture

Model-2 Architecture Model-2 Architecture is also called as Java Strut. In this Model, presentation and business logics are separated. We have three parts in this, View Controller Model

Controller

Data Browser

View

Base
Mod e

FIG: 2.3.4 Model-2 Architecture

Model: contains business logics which represent application state along with database.
15

View: A JSP act a view which receives data from the model this view doesnt contain any
data manipulation logics.

Controller:

takes request from client, process the Model and provide information to

different JSP page and passing control to different views. JavaServer Pages (JSP) is a Java technology that allows software developers to dynamically generate HTML, XML or other types of documents in response to a Web client request. The technology allows Java code and certain pre-defined actions to be embedded into static content.

Architecture of JSP

Fig: 2.3.5 Architecture of JSP

16

What are the Advantages of JSP?

Active Server Pages (ASP). ASP is a similar technology from Microsoft. The advantages of JSP are twofold. First, the dynamic part is written in Java, not Visual Basic or other MS-specific language, so it is more powerful and easier to use. Second, it is portable to other operating systems and non-Microsoft Web servers.

Pure Servlets. JSP doesn't give you anything that you couldn't in principle do with a servlet. But it is more convenient to write (and to modify!) regular HTML than to have a zillion println statements that generate the HTML. Plus, by separating the look from the content you can put different people on different tasks: your Web page design experts can build the HTML, leaving places for your servlet programmers to insert the dynamic content.

Server-Side Includes (SSI). SSI is a widely-supported technology for including externally-defined pieces into a static Web page. JSP is better because it lets you use servlets instead of a separate program to generate that dynamic part. Besides, SSI is really only intended for simple inclusions, not for "real" programs that use form data, make database connections, and the like.

JavaScript. JavaScript can generate HTML dynamically on the client. This is a useful capability, but only handles situations where the dynamic information is based on the client's environment. With the exception of cookies, HTTP and form submission data is not available to JavaScript. And, since it runs on the client, JavaScript can't access server-side resources like databases, catalogs, pricing information, and the like.

Static HTML. Regular HTML, of course, cannot contain dynamic information. JSP is so easy and convenient that it is quite feasible to augment HTML pages that only benefit marginally by the insertion of small amounts of dynamic data. Previously, the cost of using dynamic data would preclude its use in all but the most valuable instances.

JSP syntax
A Java Server Page may be broken down into the following pieces:

static data such as HTML JSP directives such as the include directive JSP scripting elements and variables 17

JSP actions custom tags with correct library JSP directives control how the JSP compiler generates the servlet.

The following directives are available:

Include : The include directive informs the JSP compiler to include a complete file into the
current file. It is as if the contents of the included file were pasted directly into the original file. This functionality is similar to the one provided by the C preprocessor. Included files generally have the extension "jspf" (for JSP Fragment) <%@ include file="somefile.jspf" %>

Page: There are several options to the page directive. import : Results in a Java import statement being inserted into the resulting file. contentType : specifies the content that is generated. This should be used if HTML is not
used or if the character set is not the default character set.

errorPage : Indicates the page that will be shown if an exception occurs while processing
the HTTP request.

isErrorPage: If set to true, it indicates that this is the error page. Default value is false. isThreadSafe : Indicates if the resulting servlet is thread safe. autoFlush : To autoflush the contents.A value of true, the default, indicates that buffer
should be flushed when it is full. A value of false, rarely used, indicates that an exception should be thrown when the buffer overflows. s will be used, and attempts to access variable session will result in errors at the time the JSP page is translated into a servlet.

buffer : To set Buffer Size. The default is 8k and it is advisable that you increase it. isELIgnored : Defines whether EL expressions are ignored when the JSP is translated. language : Defines the scripting language used in scriptlets, expressions and declarations.
Right now, the only possible value is "java".

18

extends : Defines the superclass of the class this JSP will become. You won't use this unless
you REALLY know what you're doing - it overrides the class hierarchy provided by the Container.

info : Defines a String that gets put into the translated page, just so that you can get it using
the generated servlet's inherited getServletInfo() method.

pageEncoding : Defines the character encoding for the JSP. The default is "ISO-88591"(unless the contentType attribute already defines a character encoding, or the page uses XML document syntax). <%@ page import="java.util.*" %> //example import <%@ page contentType="text/html" %> //example contentType <%@ page isErrorPage=false %> //example for non error page <%@ page isThreadSafe=true %> //example for a thread safe JSP <%@ page session=true %> //example for using session binding <%@ page autoFlush=true %> //example for setting autoFlush <%@ page buffer=20 %> //example for setting Buffer Size Note: Only the "import" page directive can be used multiple times in the same JSP .

taglib: The taglib directive indicates that a JSP tag library is to be used. The directive
requires that a prefix be specified (much like a namespace in C++) and the URI for the tag library description. <%@ taglib prefix="myprefix" uri="taglib/mytag.tld" %>

JSP scripting elements and objects JSP implicit objects


The following JSP implicit objects are exposed by the JSP container and can be referenced by the programmer

out : The JSPWriter used to write the data to the response stream. JSP actions
19

JSP actions are XML tags that invoke built-in web server functionality. They are executed at runtime. Some are standard and some are custom (which are developed by Java developers). The following list contains the standard ones:

jsp:include : Similar to a subroutine, the Java servlet temporarily hands the request and
response off to the specified JavaServer Page. Control will then return to the current JSP, once the other JSP has finished. Using this, JSP code will be shared between multiple other JSPs, rather than duplicated.

jsp:param: Can be used inside a jsp:include, jsp:forward or jsp:params block. Specifies a


parameter that will be added to the request's current parameters .

jsp:forward: Used to hand off the request and response to another JSP or servlet. Control
will never return to the current JSP.

jsp:plugin: Older versions of Netscape Navigator and Internet Explorer used different
tags to embed an applet. This action generates the browser specific tag needed to include an applet.

jsp:fallback: The content to show if the browser does not support applets. jsp:getProperty: Gets a property from the specified JavaBean. jsp:setProperty: Sets a property in the specified JavaBean. jsp:useBean: Creates or re-uses a JavaBean available to the JSP page. The scope attribute
can be request, page, session or application. It has the following meanings:

request: The attribute is available for the lifetime of the request. Once the request has been
processed by all of the JSPs, the attribute will be de-referenced .

page: the attribute is available for the current page only. session: The attribute is available for the lifetime of the user's session . application: The attribute is available to every instance and is never de-referenced. Same as
a global variable: The example above will use a Bean Manager to create an instance of the class com.foo.MyBean and store the instance in the attribute named "myBean". The attribute will be available for the life-time of the request. It can be shared among all of the JSPs that were included or forwarded-to from the main JSP that first received the request. 20

Java Server Pages Technology


JavaServer Pages technology lets you put snippets of servlet code directly into a textbased document. A JSP page is a text-based document that contains two types of text: static template data, which can be expressed in any text-based format such as HTML, WML, and XML, and JSP elements, which determine how the page constructs dynamic content

2.4 INTRODUCTION TO KEYSTROKES


KEYSTROKE: A Stroke of a key, as on a computer keyboard. A Keystroke represents a key action on the keyboard, or equivalent input device. Keystrokes can correspond to only a press or release of a particular key, just as KEY_PRESSED and KEY_RELEASED Key Events do; alternately, they can correspond to typing a specific Java character, just as KEY_TYPED Key Events do. In all cases, Keystrokes can specify modifiers (alt, shift, control, Meta, altGraph, or a combination thereof) which must be present during the action for an exact match. Keystrokes are used to define high-level (semantic) action events. Instead of trapping every keystroke and throwing away the ones you are not interested in, those keystrokes you care about automatically initiate actions on the Components with which they are registered. Keystrokes are immutable, and are intended to be unique. Client code cannot create a Keystroke; a variant of get Keystroke must be used instead. These factory methods allow the Keystroke implementation to cache and share instances efficiently. Event Key Codes JavaScript events are used to capture user keystrokes. The onkeypress event occurs when the user presses a key (on the keyboard). To allot function to any key, we use ascii value of that key .when we press that key the function which is allotted to that key is invoked. For example, <script type="text/JavaScript"> function rButtonPressed() { 21

window.location.replace ("1.jsp"); } function endButtonPressed() { window.location.replace("end.jsp"); }

document.onkeydown = function(evt) { evt = evt || window.event; Switch (evt.keyCode) { case 82: rButtonPressed(); break; case 69: endButtonPressed(); break; } }; </script> In above example, code is written in javascript.69 is the ascii value of e and 82 is the ascii value of r.when we press r ,rButtonPressed() function invoked. it replace window with 1.jsp page. when we press e ,eButtonPressed() function invoked. it replace window with end.jsp page. 22

2.5 INTRODUCTION TO FREETTS Text to Speech using Java


Text to speech conversions have fascinated developers for many years. Most modern languages support the technique. In this article Anand demonstrates Java powered text to speech conversion. This says how to convert the text input into Speech using Java. This can be implemented in two ways They are: 1) JSAPI1.0 (Java Speech Application Programming Interface) 2) Free TTS (Free Text To Speech) JSAP1.0:JSAPI 1.0 is developed by Sun Microsystems. Jsapi contains two core technologies, viz. Speech Synthesis and Speech Recognition. The Speech synthesis is a speech engine that converts the text into speech. The Speech Recognition is used for Speech to text conversion. More Details about the JSAPI have been given below FreeTTS:FreeTTS is an open source package. It is entirely written by making use of Java programming language. This package can also be used to convert the text into speech. Necessity for the conversion of the Text into Speech: Speech synthesis of text in a word processor is an aid to proof-reading. It is easier to detect grammatical and stylistic problems. In the TTS, if we save the file in audio format, the size of the file will be larger than that of text file. It may be more useful in mobile phones in which we can hear the message that we have received instead of reading the SMS.

Method to convert Text into Speech 23

Structure analysis: Structure analysis processes the input text to determine where paragraphs, sentences and other structures start and end. Text pre- processing: This expands any abbreviations or other forms of shorthand. E.g. St. Joseph becomes Saint Joseph. Text-to-phoneme conversion: It converts each word to phonemes which refers to a basic unit of sound in a language. Prosody analysis: It processes the sentence structure, words and phonemes to determine appropriate prosody for the sentence. Waveform production: Finally, the phonemes and prosody information are used to produce the audio waveform for each sentence. Requirements for Text to Speech: The following jar files are very important cmu_us_kal.jar, cmulex.jar, en_us.jar; freetts.jar; cmulex.jar; jsapi.jar; 1. Unzip the freeTTS binary package and check inside the \lib directory, that all the above jar files are available except jsapi.jar. 2. The jsapi.exe file will be available. 3. Run Jsapi.exe, and you will get jsapi.jar. 4. Copy all the Jars (jsapi.jar, freetts.jar, cmu_time_awb.jar, cmu_us_kal.jar, etc.) to that working Folder or C:\Program files\java\ jdk1.6.0_03\jre\lib\ext Sample Code 24

<%@page contentType="text/html" import="java.sql.*" %> <%@ page import="com.sun.speech.freetts.FreeTTS"%> <%@ page import="com.sun.speech.freetts.Voice"%> <%@ page import="com.sun.speech.freetts.VoiceManager"%> <%@ page import="com.sun.speech.freetts.audio.SingleFileAudioPlayer"%> <%@ page import="java.io.FileInputStream"%> <% try { final Voice voice; final FreeTTS freetts; voice=VoiceManager.getInstance().getVoice("kevin16"); if(voice!=null) { voice.allocate(); } freetts=new FreeTTS(voice); voice.speak("Now the question one is...."); voice.speak("Sorting is not possible by using which of the following methods?"); voice.speak("Now the options are...."); voice.speak(" a. Insertion"); 25

voice.speak("b.Deletion "); voice.speak("c. Selection"); voice.speak("Now select the option....");

2.6 INTRODUCTION TO JDBC


What is JDBC?
JDBC is a Java Api for executing SQL, Statements (As a point of interest JDBC is trademarked name and is not an acronym; nevertheless, Jdbc is often thought of as standing for Java Database Connectivity. It consists of a set of classes and interfaces written in the Java Programming language.JDBC provides a standard API for tool/database developers and makes it possible to write database applications using a pure Java API Using JDBC, it is easy to send SQL statements to virtually program will be able to send SQL .statements to the appropriate database. The Combination of Java and JDBC lets a programmer writes it once and run it anywhere.

What Does JDBC Do?


Simply put, JDBC TABLE C makes it possible to do three things Establish a connection with a database Send SQL statements Process the results JDBC Driver Types The JDBC drivers that we are aware of this time fit into one of four categories JDBC-ODBC Bridge plus ODBC driver JDBC-Net pure java driver Native-protocol pure Java driver

An individual database system is accessed via a specific JDBC driver that implements the java.sql.Driver interface. Drivers exist for nearly all-popular RDBMS systems, through few are available for free. Sun bundles a free JDBC-ODBC bridge driver with the JDK to allow 26

access to a standard ODBC,data sources, such as a Microsoft Access database, Sun advises against using the bridge driver for anything other than development and very limited development. JDBC drivers are available for most database platforms, from a number of vendors and in a number of different flavours. There are four driver categories

What is JDBC?
Java Database Connectivity (JDBC) is a programming framework for Java developers writing programs that access information stored in databases, spreadsheets, and flat files. JDBC is commonly used to connect a user program to a "behind the scenes" database, regardless of what database management software is used to control the database. JDBC Architecture Two-tier and three-tier Processing Models The JDBC API supports both two-tier and three-tier processing models for database access.

Fig: 2.6.1 JDBC Two-tier Architecture In the two-tier model, a Java applet or application talks directly to the data source. This requires a JDBC driver that can communicate with the particular data source being accessed. A user's commands are delivered to the database or other data source, and the results of those statements are sent back to the user. The data source 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 data source as the server. The network can be an intranet, which, for example, connects employees within a corporation, or it can be the Internet.

27

In the three-tier model, commands are sent to a "middle tier" of services, which then sends the commands to the data source. The data source processes the commands 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 it simplifies the deployment of applications. Finally, in many cases, the three-tier architecture can provide performance advantages.

Fig: 2.6.2 JDBC Three-tier Architecture

JDBC API
The JDBC API lets you invoke SQL commands from Java programming language methods. You use the JDBC API in an enterprise bean when you override the default container-managed persistence or have a session bean access the database. With containermanaged persistence, database access operations are handled by the container, and your enterprise bean implementation contains no JDBC code or SQL commands. You can also use the JDBC API from a servlet or JSP page to access the database directly without going through an enterprise bean. The JDBC API has two parts: an application-level interface used by the application components to access a database, and a service provider interface to attach a JDBC driver to the J2EE platform. JDBC accomplishes its goals through a set of Java interfaces, each implemented differently by individual vendors. The set of classes that implement the JDBC interfaces for a 28

particular database engine is called a JDBC driver. In building a database application, you do not have to think about the implementation of these underlying classes at all; the whole point of JDBC is to hide the specifics of each database and let you worry about just your application. shows the JDBC classes and interfaces.

Fig: 2.6.3 JDBC classes and interfaces.

The API interface is made up of 4 main interfaces


java.sql Driver Manager java. sql .Connection java. sql. Statement java.sql.Resultset

In addition to these, the following support interfaces are also available to the developer
java.sql.Callablestatement java. sql. DatabaseMetaData java.sql.Driver java. sql. PreparedStatement 29

java. sql .ResultSetMetaData java. sql. DriverPropertymfo java.sql.Date java.sql.Time java. sql. Timestamp java.sql.Types java. sql. Numeric

Application Areas
JDBC has been designed and implemented for use in connecting to databases. Fortunately, JDBC has made no restrictions, over and above the standard Java security mechanisms, for complete systems. To this end, a number of overall system configurations are feasible for accessing databases. Java application which accesses local database Java applet accesses server-based database Database access from an applet via a stepping stone Using a JDBC driver Java Software has defined the following driver categorization system:

Type 1
These drivers use a bridging technology to access a database. The JDBC-ODBC bridge that comes with the JDK 1.1 is a good example of this kind of driver. It provides a gateway to the ODBC API. Implementations of that API in turn do the actual database access. Bridge solutions generally require software to be installed on client systems, meaning that they are not good solutions for applications that do not allow you to install software on the client.

Type 2
30

The type 2 drivers are native API drivers. This means that the driver contains Java code that calls native C or C++ methods provided by the individual database vendors that perform the database access. Again, this solution requires software on the client system.

Type 3
Type 3 drivers provide a client with a generic network API that is then translated into database specific access at the server level. In other words, the JDBC driver on the client uses sockets to call a middleware application on the server that translates the client requests into an API specific to the desired driver. As it turns out, this kind of driver is extremely flexible since it requires no code installed on the client and a single driver can actually provide access to multiple databases.

Type 4
Using network protocols built into the database engine, type 4 drivers talk directly to the database using Java sockets. This is the most direct pure Java solution. In nearly every case, this type of driver will come only from the database vendor. Regardless of data source location, platform, or driver (Oracle, Microsoft, etc.), JDBC makes connecting to a data source less difficult by providing a collection of classes that abstract details of the database interaction. Software engineering with JDBC is also conducive to module reuse. Programs can easily be ported to a different infrastructure for which you have data stored (whatever platform you choose to use in the future) with only a driver substitution. As long as you stick with the more popular database platforms (Oracle, Informix, Microsoft, MySQL, etc.), there is almost certainly a JDBC driver written to let your programs connect and manipulate data. You can download a specific JDBC driver from the manufacturer of your database management system (DBMS) or from a third party (in the case of less popular open source products). The JDBC driver for your database will come with specific instructions to make the class files of the driver available to the Java Virtual Machine, which your program is going to run. JDBC drivers use Java's built-in DriverManager to open and access a database from within your Java program. To begin connecting to a data source, you first need to instantiate an object of your JDBC driver. This essentially requires only one line of code, a command to the DriverManager, telling the Java Virtual Machine to load the bytecode of your driver into memory, where its methods will be available to your program. The String parameter below is the fully qualified class name of the driver you are using for your platform combination: 31

Class.forName ("org.gjt.mm.mysql.Driver").newInstance ()

Connecting to a database
In order to connect to a database, you need to perform some initialization first. Your JDBC driver has to be loaded by the Java Virtual Machine classloader, and your application needs to check to see that the driver was successfully loaded. We'll be using the ODBC bridge driver, but if your database vendor supplies a JDBC driver, feel free to use it instead. To connect to the database, we create a string representation of the database. We take the name of the datasource from the command line, and attempt to connect as user "dba", whose password is "sql". // Create a URL that identifies database String url = "jdbc:odbc:" + args[0]; // Now attempt to create a database connection Connection db_connection = DriverManager.getConnection (url, "dba", "sql"); As you can see, connecting to a database doesn't take much code. Executing database queries In JDBC, we use a statement object to execute queries. A statement object is responsible for sending the SQL statement, and returning a set of results, if needed, from the query. Statement objects support two main types of statements - an update statement that is normally used for operations which don't generate a response, and a query statement that returns data. // create a statement to send SQL Statement db_statement = db_connection.createStatement (); Once you have an instance of a statement object, you can call its executeUpdate and executeQuery methods. To illustrate the executeUpdate command, we'll create a table that stores information about employees. // Create a simple table, which stores an employee ID and name db_statement.executeUpdate ("create table employee { int id, char(50) name };"); 32

// Insert an employee, so the table contains data db_statement.executeUpdate ("insert into employee values (1, 'John Doe');"); // Commit changes db_connection.commit(); Now that there's data in the table, we can execute queries. The response to a query will be returned by the executeQuery method as a ResultSet object. ResultSet objects store the last response to a query for a given statement object. Instances of ResultSet have methods following the pattern of getXX where XX is the name of a data type. Such data types include numbers (bytes, ints, shorts, longs, doubles, big-decimals), as well as strings, booleans, timestamps and binary data. // Execute query ResultSet result = db_statement.executeQuery ("select * from employee"); // While more rows exist, print them While (result.next ()) { // Use the getInt method to obtain emp. id System.out.println ("ID : " + result.getInt("ID")); // Use the getString method to obtain emp. name System.out.println ("Name: " + result.getString ("Name")); System.out.println (); }

JDBC-ODBC Bridge
If possible use a Pure Java JDBC driver instead of the Bridge and an ODBC driver. This completely eliminates the client configuration required by ODBC.It also eliminates the potential that the Java VM could be corrupted by an error in the native code brought in by the Bridge(that is, the Bridge native library, the ODBC driver manager library, library, the ODBC driver library, and the database client library) 33

What is the JDBC-ODBE Bridge?


The JDBC-ODBC Bridge is a Jdbc driver, which implements JDBC operations by translating them into ODBC operations. To ODBC it appears as a normal application program. The Bridge is implemented as the sun.jdbc.odbc Java package and contains a native library used to access ODBC.The Bridge is joint development of Intersolv and Java Soft

2.7 INTRODUCTION TO MYSQL


An update to MySQL 5.5 that brings new tools and updates existing features is now available for MySQL Enterprise edition customers, the company said on Tuesday. MySQL Backup allows users to backup MySQL databases on a full, partial or incremental basis, as well as supporting Point-in-Time recovery and backup compression. Oracle said that it has also improved its support system by integrating support for MySQL customers with its MyOracle Support centre. MySQL Enterprise Edition enables you to deliver high performance, scalable Online Transaction Processing (OLTP) database applications. It is a fully integrated transaction-safe, ACID compliant database. It includes full commit, rollback, crash recovery and row level locking capabilities. Database Partitioning allows you to improve performance and management of very large database environments. MySQL Enterprise Edition includes:

MySQL Enterprise Backup


MySQL Enterprise Backup performs online "Hot" backups of your databases. It supports full, incremental and partial backups, Point-in-Time Recovery and backup compression. MySQL Enterprise Backup is the ideal solution for backing up MySQL databases .

Backup

34

MySQL Enterprise Backup performs online "Hot", non-blocking backups of your MySQL databases. Full backups can be performed on all InnoDB data, while MySQL is online, without interrupting queries or updates. In addition, incremental backups are supported where only data that has changed from a previous backup is backed up. Also partial backups are supported when only certain tables or tablespaces need to be backed up.

Download Whitepaper "MySQL Enterprise Backup - Fast, Consistent, Online Backups" Restore
MySQL Enterprise Backup restores your data from a full backup. Consistent Pointin-Time Recovery (PITR) enables DBAs to perform a restore to a specific point in time. Using MySQL backups and binlog, DBAs can also perform fine-grained roll forward recovery to a specific transaction. A partial restore allows recovery of targeted tables or tablespaces. Plus, DBAs can restore backups to a separate location, or create clones for fast replication setup or administration.

Compression
MySQL Enterprise Backup supports creating compressed backup files, typically reducing backup size from 70% to over 90% when compared to the size of actual database files, reducing storage and other costs.

MySQL Enterprise Monitor


The MySQL Enterprise Monitor continuously monitors your databases and alerts you to potential problems before they impact your system. It's like having a "Virtual DBA Assistant" at your side to recommend best practices to eliminate security vulnerabilities, improve replication, optimize performance and more. As a result, the productivity of your developers, DBAs and System Administrators is improved significantly. Improved Monitoring for MySQL Enterprise Edition and MySQL Cluster CGE The MySQL Enterprise Monitor continuously monitors your MySQL servers and alerts you to potential problems before they impact your system. Its like having a "Virtual DBA Assistant" at your side to recommend best practices to eliminate security vulnerabilities, improve replication, optimize performance and more. As a result, the productivity of your developers, DBAs and System Administrators is improved significantly. Download the White Paper: MySQL Enterprise Monitor, Virtual MySQL DBA Assistant

35

By scaling-out with MySQL, we were recently able to add 3 million new users in less than a month. We chose MySQL Enterprise for two reasons: first, access to super-sharp support technicians who clearly know what they're doing and can help us overcome our toughest problems. Second, the new MySQL Enterprise monitoring tools give us unprecedented views into real-time and historical DB performance -to troubleshoot problems, balance workloads, and predict future resource requirements.

MySQL Enterprise Monitor provides you with the following benefits Get a consolidated view into the health of all your MySQL databases Monitor over 600 MySQL and operating system variables with the Enterprise Dashboard Monitor MySQL sessions, connections, replication latency and more with 30+ graphs Improve application performance with the MySQL Query Analyzer Gain immediate visibility into your replication topologies through auto detection and grouping View real time master/slave performance using the MySQL Replication Monitor Customize the MySQL Enterprise Monitor for your specific needs using customization options Get notified of issues before they become costly outages using threshold driven alerts Use single sign-on capabilities through LDAP integration Resolve problems faster by using the option to collect and package server specific MySQL, OS and query diagnostic for MySQL Support New! MySQL Cluster Graphs and Advisor provide automated, real-time monitoring of MySQL Cluster data nodes and best practice advice New! MySQL and Operating System Graphs provide better visual monitoring of key system resources like database transactions and binlog cache efficiency for real-time and historical trending purposes. The MySQL Enterprise Monitor is a distributed web application that is deployed within the safety of your firewall. It is comprised of a centralized Service Manager and lightweight Service Agent this is installed on each monitored MySQL server.

White Papers
MySQL Enterprise Monitor: What's New 36

MySQL Enterprise Monitor: Business Overview

Self-running Demo
Monitor your MySQL Servers Monitor MySQL Replication and Scale Out

On Demand Webinars
Improve application performance with the MySQL Enterprise Monitor and the MySQL Query Analyzer Scale-Out & Replication Best Practices for High-Growth Business

Frequently Asked Questions (FAQ)


MySQL Enterprise Monitor MySQL Query Analyzer

MySQL Query Analyzer


The MySQL Query Analyzer helps you improve application performance by monitoring query performance and accurately pinpointing SQL code that is causing a slow down. Queries are presented in an aggregated view across all databases, so you can filter for specific query problems and analyze your most expensive code.

Improving Your SQL Query Performance Try It Now


The MySQL Query Analyzer helps you improve application performance by monitoring query performance and accurately pinpointing SQL code that is causing a slow down. With the new MySQL Connector Plug-ins, you can optimize performance for your Java and .Net applications more efficiently by communicating directly with the Query Analyzer. Queries are presented in an aggregated view across all MySQL servers so you can filter for specific query problems and analyze your most expensive code. With the MySQL Query Analyzer, you can improve the SQL code during active development, and continuously monitor and tune the queries in production. Download the White Paper: MySQL Query Analyzer MySQL Query Analyzer provides you with the following benefits 37

New! Perform in-depth cause analysis using MySQL Connector Plug-ins New! Filter for specific query problems like full table scans and bad index using advanced global search options Visualize query activity to gain further performance insight beyond query statistics Filter queries during periods of performance degradation for easier and quicker troubleshooting Continuously monitor queries running against all your MySQL Servers Quickly identify problem queries that impact the throughput of your applications View query details in drill down panels to analyze the root cause for performance degradation Fine-tune the problematic SQL code to regain peak performance

The MySQL Query Analyzer saves you time and effort in finding and fixing problem queries by providing: New! Searchable graphs and intelligent installation options for better usability Clickable query activity graphs for analyzing queries during usage spikes in key systems resources SQL warning and error counts for each query Aggregated view into query execution counts, run time, result sets across all MySQL servers with no dependence on MySQL logs or SHOW PROCESSLIST Sortable views by all monitored statistics Searchable and sortable queries by query type, content, server, database, date/time, interval range, and "when first seen" Historical and real-time analysis of all queries across all servers Drill downs into sampled query execution statistics, fully qualified with variable substitutions, and EXPLAIN results MySQL Workbench MySQL Workbench is a unified visual tool for database architects, developers, and DBAs. It provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, and much more. MySQL Workbench is available on Windows, Linux and Mac OS.

2.8 INTRODUCTION TO TOMCAT


38

Tomcat is an open source application server based on Java technology. In a nutshell, it serves Java Servlets and Java Server Pages (JSP) technology on a Website. A Tomcat worker is a Tomcat instance that is waiting to execute Servlets on behalf of some web server. For example, we can have a web server such as Apache forwarding servlet requests to Tomcat process (the worker) running behind it.

Tomcat Security Scope


As stated in the Servlet specification, Tomcat security is primarily concerned with:

Authentication: The means by which communication entities prove their identities to one
another.

Access Control: The means by which request for resources are limited to users or programs. Integrity: The means used to prove that information has not been modified while in transit. Confidentiality: The means used to ensure that information is understandable only by
authorized users. Tomcat security is user role-based and web container (some what web application) centric.

FIG: 2.8.1 Apache Tomcat Server

2.9 HARDWARE AND SOFTWARE REQUIREMENTS


39

Hard Ware Requirements


Processor Ram Cache Hard disk : : : : Intel I3 2GB 512MB 500GB

Computer ,keyboard, earphone

Soft Ware Requirements


Operating System Techniques Data Base Front End : : : : Windows 2007. JDK 1.5 My SQL JSP

40

CHAPTER-III MODULES DESCRIPTION

41

This project mainly contains 2 modules like Invigilator module VCP module

3.1 INVIGILATOR MODULE:


First Invigilator should make the VCP candidates to take the seats, then the invigilator should type the administrator password which will be given by particular company or institute. Invigilator should assign IDS to the VCP candidates and he/she should help the the VCP candidates. STEPS FOR INVIGILLATOR: Make the VCP candidates to sit in an order. Assign the IDS. Enter the password.

3.2 VCP MODULE:


Enter the ID in the page which is assigned bi Invigilator then listen to the instruction, follow the instruction select the required option through keyboard and continue the process. After completion of exam if you wish to known the results press the specified button in the keyboard. STEPS FOR VCP: Enter the id. Listen to the instructions. Write the exam.

42

CHAPTER-IV SYSYEM ANALYSIS

43

4.1 ANALYSIS OF PROJECT


To provide flexibility to the users, the interfaces have been developed that are accessible through a browser. The GUIS at the top level have been categorized as Administrative user interface The operational or generic user interface

The administrative user interface concentrates on the consistent information that is practically, part of the organizational activities and which needs proper authentication for the data collection. These interfaces help the administrators with all the transactional states like Data insertion, Data deletion and Date updation along with the extensive data search capabilities. The operational or generic user interface helps the end users of the system in transactions through the existing data and required services. The operational user interface also helps the ordinary users in managing their own information in a customized manner as per the included flexibilities

INPUT & OUTPOUT REPRESENTETION


Input design is a part of overall system design. The main objective during the input design is as given below: To produce a cost-effective method of input. To achieve the highest possible level of accuracy. To ensure that the input is acceptable and understood by the user .

INPUT STAGES
The main input stages can be listed as below: Data recording Data transcription Data conversion Data verification Data control Data transmission Data validation Data correction 44

INPUT TYPES

It is necessary to determine the various types of inputs. Inputs can be categorized as follows: External inputs, which are prime inputs for the system. Internal inputs, which are user communications with the system. Operational, which are computer departments communications to the system? Interactive, which are inputs entered during a dialogue.

INPUT MEDIA
At this stage choice has to be made about the input media. To conclude about the input media consideration has to be given to; Type of input Flexibility of format Speed Accuracy Verification methods Rejection rates Ease of correction Storage and handling requirements Security Easy to use Portability

Keeping in view the above description of the input types and input media, it can be said that most of the inputs are of the form of internal and interactive. As Input data is to be the directly keyed in by the user, the keyboard can be considered to be the most suitable input device.

OUTPUT DESIGN
In general are: External Outputs whose destination is outside the organization. Internal Outputs whose destination is with in organization and they are the Users main interface with the computer. Outputs from computer systems are required primarily to communicate the results of processing to users. They are also used to 45

provide a permanent copy of the results for later consultation. The various types of outputs Operational outputs whose use is purely with in the computer department. Interface outputs, which involve the user in communicating directly with the system.

OUTPUT DEFINITION
The outputs should be defined in terms of the following points: Type of the output Content of the output Format of the output Location of the output Frequency of the output Volume of the output Sequence of the output

It is not always desirable to print or display data as it is held on a computer. It should be decided as which form of the output is the most suitable. For Example Will decimal points need to be inserted Should leading zeros be suppressed.

OUTPUT MEDIA
In the next stage it is to be decided that which medium is the most appropriate for the output. The main considerations when deciding about the output media are: The suitability for the device to the particular application. The need for a hard copy. The response time required. The location of the users The software and hardware available.

Keeping in view the above description the project is to have outputs mainly coming under the category of internal outputs. The main outputs desired according to the requirement specification are: The outputs were needed to be generated as a hard copy and as well as queries to be viewed on the screen. Keeping in view these outputs, the format for the output is taken from 46

the outputs, which are currently being obtained after manual processing. The standard printer is to be used as output media for hard copies.

Stages in SDLC
Requirements gathering Analysis Design Coding Testing Maintenance

Requirements Gathering stage


The requirements gathering process takes as its input the goals identified in the highlevel requirements section of the project plan. Each goal will be refined into a set of one or more requirements. These requirements define the major functions of the intended application, define operational data areas and reference data areas, and define the initial data entities. Major functions include critical processes to be managed, as well as mission critical inputs, outputs and reports. A user class hierarchy is developed and associated with these major functions, data areas, and data entities. Each of these definitions is termed a Requirement. Requirements are identified by unique requirement identifiers and, at minimum, contain a requirement title and textual description.

47

FIG: 4.1.1 Requirements gathering These requirements are fully described in the primary deliverables for this stage: the Requirements Document and the Requirements Traceability Matrix (RTM). The requirements document contains complete descriptions of each requirement, including diagrams and references to external documents as necessary. Note that detailed listings of database tables and fields are not included in the requirements document. The title of each requirement is also placed into the first version of the RTM, along with the title of each goal from the project plan. The purpose of the RTM is to show that the product components developed during each stage of the software development lifecycle are formally connected to the components developed in prior stages. In the requirements stage, the RTM consists of a list of high-level requirements, or goals, by title, with a listing of associated requirements for each goal, listed by requirement title. In this hierarchical listing, the RTM shows that each requirement developed during this stage is formally linked to a specific product goal. In this format, each requirement can be traced to a specific product goal, hence the term requirements traceability. The outputs of the requirements definition stage include the requirements document, the RTM, and an updated project plan. Feasibility study is all about identification of problems in a project. No. of staff required to handle a project is represented as Team Formation, in this case only modules are individual tasks will be assigned to employees who are working for that project. 48

Project Specifications are all about representing of various possible inputs submitting to the server and corresponding outputs along with reports maintained by administrator

Analysis Stage
The planning stage establishes a bird's eye view of the intended software product, and uses this to establish the basic project structure, evaluate feasibility and risks associated with the project, and describe appropriate management and technical approaches.

FIG: 4.1.2 Analysis stage The most critical section of the project plan is a listing of high-level product requirements, also referred to as goals. All of the software product requirements to be developed during the requirements definition stage flow from one or more of these goals. The minimum information for each goal consists of a title and textual description, although additional information and references to external documents may be included. The outputs of the project planning stage are the configuration management plan, the quality assurance plan, and the project plan and schedule, with a detailed listing of scheduled activities for the upcoming Requirements stage, and high level estimates of effort for the out stages.

Designing Stage
The design stage takes as its initial input the requirements identified in the approved requirements document. For each requirement, a set of one or more design elements will be produced as a result of interviews, workshops, and/or prototype efforts. Design elements describe the desired software features in detail, and generally include functional hierarchy diagrams, screen layout diagrams, tables of business rules, business process diagrams, pseudo code, and a complete entity-relationship diagram with a full data dictionary. These design 49

elements are intended to describe the software in sufficient detail that skilled programmers may develop the software with minimal additional input.

FIG: 4.1.3 Design stage When the design document is finalized and accepted, the RTM is updated to show that each design element is formally associated with a specific requirement. The outputs of the design stage are the design document, an updated RTM, and an updated project plan.

Development (Coding) Stage


The development stage takes as its primary input the design elements described in the approved design document. For each design element, a set of one or more software artifacts will be produced. Software artifacts include but are not limited to menus, dialogs, data management forms, data reporting formats, and specialized procedures and functions. Appropriate test cases will be developed for each set of functionally related software artifacts, and an online help system will be developed to guide users in their interactions with the software.

50

FIG: 4.1.4 Development stage The RTM will be updated to show that each developed artifact is linked to a specific design element, and that each developed artifact has one or more corresponding test case items. At this point, the RTM is in its final configuration. The outputs of the development stage include a fully functional set of software that satisfies the requirements and design elements previously documented, an online help system that describes the operation of the software, an implementation map that identifies the primary code entry points for all major system functions, a test plan that describes the test cases to be used to validate the correctness and completeness of the software, an updated RTM, and an updated project plan.

Integration & Test Stage


During the integration and test stage, the software artifacts, online help, and test data are migrated from the development environment to a separate test environment. At this point, all test cases are run to verify the correctness and completeness of the software. Successful execution of the test suite confirms a robust and complete migration capability. During this stage, reference data is finalized for production use and production users are identified and linked to their appropriate roles. The final reference data (or links to reference data source files) and production user list are compiled into the Production Initiation Plan.

51

FIG: 4.1.5 Integration and testing stage The outputs of the integration and test stage include an integrated set of software, an online help system, an implementation map, a production initiation plan that describes reference data and production users, an acceptance plan which contains the final suite of test cases, and an updated project plan.

Installation & Acceptance Test


During the installation and acceptance stage, the software artifacts, online help, and initial production data are loaded onto the production server. At this point, all test cases are run to verify the correctness and completeness of the software. Successful execution of the test suite is a prerequisite to acceptance of the software by the customer. After customer personnel have verified that the initial production data load is correct and the test suite has been executed with satisfactory results, the customer formally accepts the delivery of the software.

52

FIG: 4.1.6 Installation and acceptance stage The primary outputs of the installation and acceptance stage include a production application, a completed acceptance test suite, and a memorandum of customer acceptance of the software. Finally, the PDR enters the last of the actual labor data into the project schedule and locks the project as a permanent project record. At this point the PDR "locks" the project by archiving all software items, the implementation map, the source code, and the documentation for future reference.

Maintenance
Outer rectangle represents maintenance of a project, Maintenance team will start with requirement study, understanding of documentation later employees will be assigned work and they will under go training on that particular assigned category.For this life cycle there is no end, it will be continued so on like an umbrella (no ending point to umbrella stick s).

SYSTEM ARCHITECTURE
53

Architecture flow
Below architecture diagram represents mainly flow of requests from users to database through servers. In this scenario overall system is designed in three tires separately using three layers called presentation layer, business logic layer and data link layer. This project was developed using 3-tire architecture.

User

SERVER
Request Response

Data Base

FIG: 4.1.7 System architecture

54

4.2 REQUIREMENTS GATHERING


Purpose
Software implementation to post the ads on the website so that consumers buy the products and forward to their friends, by that they will get incentives. Intended Audience and Reading Suggestions Intended for Project Managers, Developers, End users and Quality Assurance engineers. Suggested reading the document would be overall document description, product based information gathering followed by Infrastructure requirement .

Definitions, Acronyms and Abbreviations


Std IEEE SRS HMM PC JRE UML JFC GUI AWT OMG MOF CORBA Standard. Institute of Electrical and Electronic Engineers. Software Requirement Specification. Hidden Markov Model Personal Computer JAVA Runtime Environment. Unified Modeling Language. JAVA Foundation Classes. Graphical User Interface. Abstract Window Toolkit. Object Management Group. Meta-Object Facility meta model. Common Object Request Broker Architecture.

Functional Requirement Information flow


Data flow diagrams describe the process of availing the services by the customers. 55

Process Description
A sample process description is based on the process information.

Data Construct Specification


Data constructs are prepared for each piece of the data referenced in the data flow diagrams and process descriptions.

Data Dictionary
The data dictionary supplies information such as data type, how the data is used, required accuracy, life span of data and data flows for the system

Performance Requirement
The static and dynamic numerical requirements placed on the software are described in this section.Performance depends on the size of the input file .

Logical Database Requirement


Credit Card Fraud Detection uses MY-SQL as database .

Software System Attributes


The attributes that govern the system design are reliability, security, maintainability and portability.

Portability
The system its portable to any platform.

Maintainability
The system would be designed as an open system i.e. new methods can be added easily. The system will have complete commented documentation .

Security
Authorization is needed to access the system to prevent malicious or accidental access to creditcard.software Users will be provided with a user name and password.

Reliability
The system should produce reliable results.

Testability
Effort needed to test to ensure performs as intended 56

Usability
Effort required learning, operating, preparing input, and interpreting output

Reusability
Extent to which it can be reused in another application

Interoperability
Effort needed to couple one system with another

Security
Specify the factors that would protect the software from accidental or malicious access, use, modification, destruction, or disclosure. requirements in this area could include the need to: Utilize certain cryptographic techniques Keep specific log or history data sets Assign certain functions to different modules Restrict communications between some areas of the program Specific

User Class
Some systems provide different sets of functions to different classes of users.

Objects
Objects are real-world entities that have a counterpart within the system. Associated with each object is a set of attributes and functions. These functions are also called services, methods, or processes. Note that sets of objects may share attributes and services. These are grouped together as classes.

Feature
A feature is an externally desired service by the system that may require a sequence of inputs to effect the desired result. Each feature is generally described in as sequence eof stimulus-response pairs.

Stimulus
Some systems can be best organized by describing their functions in terms of stimuli.

Response

57

Some systems can be best organized by describing their functions in support of the generation of a response.

4.3 FEASIBILITY STUDY


Preliminary investigation examines project feasibility; the likelihood the system will be useful to the organization. The main objective of the feasibility study is to test the Technical, Operational and Economical feasibility for adding new modules and debugging old running system. All systems are feasible if they are given unlimited resources and infinite time. There are aspects in the feasibility study portion of the preliminary investigation: Technical Feasibility Operation Feasibility Economical Feasibility

TECHNICAL FEASIBILITY
The technical issue usually raised during the feasibility stage of the investigation includes the following: Does the necessary technology exist to do what is suggested? Do the proposed equipments have the technical capacity to hold the data required to use the new system? Will the proposed system provide adequate response to inquiries, regardless of the number or location of users? Can the system be upgraded if developed? Are there technical guarantees of accuracy, reliability, ease of access and data security?

OPERATIONAL FEASIBILITY User-friendly


Customer will use the forms for their various transactions i.e. for adding new routes, viewing the routes details. Also the Customer wants the reports to view the various transactions based on the constraints. Theses forms and reports are generated as user-friendly to the Client.

Reliability
The package wills pick-up current transactions on line. Regarding the old transactions, User will enter them in to the system . 58

Security
The web server and database server should be protected from hacking, virus etc

Portability
The application will be developed using standard open source software (Except Oracle) like Java, tomcat web server, Internet Explorer Browser etc these software will work both on Windows and Linux o/s. Hence portability problems will not arise.

Availability
This software will be available always.

Maintainability
The system called the ewheelz uses the 2-tier architecture. The 1st tier is the GUI, which is said to be front-end and the 2nd tier is the database, which uses My-Sql, which is the back-end. The front-end can be run on different systems (clients). The database will be running at the server. Users access these forms by using the user-ids and the passwords.

ECONOMIC FEASILITY
The computerized system takes care of the present existing systems data flow and procedures completely and should generate all the reports of the manual system besides a host of other management reports. It should be built as a web based application with separate web server and database server. This is required as the activities are spread through out the organization customer wants a centralized database. Further some of the linked transactions take place in different locations. Open source software like TOMCAT, JAVA, MYSQL and LINUX is used to minimize the cost for the Customer.

59

60

CHAPTER-V SYSTEM DESIGN

5.1 INTRODUCTION TO DATA FLOW DIAGRAMS


61

Data flow diagrams (DFDs) were introduced and popularized for structured analysis and design. DFDs show the flow of data from external entities into the system, following figures shows how the data moved from one process to another, as well as its logical storage. The symbols are:

Squares representing external entities, which are sources or destination of data.

Process

Arrows representing the data flows, which can either be electronic data or physical items

Open-ended rectangles representing data stores, such as databases. It is the permanent database.

Temporary database.

Weak entity

5.2 DATA FLOW DIAGRAM


INVIGILATO R VCP EXAM 62


Fig: 5.2.1 Context Diagram of Project

5.3 INTRODUCTION TO UML


The unified modeling language allows the software engineer to express an analysis model using the modeling notation that is governed by a set of syntactic semantic and pragmatic rules. A UML system is represented using five different views that describe the system from distinctly different perspective. Each view is defined by a set of diagram, which is as follows.

User model view


This view represents the system from the users perspective. The analysis representation describes a usage scenario from the end-users perspective.

Structural model view


In this model the data and functionality are arrived from inside the system. This view models the static structures.

Behavioral model view


It represents the dynamic of behavioral as part of the system, depicting the interactions of collection between various structural elements described in the user model and structural model view.

Implementation model view


In this the structural and behavioral as part of the system are represented as they are to be built.

Environmental model view


63

In this the structural and behavioral aspects of the environment in which the system is to be implemented are to be represented. UML is specifically constructed through two different domains they are

UML Analysis the modeling, which focuses on the user model and structural model views of the system? UML design modeling, which focuses on the behavioral modeling, implementation modeling and environmental model views. Use Case Diagrams represents the functionality of the system from a users point of view. UseCases are used during requirements elicitation and analysis to represent the functionality of the system. UseCase focus on the system from external point of view. Actors are external entities that interact with the system.Examples of actors include users like administrator, bank customer..etc., or another system like central database

5.4 UML DIAGRAMS


UML is a notation that resulted from the unification of Object Modelling Technique and Object Oriented Software Technology .UML has been designed for broad range of application. Hence; it provides constructs for a broad range of systems and activities. An Overview of UML in five notations

5.4.1. Use case diagrams


Use cases are used during requirements elicitation and analysis To represent the functionality of the system.Use cases focus on the behaviour of the system from the external point of view.The actor are outside the boundary of the system,whereas the use cases are inside the boundary of the system.

5.4.2. Class diagrams


64

Class diagrams to describe the structure of the system. Classes are abstraction that specify the common structure and behaviour of a set of objects. Class diagrams describe the system in terms of objects, classes, attributes, operations and their associations.

5.4.3. Sequence diagrams


Sequence diagrams are used to formalize the behaviour of the system and to visualize the communication among objects. They are useful for identifying additional objects that participate in the use cases. A Sequence diagram represents the interaction that take place among these objects.

5.4.4. Statechart diagrams


State chart diagrams describe the behaviour of an individual object as a number of states and transitions between these states. A state represents a particular set of values for an object. The sequence diagram focuses on the messages exchanged between objects, the state chart diagrams focuses on the transition between states.

5.4.5Activity diagrams
An activity diagram describes a system in terms of activities. Activities are states that represent the execution of a set of operations. Activity diagrams are similar to flowchart diagram and data flow.

RATIONAL ROSE
Rational Rose is an object-oriented Unified Modeling Language (UML) software design tool intended for visual modeling and component construction of enterprise-level software applications. In much the same way a theatrical director blocks out a play, a software designer uses Rational Rose to visually create (model) the framework for an application by blocking out classes with actors (stick figures), use case elements (ovals), objects (rectangles) and messages/relationships (arrows) in a sequence diagram using drag-and-drop symbols. Rational Rose documents the diagram as it is being constructed and then generates code in the designer's choice of C++, Visual Basic, Java, Oracle8, CORBA or Data Definition Language. Two popular features of Rational Rose are its ability to provide iterative development and round-trip engineering. Rational Rose allows designers to take advantage of iterative 65

development because the new application can be created in stages with the output of one iteration becoming the input to the next.Then, as the developer begins to understand how the components interact and makes modifications in the design, Rational Rose can perform what is called "round-trip engineering" by going back and updating the rest of the model to ensure the code remains consistent.Rational Rose is extensible, with downloadable add-ins and thirdparty partner applications.

66

UML DIAGRAMS

invigilator password : char name : string enter password() announce time() announce result()

VCP name : string id : int write exam() get results() enter id()

question paper qid : int

result marks : int

Fig: 5.4.1 Class Diagram

<<include>> invigilator login1 authentication

login2

vcp(candidate)

instructions

write exam

results

67

Fig: 5.4.2 Use case Diagram

administrator give password

invigillator

login1

VCP candidate

login2

exam

result

confrim password

login with administrator password enter id

write the exam view of questions go for results results declareations

Fig: 5.4.3 Sequence Diagram

68

1: give the password administ rator 2: confrimation of password invigillato r

3: login with adminstrator password login1

login2

4: enter id 8: view for all VCP results VCP candidate

result 7: view for results

exam

5: write exam 6: view of questions

Fig: 5.4.4 Collaboration Diagram

69

5.5 DATABASE DESIGN


DATA DICTIONARY
A data dictionary is a collection of descriptions of the data objects or items in a data model for the benefit of the programmer and others who need to refer to them. A first step in analyzing a system of objects with which users interact is to identify each object and its relationship to other objects. This process is called data modeling results in a picture of object relationships. After each data object or item in is given a descriptive name, its relationship is described the type of data is described, possible predefined values are listed and a brief textual description is provided. This collection can be organized for reference in to a book called data dictionary. When developing programs that use the data model, a data dictionary can be consulted to understand where a data item fits in the structure, what values it may contain and basically what the data item means in real world terms. A data dictionary is a set of Meta data that contain definitions and representations of data elements with in the context of a DBMS a data dictionary is a database in its own dictionary.

NORMALIZATION
The process of decomposing relations with anomalies to produce smaller, well structured relation.A normal form is a state of a relation that results from applying simple rules regarding functional decencies or relationships between attributes to that relation. 70

First normal form


Any multi-valued attribute (also called repeating groups) has been removed, so there is a single value (possibly NULL). At the intersection of each row and column of the table.

Second normal form


Any partial functional decencies have been removed.

Third normal form


Any transitive decencies have been removed.

Boyce-code normal form


Any remaining anomalies that result from functional dependencies have been removed.

Fourth normal form


Any multi-valued dependencies have been removed.

Fifth normal form


Any remaining anomalies have been removed.

Primary key
A primary key is a key, which doesnt allow duplicate and NULL values

Unique key
This doesnt allow duplicate value and allows NULL.

Foreign key

71

A field of one table is depending up on the primary key of another table.

DATABASE TABLES TABLE 1:


Create table Sid(Sid varchar(20),q1 varchar(1),q2 varchar(1),q3 varchar(1),q3 varchar(1),q4 varchar(1),q5 varchar(1),q6 varchar(1),q7 varchar(10,q8 varchar(1),q8 varchar (1),q9 varchar(1));

FIELDNAME Sid q1 q2 q3 q4 q5 q6 q7 q8 q9

DATATYPE Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar

SIZE 20 1 1 1 1 1 1 1 1 1

72

Table 5.5.1: Table for Section A

TABLE 2: Create table sid1(sid1 varchar(20),q1 varchar(1),q2 varchar(1),q3 varchar(1),q3 varchar(1),q4 varchar(1),q5 varchar(1),q6 varchar(1),q7 varchar(10,q8 varchar(1),q8 varchar (1),q9 varchar(1));

FIELDNAME Sid1 q1 q2 q3 q4 q5 q6 q7 q8 q9

DATATYPE Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar

SIZE 20 1 1 1 1 1 1 1 1 1

73

Table 5.5.2: Table for Section B

TABLE 3: Create table Sid2(Sid2 varchar(20),q1 varchar(1),q2 varchar(1),q3 varchar(1),q3

varchar(1),q4 varchar(1),q5 varchar(1),q6 varchar(1),q7 varchar(10,q8 varchar(1),q8 varchar (1),q9 varchar(1));

74

FIELDNAME Sid2 q1 q2 q3 q4 q5 q6 q7 q8 q9

DATATYPE Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar

SIZE 20 1 1 1 1 1 1 1 1 1

Table 5.5.3: Table for Section C

75

TABLE 4: Create table Sid3(Sid3 varchar(20),q1 varchar(1),q2 varchar(1),q3 varchar(1),q3

varchar(1),q4 varchar(1),q5 varchar(1),q6 varchar(1),q7 varchar(10,q8 varchar(1),q8 varchar (1),q9 varchar(1))

FIELDNAME Sid3 q1 q2 q3 q4 q5 q6 q7 q8 q9

DATATYPE Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar

SIZE 20 1 1 1 1 1 1 1 1 1

Table 5.5.4: Table for Section D 76

TABLE 5: Create table question(Qid varchar(1),question varchar(1000),A varchar(1000),B

varchar(1000),C varchar(1000),Cans varchar(1000));

FIELDNAME Qid Question A B C Cans

DATATYPE Int Varchar Varchar Varchar Varchar Varchar

SIZE 1 1000 1000 1000 1000 1000

Table 5.5.5: Table for Questions TABLE 6: 77

Create table results(Sid varchar(20),question varchar(3),,A varchar(3),B varchar(3),C varchar(3),D varchar(3), Total varchar(3));

FIELDNAME Sid A B C D Total

DATATYPE Varchar Varchar Varchar Varchar Varchar Varchar

SIZE 20 3 3 3 3 3

Table 5.5.6: Table for Results

78

CHAPTER-VI SYSTEM TESTING AND RESULTS

79

6.1 TESTING
TESTING OBJECTIVES
Testing is a process of executing a program with the intent of finding an error. A good test has a high probability of finding an as yet undiscovered error. A successful test is one that uncovers an as yet undiscovered error The objective is to design tests that systematically uncover different classes of errors and do so with a minimum amount of time and effort. Testing cannot show the absence of defects, it can only show that software defects are present.

UNIT TESTING Interface


Number of input parameters should be equal to number of arguments. Parameter and argument attributes must match. Parameters passed should be in correct order. If module does I/O, File attributes should be correct. Open/Close statements must be correct. Format specifications should match I/O statements. Buffer Size should match record size. End of file condition should be handled. I/O errors should be handled. Any textual errors in output information must be checked. Local Data Structures (common source of errors!) Improper or inconsistent typing.

80

Erroneous initialization or default values. Incorrect variable names. Inconsistent date types. Overflow, underflow, address exceptions.

Boundary conditions and Independent path Error Handling


Error description unintelligible. Error noted does not correspond to error encountered. Error condition handled by system run-time before error handler gets control. Exception condition processing incorrect.

INTEGRATION TESTING

TOP DOWN INTEGRATION

Modules integrated by moving down the program design hierarchy. Can use depth first or breadth first top down integration Verifies major control and decision points early in design process. Top-level structure tested most. Depth first implementation allows a complete function to be implemented, tested and demonstrated. Can do depth first implementation of critical functions early. Top down integration forced (to some extent) by some development tools in programs with graphical user interfaces. BOTTOM UP INTEGRATION

Begin construction and testing with atomic modules (lowest level modules).Bottom up integration testing as its name implies begins construction and testing with atomic modules. Because modules are integrated from the bottom up, processing required for modules subordinate to a given level is always available and the need for stubs is eliminated. 81

VALIADATION TESTING
Validation testing is aims to demonstrate that the software functions in a manner that can be reasonably expected by the customer. This tests conformance the software to the Software Requirements Specification.

Validation Test Criteria


A set of black box test is to demonstrate conformance with requirements. To check that all functional requirements satisfied, all performance requirements achieved, documentation is correct and ' human-engineered', and other requirements are met (e.g. compatibility, error recovery, and maintainability).When validation tests fail it may be too late to correct the error prior to scheduled delivery. Need to negotiate a method of resolving deficiencies with the customer.

Configuration Review
An audit to ensure that all elements of the software configuration are properly developed catalogued and has all the necessary detail to support maintenance.

ALPHA AND BETA TESTING


It is difficult to anticipate how users will really use software. If there is one customer, a series of acceptance tests are conducted (by the customer) to enable the customer to validate all requirements. If software is being developed for use by multiple customers, cannot use acceptance testing. An alternative is to use alpha and beta testing to uncover errors . A customer conducts alpha testing at the developer's site. The customer uses the software with the developer 'looking over the shoulder' and recording errors and usage problems. Alpha testing conducted in a controlled environment.

82

Beta testing is conducted at one or more customer sites by end users. It is ' live ' testing in an environment not controlled by developer. The customer records and reports difficulties and errors at regular intervals .

SYSTEM TESTING
Software is only one component of a system. Software will be incorporated with other system components and system integration and validation test performance.

RECOVERY TESTING
Many systems need to be fault tolerant-processing faults must not cause overall system failure. Other systems require after a failure within a specified time. Recovery testing is the forced failure of the software in a variety of ways to verify that recovery is properly performed.

SECURITY TESTING
System with sensitive information or which have the potential to harm individuals can be target for improper or illegal use. This can include : Attempted penetration of the system by outside individuals for fun or personal gain. Disgruntled or dishonest employees. During security testing the tester plays the role of the individual trying to penetrate the system. Large range of methods: Attempt to acquire passwords through external clerical means. Use custom software to attack the system. Overwhelm the system with requests. Cause system errors and attempt to penetrate the system during recovery. Browse through insecure data. Given time and resources, the security of most systems can be breached .

PERFORMANCE TESTING
For real-time and embedded systems, functional requirements may be satisfied but performance problems make the system unacceptable. Performance testing checks the run-

83

time performance in the context of the integrated system Can be coupled with stress testing, May require special software instrumentation.

Testing under various software development Requirements Stage


The requirements documents are tested by disciplined inspection and review. The preparation of test plan, which should include: 1. Specification 2. Description of test precious 3. Test milestones 4. Test Schedule 5. Test data reduction 6. Evaluation criteria

Design Stage
Design products are tested by analysis, simulation, walkthrough and inspection. Test data for functions are generated. Test cases based on structure of system are generated.

Construction Stage
This stage includes the actual execution of code with test data. Code walkthrough and inspection are conducted. Static analysis, Dynamic analysis, Construction of test drivers, hair nesses and stubs are done. Control and management of test process is critical. All test sets, test results and test reports should be catalogued and stored.

Operation and Maintenance Stage


Modifications done to the software requires retesting this is termed regression testing. Changes at a given level will necessitate retesting at all levels below it .

Approaches
Two basics approaches 1. Black box or "Functional" analysis 84

2. White box or "Structural" analysis

BLACK BOX TESTING Boundary value analysis (Stress Testing)


In this method the input data is partitioned and data inside and at the boundary of each partition is tested.

Design based functional testing


Functional hierarchy is constructed. For each function at each level generate external, non-external and special output values. external, non-

external and special value test data are identified. Test data is identified such that it will

Cause-effect graphing
In this method the characteristic input stimuli (Causes), characteristic output classes (effects) are identified. The dependencies are identified using specification. These details are presented as directed graph. Test cases are chosen to test dependencies.

WHITE BOX TESTING Coverage-based testing


The Program is represented as control-flow graph. The paths are identified. Data are chosen to maximize paths executed under test conditions. For paths that are not always finite and those infeasible, Coverage metrics can be applied .

Complexity-based testing
The Cyclomatic Complexity is measured. The paths actually executed by program running on test data are identified and the actual complexity is set. A test set is devised which will drive actual complexity closer to Cyclomatic complexity.

Test Data Analysis


During Test Data Analysis The Goodness of the test data set" is taken into major consideration.

Statistical analysis and error seeding


85

Known errors are seeded into the code so that their placement is statistically similar to that of actual errors.

Mutation Analysis
It is assumed that a set of test data that can uncover all simple faults in a program is capable of detecting more complex faults. In mutation analysis a large number of simple faults, called mutation, are introduced in a program one at a time .The resulting changed versions of the test program are called mutates. Test data is then be constructed to cause these mutants to fail. The effectiveness of the test data set is measured by the percentage to mutants killed.

Test Results
The listed tests were conducted in the software at the various developments stages. Unit testing was conducted. The errors were debugged and regression testing was performed. The integration testing will be performed once the system is integrated with other related systems like Inventory, Budget etc. Once the design stage was over the Black Box and White Box Testing was performed on the entire application. The results were analyzed and appropriate alterations were made. The test results proved to be positive and henceforth the application is feasible and test approved.

6.2 SECURITY
SYSTEM SECURITY Setting Up Authentication for Web Applications INTRODUCTION
To configure authentication for a Web Application, use the <login-config> element of the web.xml deployment descriptor. In this element you define the security realm containing the user credentials, the method of authentication, and the location of resources for authentication.

SECURITY IN SOFTWARE
To set up authentication for Web Applications: Open the web.xml deployment descriptor in a text editor or use the Administration Console. Specify the authentication method using the <auth-method> element. The available options are: 86

BASIC
Basic authentication uses the Web Browser to display a username/password dialog box. This username and password is authenticated against the realm.

FORM
Form-based authentication requires that you return an HTML form containing the username and password. The fields returned from the form elements must be: j_username and j_password, and the action attribute must be j_security_check. Here is an example of the HTML coding for using FORM authentication: <form method="POST" action="j_security_check"> <input type="text" name="j_username"> <input type="password" name="j_password"> </form> The resource used to generate the HTML form may be an HTML page, a JSP, or a servlet. You define this resource with the <form-login-page> element. The HTTP session object is created when the login page is served. Therefore, the session.isNew () method returns FALSE when called from pages served after successful authentication.

6.3 GUI SCREENS


ADMINISTRATORS PASSWORD SCREEN

87

AUTHENTICATION SCREEN

88

STUDENT LOGIN SCREEN

89

TIMER SCREEN

INSTRUCTIONS SCREEN

90

SELECTION OF SECTIONS SCREEN

SECTION D SCREEN

91

QUESTION SCREEN

92

SELECTION OF QUESTION SCREEN

END OF THE EXAM SCREEN

93

TIMEUP SCREEN

94

RESULTS SCREEN

95

CHAPTER-VII CONCLUSION

96

CONCLUSION

An attempt is made to use the generally available e-gadgets and the software technology to make a visually challenged candidate to take an objective type test without the help of a scriber/ writer. Further attempts are to be made to realize software and make a sample survey to tune the program for its effectiveness. The documentation and the project report is finally prepared to be referred as user manual for further effective results of this software solution. Now the project is completed and ready to submit to the head of the department of the college for further process.

97

98

CHAPTER-VIII BIBLIOGRAPHY

99

8.1 List of Reference Documents

1). Herbert Schildt

The Complete Reference

Tata McGraw-Hill

2). Group

Java Server Programming

Wrax series

3). Cliff wooffon

Java Script

Wrax Series

4) Introduction to the Oracle9i/SQL

Nancy Greenberg,Priya nathan .

8.2 Web References

100

http://sourceforge.net/projects/freetts/

http://sourceforge.net/projects/keystrokes/

101

Você também pode gostar