Chapter - 1
Chapter - 1
Chapter - 1
.1ABOUT THE ORGANIZATION The Pondicherry University being a central university is fully supported by the University Grants Commission. The University is a member of the Association of Indian Universities and the Association of Commonwealth Universities. The teaching faculty consists of more than 389 active and erudite members in different Schools, Departments and Centers. Currently, there are around 4375 students pursuing their postgraduate and doctoral programmers on the campus. These apart, several thousand students are on the rolls of the University through the Community College, the Directorate of Distance Education and 85 affiliated colleges, which contribute to the richness of the University's academic. Besides, the Semester in India Program (SIP) attracts several foreign students who visit every year. Visionaries with a penchant for excellence always turn their visions into a reality. The department of Computer Science at the university, where this project is being carried out, is one such vision of excellence. Founded in 1991, the department has carved a niche for itself in the Academia due to the flexibility provided by the curriculum and the constant restructuring of the syllabus in keeping with the trends in the IT industry. The department encourages and regularly hosts national level workshops, symposiums and seminars that help in keeping the students up to date with the happenings in the industry. The Department offers programs leading to M.Sc., M.Sc. Five Year Integrated Course, M.C.A, M.Tech, and Ph.D. The courses are tailored to match the existing needs of the IT industries. The Computer Lab, where the project was developed is well equipped with all the latest hardware and software. The Department of Computer Science dedicates itself to research works in various fields such as
Parallel and Distributed Algorithms Robotics Evolutionary Algorithms Distributed Computing Software Engineering and Standard Context Aware computing Bioinformatics Grid Computing Service Oriented Architecture
1.2 ABOUT THE PROJECT How to objectively evaluate the learning effect of university students is a significant theory and practice question which university teachers and administrators need to face. Practice has proved that the separation of teaching and examination in teaching reform is a realistic method evaluating student learning effect. Based on domestic universities syllabus and various types of examination questions, a Automation of internal assessment using knowledge agent has been developed to achieve the goal of objective learning effect evaluation. The system is helpful to the course reform and scientific, standardized teaching evaluation. The question bank saves the number of each examination question and answer, and also encodes each examination question with knowledge category, item type and difficulty degree. Based on the above analysis and testing, each examination question saves in the format of hypertext separately. Such a system design increases the development and implementation efficiency. Examination papers are grouped according to requirements raised by users such as the item type, difficulty degree and coverage scope. The requirements should coincide with the actual question bank; otherwise, the system will tell users that their requirements cannot be met. Three key elements are the item type, difficulty degree and question bank situation. To meet a
variety of examination paper grouping requirements, each kind of item type of each knowledge point in question bank should be an even distribution. The number of questions with the same knowledge point; item type and difficulty degree needs to obey the normal distribution. The system of examination, as it exists today, does not at all assess the real worth and intelligence of the candidate. The present day examination system is nothing but a matter of chance, no certainty or reliability can be placed. The existing Examination system and procedure of judging ones ability is so unnatural and faulty that a mediocre student can secure distinction marks and an intelligent may cut a sorry figure. One ,who possesses good power of cramming, facts and texts, secures good marks rather than an intelligent, who could not cram but analyse in a proper manner. So in my view lots of changes require in our examination system.
1.3 ORGANIZATION OF THE REPORT The documentation is divided into the following sub-sections. Here I have given brief note about the following chapters. Chapter 2: Problem Definition and Feasibility Analysis This chapter gives the information regarding analysis done for the proposed system. Here the goal of the project is explained, and also the cost and performance factors which will affect the feasibility of the project is explained Chapter 3: Software Requirements Specification This chapter gets through the functional and non functional requirement phase of the proposed system. This chapter illustrates the overall structure and responsibility of the project using UML.
Chapter 4: System Analysis This chapter gets through the requirement phase of the proposed system and studies the requirements of the system in detail. It presents a formal document that crystallizes the users requirements. The result of this study is being used in all the future steps of development of the project. Chapter 5: System Design In this chapter the detailed system design explores architecture of the system. It deals with the modules and their relationship in building the whole system. Design at this level explains about sub systems which are building blocks of the whole system. These sub systems have their well defined functionality. Chapter 6: Coding, Testing and Implementation The coding logic of the tools is explained with the code and syntax. We present how the code is organized with comments on code for understanding in future reference. We also discuss the Naming conventions that were followed during the Implementation phase of the project and also the descriptions of the methods of all the modules used by the system. Chapter 7: Conclusion This chapter gives the conclusion of the report and also the possible enhancements that could be done in the future
Chapter 2 Title, Problem Definition and Feasibility Analysis Project Title: Automation of internal assessment using knowledge agent 2.1Problem Definition:
This project undertakes a comprehensive study of the Automation of internal assessment using knowledge agent and question bank. This project will focus on developing web-based applications that can assists in authoring and storing examination question items, assembling questions into exam.
The problem definition of this project work can be summarized as follows: To define a framework for web-based application development and develop a question bank and examination system on top of the framework. To develop a system that will define questions level of difficulty. To develop a system that serve as question bank for storing and creation of examination questions dynamically. To develop a system which will provide fair assessment method for online examination system 2.2 Feasibility Study: User needs a web-based system which will remove all the problems, the user is facing. The user wants web-based system, which will reduce the bulk of paper, provide ease of work and flexibility. In feasibility phase, I had undergone through various steps, which are described as under. The feasibility of the proposed system was analyzed by comparing the following factors with both the existing system and proposed system.
Cost: The cost required in the proposed system is comparatively less to the existing system. Effort: Compared to the existing system, the proposed system will provide a better working environment in which there will be ease of work and the effort required will be comparatively less than the existing system. Time: Also the time required generating a report or for doing any other work will be
comparatively very less than in the existing system.Record findings and updating will take less time than the system. Labor: In the existing system the number of staff required for completing the work is more while the new system will require quite less number of staff. Feasibility study is required in any project because of the following reasons. Perform a preliminary study to determine a project's viability. Analyze an existing system to see if it is worth upgrading. Determine if there is sufficient time to build the new system, when it can be built, whether it interferes with operations, type and amount of resources required, dependencies, etc. Establish the cost-effectiveness of the proposed system. Determine if the system conflicts with legal requirements.
There are different ways of checking whether a system is feasible or not, but some of the most important tests are the following: Operational Feasibility Technical Feasibility Economic Feasibility These three feasibility studies are made for almost all types of projects and in particular application and system projects. If the three feasibility studies are carried out successfully and properly, a clear picture of the project can be got before developing the project itself. Feasibility studies also analyses various questions and doubts raised during the design phase itself. Feasibility analysis helps in faster development of the project. Feasibility study of a project should be done as early as possible so that the development of the product would not slow down due to lack of resources. 2.2.1 Operational Feasibility The operational scope of the system is verified under operational feasibility. Operational feasibility deals with the operational requirements of the proposed system. If the system is a desktop system then the entire user to access the system only by install the software in each and every system again and again. Hence the operational feasibility of the proposed system is low. 2.2.2 Technical Feasibility Our system is developed using JSP Servlets and JAVA. These languages are platformindependent language. So, our system runs on any platform. Thus our project is verified under operational feasible. Technical feasibility takes care of the technical issues that are to be tested to see whether the system is feasible. Technical feasibility analysis makes a comparison between the level of technology available and the technology that is needed for the development of the project. The level of technology is determined by the factors such as the software tools available, platform.
The technical
resources are available to the end user and there is no necessary to install separate software for the usage of the project. The project can be used in any platform which has a java runtime environment installed. 2.2.3 Economical Feasibility Economic feasibility or Cost-benefit analysis is an assessment of the economic justification for a computer based system project. This system will take very little resource including hard disk space. Moreover it requires only a Java Virtual Machine. The investment for this product is only for development that is essential for any product. All the resources used in our project is freesource. So our system is economically feasible.
CHAPTER 3 Software Requirements Specification 3.1 Hardware Specification Processor RAM Monitor Hard Disk Keyboard Mouse 3.2 Software Specification Operating System Server Side Scripting Client Side Scripting Database Web Server Designing Tool : : : : : : MS Windows XP JSP HTML, JavaScript Oracle Tomcat 6.0 Dreamweaver : : : : : : HCL Pentium IV processor 256 MB DDR RAM 15 HCL Color Monitor 80 GB HCL Keyboard HCL Mouse
3.3 Language Description 3.3.1 JSP JSP is a technology developed by Microsoft to take text scripts in an HTML context and run them on the Web Server to create dynamic and interactive pages. While JSP is different from HTML, it is usually written as scripts within an HTML document. HTML is a static document that the web server displays upon request by the browser. But if the HTML has JSP scripts embedded within it, the server will run those scripts and then display the results within the page on the browser. JSP stands for Java Server Pages JSP is a program that runs inside IIS IIS stands for Internet Information Services IIS comes as a free component with Windows 2000 IIS is also a part of the Windows NT 4.0 Option Pack PWS is a smaller-but fully functional-version of IIS PWS can be found on your Windows 95/98 CD
JSP Basics JSP is a presentation layer technology that sits on top of a Java Servlets model and makes working with HTML easier. Like SSJS, it allows you to mix static HTML content with server side scripting to produce dynamic output. By default, JSP uses Java as its scripting language; however, the specification allows other languages to be used, just as ASP can use other languages (such as Java Script and VB Script). While JSP with Java will be more flexible and robust than Scripting platforms based on simpler languages like JavaScript and VBScript, Java also has a steeper learning curve than simple scripting languages.
Advantages of JSP: VS. 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. VS. Pure Servelts- It is more convenient to write regular HTML than to have a zillion println statements that generate the HTML. Web page design experts can build the HTML, leaving places for servlet programmers to insert the dynamic content. VS. Server-Side Includes- 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. VS. 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. Since it runs on the client, JavaScript can't access server-side resources like databases, catalogs, pricing information, and the like. VS. Static HTML - Regular HTML 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 Request Model The source code of a JSP page is essentially just HTML (or text) sprinkled here and there with either special JSP tags and/or Java code enclosed in these tags. The files extension .jsp rather than the usual .html or .htm, and it tell the server that this document requires special handling. The special handling, accomplished with a Web server extension or plug-in, involves four steps 1. The JSP engine parses the page and creates a Java source file.
2. It then compiles the file produced in step1 into Java class file. The class file created in step2 is a Servlet, and form this point on, the Servlet engine handles the class file in the same manner as all other servlets. 3. The Servlet engine loads the Servlet class for execution. 4. The Servlet then invoke a bean if any Servlet is accessing EIS (Enterprise Information Servlet). Getting on with JSP: Java Server Pages (JSP) lets separate the dynamic pages from the static HTML. You simply write the regular HTML in the normal manner, using whatever the web-page building tools you normally use. You then enclose the code for the dynamic parts in the special tags, most of which start with <% and end with %>. Aside from the regular HTML, there are three main types of JSP construct that you embed in a page: scripting elements, directives and actions. Scripting elements let you specify Java Code that will become part of the Servlet, directives let you control the overall structure of the Servlet, and action let you specify existing components that should be used, and otherwise control the behavior of the JSP engine. To simplify the scripting elements, you have access to a number of predefined variables such as request in the snippet above. JSP has changed dramatically since version 0.92, and although these changes were almost entirely for the better, you should note that version 1.0 JSP pages are almost totally incompatible with the earlier JSP engines. JSP Scripting Elements JSP scripting elements let you insert java code into the servlet that will be generated from the current JSP page. There are the three forms: Expression of the form <%=expression %> that are evaluated and inserted into the output. Script lets of the form <% code %> that are inserted into the Servlets services method, and
Declarations of the form <%! code %> that are inserted into the body of the Servlet class, outside of any existing methods.
JSP Expressions A JSP expression is used to insert java values directly into the output. It has the following form: < %=Java Expression %> The Java Expression is evaluated, converted to a string, and inserted in the page. This evaluation is performed at run-time (when the page is requests), and thus has full access to information about the request. For example, the following shows the date/time that the page was requested: Current time: <%=new java.util.Date () %> To simplify these expressions, there are number of predefined variables that you can use. These implicit objects are discussed in more detail later, but for the purpose of expressions, the most important ones are: Request, the Http Servlet Request. Response, the Http Servlet Response Session, the Http Session associated with the request(if any) Out, the Print Writer (a buffered version of type JspWriter) used to send output to the client. Here syntax for JSP expressions: <Jsp: expression> Java Expression </jsp: expression>
JSP Scriptlets If you want to do something more complex than insert a simple expression, JSP scriptlets let you insert arbitrary code into the servlet method that will be built to generate the page. Scriptlets have the following form <%Java Code %>
Scriptlets have access to the same automatically defined variables as expressions. So, for example, if you want output to appear in the resultant page, you would use the variable. If you want to use the characters %> inside a scriptlet, enter %/> instead. Finally, note that the XML equivalent of <% code %> is <jsp: scriptlet> code JSP Declarations A JSP declaration lets you define methods or fields that get inserted into the main body of the servlet class (outside of the service method progressing the request). It has the following form. <%! Java code %> Since declarations do not generate any out put, they are normally used in conjunction with JSP expressions or scriptlets. For example, here is a JSP fragment that prints out the number of times the current page has been requested since the server booted. As with scriptlets, if you want to use the characters %>, enter %/> instead. Finally, note that the XML equivalent of <%! code %> is <jsp:declaration> code JSP Directives A JSP directive affects the overall structure of the servlet class. It usually has the following form: <%@ directive attribute=value%> However, you can also combine multiple attribute settings for a single directive, as follows: <%@ directive attribute 1 =value 1 </jsp:declaration> </jsp:scriptlet>
attribute 2 =value 2 .. attribute N =value N %> There are two main types of directive: page, which lets you do thing like import classes, customize the Servlet super class, and the like; and include, which lets you to insert a file into the Servlet class at the time the JSP file is translated into a Servlet. The specifications also mentions the taglib directives, which is not supported in JSP version 1.0, but is intended to let JSP authors define their own tags. It is expected that this will be main new contribution of JSP 1.1. The JSP Page Directive The page directive lets you define one or more of the following case-sensitive attributes <%@ page import=java.util.* %> The important attribute is only one that allowed to appear multiple times. <%@ page contentType=text/plain %> has the same effect as the scriptlet. <%response.setContentType (text/plain); %>
isThreadSafe=true/false.
A value of true indicates normal servlet processing, where multiple requests can be processed simultaneously with a single servlet instance, under the assumption that the author synchronizes access to instance variables. A value false indicates that the servlet should implement single thread model. <jsp: directive.directiveType attribute=value /> For example, the XML equivalent of %@page import=java.util.*%
IS <jsp: directive.page import=java.util/> The XML syntax for defining directives is above. The JSP include Directive This directive lets you include files at the time the JSP page is translated in to a servlet. The directives look like this: <! -include file=/hello.html %> Note that since the include directive inserts the files at the time the page is translated, if the navigation bar changes, you need to translate all the JSP pages that refer to it. This is a good compromise in a situation like this, since the navigation bar probably changes frequently, and you want the inclusion process to be as efficient as possible. If, however, the included files change more often, you could use the jsp: include action instead. This includes the file at the time the JSP page is requested.
JSP Implicit Objects Predefined Values To simplify code in JSP expressions and scriptlets, you are supplied with eight automatically defined variables, sometimes called implicit objects. The available variables are request, response, out, session, application, config, page Context, and page. Details for each are given below.
Request This is the HttpServletRequest associated with the request, and lets you look at the request parameters, the request type and the incoming HTTP headers. Response This is the HttpServletResponse associated with the response to the client. Note that, Since the Output Stream is buffered, it is a legal to set HTTP status codes and response headers, and even though this not permitted in regular servlets once any output has been sent to the client. Out This is the PrintWriter used to send output to the client. However, in order to make the response object useful, this is a buffered version of PrintWriter called Jspwriter.Note that you can adjust the buffer size, or even turn buffering off, through use of the buffer attribute of the page directive. Also note that out is used almost exclusively in scriptlets, since JSP expressions automatically get placed in the output stream, and thus rarely need to refer to out explicitly. Session This is the HttpSession object associated with the request. Recall that sessions are created automatically, so this variable is bound even if there was no incoming session reference. The one exception is if you use the session attribute of the page directive to turn session off, in which case attempts to reference the session variables cause errors at the time the JSP page is translated into the Servlet. Application This is the ServletContext as obtained via GetServletConfig (). getContext ()
Configure This is the ServletConfig object for this page Page Context JSP introduced a new class called PageContext to encapsulate use of server specific features like higher performance JSPWriters.The idea is that, if you access them through this class rather than directly, your code will still run on Regular Servlet/JSP Engines. Page This is simply a synonym for this, and is not very useful in java it was created as a placeholder for the time when the scripting language could be something other than java. Action tags in JSP JSP action use constructs in XML syntax to control the behavior of the servlet engine. You can dynamically insert a file, reuse JavaBeans components, forward the user to another page, or generated HTML for the Java plug-in. Available actions include: jsp: include-include a file at the time the page is requested. jsp: useBean-Find or instantiate a Java Bean. jsp: setProperty-set the property of a Java Bean. jsp: getProperty-insert the property of a JavaBean into the output. jsp: forward-Forward the requester to a new page. jsp: plugin-Generate browser specific code that makes on OBJECT or EMBED tag for the Java plug-in.
JSP compatibility JSP is a Microsoft Technology. To run IIS you must have WindowsNT4.0 or later. To run PWS you must have windows95 or later.
Difference between JSP and HTML 1. When a browser requests an HTML file, the server returns the file. 2. When a browser requests a JSP file. IIS passes the request to the JSP engine. The JSP engine reads the JSP file, line by line, and executes the scripts in the file. Finally, the JSP file is returned to the browser as plain HTML. JSP Environment JavaServerPages (JSP) allows you to take advantage of server-side scripting. Furthermore; JSP provides an array of objects and components, which manage the interaction between the browser and the web server. Scripting languages such as VBScript and JavaScript are used to manipulate these objects. JSP is not actually a language in itself. Meaning there is no JSP code per se, but VBScript or JavaScript or whichever scripting language you decide you want to use. JavaScript is the most widely used language for JSP. 3.3.2 Macromedia Dreamweaver Macromedia Dreamweaver is a software program that is used for the purpose of web development. While the program was initially developed under Macromedia, it is now owned by Adobe Systems. The latest versions of Dreamweaver are incorporating a number of different technologies such as JavaScript, CSS, and other scripting systems. Dreamweaver is a highly successful program that is the premier tool for HTML editors. This software program single handedly controls over 70% of the HTML editing market. Dreamweaver can be used on a number of different platforms, and some of them are Unix, Windows, and Mac. Perhaps one of the most impressive features of Dreamweaver is that users don't have to be skilled with HTML in order to use it. The HTML code of a page can be hidden, and this will allow the users to create web pages without a large amount of difficulty. While some people enjoy this feature, others do not. Some have complained that it can cause performance problems
within web browsers. Another common problem with older versions of Dreamweaver is its failure to follow the W3C guidelines that have been set for the generation of HTML code. Some have said that Macromedia makes up for this problem with its support for CSS. When Dreamweaver is used, the documents created in it can be previewed in the web browser. However it must be installed on the computer of the user. Another important feature of Dreamweaver is the website management tools it offers. These tools have low learning curves, and are easy for the novice to utilize. If the user needs to find a specific piece of code, Dreamweaver make this easy to do, and the user does not need to have a large amount of knowledge of the code. Once Macromedia MX was introduced, dynamic content became an important part of Dreamweaver. The user can make a connection with MS Access or Mysql databases, and this will allow them to present content using tools such as ColdFusion, PHP, or ASP.NET. Most importantly, the user does not need to have a tremendous amount of programming experience. Another powerful feature of Dreamweaver is its ability to be extended. These elements are called extensions, and are small applications that can be written by any developer. The extension will typically be written in either JavaScript or HTML, and it can be downloaded by anyone. This is an important feature, because it allows independent developers to make important extensions to the software that allows it to be more functional. A number of extensions are offered free of charge, but some companies have developed commercial versions as well. Dreamweaver is an important tool for anyone who wishes to work with powerful HTML editing tools. The use of extensions makes it a tool that many developers have come to respect. Macromedia Dreamweaver is the ideal tool for those that wish to work with HTML, but its inability to follow W3C has caused problems among some developers over the years. Despite this, its popularity continues. 3.3.3 Oracle Oracle Real Application Clusters (RAC) is a clustered database solution that provides scalability and availability for business continuum. Scalability is a relative term and is based on a simple rule that as the number of users accessing the system increases, the RAC
configuration should be able to handle that increase. However, it is important to understand that an application can scale in a clustered environment only if that application is also scalable on a single-instance Oracle environment-- unless the application scales on a single server when the number of CPUs increases from 2 to 4 to 6 to 8, it will not scale in a RAC environment. Basically, Oracle RAC cannot perform magic to fix poorly performing application code. (Availability, in contrast, is ability of the system to provide continuous service when one or more components fail.) In a scalable system, workload has to be distributed across all nodes in the cluster transparently, bringing a true load balanced environment. To achieve that goal, Oracle RAC architecture allows movement of cached data across instances via the interconnect, which otherwise would have been expensive if physical I/O were required.
represent the knowledge of individual users, and to select problem to extend the users current level of understanding. On top of that, the definition of the level of difficulty for examination question often creates an argument. I do not have a clear mechanism to define the level of difficulty for each question. Currently, the level of difficulty for a question is solely defines by setter of the questions. Hence, there is a need to come out with a system that can based on question difficulty assessment algorithm to determine the level of difficulty for each question. This project is to develop an Automation of internal assessment using knowledge agent(WIES), which will make use of open source technology. The technologies include java server pages (jsp) and jdbc. The system that had been developed enable lecturer to author and store a bank of webbased questions. Furthermore, this system able to assemble questions and generate exam based on lecturers specifications. Questions from various topics with different level of complexity can be included and assigned to user as per the level. 4.3 Preliminary Investigation The main aim of preliminary analysis is to identify the problem. First, need for the new or the enhanced system is established. Only after the recognition of need, for the proposed system is done then further analysis is possible. Preliminary Study is the process of gathering and interpreting facts, using the information for further studies on the system. Preliminary Study is a problem solving activity that requires intensive communication between the system users and the system developers. It does various feasibility studies. In the studies a rough figure of the system activities can be obtained, from which the decisions about the strategies to be followed for the Effective System Study and Analysis can be taken. Based on domestic universities syllabus and various types of examination questions, a Automation of internal assessment using knowledge agent has been developed to achieve the goal of objective learning effect evaluation. The system is helpful to the course reform and scientific, standardized teaching evaluation.
The question bank saves the number of each examination question and answer, and also encodes each examination question with knowledge category, item type and difficulty degree. Based on the above analysis and testing, each examination question saves in the format of hypertext separately. Such a system design increases the development and implementation efficiency. Examination papers are grouped according to requirements raised by users such as the item type, difficulty degree and coverage scope. The requirements should coincide with the actual question bank; otherwise, the system will tell users that their requirements cannot be met. 4.4 Module Description This project undertakes a comprehensive study of the Automation of internal assessment using knowledge agent and question bank. This project will focus on developing web-based applications that can assists in authoring and storing examination question items, assembling questions into exam. Automation of internal assessment using knowledge agent is mainly composed of two modules, such as 4.4.1 Admin Module Administrator module is the module that enable administrator to configure and maintain various variable in the system. This module will allow administrator to configure general information such as Staff Details Course Details Subject Details Subject Allotment Question Report Admin Module. Staff Module. Student Module
System user with administrator role is the user with super user role to the system. This category of user will have the full administrative access rights to each module in the system. The administrator is the "gatekeeper" of the web based IES who creates user profiles for the system and is responsible for restricting the access of item banks. The administrator can add as many users as needed and he is the key person who will assign user to different role of the system. For instance, administrator is responsible to assign a new user with lecturer role of IES. Staff Details:-This is a sub module of Admin. Add new staff An administrator identifies the users they wish to add to their list. The administrator then adds the users to the system and the system will add the users to systems database. View Staff information An administrator can views the staff details using this page. Update staff details The administrator identifies and selects from the list of users in the system they wish to update their details. Then they proceed to update the user details and system will capture the new details into database. Delete staff The administrator identifies the users they wish to remove from their list. The administrator selects the users they wish to remove from the list of users in the system. The system then removes the given users and updates the database.
Course Details:- This is a sub module of Admin. Add new course An administrator identifies the courses they wish to add to their list. The administrator then adds the courses to the system and the system will add the courses to systems database. View course information An administrator can view the course details using this page. Update course details The administrator identifies and selects from the list of courses in the system they wish to update their details. Then they proceed to update the course details and system will capture the new details into database. Delete course The administrator identifies the courses they wish to remove from their list. The administrator selects the courses they wish to remove from the list of users in the system. The system then removes the given courses and updates the database. Subject Details-This is a sub module of Admin. Add new Subject An administrator identifies the subjects they wish to add to their list. The administrator then adds the subjects to the system and the system will add the subjects to systems database. View subjects information An administrator can views the subjects details using this page.
Update subjects details An administrator identifies and selects from the list of subjects in the system they wish to update their details. Then they proceed to update the subjects details and system will capture the new details into database. Delete subjects The administrator identifies the subjects they wish to remove from their list. The administrator selects the subjects they wish to remove from the list of subjects in the system. The system then removes the given subjects and updates the database. Subject Allotment The administrator identifies staff with their respective subject. They will then assign the particular staff with their respective subject. System will record the staffs role assignment into database. Question Admin can add two types of questions Report This module is used to generate various reports. 1. 2. 3. 4. Staff Report Course Report Subject Report Subject Allotment Report Objective Descriptive.
4.4.2 Staff Module: The staff can enter this page with username and password. An authorized staff can update their profile and maintain question banks. He / She can also generate questions. The three main important sub modules are profile, question and question generation. Profile This module helps staff to update their details. Question This module maintains question details. Create Question This page is initiated whenever there is a need arise from staff to add more questions into question bank. Staff will need to prepare their questions.System will capture the questions detail into question bank database. Prepare Scheme This page is tightly couple with create question use case. For every single question that lecturers raise, there should come along with a set of schemes. Update Question This use case is initiated when there is a need arise from lecturer to update the questions in the question bank. The update might include adding more choice of scheme, make correction on existing question, upgrade level of difficulty etc.
Delete Question This use case begins when there is a need to perform housekeeping of the current questions in question bank. Those questions which are out-dated or out of scope will be removed from question bank. Question Generation Staff can generate question with various criteria such us section names, no of questions for each section level of difficulty and choice option. 4.4.3 Student Module: The registered student can enter this page with username and password. An authorized student can update their profile and attend online objective type exams. He / She can also view their results. The three main important sub modules are profile, exam and result. Profile This module helps student to update their details. Exam This module helps the students to attend online exam. Result Student can view the result using this module.
This new system must provide for all of the essential data processing and it may also do some of those tasks identified during the work of analysis as optional extras. It must work within the imposed constraints and show improvement over the existing system. At the outset of design a choice must be made between the main alternative approaches. Talks of preliminary design concerned with identification analysis and selection of the major design options are available for development and implementation of a system. These options are most readily distinguished in terms of the physical facilities to be used for the processing who or what does the work.
5.1.1 ARCHITECTURAL DESIGN Describing the overall features of the software is concerned with defining the requirements and establishing the high level of the system. During architectural design, the various web pages and their interconnections are identified and designed.
The major software components are identified and decomposed into processing modules and conceptual data structures and the interconnections among the modules are identified. The following modules are identified in the proposed system. 5.2 Activity Diagram Activity diagram are a loosely defined diagram to show workflows of stepwise activities and actions, with support for choice, iteration and concurrency. UML, activity diagrams can be used to describe the business and operational step-by-step workflows of components in a system. UML activity diagrams could potentially model the internal logic of a complex operation. In many ways UML activity diagrams are the object-oriented equivalent of flow charts and data flow diagrams (DFDs) from structural development.
5.3 Use Case Diagram: A use case diagram in the Unified Modeling Language (UML) is a type of behavioral diagram defined by and created from a Use-case analysis. Its purpose is to present a graphical overview of the functionality provided by a system in terms of actors, their goals (represented as use cases), and any dependencies between those use cases.
Course
Question
Report
Profile
Exam
Fig. use case diagram The main purpose of a use case diagram is to show what system functions are performed for which actor. Roles of the actors in the system can be depicted. Above diagram contain actors like user, monitor, and centralized data center. It contains use cases like user login, monitoring, Data collection, Detection and distribution. 5.4 Sequence Diagram: A sequence diagram in a Unified Modeling Language (UML) is a kind of interaction diagram that shows how processes operate with one another and in what order. It is a construct of a Message Sequence Chart. A sequence diagram shows object interactions arranged in time sequence. It depicts the objects and classes involved in the scenario and the sequence of messages exchanged between the objects needed to carry out the functionality of the scenario. Sequence diagrams typically are associated with use case realizations in the Logical View of the system under development. Above diagram shows the flow of sequence. It consists of objects like data center, monitor, log collection, log distribution, and clients. First the client is connected with data center, Monitor connected with all clients. Then using traffic log, Detect the worm prepares report. Finally distribute that report to the clients.
Admin
Staff
Student
Database
admin login
Staff login
Student login
5.6 Collaboration Diagram: A collaboration diagram describes interactions among objects in terms of sequenced messages. Collaboration diagrams represent a combination of information taken from class, sequence, and use case diagrams describing both the static structure and dynamic behavior of a system. Above diagram tells about how we are sending information from source to destination and what are the steps used for that in ordered form. After creating sequence diagram we can generate the collaboration diagram directly using f5. It consists of numbering order sequence of data flow between the objects.
Staff
Admin
1: admin login 8: staff profile,question,subject question generation details 3: Staff login 11: course,subject,question,exam details 13: Report 10: check course,subject,Question,exam details 2: Verify admin login 4: verify Staff login 6: 9: verify the details 12: verify details 14: verify report
Student
Fig. 5.5 Class Diagram: Class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations (or methods), and the relationships among the classes.
5.6 System Architecture: Systems architecture is the conceptual model that defines the structure, behavior, and more views of a system.
Add Question Updation Edit Question View particular Question View Question View all Questions Question paper Generation Delete Quest Delete particular Question Delete all Question Enter the no. of question Question paper Generation
Student
Write Exam
Evalution
Fig. System Architecture An architecture description is a formal description and representation of a system, organized in a way that supports reasoning about the structure of the system which comprises system components, the externally visible properties of those components, the relationships (e.g. the behavior) between them, and provides a plan from which products can be procured, and systems developed, that will work together to implement the overall system. 5.7 ER Diagram: Entity-relationship model (ERM) is an abstract and conceptual representation of data. Entity-relationship modeling is a database modeling method, used to produce a type of conceptual schema or semantic data model of a system, often a relational database, and its requirements in a top-down fashion.
Subject Handling
Course
Course subject
Subject
Staff
Handle
Subject
Subject
Contains
Question
Fig.ER.digram 5.8 Data flow Diagram: A data flow diagram (DFD) is a graphical representation of the "flow" of data through an information system, modeling its process aspects. Often they are a preliminary step used to create an overview of the system which can later be elaborated. DFDs can also be used for the visualization of data processing (structured design). A DFD shows what kinds of data will be input to and output from the system, where the data will come from and go to, and where the data will be stored. It does not show information about the timing of processes, or information about whether processes will operate in sequence or in parallel.
Flow chat of Authentication
Login
Authentication
Fail
Staff
Fig.flowchat 5.9 Data Flow Diagram Data Flow Diagram is a major tool available to analysis for
communicating with user. It graphically represents the flow of data through system and services as a model of a system. It identifies the path that data take the processes that cause data and its final destination. The following steps are followed to draw a logical DFD: Identify environment in terms of sources/destination Identify input and output data flows Prepare input/output list. Produce context analysis diagram. Trace data flows to identify mini systems or process.
Stafff Registration
Staff Details
Web based
Staff
Web based
Course
Web based
Question
Web based
Subject
Question Generation
5.11 Component Diagram: In the Unified Modeling Language, a component diagram depicts how components are wired together to form larger components and or software systems. They are used to illustrate the structure of arbitrarily complex systems.
Admin
Staff
File transfer
Student
6.2 TESTING The web based applications are powerful and have the ability to provide feature rich content to a wide audience spread across the globe at an economical cost. Hence it is a daunting task to test these applications and with more and more features testing these apps is becoming even more complex. The following testings are carried out. 1) Functionality Testing 2) Usability testing 3) Interface testing 4) Compatibility testing 5) Performance testing 6) Security testing 1) Functionality Testing: This system is tested for all the links in web pages, database connection, forms used in the web pages for submitting or getting information from user, Cookie testing. All the links are tested .The outgoing links from all the pages from specific domain are tested. The following are test are done properly. Test links jumping on the same pages. Test links used to send the email to admin or other users from web pages. Test to check if there are any orphan pages. Lastly in link checking, check for broken links in all above-mentioned links. Test forms in all pages: Forms are the integral part of any web site. Forms are used to get information from users and to keep interaction with them. First check all the validations on each field. Check for the default values of fields. Wrong inputs to the fields in the forms. Options to create forms if any, form delete, view or modify the forms.
Cookies testing: Cookies are small files stored on user machine. These are basically used to maintain the session mainly login sessions. Test the application by enabling or disabling the cookies in your browser options. If we are testing the session cookies (i.e. cookies expire after the sessions ends) check for login sessions and user stats after session end. Check effect on application security by deleting the cookies. Validating HTML/CSS: HTML/CSS validation is very important. Mainly validate the site for HTML syntax errors. It checks if site is crawl able to different search engines. Database testing: Data consistency is very important in web application. Check for data integrity and errors while you edit, delete, modify the forms or do any DB related functionality. I checked if all the database queries are executing correctly, data is retrieved correctly and also updated correctly. 2) Usability Testing: Test for navigation: Navigation means how the user surfs the web pages, different controls like buttons, boxes or how user using the links on the pages to surf different pages. Usability testing includes: Web site should be easy to use. Instructions should be provided clearly. Check if the provided instructions are correct means whether they satisfy purpose.Main menu should be provided on each page. It should be consistent.
Content checking: Content should be logical and easy to understand. Check for spelling errors. Use of dark colors annoys users and should not be used in site theme. Content should be meaningful. All the anchor text links should be working properly. Images should be placed properly with proper sizes. 3) Interface Testing: The main interfaces are: Web server and application server interface Application server and Database server interface. It checks all the interactions between these servers are executed properly. Errors are handled properly. If database or web server returns any error message for any query by application server then application server should catch and display these error messages appropriately to users. 4) Compatibility Testing: Compatibility of web site is very important testing aspect. See which compatibility test to be executed: Browser compatibility Some applications are very dependent on browsers. Different browsers have different configurations and settings that my web page should be compatible with. My web site coding should be cross browser platform compatible. This web application is tested on different browsers like Internet explorer,Opera browsers with different versions.
OS compatibility: Some functionality in this web application is may not be compatible with all operating systems. All new technologies used in web development like graphics designs, interface calls like different APIs may not be available in all Operating Systems. This web application is tested on different operating systems like Windows, Linux with different OS flavors. 5) Performance testing: Web application should sustain to heavy load. Web performance testing should include: Web Load Testing Web Stress Testing
Test application performance on different internet connection speed. In web load testing test if many users are accessing or requesting the same page. Can system sustain in peak load times? Site should handle many simultaneous user requests, large input data from users, Simultaneous connection to DB, heavy load on specific pages etc. Stress testing: Generally stress means stretching the system beyond its specification limits. Web stress testing is performed to break the site by giving stress and checked how system reacts to stress and how system recovers from crashes. Stress is generally given on input fields, login and sign up areas. In web performance testing web site functionality on different operating systems, different hardware platforms is checked for software, hardware memory leakage errors,
6) Security Testing: The following is a test case for web security testing: Test by pasting internal url directly into browser address bar without login. Internal pages should not open. 6.2.1 Test Cases Design The software, which has been developed, has to be tested to prove its validity. Testing is considered to be the least creative phase of the whole cycle of system design. In the real sense it is the phase, which helps to bring out the creativity of the other phases makes is shine. 6.2.2 Coding Efficiency In this project frames and include concept are used to reduce coding. This project contain both html and jsp pages. Static pages are developed using html and JavaScript. Dynamic pages are created using JSP. 6.2.3 Testing Approaches The completion of a system is achieved only after it has been thoroughly tested. Though this gives a feel the project is completed, there cannot be any project without going through this stage. Hence in this stage it is decided whether the project can undergo the real time environment execution without any break downs, therefore a package can be rejected even at this stage The development of software system involves a series of production activities opportunities for injection of human errors may be erroneously or imperfectly specified as well as in later design and development stages. Because of human inability to perform and
communicate with perfection, software development is accomplished by quality assurance activity called testing.
Software testing is a critical element of software quality assurance and represents the ultimate review of specification, design, and coding. Testing includes verification of the basic logic of each program and verification that the entire system works properly. The programs facilitate testing by coding as clearly as possible. Test case design focuses on a set of techniques for the creation of test cases that meet overall testing objectives. The following are the important steps in testing Testing is a process of executing a program with the intent of finding an error. A good test case is one that has a high probability of finding an undiscovered error. A successful test is one that uncover as a yet discovered error. Constructing of the test data for the program. Analysis of result to delete a program error. Localization of errors and modification of program to eliminate them. Testing demonstrate that software function appear to be working according to specifications, that perform requirements to have been met. In addition, data collected as testing is conducted provide a good indication of software reliability and some indication of software quality as a while. But testing cannot show the absence of defects; it can only show that software defects are present. The debugging process is the most unpredictable part of the testing process.
6.2.3 Unit Testing The primary objective of the test design is to derive a set of tests that has been the lowest likelihood for uncovering defects in the software. To accomplish this objective two categories of test case designing techniques were used-white box and black box testing. White box test focus on the program control structure Test cases are derived to ensure that all statements in the program have executed atleast once during testing and that all logical conditions have been exercised. White box Testing is testing in the small implying that this test typically applied to small program components. Black box testing on the other hand broadens our focus and might be called testing in the large. Black box tests are designed to validate functional requirements without regard to the internal working of a program. Black box techniques focus on the information domain of the software, deriving test case by partitioning input and output in a manner that provides thorough test coverage. The requirement for higher quality software demands a more systematic approach to testing. The specification states what the program should do, and how it should perform under various conditions are examined. Then test cases are developed for each condition are combination of conditions and submitted for processing .by examining the results the performance of the program according to specified requirements is not the study of the code and is not concerned about whether every instruction or path through the program is tested. Test cases are developed, that will result in the execution of every instruction in the program or module. It is to ensure that every path through the program is tested. A path is a specific combination of conditions that is handled by the program. This is the first level of testing. In this different modules are tested against the specification produced during the design of modules. Unit testing is done for verification of the code produced during the coding phase and to test the internal logic of modules. It refers to the verification of the single program module is an isolated environment.
Unit testing heavily makes use of white box strategies, exercising specific paths in a modules control structure to ensure complete coverage and maximum error detection. Unit testing focuses first on the modules independently of another to locate errors. Those resulting from the interaction between modules are initially avoided. The test cases needed for unit should exercise each condition and option. If the module receives input or generates output, test cases are needed to test the range of values expected including both valid and invalid data. After coding each dialog was tested and run individually. All unnecessarily coded statements were removed and it was ensured that all the functionally worked as expected. Any logical errors found were corrected. 6.2.3 Integrated Testing Integration testing is a systematic technique for constructing the program structure while at the same time conducting tests to uncover errors associated with interfacing. Many tested modules are combined into subsystems, which are then tested. This testing is the verification of the interfaces among systems parts. Integration testing addresses the issues associated with the dual problems of verification and program construction. Black box test case design techniques are the most prevalent during integration. The various unit-tested modules were integrated. Rigorous integration testing is conducted to make the application free of any interface errors that may occur during transactions.
6.3 IMPLEMENTATION 6.3.1 INTRODUCTION The implementation forms the core part in the development of this system. Much consideration and attention needs to be given to the implementation part because the whole system should provide an output which is in detail and convenient for the user and to the developer of the system who should implement in a manner which conforms to the standards. It is the process of bringing developed system of revised system into operational use. If the implementation phase is not carefully planned and controlled, it can lead to many problems. Thus proper implementation is essential to provide a reliable system to meet managerial requirements. User-level security is the most flexible and extensive method of implementing security measures for Oracle database. A database admin can set up security on database to require users to log on to get into the database or not. A database administrator or an object's owner can grant individual users or groups of users specific permissions to tables, queries, forms, reports, and macros. JSP, which stands for Java Server Pages, is a server side; technology for delivering dynamic content to web clients in a portable, secure and well-defined way. The Java Server Pages specification extends the Java Servlets API to provide web application developers with a robust framework for creating dynamic web content on the server using HTML, and Java code, which is secure, fast, and independent of server platforms.
6.3.2 Classes and Methods Prototype and description of some important class and their methods that are used in this project are given below: 6.3.2.1 Class: Admin This class is used for creating the Main User Interface for the proposed system. It consists of Course details, Staff details, Subject details, Question details, Staff Allocation details, Report, authentication and data collection. 6.3.2.2 Class: Staff This class is used for generating the data instances which consists of Profile, Question, Question Generation. 6.3.2.2 Class: Student The registered student can enter this page with username and password. An authorized student can update their profile and attend online objective type exams. She/he can also view their results. The three main important sub modules are profile, exam and result.
REFERENCES: BOOKS REFERRED The following books were used extensively for the project development and implementation. 1.The Complete Reference JSP Tata McGraw-Hill publishing Company Limited. By Herbert Schildt. 2. Software Engineering, A Practitioners Approach Tata McGraw-Hill Publishing Company Limited. By Roger S. Pressman. WEBSITES REFERRED The following links were searched and exploited extensively for the project development and implementation. 1. 2. 3. http://www.java.sun.com/products\java http://www.jakarta.apache.org http://www.javaworld.com/
4. http://www.java2s.com/
Glossary JSP-Java Sever Page HTML-Hypertext Markup Language JDBC-Java Database Connectivity