Sunteți pe pagina 1din 108

ABSTRACT

Current examination system provides less scope for justified evaluation because it
takes handwriting into consideration while evaluation, which is an extrinsic
parameter. At the same time current system provides minimum security to the answer
sheets of the student from illegitimate modifications. So the proposing Electronic
Descriptive Examination Management System is a computerized way of conducting
present day paper-based descriptive examinations in a university.
Proposed system allows the students to type the answers in the space provided
for each question. When students submit the exam, system automatically collects all
the questions and corresponding answers into a file and converts it into pdf and then
uploads it to the server by encrypting the person-specific details. Staff related to
corresponding subject can only access these answersheets for evaluation and allots
marks base on the performance.
Students can view their answer script and marks obtained for each question, when the
results are announced. It improves transparency and credibility on the examination
system. It will minimize the utilization of manpower to great extent.

CONTENTS
CHAPTER 1:

CHAPTER 2:

INTRODUCTION
1.1 Current Scenario

1.2 Problem Statement

1.3 Proposed Solution

LITERATURE OVERVIEW
2.1 Existing System

2.2 Java

2.3 Java Script

2.4 Oracle

2.5 JDBC
2.5.1 JDBC overview

2.5.2 ODBC

2.5.3 The JDBC API

2.5.4 How JDBC works

2.5.5 JDBC API components

2.5.6 JDBC-ODBC bridge driver

11

2.6 JSP

18

CHAPTER 3: PROPOSED SYSTEM


3.1 Proposed System

19

3.2 Functions of the Stakeholders

20

3.3 Merits and Demerits

22

CHAPTER 4: PROBLEM ANALYSIS & SRS


4.1 PROBLEM ANALYSIS
4.1.1 Global Use-case Diagrams
4.1.2 Flow of Events
4.1.3 Activity Diagram
4.1.4 Use-case Realizations
4.1.5 Sequence Diagarms

23
23
26
28
30
31

4.2 SYSTEM REQUIREMENT SPECIFICATION

46

4.2.1 Process Model

46

4.2.2 System Requirements

46

4.2.3 Application Features

47

CHAPTER 5: DESIGN
5.1 User Interface Design

50

5.2 Architecture Design

73

5.3 Data Base Design

76

5.3.1 Data Dictionary

76

5.3.2 Tables

77

5.4 Class Design

CHAPTER 6: TESTING
6.1 Psychology of Testing

90

6.2 Testing Objectives

90

6.3 Levels of Testing

91

6.4 Types of Testing

91

6.4.1 Unit Testing

91

6.4.2 Integration Testing

99

6.4.3 System Testing


6.4.4 Acceptance Testing
6.5 Criteria satisfied by Test cases

100
100
101

CHAPTER 7: CONCLUSION & FUTURE WORK

102

BIBILOGRAPHY

103

LIST OF TABLES
5.3.2.1

Student

77

5.3.2.2

Staff

77

5.3.2.3

Courses table

78

5.3.2.4

Branches table

78

5.3.2.5

Subcodes table

78

5.3.2.6

Invigilator table

79

5.3.2.7 Admin table

79

5.3.2.8

Section1 table

80

5.3.2.9

Section2 table

80

5.3.2.10 Section3 table

81

5.3.2.11 Section4 table

81

5.3.2.12 Section5 table

81

5.3.2.13 Section1marks table

82

5.3.2.14 Section2marks table

82

5.3.2.15 Section3marks table

83

5.3.2.16 Section4marks table

84

5.3.2.17 Section5marks table

84

5.3.2.18 Total marks table

84

5.3.2.19 Absentees table

84

5.3.2.20 Debarred table

85

5.3.2.21 Techprob table

85

5.3.2.22 Pdffiles

85

LIST OF FIGURES
Use case diagrams
4.1.2.1 Overall Use case diagram of the system

27

Activity diagram
4.1.3.1 Overall Activity diagram of the system

29

Use case realizations


4.1.4.1 Use case realizations for main use cases

30

Sequence diagrams
4.1.5.1 Sequence diagram for Login

32

4.1.5.2 Sequence diagram for Exam settings

33

4.1.5.3 Sequence diagram for Student details

34

4.1.5.4 Sequence diagram for Staff details

35

4.1.5.5 Sequence diagram for Invigilator details

36

4.1.5.6 Sequence diagram for Take exam

37

4.1.5.7 Sequence diagram for Submit test

38

4.1.5.8 Sequence diagram for Cancel test

39

4.1.5.9 Sequence diagram for View results

40

4.1.5.10 Sequence diagram for Evaluate

41

4.1.5.11 Sequence diagram for Change marks

42

4.1.5.12 Sequence diagram for View marks

43

4.1.5.13 Sequence diagram for Invigilate

44

4.1.5.14 Sequence diagram for Feedback

45

3-tier architecture
5.2.1 Three Tier Architecture

73

5.2.2 Three tier distributed client/server architecture depiction

74

5.2.3

75

Functional Architecture

5.2.4 Technical Diagram


5.2.4

75

Technical Architecture Class diagram


5.4.1 Overall class diagram of the system

89

ACRONYMS
JDBC : Java Database Connectivity
ODBC: Oracle Database Connectivity
SQL : Structured Query Language
JSP

: Java Server Pages

HTML: Hyper Text Markup Language

CHAPTER 1
INTRODUCTION
1.1 CURRENT SCENARIO
Present system conducts the exam manually where the student has to write the
exams on the paper with a pen. Answer sheets of all the students will be handed over
to the invigilator. The invigilator will submit the bundle to the university. There the
concerned staff will do evaluation of the papers. The person who evaluated the paper
has to sign on the paper indicating that he himself has evaluated the paper. After
evaluating marks are allotted to the student basing on his performance and then feed
into the system.

1.2 PROBLEM DEFINITION


In this current system entire examination process is being conducted manually
where there is a lot of scope for security threats, improper evaluation. This system
places lot of burden over students in writing their exam, staff in evaluating the
answers and entering the marks separately in the system. It requires lot of man power
to conduct the exam. . It provides less security to the answer sheets of the students

from third party manipulations. As mentioned earlier, it takes extrinsic parameters like
handwriting, presentation into consideration for evaluation. It provides less
transparency to the students from the evaluation process. It also requires lot of man
power for conducting the exams.

1.3 PROPOSED SOLUTION


Electronic descriptive examination managing system is a computerized way of
conducting present day paper-based descriptive examinations in a university by
providing much user-friendliness to students, staff and administrator.
Every student has to submit his user-id, password, and course, year of study,
branch, and subject-code details before taking the exam. After entering into the
system he can answer to the question paper in the text boxes provided to him under
each question. After writing the exam, the student has to submit the test to the server.
To protect the answer sheet from illegitimate modifications, the system converts it
into pdf before storing in the server. Depending on the subject code, answer sheets
belonging to a particular subject are automatically uploaded to corresponding staffs
user. Staff member who is going to correct this particular subject can access these
answer sheets by logging into his account. After evaluating the paper, marks are
allotted for each answer depending on his performance. These marks will be entered
into the database by the staff after correcting the paper. This newly proposed system
provides better security, transparency and reduces the cost of conducting the
examinations.

10

CHAPTER 2
LITERATURE OVERVIEW
2.1 EXISTING SYSTEM
Present system conducts the exam manually where the student has to write the exams
on the paper with a pen. Answer sheets of all the students will be handed over to the
invigilator. The invigilator will submit the bundle to the university. There evaluation
of the papers will be done by the concerned staff. The person who evaluated the paper
has to sign on the paper indicating that he himself has evaluated the paper. After
evaluating marks are allotted to the student basing on his performance. After marks
are allotted they are displayed to the students.
Merits and Demerits of the existing system
Merits:
1. The present system is applicable to any type of descriptive examination.
2. No need of having any computer knowledge to write the exam.
3. No chances of arising any technical problems during the process of writing,
evaluating the exam.
4. This existing system is familiar to all the actors of the system for the long
time, so it is easy to conduct exam in this pattern.
5. Evaluator can mark the mistakes done by the student on answer paper with red
ink so that he can easily understand why he has reduced the marks for the
answer written by the student when he review the answer sheet.
Demerits:
1. It provides less security to the answer sheets from third party manipulations.
2. It is costly process which requires resources like pens, papers and lot of man
power to maintain security to the answer sheets.
3. It is bit difficult to handle because it involves entering marks on answer-sheet
as well as in database separately thereby increasing the redundancy of work.
4. Existing pattern of examination doesnt provide ideal justice in evaluating the
answer of the student, because it implicitly gives priority to hand writing of the
student which should not be taken into the consideration.

11

2.2 JAVA
Java was conceived by James Gosling, Patrick Naughton, Chris Warth, Ed
Frank, and Mike Sherdian at Sun Microsystems in 1991.
Features of Java:
Simple & Secure
Java was designed to be easy for the professional programmer to learn and use
effectively. The ability to download java applets with confidence that no harm could
be done and that no security will be breached is considered by many to be the single
most important aspect of java.
Robust
The multiplatform environment of web places extraordinary demands on a
program, because the program must execute reliably in a variety of systems. Thus, the
ability to create robust programs was given priority in the design of Java. To gain
reliability, Java restricts you in a few key areas, to force you to find mistakes early in
the program development. At the same time, Java frees you in the form having to
worry about many of the common causes of programming errors. Because java is a
strictly typed language, it checks your code at compile time.
Multi-Threaded
Java was designed to meet the real-world requirement of creating interactive,
networked programs. To accomplish this, Java supports multithreaded programming
which allows you to write programs that do many things simultaneously.
Distributed
Java is designed for the distributed environment of the Internet, because it
handles TCP/IP protocols. This feature brings an unparallel level of abstraction to
client/server programming.

12

Dynamic
Java programs carry with them substantial amounts of runtime type
information that is used to verify and resolve accesses to objects at run-time. This
makes it possible to dynamically link code in a safe and expedient manner.
Encapsulation
Encapsulation is the mechanism that binds together code and the data it
manipulates, and keep both safe from outside interference and misuse. It can be
thought of as a protective wrapper that prevents the code and data from being
arbitrarily accessed by other code defined outside the wrapper.
Inheritance
Inheritance is the process by which one object acquires the properties of
another object. This is important because it supports the concept of hierarchical
classification without the use of hierarchies, each object would need to define all of its
characteristics explicitly. However, by use of inheritance, an object need only define
those qualities that make it unique within its class. It can inherit its general attributes
from its parents.
Polymorphism
Polymorphism is a feature that allows one interface to be used for a general
class of actions more generally, the concept of polymorphism is often expressed by
the phrase One Interface, Multiple Methods. This means that it is possible to design
a generic interface to a group of related activities. This helps reduce complexity by
allowing the same interface to be used to specify a general class of action.

2.3 JAVA SCRIPT


JavaScript is a scripting language most often used for client-side web
development. The language is best known for its use in websites (as client-side

13

JavaScript) but is also used to enable scripting access to objects embedded in other
applications. "JavaScript" is a trademark of Sun Microsystems
Popular Scripting language:
JavaScript has simple rules and procedures that make it easier to use and learn for
programmers. This has made JavaScript a popular client-side scripting language.
Interpreted Language:
It is an interpreted language, meaning that it can be used or executed with ease
without pre-compilation.
Advantages of JavaScript:
Cross-browser support, validating data on the client, and being able to create more
sophisticated user interfaces. Other advantages include the fact that you don't need
any extra tools to write JavaScript, any plain text or HTML editor will do, so there's
no expensive development software to buy. It's also an easy language to learn, and
there's a thriving and supportive online community of JavaScript developers and
information resources

2.4 ORACLE
Features of Oracle
Oracle provides efficient and effective solution with the following features:
Client/Server(distributed Processing) environment: To take full advantage of a
given network, oracle allows processing the database server and the client programs.
Large Databases and space Management: Oracle supports the large of data of
terabytes in size. To make efficient hardware devices, t allows full uses.

14

Many concurrent database users: Oracle supports large numbers executing a


variety of database on the same data.
Controlled Availability: Oracle can selectively control database level of sub data.
Portability: Oracle software is ported to work with operating systems. Applications
can be ported to any operating systems modifications.
Compatibility: Oracle software is compatible with standards, including most
industrial operating systems. Applications can be used on virtually any systems
modification.
Connect ability: Oracle software allows different environment and operating systems
to share the network.
Oracle security:
Manageable Security: To Protect against unauthorized use, oracle provides fail-safe
security and monitor data access. These are used to manage the data and for providing
security.

2.5 JDBC
The JDBS API provides universal data access from the Java programming
language. Using the JDBC 3.0 API, we can access virtually any data source, from
relational databases to spreadsheets and flat files. JDBC technology also provides a
common base on which tools and alternate interfaces can be built.
2.5.1 JDBC Overview

Java database Connectivity is a java API for executing SQL statements. It consists
of a set of classes and interfaces written in java programming language that makes it
easy to send SQL statements to virtually any relational database, in other words, with
the JDBC API. It is not necessary to access an Oracle database, another program to
access an Informix database, and so on. One can write a single program using the
JDBC API, and the program will be able to send SQL statements to appropriate
database. With a program written in java, one also doesnt have to worry about

15

writing different programs to run on different platform. The combination of Java and
JDBC lets a programmer to write it once and run it anywhere.
2.5.2 ODBC
ODBC (Open Database Connection) is a way to connect any front-end tool to
any back-end database engine .A front end tool is one which is used to provide a user
interface using which the user will be able to manipulate the data. Aback-end is
responsible for the actual manipulation of the database on the request of the front
end, as well as for the storage and retrieval of information. Often a back-end is also
called as a server and front end as a client. Every database software provides an
ODBC driver which follows all the specifications to the ODBC compliant, It is this
ODBC driver converts the request to match the implementation specified at the server
side. Another important features of the ODBC is that it provides a client an
opportunity to connect multiple databases simultaneously, which could be residing at
different physical locations.
What does JDBC do?
Especially JDBC does three things:
Establishing the connection to database.
Send SQL statements.
Process the results.
2.5.3 The JDBC API
The JDBC API is designed to allow developers to create database front-ends
without needing to continually rewrite their code. The ability to create robust,
platform independent applications and web-based applets prompted developers to
consider using java to develop front-end connectivity solutions.
2.5.4 How JDBC Works

JDBC provides application developers with a singular API that is uniform and
database independent. The API provides a standard to write to, and a standard that

16

takes all of various application designs into account. The solution is a set of java
interfaces that are implemented by the driver. The driver translates the standard JDBC
calls into a specific call required by the database it supports. The application can be
written once and moved to the various drivers. The application multi-tier database
design is also known as Middleware. In addition to providing developers with a
uniform and DBMS independent framework, JDBC also provides a means of allowing
developers to return the specific functionality that their database vendor offers. JDBC
and ODBC are based on X/ Open SQL 0Command Level Interface . Having the
same conceptual base allows work on the API to proceed quickly and makes
acceptance of the API easier.
2.5.5 The JDBC API Components

In general there are two levels of interfaces in the JDBC API. The application
layer where the developer uses the API to make calls to the database via SQL and
retrieve the results, and the Driver layer which handles all communication with a
specific driver implementation.
The application developer needs to use only the standard API interfaces in
order to guarantee JDBC compliance. The driver developer is responsible for
developing the code that interfaces to the database and supports the JDBC application
level calls. There are four interfaces that every driver layer must implement, and one
class that bridges the Application and Driver layers.
The four interfaces are the Driver, Connection, Statement and Result Set. The
driver interface implementation is where the connection to the database is made. In
most applications, the driver is accessed through the Driver Manager class, providing
one more layer of abstraction for the developer. The Driver vendor implemented the
connection, Statement and Result set interfaces.
These interfaces represent methods that the application developer will treat as
real object classes and allow the developer to create statement and retrieve results.

17

The Driver Layer


The driver class is an interface implemented by the driver vendor. The other
important class is the Driver Manager class, which sits between the Driver and
Applications layers. The Driver Manager is responsible for the loading and unloading
drivers and making connections through drivers. The Driver Manager also provides
features for logging and database timeouts.
The Driver Interface
Ever JDBC application or applet must have at least one JDBC driver, and each
driver is specific to the type of DBMS used. The driver interface allows the Driver
interface class. Drivers use a String to locate access database. The syntax of this
String is very similar to URL String. The purpose of this String is to separate the
application from the driver developer.

The network protocol driver


With a network protocol java driver, JDBC calls are translated by this driver
into DBMS independent protocol and send to middle-tier server over a socket. The
middle-tier code contacts variety of databases on behalf of the client. This approach
also deals specifically with issues relating to network security, including passing data
to firewalls.
The native protocol drivers
With a native protocol java driver, JDBC calls are converted directly to the
network protocol used by the DBMS server in this driver, the database vendors
support a network socket, and the JDBC drivers communicates over a socket
connection directly to the database server. However, because the network protocol is
defined by the vendor and is typically proprietary, the driver usually is available only
from the database vendor.

18

2.5.6 JDBC-ODBC bridge driver (Type-1)


A bridge driver provided with JDBC can convert the JDBC calls into any type
of database simultaneously. This approach is a recommended one since ODBC
drivers, which are industry standard as of now, would make an application truly
portable access database.

Implementation of JDBC-ODBC Bridge


Java application submits an SQL statement through the JDBC driver. The
JDBC driver translates the request to an ODBC call. The ODBC driver then converts
the request again and presents it to the database interface. The results of the request
are then fed back through the same channels but in reverse.

JDBC-ODBC Connectivity
Seven basic steps to JDBC:
There are seven basic steps to use JDBC to accessing a database.
1. Importing the java.sql package.
2. Load and register the driver.
3.

Establish a connection to the database server.

4. Create a statement.
5. Execute the statement.
6. Retrieve the results.
7. Close the statement and connection.
1. Importing the java.sql package:

The JDBC API is a set of classes and interfaces. The package name for these
classes and interfaces to be imported is java.sql.
Import java.sql.*;
2. Load and register the driver:

It includes two steps:

19

Loading the driver: To load the driver class.forName () method is used.


Class.forName (weblogic.jdbc.oci.Driver);
The class. For Name () method takes the complete package name of the driver as
its argument.
Registering the driver: all drivers are required to register themselves at load
time.The driver itself calls the Driver Manager register Driver () method at load time
to ensure that the driver is properly registered. This method is never have to be called
explicitly by an application.

3. Establishing a connection to the database server:


The standard method of establishing a connection to the database is to call Driver
Manager. Get Connection () method. It takes at least two arguments. The first is a
string representing the URL of the database followed by a set of login properties, such
as the user name and password.
Connection conn = DriverManager.getConnection (jdbc: weblogic: Oracle:
fool:, username, password);
4. Create a statement: A statement object is to created from which to execute the
query.
There are three types of statements classes
1. Statement
2. Prepared statement
1. Statement:

Statement stmt=conn.createstatement ();

2. Prepared statement: Prepared Statement stmt=conn.preparedStatement


(SQLquery);

20

5. Execute the statement:


The method used to execute a simple query is a Statement.executeQuery ().
ResultSet rs=stmt1.executequery (select * from proxymapping);
The execute Query () method takes an SQL query string as an argument and
returns the results of the query as a ResultSet object. The executeUpdate method is
used to the database results.
6. Retrieve the results:
Results are stored in a ResultSet object. The get method retrieves the data
from the ResultSet and converts it to Java type. Each get method is used to retrieve
a different Java type.
7. Close the statement and connection:
The final steps in any database application should be to close the connection
and any open statements. While it is not absolutely that we close every connection and
its statement object, it is highly recommended.
Stmt.close ();
Conn.close ();
The JDBC 3.0 API is comprised of two packages:
1. The java.sql package
2. The javax.sql package, which adds server-side capabilities
JDBC Technology Drivers
To use the JDBC API with a particular database management system, we need
a JDBC technology-based driver to mediate between JDBC technology and the
database. Depending on various factors, a driver might be written purely in the Java
programming language or in a mixture of the Java programming language and Java
Native Interface (JNI) native methods.
The latest SDK includes a JDBC-ODBC Bridge driver that makes most Open
Database Connectivity (ODBC) drivers available to programmers using the JDBC
API.

JDBC-ODBC Bridge Driver describes the current status of this software.

21

JDBC URL Syntax and Structure


JDBC follows the bellow syntax:
JDBC :< subprotocol>:<subname>
Where <subprotocol> defines the types of driver, and <subname> provides the
network-encoded name
For example:
JDBC: oracle: products
Here the database called the products.
The driver connect () the method is the most important method and it is called
by the driver manager to obtain a connection object. The connection object is the
string point of the JDBC application layer. The connection object used to create
statement object that perform object queries. The drivers connect () method typically
performs the following steps:
Check to see if the given URL String is valid.
Opens the TCP connection to the host and port number specified.
Attempts to access the named database table(if any) returns an instance of a
connection object.
The Driver Manager Class
The driver manager class is actually a utility class used to manage JDBC
drivers. The class provides methods to obtain connection through a driver register and
deregister drivers, setup login and set login timeout for database access. Drivers are
registered with the driver manager class, either at initialization of the Driver Manager
class, or when an instance of driver is created.
The Application Layer
The application layer encompasses three interfaces that are implemented at the
driver layer but are used by the developer. The three main interfaces are connection,
Statements and Result set. A connection object is obtained from the driver

22

implementation through the DriverManager.getConnection () method call. Once a


connection manager object is returned, the application developer may create a
statement object to issue against the database. The result of statement id a result set
object, which contains the result of the particular statement (if any).
Connection Basic
The connection interface represents a session with the database connection
provided by the driver. Typically database connections include the ability to control
changes made to the actual data stored through the transaction. The primary use of the
connection interfaces is to create a statement.
Connection con=null;
Statement stmt=null;
Con=DriverManager.getConnection(url);
Stmt=con.createStatement();
This statement may be used to send SQL statement that return a single result
in a ResultSet object reference. Statements that need to be called a number of times
with slight variations may be executed more efficiently using a prepared statement.
The connection interface is also used to create a callable statement whose purpose is
to execute stored procedures.
Statement Basics
A statement is vehicle of sending SQL queries to the database and retrieving a
set of results. Statements can be updates, insertion, deletion of the queries. Statement
may or may not returns a ResultSet object depending on the statement method used.
The executeUpdate () method.
For example, is used to execute SQL statements that dont expect a result.
SQL statements that returns a single result can use the executeQuery () method. This
method returns a single ResultSet object. The execute () method is a general-purpose
method that can return either a single ResultSet or multiple ResultSets. The method
returns a Boolean flag that is used to determine whether there are more ResultSets.

23

Result Set Basics


The Result Set interface defines methods for accessing the table of data
generated as the result of executing a statement Result Set column values may be
accessed any order, they are indexed and may be selected by either the name or the
number of the columns. Result Set maintains the position of the current row, starting
with the first row of the data returned. The next () method moves to the next row of
the data.

Result Set Metadata


Besides being able to read data from a Result Set object, JDBC provides an
interface to allow a developer to determine what type of data is returned. The
ResultSetMetaData interface is similar to database Metadata interface is concept, but
it is specific to the current Result Set.
The Result Set Meta Data is useful in dynamically determining the Metadata
of the Result Set returned from a stored procedure.
JDBC Drivers
Drivers come in different varieties according to their construction and type of
database they are intended to support java soft categorizes database drivers in four
ways.
The JDBC-ODBC Bridge Driver
The JDBC-ODBC Bridge is a JDBC driver that provides translation of JDBC
called to ODBC operation. The JDBC-ODBC Bridge Driver is implemented with
ODBC binary code and, in some cases client library as well. The bridge driver is
made up of three parts:
A set of C library that connect the JDBC to ODBC driver
manager.
The ODBC driver manager.
The ODBC driver.

24

Using a JDBC-ODBC bridge driver, application will speak directly to the


JDBC interface classes. Because ODBC calls are made using binary C calls, the client
must have a local copy of the ODBC Driver Manager, and the client side libraries
The Native Library-To Java Driver
This driver uses native C language library calls to translate JDBC to the native
client library. These drivers use C language libraries that provide vendor specific
functionality and tie these libraries to the JDBC.

2.6 JSP
JSP is a J2EE component which uses java as its scripting languages with java
will be more flexible and robust. JSP has many more advantages.
Write once run anywhere
JSP technology is platform independent, both in its dynamic web pages, its
web servers, and its underlying server components. we can write jsp pages on any
platform, run them on any web server or web enabled application server, and access
them from any web browser. We can also build the server components on any
platform and run them on any server.

High Quality Tool Support


The write once, run away where properties of JSP allows the user to choose best
of breed tools. Additionally, an explicit goal of the java server pages design is to
enable the creation of high portable tools.
Reuse of Components and Tag Libraries
The JSP technology emphasizes the use of reusable components such as
JavaBeans components. Enterprise JavaBeans components and tag libraries. These
components can be used in interactive tools for component development and page
composition. This saves considerable development time while giving the cross

25

platform power and flexibility of the java programming language and other scripting
languages.
Separation of Dynamic and Static content
The java server pages technology enables the separation of static content from
dynamic content that is inserted into the static templates. This greatly simplifies the
creation of content.

CHAPTER 3
PROPOSED SYSTEM
3.1 OVERVIEW
Electronic descriptive examination managing system is a computerized way of
conducting present day paper-based descriptive examinations in a university by
providing much user-friendliness to students, staff, invigilators and administrator.
Every student has to submit his userid, course, year of study, branch, and subject-code
details before taking the exam. After entering into the system he can answer to the
question paper. He has to answer the question paper in the text area provided to him
for each question. After writing the exam, the student has to upload answered
document to the server. To protect the answer sheet from illegitimate modifications,
we have to convert it into pdf before storing in the server. Depending on the subject
code, answer sheets belonging to a particular subject are automatically uploaded to
corresponding staffs user. Staff member who is going to correct this particular subject
can access these answer sheets by logging into his account. After evaluating the paper,
marks are allotted for each answer depending on his performance. These marks will
be entered into the database by the staff after correcting the paper. Invigilator after
writing the exam gives the feedback about the examination process, which will be
collected by staff when he logged into the system. In the evaluation process, staff after
need to input marks obtained for each question irrespective of choice, the system
automatically chooses answers with highest marks into account thereby reducing

26

burden on the staff. Administrator maintains the system in order to allot require
resources for achieving the functionality.
The Stakeholders of the System are:
1. student
2. staff
3. invigilator
4. administrator

3.2 FUNCTIONS OF STAKEHOLDERS


1. Student: He is one of the important stake-holder of the system. He uses the
system for writing exams and also to view the results
a. Writing the exam: He can take the exam by just signing into the system.
He has to answer the questions in the text area provided to him by clicking any
question from the question paper.
b. Uploading the answer paper: After writing the examination he has to
submit the exam. After submitting the exam, it will be stored in the database.
The student has to submit the answer sheet with in the time provided to him. If
he is unable to submit the answer sheet with in time, we remove edit privilege
of the answer sheet. Within the grace time he has to submit the answered
document. Otherwise paper is not considered.
c. Viewing the results: Student has the privilege of viewing the results after
writing the exam.
2. Staff : Staff member is also an active user of the system who uses the system
to evaluate papers and to allot marks.
a. Evaluating the answer papers: Staff related to concerned subject can
evaluate the answer sheets by logging into their account. Prior to that
we decode the students Hall Ticket number to hide person specific
information of the student, thereby improving the security.
b. Allotting marks: After evaluation of paper, he just submits the marks
allotted to the student to the database.

27

c. Viewing Marks: He can have quick glance to the marks of all students
who take the exam in that instance.
d. Updating Marks: He also has a privilege of changing marks allotted
to the students.
e. View Attendance: He can view the attendance details of the
examination.
2. Administrator: He is the person who enjoys all privileges over the system.
He can delete/add students and staff. He can also perform many privileged
activities like setting model of question paper, loading question papers etc.
a. Update Student details: He can add, delete, view, change details of
the student.
b. Update Staff details: He can also add, delete, view, change details of
the student.
c. Update Invigilator Details: He also assigns and removes invigilators
to the examinations by giving them special user-id and password.
d. Load question paper: He loads the question paper into the database
before the examination for any subject, for any course by submitting
course, branch, year and subject details.
3. Invigilator: He authenticates the exam process by providing the feed back on
the examination to the administrator. Basing on his feed back necessary action
will be taken by the administrator.
a. Feedback on Absentees: Submits the user-id's of all those students
who keep absent for the particular exam
b. Feedback on Debarred candidates: Submits user-id's of those
students who got debarred on the basis of violation of examination
rules by coping the exam.
c. Feedback on Technical problems: Submits the user-id's of those
students who are unable to take the exam due to technical problems
occurred during the process of examination.

28

3.3 MERITS AND DEMERITS


Merits:
1. It is well secured pattern of conducting examinations, because once the student
submits the exam no body has a right to change the content of the paper.
2. It also protects the answersheets by hiding them from others except
administrator and the concerned staff.
3. It is very easy to handle the exams using this system because it reduces man
power, cost, and burden to all the stakeholders in handling the examinations.
4. It doesnt take unnecessary parameters like handwriting into consideration in
allotting marks to the student, thereby providing efficiency in evaluating the
paper.
5. It reduces the redundancy of work to great extent.
6. It also provides security and justice in evaluating the answer-sheets by
encoding the hall ticket number so that the evaluator can not know to whom
this paper belongs.
7. It provides good user-friendliness to students in writing the examinations, staff
in evaluating the examinations, administrator in changing the settings of the
system.
8. It allows administrator to change the question paper model, staff, students and
loading question paper into the database with less burden.
Demerits:
1. It is not that much convenient to the students in the beginning unless they are
well familiar with the computer usage.
2. In this pattern evaluating the paper for the second, third time involves same
complexity as the first time because the mistakes encountered during first
evaluation are not stored for reference.

29

CHAPTER 4
PROBLEM ANALYSIS AND SYSTEM REQUREMENTS
SPECIFICATIONS
4.1 PROBLEM ANALYSIS
4.1.1 Global Use-case System
Identification of actors:
Actor: Actor represents the role a user plays with respect to the system. An actor
interacts with, but has no control over the use cases.
Graphical representation:

<<Actor name>>

Actor

An actor is someone or something that:

Interacts with or uses the system.

Provides input to and receives information from the system.

Is external to the system and has no control over the use cases.

Actors are discovered by examining:

Who directly uses the system?

Who is responsible for maintaining the system?

External hardware used by the system.

Other systems that need to interact with the system.

30

Questions to identify actors:

Who is using the system? Or, who is affected by the system? Or, which groups
need help from the system to perform a task?

Who affects the system? Or, which user groups are needed by the system to
perform its functions? These functions can be both main functions and
secondary functions such as administration.

Which external hardware or systems (if any) use the system to perform tasks?

What problems does this application solve (that is, for whom)?

And, finally, how do users use the system (use case)? What are they doing
with the system?

The actors identified in this system are:


1. Students
2. Administrator
3. Staff
4. Invigilator
Identification of usecases:
Usecase:

A use case can be described as a specific way of using the system from a

users (actors) perspective.


Graphical representation:

A more detailed description might characterize a use case as:

Pattern of behavior the system exhibits

A sequence of related transactions performed by an actor and the system

Delivering something of value to the actor

Use cases provide a means to:

capture system requirements

communicate with the end users and domain experts

test the system

31

Use cases are best discovered by examining the actors and defining what the actor
will be able to do with the system.
Guide lines for identifying use cases:
For each actor, find the tasks and functions that the actor should be able to

perform or that the system needs the actor to perform. The use case should
represent a course of events that leads to clear goal.

Name the use cases.

Describe the use cases briefly by applying terms with which the user is familiar.
This makes the description less ambiguous

Questions to identify use cases:

What are the tasks of each actor?

Will any actor create, store, change, remove or read information in the system?

What use case will store, change, remove or read this information?

Will any actor need to inform the system about sudden external changes?

Does any actor need to inform about certain occurrences in the system?

What usecases will support and maintains the system?

Can all functional requirements be performed by the usecases?

The use cases that are identified in this system are:


Login
Exam settings
Student details
Staff details
Invigilator details
Take exam
Submit test
Cancel exam
View results
Evaluate
Change marks

32

View marks
Invigilate
Report feedback
4.1.2 Flow of events
A flow of events is a sequence of transactions (or events) performed by the
system. They typically contain very detailed information, written in terms of what the
system should do, not how the system accomplishes the task. Flow of events are
created as separate files or documents in your favorite text editor and then attached or
linked to a use case using the Files tab of a model element.
A flow of events should include:

When and how the use case starts and ends

Use case/actor interactions

Data needed by the use case

Normal sequence of events for the use case

Alternate or exceptional flows

Construction of use case diagrams:


Use-case diagrams graphically depict system behavior (use cases). These
diagrams present a high level view of how the system is used as viewed from an
outsiders (actors) perspective.

A use-case diagram may depict all or some of the

use cases of a system.


A use-case diagram can contain:

actors ("things" outside the system)

use cases (system boundaries identifying what the system should do)

Interactions or relationships between actors and use cases in the system


including the associations, dependencies, and generalizations.

Relation ships in use-cases:


1. Communication:

33

The communication relationship of an actor in a use-case is shown by


connecting the actor symbol to the use-case symbol with a solid path. The actor is said
to communicate with the use-case.

2.Uses:
A Uses relationship between the usecases is shown by generalization arrow
from the use-case.
3. Extends:
The extends relationship is used when we have one use-case that is similar to
another use-case but does a bit more. In essence it is like subclass.

34

login

<<include>>
<<include>>

<<include>>

Evaluate
<<include>>

Take Exam
student

view results

<<include>>

<<extend>>

change Marks
Review
<<include>>

Adminlogin
Administrator

submit
staff

View Marks
<<include>>

cancel
<<include>>

<<include>>
<<include>>

StudentDetails StaffDetails

Exam Settings

Invigilator

InvigilatorDetails

Report Feedback

Invigilate

Fig 4.1.2.1 Overall use case diagram of the system

4.1.3 Activity diagram


Activity diagrams provide a way to model the workflow of a business
process, code-specific information such as a class operation. The transitions are
implicitly triggered by completion of the actions in the source activities. The main
difference between activity diagrams and state charts is activity diagrams are activity
centric, while state charts are state centric. An activity diagram is typically used for
modeling the sequence of activities in a process, whereas a state chart is better suited
to model the discrete stages of an objects lifetime.

35

An activity represents the performance of task or duty in a workflow. It


may also represent the execution of a statement in a procedure. You can share
activities between state machines. However, transitions cannot be shared.
An action is described as a "task" that takes place while inside a state or activity
Actions on activities can occur at one of four times:
on entry

----

The "task" must be performed when the object enters the

state or activity.
on exit

----

The "task" must be performed when the object exits the state

or activity.
do

---- The "task" must be performed while in the state or activity and

must continue until exiting the state.


on event

----

The "task" triggers an action only if a specific event is

received.
An end state represents a final or terminal state on an activity diagram or state
chart diagram.
A start state (also called an "initial state") explicitly shows the beginning of a
workflow on an activity diagram.
Swim lanes can represent organizational units or roles within a business
model. They are very similar to an object. They are used to determine which
unit is responsible for carrying out the specific activity. They show ownership
or responsibility. Transitions cross swim lanes
Synchronizations enable you to see a simultaneous workflow in an activity
diagram Synchronizations visually define forks and joins representing parallel
workflow.
A fork construct is used to model a single flow of control that divides

into

two or more separate, but simultaneous flows. A corresponding join should


ideally accompany every fork that appears on an activity diagram. A join
consists of two of more flows of control that unite into a single flow of
control. All model elements (such as activities and states) that appear between
a fork and join must complete before the flow of controls can unite into one.

36

An object flow on an activity diagram represents the relationship between an


activity and the object that creates it (as an output) or uses it (as an input).

Administrator

Inv igilator

Student

Staff

login
administrator
check type
invigilator
invigilate the
exam

student

staff

write exam

submit answer
paper
set staff
details

assign
invigilators

set student
details

set question
paper

report
feedback

get feedback

evaluate answer
paper

view result

submit
results

4.1.3.1 Overall activity diagram of the system


Use-case Realizations

Use case realization is nothing but an instance of a use case which involves the
identification of a possible set of classes, together with an understanding of how those
classes might interact to deliver the functionality of the use case. The set of classes is
known as collaboration.

37

Take-exam

takeexam

Submit-test

submit-test

Viewmarks

Cancel-test

viewmarks

cancel-test

Fig 4.1.4.1 Usecase realization for main use-cases

4.1.5 Sequence Diagram


A sequence diagram is a graphical view of a scenario that shows object
interaction in a time-based sequence what happens first, what happens next. Sequence
diagrams establish the roles of objects and help provide essential information to
determine class responsibilities and interfaces.

38

There are two main differences between sequence and collaboration diagrams:
sequence diagrams show time-based object interaction while collaboration diagrams
show how objects associate with each other.
A sequence diagram has two dimensions: typically, vertical placement
represents time and horizontal placement represents different objects.
Object: An object has state, behavior, and identity. The structure and behavior of
similar objects are defined in their common class. Each object in a diagram indicates
some instance of a class. An object that is not named is referred to as a class instance.
The object icon is similar to a class icon except that the name is underlined: An
object's concurrency is defined by the concurrency of its class.
Message: A message is the communication carried between two objects that trigger
an event. A message carries information from the source focus of control to the
destination focus of control.
The synchronization of a message can be modified through the message specification.
Synchronization means a message where the sending object pauses to wait for results.
Link: A link should exist between two objects, including class utilities, only if there
is a relationship between their corresponding classes. The existence of a relationship
between two classes symbolizes a path of communication between instances of the
classes: one object may send messages to another. The link is depicted as a straight
line between objects or objects and class instances in a collaboration diagram. If an
object links to itself, use the loop version of the icon.

Sequence diagrams for our system

39

: User
: login interface
1: Enter login details

: login control system

: Database

2: submit detials to control system

3: Handle the submitted data

4: check user validity with the database

5: Give appropirate priviliges

6: Access the priviliges

Fig 4.1.5.1 Sequence diagram for login

40

: Administrator

: Exams settings interface

: Examsettings
control class

: Database

1: Login

2: select operation

3: Provide selected operation's interface

4: Enter data

5: Forward the data

6: Handle the data

7: Perform selected operation

8: Interact with the database

9: Give acknowledgement

Fig 4.1.5.2 Sequence diagram for Exam settings

41

: Administrator

: Student details interface

1: Logs in

: student details
control system

: Database

2: Select an operation to perform

3: provide selected operation's interface

4: Enter the details needed


5: submit details to control system

6: Handle the data

7: perform selected operation

8: Interact with the database

9: send acknowledgmemnt to administrator

Fig 4.1.5.3 Sequence diagram for student details

42

: Administrator

: staff details interface

1: Login

: staff details control


system

: Database

2: select operation

3: provide selected operation's interface

4: Enter the data needed


5: submit details
6: Handle submitted data

7: perform selected operation

8: Interact with the database

9: Provide acknowledgment to the administrator

Fig 4.1.5.4 Sequence diagram for staff details

43

: Administrator

: Invigilator details interface

: Invigilator details
control system

: Database

1: Login

2: Select operation

3: Provide selected operation's interface

4: Enter data

5: submit data to invigilator control system

6: Handle data

7: Perform selected operation

8: Interact with the database

9: Give acknowledgment

Fig 4.1.5.5 Sequence diagram for invigilator details

44

: Display question paper, time

: student
1: Login

: Take exam control


class

2: Display question paper, timeleft.

3: Select questions to answer


4: Answer the questions
5: Autosave the answers frequently

6: Save the answers


7: Send warning when time is up
8: Submit the test

Fig 4.1.5.6 Sequence diagram for take-exam use-case

45

: student

: Submittest interface

: Submittest control
class

: Database

1: Click submit link


2: Ask confirmation

3: Give confirmation

4: Forward submit confirmation

5: Collect all answerws written

6: Attach encripted user id on answer document

7: convert to pdf format

8: Store the pdf file in database

9: Give acknowledgement

Fig 4.1.5.7 Sequence diagram for submit test

46

: student

: Cancel interface

: Cancel control class

1: click cancel exam link

2: Ask confirmation regarding cancellation

3: Confirm cancellation
4: Forward confirmation

5: Delete all the answers in the text boxes

6: Give acknowledgement

Fig 4.1.5.8 Sequence diagram for cancel use-case

47

: student

: view results interface

: view results control


system

: Database

1: Login
2: Request marks
3: Submit details
4: Retrieve marks obtained

5: Forward results
6: View marks

Fig 4.1.5.9 Sequence diagram for view-results use-case

48

: Evaluate interface

: staff
1: Login

: Evaluation control
system

: Database

2: Select unevaluated answer sheet

3: Evaluate the paper

4: Allot the marks for all answers


5: Submit marks
6: Enter data in the database

7: Give acknowledgement

Fig 4.1.5.10 Sequence diagram for evaluate use-case

49

: staff

: Change marks interface

: Change marks
control system

: Database

1: Login
2: Display existing marks

3: Enter changed marks


4: Forward newly alloted marks
5: update the changed marks

6: Give acknowledgement

Fig 4.1.5.11 Sequence diagram for change-marks use-case

50

: staff

: View marks interface

: View marks control


system

: Database

1: Enter encrypted userid


2: Submit

3: Handle data

4: retreive marks from database

5: Submit

6: View marks

Fig 4.1.5.12 Sequence diagram for view-marks use-case

51

: Invigilator

: student

: Feedback Interface

1: Guide the students

2: Invigilate the Exam process

3: Take necessary actions

4: Access feedback interface

Fig 4.1.5.13 Sequence diagram for invigilate use-case

52

: Invigilator : Feedback Interface

: Feedback control
system

: Database

1: Login

2: Give Feed back

3: Submit feedback
4: Store feedback in database
5: Give acknowledgement

Fig 4.1.5.14 Sequence diagram for feedback use-case

53

4.2 SYSTEM REQUREMENTS SPECIFICATIONS


4.2.1 Process model
To solve actual problems in an industry setting, a software engineer or a team of
engineers must incorporate a development strategy that encompasses that process,
methods, and tools. This strategy is often referred to as process model or a software
engineering paradigm.
A process model for software engineering is chosen based on the nature of the
project and application, the methods and tools to be used and the controls and the
deliverables that are required.
So, our application is based on the Object Oriented Approach. In this model we
design the UML diagrams like Use case, Activity, Sequence, Collaboration and Class
diagrams.
4.2.2 System requirements
Hardware requrements:
Hard Disk Drive 40 to 80 Gb
Processor 2.2 GHz Pentium P3 (or) P4.
Ram 256MB Minimum
. 56k Faster Internet Connection
Software requirements:
Programming Languages

: Java

Operating System

: Windows 95/98/XP

Server
Data Base

: Apache Tomcat 5.0


: Oracle 9i

54

4.2.3 Application Features:


Modules:
1) Administrator Module
2) Student Module
3) Staff Module
4) Invigilator Module
MODULE 1
Administrator Module: Administrator is the actor who interacts with this module.
He is the person who maintains the system and it is the main module of the system.
It involves much basic functionality.
Functionality:
1. Updating student details
2. Updating staff details
3. Updating invigilator details
4. Setting exam details
1. Updating student details: It involves many functions related to students like
Add student, delete student, delete all students, viewing a particular student
details, viewing all student details and promoting students.
2. Updating staff details: It involves many functions related to staff like assign staff
to a subject, delete staff, delete all staff members, view staff member details, view
all staff details.
3. Updating invigilator details: It involves updating the details of the invigilators
like assigning the invigilator for a particular exam and deleting a invigilator if
needed.
4. Exam setting details: It involves exam setting details like inserting new subject,
deleting existing subjects, setting question paper for a paper, deleting question
paper for a subject, viewing question paper for a subject etc.

55

MODULE 2
Student Module: Student interacts with this system after logging into the system by
selecting login type as student. After logging he has many student functionalities to
perform.
Functionality:
1. View instructions
2. Take exam
3. View results
1. View instructions: It contains instructions that are to be followed while writing
the exam.
2. Take exam: Here the student will take the exam in the text boxes provided under
each question. A clock will be displayed through out the exam process for the time
period of 3 hours. After writing the exam, student has to submit the answer sheet
in time.
3. View results: The student after submitting the exam, the answered sheet will be
evaluated by the staff and the results are entered into the database. Then he can
view the results obtained.
MODULE 3
Staff module: Staff interacts with the system by logging into the system by setting
login

type as staff.

Functionality:
4. Evaluate answer sheets
5. Allot marks
6. View marks
1. Evaluate answer sheets: Staff who deals the particular subject can access the
answered sheets of that particular subject belonging to the students, by
downloading the pdf documents which contains the answers written by the
students.

56

2. Allot Marks: Staff after evaluating the paper, submits the marks to the system by
selecting the marks need to be allotted in a drop down box for each question and
each section.
3. View Marks: This enables the staff to view the marks allotted to each student for
each question in every section and also he can view the total marks obtained.
MODULE 4
Invigilator Module: Invigilator interacts with the system for giving the feedback and
also authenticates the process of examination. Feedback can be given under three
functionalities.
Functionality:
1. Report absentees
2. Report debarred
3. Report technical problems
4. Report Absentees: Invigilator reports the userid's of the students who dint come
to the exam.
5.

Report debarred: He reports the candidates who got debarred for violating the
rules of examination.

6.

Report Technical problems: Reports the details of the candidate who are unable
to complete the exam due to technical problems of the system.

57

CHAPTER 5
DESIGN

5.1 USER INTERFACE DESIGN

Home page

58

Admin Login

Admin Invalid Login Page

59

Admin First Page

Student details page

60

Add Student Page

Add Student output

61

Delete Student page

Delete Student output

62

View all students page

View all students output

63

Staff Details

64

Add Staff page

Add Staff output

65

View all Staffs Page

View all Staffs output

66

View Staff

View staff output

67

Exam Setting Page

68

Add New subject

Add New subject output

69

Delete Question Paper

Delete question paper failure page

70

Load Question Paper

Load question paper Submit

71

Load question paper acknowledgement

View Question paper

72

View Question paper output

Students Login

73

Students First Page

Question paper & answer space

74

Submit Answer sheet

Submit test with alert

75

Submit test Acknowledgement page

PDF Generation in server

76

Answer Sheet in PDF format along with questions

Staff Login

77

Staff first page

Allotment & submitting of marks

78

Staffs view of students marks

View of Marks allotted

View results by students after login

79

5.2 ARCHITECHTURE DESIGN

80

3-Tier Architecture:
The three-tier software architecture (a.k.a. three layer architectures) emerged
in the 1990s to overcome the limitations of the two-tier architecture. The third tier
(middle tier server) is between the user interface (client) and the data management
(server) components. This middle tier provides process management where business
logic and rules are executed and can accommodate hundreds of users (as compared to
only 100 users with the two tier architecture) by providing functions such as queuing,
application execution, and database staging.

Fig 5.2.1 Three Tier Architecture


The three tier architecture is used when an effective distributed client/server
design is needed that provides (when compared to the two tier) increased
performance, flexibility, maintainability, reusability, and scalability, while hiding the
complexity of distributed processing from the user. These characteristics have made
three layer architectures a popular choice for Internet applications and net-centric
information systems.

81

Technical Details:
A three tier distributed client/server architecture includes a user system
interface top tier where user services (such as session, text input, dialog, and display
management) reside.

Fig 5.2.2 Three tier distributed client/server architecture depiction

Advantages of Three-Tier:

Separates functionality from presentation.

Clear separation - better understanding.

Changes limited to well define components.

Can be running on WWW.

Effective network performance.

Functional Architecture:1. FUNCTIONAL VIEW OF REGISTRATION:


-> A request for Registration is sent to the server from the client.
-> These client details from registration server are stored in database.
-> The server retrieves the Employee details and sends it back to the client after
registration is

done successfully.

82

Request for register as


a student

Stores
Student details

Generates user-id,
password,course,
branch year & sem

Generates user-id,
password,course,
branch year & sem
CLIENT

RDBMS

SERVER

Fig 5.2.3 Functional Architecture

HTTP
JDBC

Request
HTTP
Response

JDBC
SERVER

Fig 5.2.4 TECHNICAL DIAGRAM

5.3 DATABASE DESIGN

RDBMS

83

5.3.1 Data Dictionary


Features of data dictionary:
The volume of data in most information system applications is substantially
more than a single user can easily keep track of data dictionaries are an integral
component of structural analysis since dataflow diagrams by themselves do not fully
describe the subject of the investigation. The data dictionary provides additional
information about the system.
What is data dictionary?
A data dictionary is a repository of the elements in the system. As the name
suggest, these elements center on data and the way they are structured to meet user
requirements and organization needs. In a data dictionary we will find a list of all
elements composing the data flowing through a system. The major elements are data
flows, data stores and process. The data dictionary stores details and descriptions of
these elements.
Why is data dictionary important?
Analysis use data dictionaries for five important reasons
1. To manage the details in large systems
2. To communicate a common meaning for all elements
3. To document the features of the system
4. To facilitate analysis of details in order to evaluate characteristics and
determine where the changes are made.
5. To locate errors and omissions in the system.

5.3.2 Tables

84

STUDENT TABLE
Attribute

Data type

Size

Mandatory

Name

Varchar2

15

Not null

User-id

Varchar2

15

Not null

Password

Varchar2

15

Not null

Course

Varchar2

Not null

Branch

Varchar2

15

Not null

Year

Number

Not null

Semester

Number

Not null

Key

Primary key

References
courses(course)

TABLE 5.3.2.1

STAFF TABLE
Attribute

Data type

Size

Mandatory

Name

Varchar2

15

Not null

Use-rid

Varchar2

15

Not null

Password

Varchar2

15

Not null

Sub-code

Varchar2

Not null

TABLE 5.3.2.2

COURSES TABLE

Key

Primary key

Unique,
References
subcds(sbcode)

85

Attribute

Data type

Size

Mandatory

Key

Courses

Varchar2

15

Not null

Primary key

TABLE 5.3.2.3

BRANCHES TABLE
Attribute

Data type

Size

Mandatory

Key

Branch

Varchar2

15

Not null

Primary key

TABLE 5.3.2.4

SUBCODES TABLE
Attribute

Data type

Size

Mandatory

Key

Subcode

Varchar2

10

Not null

Primary key

Course

Varchar2

Not null

References
courses(course)

Branch

Varchar2

15

Not null

Year

Number

Not null

Semester

Number

Not null

TABLE 5.3.2.5

INVIGILATOR TABLE

86

Attribute

Data type

Size

Mandatory

Key

Invi-id

Varchar2

15

Not null

Primary key
references
staff(userid)

Password

Varchar2

15

Not null

Userid

Varchar2

15

Not null

References
staff(userid)

TABLE 5.3.2.6

ADMIN TABLE
Attribute

Data type

Size

Mandatory

Key

Userid

Varchar2

15

Not null

Primary key

Password

Varchar2

15

Not null

TABLE 5.3.2.7

SECTION1 TABLE

87

Attribute

Data type

Size

Mandatory

Key

Subcode

Varchar2

Not null

Primary key
references
sbcode(sbcode)

Q1

Varchar2

150

Not null

Q2
Q3
Q4
Q5
Q6
Q7
Q8
Q9
Q10
Q11
Q12
Q13
Q14

Varchar2
Varchar2
Varchar2
Varchar2
Varchar2
Varchar2
Varchar2
Varchar2
Varchar2
Varchar2
Varchar2
Varchar2
Varchar2

150
150
150
150
150
150
150
150
150
150
150
150
150

Not null
Not null
Not null
Not null
Not null
Not null
Not null
Not null
Not null
Not null
Not null
Not null
Not null

TABLE 5.3.2.8

SECTION2 TABLE
Attribute

Data type

Size

Mandatory

Key

Subcode

Varchar2

15

Not null

Primary key
references
sbcode(sbcode)

Q21

Varchar2

150

Not null

Q22

Varchar2

150

Not null

TABLE 5.3.2.9

SECTION3 TABLE

88

Attribute

Data type

Size

Mandatory

Key

Subcode

Varchar2

15

Not null

Primary key
references
sbcode(sbcode)

Q31

Varchar2

150

Not null

Q32

Varchar2

150

Not null

TABLE 5.3.2.10

SECTION4 TABLE
Attribute

Data type

Size

Mandatory

Key

Subcode

Varchar2

15

Not null

Primary key
references
sbcode(sbcode)

Q41

Varchar2

150

Not null

Q42

Varchar2

150

Not null

TABLE 5.3.2.11

SECTION5 TABLE
Attribute

Data type

Size

Mandatory

Key

Subcode

Varchar2

15

Not null

Primary key
references
sbcode(sbcode)

Q51

Varchar2

150

Not null

Q52

Varchar2

150

Not null

TABLE 5.3.2.12

Attribute

Data type

SECTION1MARKS TABLE
Size
Mandatory

Key

89

Subcode

Varchar2

Not null

User-id

Varchar2

15

Not null

Q1

Number

Not null

Q2
Q3
Q4
Q5
Q6
Q7
Q8
Q9
Q10
Q11
Q12
Q13

Number
Number
Number
Number
Number
Number
Number
Number
Number
Number
Number
Number

1
1
1
1
1
1
1
1
1
1
1
1

Not null
Not null
Not null
Not null
Not null
Not null
Not null
Not null
Not null
Not null
Not null
Not null

Q14

references
sbcode(sbcode)
References
student(userid)

Number
1
Not null
Primary key is the combination of both subcode & user-id
TABLE 5.3.2.13

SECTION2MARKS TABLE
Size
Mandatory

Attribute

Data type

Subcode

Varchar2

15

Not null

User-id

Varchar2

15

Not null

Q21

Number

Not null

Q22

Number

Not null

Primary key is the combination of both subcode & user-id


TABLE 5.3.2.14

Key
Primary key
references
sbcode(sbcode)
References
student(userid)

90

SECTION3MARKS TABLE
Size
Mandatory

Attribute

Data type

Subcode

Varchar2

15

Not null

User-id

Varchar2

15

Not null

Q31

Number

Not null

Q32

Number

Not null

Key
Primary key
references
sbcode(sbcode)
References
student(userid)

Primary key is the combination of both subcode & user-id


TABLE 5.3.2.15

SECTION4MARKS TABLE
Attribute

Data type

Size

Mandatory

Key

Subcode

Varchar2

15

Not null

User-id

Varchar2

15

Not null

Primary key
references
sbcode(sbcode)
References
student(userid)

Q41

Number

Not null

Q42

Number

Not null

Primary key is the combination of both subcode & user-id


TABLE 5.3.2.16

SECTION5MARKS TABLE

91

Attribute

Data type

Size

Mandatory

Key

Subcode

Varchar2

15

Not null

User-id

Varchar2

15

Not null

Primary key
references
sbcode(sbcode)
References
student(userid)

Q51

Number

Not null

Q52

Number

Not null

Primary key is the combination of both subcode & user-id


TABLE 5.3.2.17

TOTALMARKS TABLE
Attribute

Data type

Size

Mandatory

Key

Subcode

Varchar2

15

Not null

User-id

Varchar2

15

Not null

Primary key
references
sbcode(sbcode)
References
student(userid)

TOTALMARK

Number

Not null

Primary key is the combination of both subcode & user-id


TABLE 5.3.2.18

ABSENTIES TABLE
Attribute

Data type

Size

Mandatory

Key

Subcode

Varchar2

15

Not null

User-id

Varchar2

15

Not null

Primary key
references
sbcode(sbcode)
References
student(userid)

Primary key is the combination of both subcode & user-id


TABLE 5.3.2.19

DEBARRED TABLE

92

Subcode

Varchar2

15

Not null

User-id

Varchar2

15

Not null

Primary key
references
sbcode(sbcode)
References
student(userid)

TABLE 5.3.2.20

TECHPROB TABLE
Attribute

Data type

Size

Mandatory

Key

Subcode

Varchar2

15

Not null

User-id

Varchar2

15

Not null

Primary key
references
sbcode(sbcode)
References
student(userid)

Primary key is the combination of both subcode & user-id


TABLE 5.3.21

PDFFILES TABLE
Attribute

Data type

Size

Mandatory

Key

Subcode

Varchar2

15

Not null

User-id

Varchar2

15

Not null

Primary key
references
sbcode(sbcode)
References
student(userid)

Files

Long raw

Not null

Primary key is a combination of userid & password


Table 5.3.2.22

5.4 CLASS DESIGN

93

Identification of analysis classes:


A class is a set of objects that share a common structure and common
behavior (the same attributes, operations, relationships and semantics). A class is an
abstraction of real-world items.
There are 4 approaches for identifying classes:
1. Noun phrase approach:
2. Common class pattern approach.
3. Use case Driven Sequence or Collaboration approach.
4. Classes , Responsibilities and collaborators Approach
1. Noun Phrase Approach:
The guidelines for identifying the classes:
a. Look for nouns and noun phrases in the usecases.
b. Some classes are implicit or taken from general knowledge.
c. All classes must make sense in the application domain ; Avoid
computer implementation classes defer them to the design stage.
d. Carefully choose and define the class names.
After identifying the classes we have to eliminate the following types of classes:
a. Redundant classes.
b. Adjective classes..
2. Common class pattern approach:
The following are the patterns for finding the candidate classes:
a. Concept class.
b. Events class.
c. Organization class
d. Peoples class
e. Places class
f. Tangible things and devices class.
3. Usecase driven approach:

94

We have to draw the sequence diagram or collaboration diagram. If there is


need for some classes to represent some functionality then add new classes which
perform those functionalities.
4. CRC approach:
The process consists of the following steps:
a. Identify classes ' responsibilities ( and identify the classes )
b. Assign the responsibilities
c. Identify the collaborators.
Identification of responsibilities of each class:
The questions that should be answered to identify the attributes and methods of a class
respectively are:
1. What information about an object should we keep track of?
2. What services must a class provide?
Identification of relationships among the classes:
Three types of relationships among the objects are:
Association: How objects are associated?
Super-sub structure: How are objects organized into super classes and sub classes?
Aggregation: What is the composition of the complex classes?
Association:
The questions that will help us to identify the associations are:
1. Is the class capable of fulfilling the required task by itself?
2. If not, what does it need?
3. From what other classes can it acquire what it needs?

Guidelines for identifying the tentative associations:

95

-- A dependency between two or more classes may be an association. Association


often corresponds to a verb or prepositional phrase.
-- A reference from one class to another is an association. Some associations are
implicit or taken from general knowledge.
Some common association patterns are:
Location association like part of, next to, contained in..
Communication association like talk to, order to
We have to eliminate the unnecessary association like implementation associations,
ternary or n-ary associations and derived associations.
Super-sub class relationships:
Super-sub class hierarchy is a relationship between classes where one class is
the parent class of another class (derived class).This is based on inheritance.
Guidelines for identifying the super-sub relationship, a generalization are
1. Top-down: Look for noun phrases composed of various adjectives in a class
name. Avoid excessive refinement. Specialize only when the sub classes have
significant behavior.
2. Bottom-up: Look for classes with similar attributes or methods. Group them by
moving the common attributes and methods to an abstract class. You may have to alter
the definitions a bit.
3. Reusability: Move the attributes and methods as high as possible in the hierarchy.
4. Multiple inheritances: Avoid excessive use of multiple inheritances. One way of
getting benefits of multiple inheritances is to inherit from the most appropriate class
and add an object of another class as an attribute.

96

InvigilatorDetails
name : String
authenticateStudent()
conductTest()
1
1

StudentDetails

<<entity class>>

regdNo : String
name : String
year : Integer
semester : Integer
branch : String

QuestionPaper
0..n

setRegdNo()
getRegdNo()
setName()
getName()
setYear()
getYear()
setSemester()
getSemester()
setBranch()
getBranch()
1

subjectCode : String
sections : String
questionNumbers : Integer
questions : String
subjectName : String

1..n

setQuestionNumbers()
getQuestionNumers()
setSubjectCode()
getSubjectCode()
setQuestions()
getQuestions()
setSubjectName()
getSubjectName()

0..n

0..n
<<entity class>>

MarksDetails
studentRegdNo : String
subjectCode : String
marks : Integer
setStudentRegdNo()
getStudentRegdNo()
setSubjectCode()
getSubjectCode()
setMarks()
getMarks()

StaffDetails

name : String
subject : String
0..n

setName()
getName()
setSubject()
getSubject()

5.4.1 Overall class diagram of the system

97

CHAPTER 6
TESTING
TESTING:
Testing is the process of detecting errors. Testing performs a very critical role
for quality assurance and for ensuring the reliability of software. The results of testing
are used later on during maintenance also.

6.1 PSYCHOLOGY OF TESTING


The aim of testing is often to demonstrate that a program works by showing
that it has no errors. The basic purpose of testing phase is to detect the errors that may
be present in the program. Hence one should not start testing with the intent of
showing that a program works, but the intent should be to show that a program
doesnt work. Testing is the process of executing a program with the intent of finding
errors.

6.2 TESTING OBJECTIVES


The main objective of testing is to uncover a host of errors,
systematically and with minimum effort and time. Stating formally, we can say,
Testing is a process of executing a program with the intent of finding an
error.
A successful test is one that uncovers an as yet undiscovered error.
A good test case is one that has a high probability of finding error, if it
exists.
The tests are inadequate to detect possibly present errors.
The software more or less confirms to the quality and reliable standards.

98

6.3 LEVELS OF TESTING


In order to uncover the errors present in different phases we have the
concept of levels of testing. The basic levels of testing are as shown below
Acceptance
Testing

Client Needs

System Testing
Requirements

Design

Integration Testing

Unit Testing
Code

6.4 TYPES OF TESTING


Unit Testing
Integration Testing
System Testing
Acceptance Testing

6.4.1 Unit Testing


Unit testing focuses verification effort on the smallest unit of software i.e. the
module. Using the detailed design and the process specifications testing is done to
uncover errors within the boundary of the module. All modules must be successful in
the unit test before the start of the integration testing begins.
In this project each service can be thought of a module. There are so many
modules like Login, Admin module which further involves student details, staff
details, invigilator details, exam settings etc, student module which contains exam and

99

results sub modules, staff module and invigilator module. As a part of unit testing we
tested every program or function separately after coding of that particular program.
We tested whether the program is meeting the requirements placed by the
requirements phase. If not we modified programs according to our requirements.
In this application developer tests the programs up as system. Software units
in a system are the modules and routines that are assembled and integrated to form a
specific function. Unit testing is first done on modules, independent of one another to
locate errors. This enables to detect errors. Through this, errors resulting from
interaction between modules initially avoided. We followed basic flow testing where
we Showed screens for every path of flow for login page thereby proving cyclometric
complexity of the program.

100

login paper

login with out entering user-id

101

login with out password

login without type

102

login without year

login without subcode

103

Login with invalid userid & password

Login page after all entries are submitted correctly

104

Results of Testing for our Application


1. Others login (successful)
Test Case: Others Login (successful)
Test Description: provide student/staff/invigilator rights by checking type
Pre Conditions: Database Connectivity
Action Performed: Enter valid login details without leaving any field
Expected Results: Success login
Conditions Verified: yes
Result: Success

2. Others login (unsuccessful)


Test Case: Others Login (unsuccessful)
Test Description: Report error message
Pre Conditions: Database Connectivity
Action Performed: Enter invalid login details\leave any field without blank
Expected Results: Display error message\alert box regarding the error
Conditions Verified: yes
Result: Success

3. Set question paper (successful)


Test Case: Set question paper (successful)
Test Description: Provide access for load successfully
Pre Conditions: Database Connectivity
Action Performed: select fields course, branch, year, sem and subject, enter all
questions
Expected Results: Give acknowledgement to admin after loading questions
Conditions Verified: yes
Result: Success

105

4. Set question paper (unsuccessful)


Test Case: Set question paper (unsuccessful)
Test Description: Restrict access access to load successfully\display error message
Pre Conditions: Database Connectivity
Action Performed: leaving details \ leave any field blank\ already existing
Expected Results: Give proper error message describing the error
Conditions Verified: yes
Result: Success

5. Take Exam (successful)


Test Case: Take Exam (successful)
Test Description: Allow the student to take test
Pre Conditions: Database Connectivity, login as student, set question paper
Action Performed: Submit valid Student details like user-id, password, subcode
etc.
Expected Results: Allow student to take exam
Conditions Verified: yes
Result: Success
6. Take Exam (unsuccessful)
Test Case: Take Exam (unsuccessful)
Test Description: Restrict the student to take test
Pre Conditions: Database Connectivity, login as student, set question paper
Action Performed: Submit Invalid details like user-id, password, subcode etc.
Expected Results: Give warning message like invalid user/ question paper not set
Conditions Verified: yes
Result: Success

106

7. Submit exam (successful)


Test Case: Submit exam (successful)
Test Description: Disable the user to submit question paper with error message \ alert
box
Pre Conditions:
Student login, Database Connectivity, take exam
Action Performed: Submit the answer paper with in given time 3 hours
Expected Results: Give successfully uploaded your answer sheet message
Conditions Verified: yes
Result: Success

8. Submit exam (unsuccessful)


Test Case: Submit exam (unsuccessful)
Test Description: Disable the user to submit question paper with error message \ alert
box
Pre Conditions: Database connectivity, student login, access take exam link
Action Performed: Submitting the answer sheet after time out
Expected Results: Report error message
Conditions Verified: yes
Result: Success

6.4.2 Integration Testing


After the unit testing we have to perform integration testing. The goal here is
to see if modules can be integrated properly, the emphasis being on testing interfaces
between modules. This testing activity can be considered as testing the design and
hence the emphasis on testing module interactions.
In this project integrating all the modules forms the main system. When
integrating all the modules I have checked whether the integration effects working of
any of the services by giving different combinations of inputs with which the two
services run perfectly before Integration.

107

After the completion of unit testing, we tested the functionality of entire


system by integrating all the modules.
For example, in order a student to write an exam for a subject first he must be
added as a student to that course by admin, and also question paper must also
be loaded into the database for that subject. So here student module is
depending on admin module. So we checked whether all students added by the
admin are able to access the system to write the exams of their respective
courses or not.
In this way integration testing is followed also to test the interaction among all
modules so that the functionality of one module may not affect the
functionality of another module in adverse way.

6.4.3 System Testing


Here the entire software system is tested. The reference document for this
process is the requirements document, and the goal as to see if software meets its
requirements.
In the system testing we tested the entire system basing on System
requirements specification document i.e., whether the functionality we proposed in
document is achieved or not. Here we achieved every thing what ever we specified
write from the login, taking exam, pdf conversion, evaluation to viewing results by
the student.
6.4.4 Acceptance Testing
Acceptance Test is performed with realistic data of the client to demonstrate
that

the software is working satisfactorily. Testing here is focused on external

behavior of the system; the internal logic of program is not emphasized.


Test cases should be selected so that the largest number of attributes of an
equivalence class is exercised at once. The testing phase is an important part of
software development. It is the process of finding errors and missing operations and
also a complete verification to determine whether the objectives are met and the user

108

requirements are satisfied. Our system underwent acceptance test from people who
are not involved in the project.

6.5 Criteria Satisfied by Test Cases

1)

Test cases that reduced by a count that is greater than one, the number
of additional test cases that much be designed to achieve reasonable
testing.

2)

Test cases that tell us something about the presence or absence of


classes of errors, rather than an error associated only with the specific
test at hand.

In order to test the over all system only one method of testing is not enough, so we
have done wide range of tests to validate the functionality of the system.

109

CHAPTER 7
CONCLUSION & FUTURE WORK

Proposed Electronic Descriptive Examination Management System achieved


better transparency, security and maintainability. It also saves lot of manpower, time
and logistics to conduct the examination, evaluate the answer scripts and announcing
the results.
In the proposed system we are unable to include rich text editor, which
supports drawings. So this can be carried out in future. We can extend the system to
different levels of stakeholders with different privileges.

110

BIBILOGRAPHY
1. Ali Bahraini (2003),Object Oriented Analysis And Design using UML, 2nd
Edition Tata McGraw-Hill.
2. Herbert Schildt (2002),Java 2 Programmers Reference, 1st edition, MCGraw
-Hill companies.
3. Jason Hunter William Crawford and Paula Ferguson (1999) ,Java Servlet
Programming, 2nd Edition.
4. Roger S.Pressman (2002),Software Engineering: A Practioners Approach, 5 th
Edition, Tata MCGraw-Hill.

WEBSITES
1. WWW.java.sun.com
2. WWW.w3schools.com

S-ar putea să vă placă și