Automatic Time Table Generator

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 53

Automatic Time Table Generator

Abstract

The manual operating system of time table preparation in colleges is very monotonous and time-
consuming which results in either the same teachers ending up with more than one class at a time
or many classes conflicting at the same classroom. Due to a non-automatic perspective, absolute
utilization of resources has proven ineffective. In order to deal with such problems, a mechanized
system can be designed with a computer aided timetable generator. The system will take
different inputs like number of subjects, teachers, maximum lectures a teacher can conduct,
priority of subject and topics to be covered in a week or a lecture, considering which, it will
create feasible time tables for working days of the week, making excellent application of all
resources in a way which will be best suited for the constraints. A suitable timetable is then
chosen from the optimal solutions generated. Automated College Timetable generator is a web
based application. It is very difficult to maintain many faculties and allocating subject to them at
a time manually. So the proposed system will help to overcome this disadvantage. Thus, we can
generate timetable for any number of courses and semesters. This system helps to create dynamic
pages so that for implementing such a system we can make use of different tools widely
applicable and free to use also.

Existing System

Normally timetable generation is done manually.

As we know all institutions/organizations has its own timetable, managing and maintaining these
will not be difficult.

Considering workload with this scheduling will make it more complex.

As mentioned, when Timetable generation is being done, it should consider the maximum and
minimum workload that is in a college.

In those cases timetable generation will become more complex.

Also, it is a time-consuming process.


Disadvantages

With a single person or some group involved in task of scheduling it manually, this takes a lot of
effort and time.

Planning timetables is one of the most complex and error-prone applications.

Timetabling is the task of creating a timetable while satisfying some constraints.

Proposed System

Automatic timetable manager is a java based web application used to generate timetable
automatically.

Will help you to manage all the periods automatically and also will be helpful for faculty who
can manage the timetable through online.

It will also useful when if any faculty is absent and admin will maintain the all access privileges
of faculty and students.

And if the faculty is busy, he can able to refuse the class period timings also.

Proposed system will help to generate it automatically also helps to save time.

There is no need for "faculty to worry about their period details and maximum workload.

By using these application faculty can apply for leave by providing leave required date, reason.

Admin can also view the request send by faculty and can also view student details.

Admin can view request of faculty with reason.

It is a comprehensive timetable management solution for colleges which helps to overcome the
challenges in current system.

Advantages

This software is a completely automatic time table scheduling software:


Allocation of periods to classes and instructors is completely mechanized.

Does not restrict the user any processing.

A compatible and accurate timetable is guaranteed and the system is therefore well organized
and reliable.

Enables the collaboration of teachers and students.

The study material can be used in common with others.

Time and labour is saved.

System Requirement Specifications

Software Requirements:

Operating System : Windows 7/10

Technology : Java

Server : Tomcat

Database : MySQL

Frontend : HTML, CSS & JS

Hardware Requirements:

Hard Disk : 500 GB (Min.)

RAM : 512 MB (Min.)

2.1 Functional Requirements

2.1.1 Modules of the System

Admin:
Admin will login into the application.
Admin will add all the faculty and students.
Add course details.
Admin will create time table.
If any information to be updated it will be done by admin and can view feedback.
Faculty:
In order to view the time table the faculty must login into the application.
Faculty can view the time table.
The faculty can send feedback.
Student:
Student can login into the application.
Time table can be viewed by students.
2. SYSTEM STUDY

2.1 FEASIBILITY STUDY

The feasibility of the project is analyzed in this phase and business proposal is put
forth with a very general plan for the project and some cost estimates. During
system analysis the feasibility study of the proposed system is to be carried out.
This is to ensure that the proposed system is not a burden to the company. For
feasibility analysis, some understanding of the major requirements for the system
is essential.

Three key considerations involved in the feasibility analysis are

 ECONOMICAL FEASIBILITY
 TECHNICAL FEASIBILITY
 SOCIAL FEASIBILITY
ECONOMICAL FEASIBILITY

This study is carried out to check the economic impact that the system will
have on the organization. The amount of fund that the company can pour into the
research and development of the system is limited. The expenditures must be
justified. Thus the developed system as well within the budget and this was
achieved because most of the technologies used are freely available. Only the
customized products had to be purchased.

TECHNICAL FEASIBILITY

This study is carried out to check the technical feasibility, that is, the
technical requirements of the system. Any system developed must not have a high
demand on the available technical resources. This will lead to high demands on the
available technical resources. This will lead to high demands being placed on the
client. The developed system must have a modest requirement, as only minimal or
null changes are required for implementing this system.
SOCIAL FEASIBILITY

The aspect of study is to check the level of acceptance of the system by the
user. This includes the process of training the user to use the system efficiently.
The user must not feel threatened by the system, instead must accept it as a
necessity. The level of acceptance by the users solely depends on the methods that
are employed to educate the user about the system and to make him familiar with
it. His level of confidence must be raised so that he is also able to make some
constructive criticism, which is welcomed, as he is the final user of the system.

Client Server

Over view:

With the varied topic in existence in the fields of computers, Client Server is one,
which has generated more heat than light, and also more hype than reality. This
technology has acquired a certain critical mass attention with its dedication
conferences and magazines. Major computer vendors such as IBM and DEC, have
declared that Client Servers is their main future market. A survey of DBMS
magazine reveled that 76% of its readers were actively looking at the client server
solution. The growth in the client server development tools from $200 million in
1992 to more than $1.2 billion in 1996.

Client server implementations are complex but the underlying concept is simple
and powerful. A client is an application running with local resources but able to
request the database and relate the services from separate remote server. The
software mediating this client server interaction is often referred to as
MIDDLEWARE.

The typical client either a PC or a Work Station connected through a network to a


more powerful PC, Workstation, Midrange or Main Frames server usually capable
of handling request from more than one client. However, with some configuration
server may also act as client. A server may need to access other server in order to
process the original client request.

The key client server idea is that client as user is essentially insulated from the
physical location and formats of the data needs for their application. With the
proper middleware, a client input from or report can transparently access and
manipulate both local database on the client machine and remote databases on one
or more servers. An added bonus is the client server opens the door to multi-vendor
database access indulging heterogeneous table joins.

What is a Client Server

Two prominent systems in existence are client server and file server systems. It is
essential to distinguish between client servers and file server systems. Both provide
shared network access to data but the comparison dens there! The file server
simply provides a remote disk drive that can be accessed by LAN applications on a
file by file basis. The client server offers full relational database services such as
SQL-Access, Record modifying, Insert, Delete with full relational integrity
backup/ restore performance for high volume of transactions, etc. the client server
middleware provides a flexible interface between client and server, who does what,
when and to whom.
Why Client Server

Client server has evolved to solve a problem that has been around since the earliest
days of computing: how best to distribute your computing, data generation and
data storage resources in order to obtain efficient, cost effective departmental an
enterprise wide data processing. During mainframe era choices were quite limited.
A central machine housed both the CPU and DATA (cards, tapes, drums and later
disks). Access to these resources was initially confined to batched runs that
produced departmental reports at the appropriate intervals. A strong central
information service department ruled the corporation. The role of the rest of the
corporation limited to requesting new or more frequent reports and to provide hand
written forms from which the central data banks were created and updated. The
earliest client server solutions therefore could best be characterized as “SLAVE-
MASTER”.

Time-sharing changed the picture. Remote terminal could view and even change
the central data, subject to access permissions. And, as the central data banks
evolved in to sophisticated relational database with non-programmer query
languages, online users could formulate adhoc queries and produce local reports
with out adding to the MIS applications software backlog. However remote access
was through dumb terminals, and the client server remained subordinate to the
Slave\Master.
Front end or User Interface Design

The entire user interface is planned to be developed in browser specific


environment with a touch of Intranet-Based Architecture for achieving the
Distributed Concept.

The browser specific components are designed by using the HTML standards, and
the dynamism of the designed by concentrating on the constructs of the Java Server
Pages.

Communication or Database Connectivity Tier

The Communication architecture is designed by concentrating on the Standards of


Servlets and Enterprise Java Beans. The database connectivity is established by
using the Java Data Base Connectivity.

The standards of three-tire architecture are given major concentration to keep the
standards of higher cohesion and limited coupling for effectiveness of the
operations.

Features of The Language Used

In my project, I have chosen Java language for developing the code.

About Java

Initially the language was called as “oak” but it was renamed as “Java” in 1995.
The primary motivation of this language was the need for a platform-independent
(i.e., architecture neutral) language that could be used to create software to be
embedded in various consumer electronic devices.
 Java is a programmer’s language.

 Java is cohesive and consistent.

 Except for those constraints imposed by the Internet environment,


Java gives the programmer, full control.

Finally, Java is to Internet programming where C was to system programming.


Importance of Java to the Internet

Java has had a profound effect on the Internet. This is because; Java expands the
Universe of objects that can move about freely in Cyberspace. In a network, two
categories of objects are transmitted between the Server and the Personal
computer. They are: Passive information and Dynamic active programs. The
Dynamic, Self-executing programs cause serious problems in the areas of Security
and probability. But, Java addresses those concerns and by doing so, has opened
the door to an exciting new form of program called the Applet.
Java can be used to create two types of programs

Applications and Applets: An application is a program that runs on our Computer


under the operating system of that computer. It is more or less like one creating
using C or C++. Java’s ability to create Applets makes it important. An Applet is
an application designed to be transmitted over the Internet and executed by a Java
–compatible web browser. An applet is actually a tiny Java program, dynamically
downloaded across the network, just like an image. But the difference is, it is an
intelligent program, not just a media file. It can react to the user input and
dynamically change.
Features Of Java

Security

Every time you that you download a “normal” program, you are risking a viral
infection. Prior to Java, most users did not download executable programs
frequently, and those who did scanned them for viruses prior to execution. Most
users still worried about the possibility of infecting their systems with a virus. In
addition, another type of malicious program exists that must be guarded against.
This type of program can gather private information, such as credit card numbers,
bank account balances, and passwords. Java answers both these concerns by
providing a “firewall” between a network application and your computer.

When you use a Java-compatible Web browser, you can safely download Java
applets without fear of virus infection or malicious intent.

Portability

For programs to be dynamically downloaded to all the various types of platforms


connected to the Internet, some means of generating portable executable code is
needed .As you will see, the same mechanism that helps ensure security also helps
create portability. Indeed, Java’s solution to these two problems is both elegant and
efficient.

The Byte code

The key that allows the Java to solve the security and portability problems is that
the output of Java compiler is Byte code. Byte code is a highly optimized set of
instructions designed to be executed by the Java run-time system, which is called
the Java Virtual Machine (JVM). That is, in its standard form, the JVM is an
interpreter for byte code.

Translating a Java program into byte code helps makes it much easier to run a
program in a wide variety of environments. The reason is, once the run-time
package exists for a given system, any Java program can run on it.

Although Java was designed for interpretation, there is technically nothing about
Java that prevents on-the-fly compilation of byte code into native code. Sun has
just completed its Just In Time (JIT) compiler for byte code. When the JIT
compiler is a part of JVM, it compiles byte code into executable code in real time,
on a piece-by-piece, demand basis. It is not possible to compile an entire Java
program into executable code all at once, because Java performs various run-time
checks that can be done only at run time. The JIT compiles code, as it is needed,
during execution.

Java, Virtual Machine (JVM)

Beyond the language, there is the Java virtual machine. The Java virtual machine is
an important element of the Java technology. The virtual machine can be
embedded within a web browser or an operating system. Once a piece of Java code
is loaded onto a machine, it is verified. As part of the loading process, a class
loader is invoked and does byte code verification makes sure that the code that’s
has been generated by the compiler will not corrupt the machine that it’s loaded on.
Byte code verification takes place at the end of the compilation process to make
sure that is all accurate and correct. So byte code verification is integral to the
compiling and executing of Java code.

Overall Description
Java Source Java bytecode JavaVM

Java .Class

Picture showing the development process of JAVA Program

Java programming uses to produce byte codes and executes them. The first box
indicates that the Java source code is located in a. Java file that is processed with a
Java compiler called javac. The Java compiler produces a file called a. class file,
which contains the byte code. The. Class file is then loaded across the network or
loaded locally on your machine into the execution environment is the Java virtual
machine, which interprets and executes the byte code.

Java Architecture

Java architecture provides a portable, robust, high performing environment for


development. Java provides portability by compiling the byte codes for the Java
Virtual Machine, which is then interpreted on each platform by the run-time
environment. Java is a dynamic system, able to load code when needed from a
machine in the same room or across the planet.

Compilation of code

When you compile the code, the Java compiler creates machine code (called byte
code) for a hypothetical machine called Java Virtual Machine (JVM). The JVM is
supposed to execute the byte code. The JVM is created for overcoming the issue of
portability. The code is written and compiled for one machine and interpreted on
all machines. This machine is called Java Virtual Machine.
Compiling and interpreting Java Source Code

Java
PC Compiler Java
Interpreter
Source
(PC)
Code
Macintosh Byte code Java
………..
Compiler Interpreter
………..
(Macintosh)
SPARC
(Platform Java

……….. Compiler indepen Interpreter

dent) (Sparc)

…………

During run-time the Java interpreter tricks the byte code file into thinking that it is
running on a Java Virtual Machine. In reality this could be a Intel Pentium
Windows 95 or Sun SARC station running Solaris or Apple Macintosh running
system and all could receive code from any computer through Internet and run the
Applets.

Simple

Java was designed to be easy for the Professional programmer to learn and to use
effectively. If you are an experienced C++ programmer, learning Java will be even
easier. Because Java inherits the C/C++ syntax and many of the object oriented
features of C++. Most of the confusing concepts from C++ are either left out of
Java or implemented in a cleaner, more approachable manner. In Java there are a
small number of clearly defined ways to accomplish a given task.
Object-Oriented

Java was not designed to be source-code compatible with any other language. This
allowed the Java team the freedom to design with a blank slate. One outcome of
this was a clean usable, pragmatic approach to objects. The object model in Java is
simple and easy to extend, while simple types, such as integers, are kept as high-
performance non-objects.

Robust

The multi-platform environment of the Web places extraordinary demands on a


program, because the program must execute reliably in a variety of systems. The
ability to create robust programs was given a high priority in the design of Java.
Java is strictly typed language; it checks your code at compile time and run time.

Java virtually eliminates the problems of memory management and deallocation,


which is completely automatic. In a well-written Java program, all run time errors
can –and should –be managed by your program.
JAVASCRIPT

JavaScript is a script-based programming language that was developed by


Netscape Communication Corporation. JavaScript was originally called Live Script
and renamed as JavaScript to indicate its relationship with Java. JavaScript
supports the development of both client and server components of Web-based
applications. On the client side, it can be used to write programs that are executed
by a Web browser within the context of a Web page. On the server side, it can be
used to write Web server programs that can process information submitted by a
Web browser and then updates the browser’s display accordingly

Even though JavaScript supports both client and server Web programming, we
prefer JavaScript at Client side programming since most of the browsers supports
it. JavaScript is almost as easy to learn as HTML, and JavaScript statements can be
included in HTML documents by enclosing the statements between a pair of
scripting tags

<SCRIPTS>..</SCRIPT>.

<SCRIPT LANGUAGE = “JavaScript”>

JavaScript statements

</SCRIPT>

Here are a few things we can do with JavaScript :

 Validate the contents of a form and make calculations.


 Add scrolling or changing messages to the Browser’s status line.
 Animate images or rotate images that change when we move the
mouse over them.
 Detect the browser in use and display different content for different
browsers.
 Detect installed plug-ins and notify the user if a plug-in is required.
We can do much more with JavaScript, including creating entire application.

J a v a S c r i p t V s J a v a

JavaScript and Java are entirely different languages. A few of the most glaring
differences are:

 Java applets are generally displayed in a box within the web


document; JavaScript can affect any part of the Web document itself.
 While JavaScript is best suited to simple applications and adding
interactive features to Web pages; Java can be used for incredibly
complex applications.
There are many other differences but the important thing to remember is that
JavaScript and Java are separate languages. They are both useful for different
things; in fact they can be used together to combine their advantages.

A D V A N T A G E S

 JavaScript can be used for Sever-side and Client-side scripting.


 It is more flexible than VBScript.
 JavaScript is the default scripting languages at Client-side since all the
browsers supports it.

Hyper Text Markup Language


Hypertext Markup Language (HTML), the languages of the World Wide Web
(WWW), allows users to produces Web pages that include text, graphics and
pointer to other Web pages (Hyperlinks).

HTML is not a programming language but it is an application of ISO Standard


8879, SGML (Standard Generalized Markup Language), but specialized to
hypertext and adapted to the Web. The idea behind Hypertext is that instead of
reading text in rigid linear structure, we can easily jump from one point to another
point. We can navigate through the information based on our interest and
preference. A markup language is simply a series of elements, each delimited with
special characters that define how text or other items enclosed within the elements
should be displayed. Hyperlinks are underlined or emphasized works that load to
other documents or some portions of the same document.

HTML can be used to display any type of document on the host computer, which
can be geographically at a different location. It is a versatile language and can be
used on any platform or desktop.

HTML provides tags (special codes) to make the document look attractive. HTML
tags are not case-sensitive. Using graphics, fonts, different sizes, color, etc., can
enhance the presentation of the document. Anything that is not a tag is part of the
document itself.

Basic HTML Tags :

<!-- --> Specifies comments

<A>……….</A> Creates hypertext links

<B>……….</B> Formats text as bold


<BIG>……….</BIG> Formats text in large font.

<BODY>…</BODY> Contains all tags and text in the HTML document

<CENTER>...</CENTER> Creates text

<DD>…</DD> Definition of a term

<DL>...</DL> Creates definition list

<FONT>…</FONT> Formats text with a particular font

<FORM>...</FORM> Encloses a fill-out form

<FRAME>...</FRAME> Defines a particular frame in a set of frames

<H#>…</H#> Creates headings of different levels

<HEAD>...</HEAD> Contains tags that specify information about a


document

<HR>...</HR> Creates a horizontal rule

<HTML>…</HTML> Contains all other HTML tags

<META>...</META> Provides meta-information about a document

<SCRIPT>…</SCRIPT> Contains client-side or server-side script

<TABLE>…</TABLE> Creates a table

<TD>…</TD> Indicates table data in a table

<TR>…</TR> Designates a table row

<TH>…</TH> Creates a heading in a table


ADVANTAGES

 A HTML document is small and hence easy to send over the net. It is
small because it does not include formatted information.
 HTML is platform independent.
 HTML tags are not case-sensitive.

Java Database Connectivity

What Is JDBC?

JDBC is a Java API for executing SQL statements. (As a point of interest, JDBC is
a trademarked name and is not an acronym; nevertheless, JDBC is often thought of
as standing for Java Database Connectivity. It consists of a set of classes and
interfaces written in the Java programming language. JDBC provides a standard
API for tool/database developers and makes it possible to write database
applications using a pure Java API.

Using JDBC, it is easy to send SQL statements to virtually any relational database.
One can write a single program using the JDBC API, and the program will be able
to send SQL statements to the appropriate database. The combinations of Java and
JDBC lets a programmer write it once and run it anywhere.

What Does JDBC Do?

Simply put, JDBC makes it possible to do three things:


 Establish a connection with a database
 Send SQL statements
 Process the results.
JDBC versus ODBC and otherAPIs

At this point, Microsoft's ODBC (Open Database Connectivity) API is that


probably the most widely used programming interface for accessing relational
databases. It offers the ability to connect to almost all databases on almost all
platforms.

So why not just use ODBC from Java? The answer is that you can use ODBC from
Java, but this is best done with the help of JDBC in the form of the JDBC-ODBC
Bridge, which we will cover shortly. The question now becomes "Why do you
need JDBC?" There are several answers to this question:
1. ODBC is not appropriate for direct use from Java because it uses a C
interface. Calls from Java to native C code have a number of drawbacks in
the security, implementation, robustness, and automatic portability of
applications.
2. A literal translation of the ODBC C API into a Java API would not be
desirable. For example, Java has no pointers, and ODBC makes copious use
of them, including the notoriously error-prone generic pointer "void *". You
can think of JDBC as ODBC translated into an object-oriented interface that
is natural for Java programmers.
3. ODBC is hard to learn. It mixes simple and advanced features together, and
it has complex options even for simple queries. JDBC, on the other hand,
was designed to keep simple things simple while allowing more advanced
capabilities where required.
4. A Java API like JDBC is needed in order to enable a "pure Java" solution.
When ODBC is used, the ODBC driver manager and drivers must be
manually installed on every client machine. When the JDBC driver is
written completely in Java, however, JDBC code is automatically installable,
portable, and secure on all Java platforms from network computers to
mainframes.

Two-tier and Three-tier Models

The JDBC API supports both two-tier and three-tier models for database access.
In the two-tier model, a Java applet or application talks directly to the database.
This requires a JDBC driver that can communicate with the particular database
management system being accessed. A user's SQL statements are delivered to the
database, and the results of those statements are sent back to the user. The database
may be located on another machine to which the user is connected via a network.
This is referred to as a client/server configuration, with the user's machine as the
client, and the machine housing the database as the server. The network can be an
Intranet, which, for example, connects employees within a corporation, or it can be

JAVA
Client machine
Application

JDBC DBMS-proprietary protocol

Database server
DBMS

the Internet.
In the three-tier model, commands are sent to a "middle tier" of services, which
then send SQL statements to the database. The database processes the SQL
statements and sends the results back to the middle tier, which then sends them to

Java applet or
Client machine (GUI)
Html browser

HTTP, RMI, or CORBA calls

Application
Server (Java) Server machine (business Logic)
DBMS-proprietary protocol
JDBC

Database server

DBMS

the user. MIS directors find the three-tier model very attractive because the middle
tier makes it possible to maintain control over access and the kinds of updates that
can be made to corporate data. Another advantage is that when there is a middle
tier, the user can employ an easy-to-use higher-level API which is translated by the
middle tier into the appropriate low-level calls. Finally, in many cases the three-tier
architecture can provide performance advantages.

Until now the middle tier has typically been written in languages such as C or
C++, which offer fast performance. However, with the introduction of
optimizing compilers that translate Java byte code into efficient machine-
specific code, it is becoming practical to implement the middle tier in Java. This
is a big plus, making it possible to take advantage of Java's robustness,
multithreading, and security features. JDBC is important to allow database
access from a Java middle tier.
JDBC Driver Types

The JDBC drivers that we are aware of at this time fit into one of four
categories:
 JDBC-ODBC bridge plus ODBC driver
 Native-API partly-Java driver
 JDBC-Net pure Java driver
 Native-protocol pure Java driver

JDBC-ODBC Bridge

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

What Is the JDBC- ODBC Bridge?

The JDBC-ODBC Bridge is a JDBC driver, which implements JDBC


operations by translating them into ODBC operations. To ODBC it appears as a
normal application program. The Bridge implements JDBC for any database for
which an ODBC driver is available. The Bridge is implemented as the

sun.jdbc.odbc Java package and contains a native library used to access ODBC.
The Bridge is a joint development of Intersolv and JavaSoft.
Java Server Pages (JSP)

Java server Pages is a simple, yet powerful technology for creating and
maintaining dynamic-content web pages. Based on the Java programming
language, Java Server Pages offers proven portability, open standards, and a
mature re-usable component model .The Java Server Pages architecture enables
the separation of content generation from content presentation. This separation
not eases maintenance headaches, it also allows web team members to focus on
their areas of expertise. Now, web page designer can concentrate on layout, and
web application designers on programming, with minimal concern about
impacting each other’s work.

Features of JSP

Portability:

Java Server Pages files can be run on any web server or web-enabled
application server that provides support for them. Dubbed the JSP engine, this
support involves recognition, translation, and management of the Java Server
Page lifecycle and its interaction components.

Components

It was mentioned earlier that the Java Server Pages architecture can include
reusable Java components. The architecture also allows for the embedding of a
scripting language directly into the Java Server Pages file. The components current
supported include Java Beans, and Servlets.
Processing

A Java Server Pages file is essentially an HTML document with JSP scripting or
tags. The Java Server Pages file has a JSP extension to the server as a Java Server
Pages file. Before the page is served, the Java Server Pages syntax is parsed and
processed into a Servlet on the server side. The Servlet that is generated outputs
real content in straight HTML for responding to the client.

Access Models:

A Java Server Pages file may be accessed in at least two different ways. A client’s
request comes directly into a Java Server Page. In this scenario, suppose the page
accesses reusable Java Bean components that perform particular well-defined
computations like accessing a database. The result of the Beans computations,
called result sets is stored within the Bean as properties. The page uses such Beans
to generate dynamic content and present it back to the client.

In both of the above cases, the page could also contain any valid Java code. Java
Server Pages architecture encourages separation of content from presentation.

Steps in the execution of a JSP Application:

1. The client sends a request to the web server for a JSP file by giving the name
of the JSP file within the form tag of a HTML page.

2. This request is transferred to the JavaWebServer. At the server side


JavaWebServer receives the request and if it is a request for a jsp file server
gives this request to the JSP engine.
3. JSP engine is program which can understands the tags of the jsp and then it
converts those tags into a Servlet program and it is stored at the server side.
This Servlet is loaded in the memory and then it is executed and the result is
given back to theJavaWebServer and then it is transferred back to the result
is givenback to the JavaWebServer and then it is transferred back to the
client.

JDBC connectivity

The JDBC provides database-independent connectivity between the J2EE platform


and a wide range of tabular data sources. JDBC technology allows an Application
Component Provider to:

 Perform connection and authentication to a database server


 Manager transactions
 Move SQL statements to a database engine for preprocessing and
execution
 Execute stored procedures
 Inspect and modify the results from Select statements.

Tomcat 6.0 web server

Tomcat is an open source web server developed by Apache Group. Apache Tomcat
is the servlet container that is used in the official Reference Implementation for the
Java Servlet and Java Server Pages technologies. The Java Servlet and Java Server
Pages specifications are developed by Sun under the Java Community Process.
Web Servers like Apache Tomcat support only web components while an
application server supports web components as well as business components
(BEAs Weblogic, is one of the popular application server).To develop a web
application with jsp/servlet install any web server like JRun, Tomcat etc to run
your application.

UML

UML is a standard language for specifying, visualizing, constructing, and


documenting the artifacts of software systems.

UML was created by the Object Management Group (OMG) and UML 1.0
specification draft was proposed to the OMG in January 1997.

OMG is continuously making efforts to create a truly industry standard.

 UML stands for Unified Modeling Language.

 UML is different from the other common programming languages such as


C++, Java, COBOL, etc.

 UML is a pictorial language used to make software blueprints.


 UML can be described as a general purpose visual modeling language to
visualize, specify, construct, and document software system.

 Although UML is generally used to model software systems, it is not


limited within this boundary. It is also used to model non-software systems
as well. For example, the process flow in a manufacturing unit, etc.

UML is not a programming language but tools can be used to generate code in
various languages using UML diagrams. UML has a direct relation with object
oriented analysis and design. After some standardization, UML has become an
OMG standard.

Goals of UML
A picture is worth a thousand words, this idiom absolutely fits describing UML.
Object-oriented concepts were introduced much earlier than UML. At that point
of time, there were no standard methodologies to organize and consolidate the
object-oriented development. It was then that UML came into picture.

There are a number of goals for developing UML but the most important is to
define some general purpose modeling language, which all modelers can use and
it also needs to be made simple to understand and use.

UML diagrams are not only made for developers but also for business users,
common people, and anybody interested to understand the system. The system can
be a software or non-software system. Thus it must be clear that UML is not a
development method rather it accompanies with processes to make it a successful
system.

In conclusion, the goal of UML can be defined as a simple modeling mechanism


to model all possible practical systems in today’s complex environment.
Object-Oriented Concepts
UML can be described as the successor of object-oriented (OO) analysis and
design.

An object contains both data and methods that control the data. The data
represents the state of the object. A class describes an object and they also form a
hierarchy to model the real-world system. The hierarchy is represented as
inheritance and the classes can also be associated in different ways as per the
requirement.

Objects are the real-world entities that exist around us and the basic concepts such
as abstraction, encapsulation, inheritance, and polymorphism all can be
represented using UML.

UML is powerful enough to represent all the concepts that exist in object-oriented
analysis and design. UML diagrams are representation of object-oriented concepts
only. Thus, before learning UML, it becomes important to understand OO concept
in detail.

Following are some fundamental concepts of the object-oriented world −

 Objects − Objects represent an entity and the basic building block.

 Class − Class is the blue print of an object.

 Abstraction − Abstraction represents the behavior of an real world entity.

 Encapsulation − Encapsulation is the mechanism of binding the data


together and hiding them from the outside world.

 Inheritance − Inheritance is the mechanism of making new classes from


existing ones.

 Polymorphism − It defines the mechanism to exists in different forms.


OO Analysis and Design
OO can be defined as an investigation and to be more specific, it is the
investigation of objects. Design means collaboration of identified objects.

Thus, it is important to understand the OO analysis and design concepts. The most
important purpose of OO analysis is to identify objects of a system to be designed.
This analysis is also done for an existing system. Now an efficient analysis is only
possible when we are able to start thinking in a way where objects can be
identified. After identifying the objects, their relationships are identified and
finally the design is produced.

The purpose of OO analysis and design can described as −

 Identifying the objects of a system.

 Identifying their relationships.

 Making a design, which can be converted to executables using OO


languages.

There are three basic steps where the OO concepts are applied and implemented.
The steps can be defined as

OO Analysis→ OO Design→ OO implementation using OO languages

The above three points can be described in detail as −

 During OO analysis, the most important purpose is to identify objects and


describe them in a proper way. If these objects are identified efficiently,
then the next job of design is easy. The objects should be identified with
responsibilities. Responsibilities are the functions performed by the object.
Each and every object has some type of responsibilities to be performed.
When these responsibilities are collaborated, the purpose of the system is
fulfilled.

 The second phase is OO design. During this phase, emphasis is placed on


the requirements and their fulfilment. In this stage, the objects are
collaborated according to their intended association. After the association is
complete, the design is also complete.

 The third phase is OO implementation. In this phase, the design is


implemented using OO languages such as Java, C++, etc.

UML Diagrams
UML diagrams are the ultimate output of the entire discussion. All the elements,
relationships are used to make a complete UML diagram and the diagram
represents a system.

The visual effect of the UML diagram is the most important part of the entire
process. All the other elements are used to make it complete.

UML includes the following nine diagrams, the details of which are described in
the subsequent chapters.

 Class diagram
 Use case diagram
 Sequence diagram
 Activity diagram
Class Diagram
Class diagrams are the most common diagrams used in UML. Class diagram
consists of classes, interfaces, associations, and collaboration. Class diagrams
basically represent the object-oriented view of a system, which is static in nature.
Active class is used in a class diagram to represent the concurrency of the system.

Class diagram represents the object orientation of a system. Hence, it is generally


used for development purpose. This is the most widely used diagram at the time of
system construction.

Use Case Diagram


Use case diagrams are a set of use cases, actors, and their relationships. They
represent the use case view of a system.

A use case represents a particular functionality of a system. Hence, use case


diagram is used to describe the relationships among the functionalities and their
internal/external controllers. These controllers are known as actors.
Sequence Diagram
A sequence diagram is an interaction diagram. From the name, it is clear that the
diagram deals with some sequences, which are the sequence of messages flowing
from one object to another.

Interaction among the components of a system is very important from


implementation and execution perspective. Sequence diagram is used to visualize
the sequence of calls in a system to perform a specific functionality.
Activity Diagram
Activity diagram describes the flow of control in a system. It consists of activities
and links. The flow can be sequential, concurrent, or branched.

Activities are nothing but the functions of a system. Numbers of activity diagrams
are prepared to capture the entire flow in a system.

Activity diagrams are used to visualize the flow of controls in a system. This is
prepared to have an idea of how the system will work when executed.
6. SYSTEM TESTING

The purpose of testing is to discover errors. Testing is the process of trying


to discover every conceivable fault or weakness in a work product. It provides a
way to check the functionality of components, sub assemblies, assemblies and/or a
finished product It is the process of exercising software with the intent of ensuring
that the
Software system meets its requirements and user expectations and does not fail in
an unacceptable manner. There are various types of test. Each test type addresses a
specific testing requirement.

TYPES OF TESTS

Unit testing
Unit testing involves the design of test cases that validate that the internal
program logic is functioning properly, and that program inputs produce valid
outputs. All decision branches and internal code flow should be validated. It is the
testing of individual software units of the application .it is done after the
completion of an individual unit before integration. This is a structural testing, that
relies on knowledge of its construction and is invasive. Unit tests perform basic
tests at component level and test a specific business process, application, and/or
system configuration. Unit tests ensure that each unique path of a business process
performs accurately to the documented specifications and contains clearly defined
inputs and expected results.
Integration testing

Integration tests are designed to test integrated software components to


determine if they actually run as one program. Testing is event driven and is more
concerned with the basic outcome of screens or fields. Integration tests
demonstrate that although the components were individually satisfaction, as shown
by successfully unit testing, the combination of components is correct and
consistent. Integration testing is specifically aimed at exposing the problems that
arise from the combination of components.

Functional test

Functional tests provide systematic demonstrations that functions tested are


available as specified by the business and technical requirements, system
documentation, and user manuals.

Functional testing is centered on the following items:

Valid Input : identified classes of valid input must be accepted.

Invalid Input : identified classes of invalid input must be rejected.

Functions : identified functions must be exercised.

Output : identified classes of application outputs must be exercised.

Systems/Procedures: interfacing systems or procedures must be invoked.


Organization and preparation of functional tests is focused on requirements, key
functions, or special test cases. In addition, systematic coverage pertaining to
identify Business process flows; data fields, predefined processes, and successive
processes must be considered for testing. Before functional testing is complete,
additional tests are identified and the effective value of current tests is determined.

System Test
System testing ensures that the entire integrated software system meets
requirements. It tests a configuration to ensure known and predictable results. An
example of system testing is the configuration oriented system integration test.
System testing is based on process descriptions and flows, emphasizing pre-driven
process links and integration points.

White Box Testing


White Box Testing is a testing in which in which the software tester has
knowledge of the inner workings, structure and language of the software, or at least
its purpose. It is purpose. It is used to test areas that cannot be reached from a black
box level.

Black Box Testing


Black Box Testing is testing the software without any knowledge of the inner
workings, structure or language of the module being tested. Black box tests, as
most other kinds of tests, must be written from a definitive source document, such
as specification or requirements document, such as specification or requirements
document. It is a testing in which the software under test is treated, as a black box
.you cannot “see” into it. The test provides inputs and responds to outputs without
considering how the software works.

6.1 Unit Testing:

Unit testing is usually conducted as part of a combined code and unit test
phase of the software lifecycle, although it is not uncommon for coding and unit
testing to be conducted as two distinct phases.

Test strategy and approach

Field testing will be performed manually and functional tests will be written
in detail.

Test objectives
 All field entries must work properly.
 Pages must be activated from the identified link.
 The entry screen, messages and responses must not be delayed.
Features to be tested
 Verify that the entries are of the correct format
 No duplicate entries should be allowed
 All links should take the user to the correct page.

6.2 Integration Testing

Software integration testing is the incremental integration testing of two or


more integrated software components on a single platform to produce failures
caused by interface defects.
The task of the integration test is to check that components or software
applications, e.g. components in a software system or – one step up – software
applications at the company level – interact without error.

Test Results: All the test cases mentioned above passed successfully. No defects
encountered.

6.3 Acceptance Testing

User Acceptance Testing is a critical phase of any project and requires


significant participation by the end user. It also ensures that the system meets the
functional requirements.

Test Results: All the test cases mentioned above passed successfully. No defects
encountered.

SYSTEM TESTING
TESTING METHODOLOGIES
The following are the Testing Methodologies:

o Unit Testing.
o Integration Testing.
o User Acceptance Testing.
o Output Testing.
o Validation Testing.

Unit Testing

Unit testing focuses verification effort on the smallest unit of Software


design that is the module. Unit testing exercises specific paths in a module’s
control structure to ensure complete coverage and maximum error detection. This
test focuses on each module individually, ensuring that it functions properly as a
unit. Hence, the naming is Unit Testing.
During this testing, each module is tested individually and the module
interfaces are verified for the consistency with design specification. All important
processing path are tested for the expected results. All error handling paths are also
tested.

Integration Testing

Integration testing addresses the issues associated with the dual problems of
verification and program construction. After the software has been integrated a set
of high order tests are conducted. The main objective in this testing process is to
take unit tested modules and builds a program structure that has been dictated by
design.
The following are the types of Integration Testing:
1)Top Down Integration

This method is an incremental approach to the construction of program


structure. Modules are integrated by moving downward through the control
hierarchy, beginning with the main program module. The module subordinates to
the main program module are incorporated into the structure in either a depth first
or breadth first manner.
In this method, the software is tested from main module and individual stubs
are replaced when the test proceeds downwards.

2. Bottom-up Integration

This method begins the construction and testing with the modules at the
lowest level in the program structure. Since the modules are integrated from the
bottom up, processing required for modules subordinate to a given level is always
available and the need for stubs is eliminated. The bottom up integration strategy
may be implemented with the following steps:

 The low-level modules are combined into clusters into clusters that
perform a specific Software sub-function.
 A driver (i.e.) the control program for testing is written to coordinate
test case input and output.
 The cluster is tested.
 Drivers are removed and clusters are combined moving upward in the
program structure
The bottom up approaches tests each module individually and then each module is
module is integrated with a main module and tested for functionality.

OTHER TESTING METHODOLOGIES

User Acceptance Testing

User Acceptance of a system is the key factor for the success of any system.
The system under consideration is tested for user acceptance by constantly keeping
in touch with the prospective system users at the time of developing and making
changes wherever required. The system developed provides a friendly user
interface that can easily be understood even by a person who is new to the system.

Output Testing

After performing the validation testing, the next step is output testing of the
proposed system, since no system could be useful if it does not produce the
required output in the specified format. Asking the users about the format required
by them tests the outputs generated or displayed by the system under consideration.
Hence the output format is considered in 2 ways – one is on screen and another in
printed format.

Validation Checking

Validation checks are performed on the following fields.

Text Field:

The text field can contain only the number of characters lesser than or equal
to its size. The text fields are alphanumeric in some tables and alphabetic in other
tables. Incorrect entry always flashes and error message.
Numeric Field:

The numeric field can contain only numbers from 0 to 9. An entry of any
character flashes an error messages. The individual modules are checked for
accuracy and what it has to perform. Each module is subjected to test run along
with sample data. The individually tested modules are integrated into a single
system. Testing involves executing the real data information is used in the
program the existence of any program defect is inferred from the output. The
testing should be planned so that all the requirements are individually tested.
A successful test is one that gives out the defects for the inappropriate data
and produces and output revealing the errors in the system.

Preparation of Test Data

Taking various kinds of test data does the above testing. Preparation of test
data plays a vital role in the system testing. After preparing the test data the system
under study is tested using that test data. While testing the system by using test
data errors are again uncovered and corrected by using above testing steps and
corrections are also noted for future use.
Using Live Test Data:

Live test data are those that are actually extracted from organization files.
After a system is partially constructed, programmers or analysts often ask users to
key in a set of data from their normal activities. Then, the systems person uses this
data as a way to partially test the system. In other instances, programmers or
analysts extract a set of live data from the files and have them entered themselves.

It is difficult to obtain live data in sufficient amounts to conduct extensive


testing. And, although it is realistic data that will show how the system will
perform for the typical processing requirement, assuming that the live data entered
are in fact typical, such data generally will not test all combinations or formats that
can enter the system. This bias toward typical values then does not provide a true
systems test and in fact ignores the cases most likely to cause system failure.
Using Artificial Test Data:

Artificial test data are created solely for test purposes, since they can be generated
to test all combinations of formats and values. In other words, the artificial data,
which can quickly be prepared by a data generating utility program in the
information systems department, make possible the testing of all login and control
paths through the program.

The most effective test programs use artificial test data generated by persons other
than those who wrote the programs. Often, an independent team of testers
formulates a testing plan, using the systems specifications.

The package “Virtual Private Network” has satisfied all the requirements specified
as per software requirement specification and was accepted.

USER TRAINING

Whenever a new system is developed, user training is required to educate them


about the working of the system so that it can be put to efficient use by those for
whom the system has been primarily designed. For this purpose the normal
working of the project was demonstrated to the prospective users. Its working is
easily understandable and since the expected users are people who have good
knowledge of computers, the use of this system is very easy.

MAINTAINENCE
This covers a wide range of activities including correcting code and design errors.
To reduce the need for maintenance in the long run, we have more accurately
defined the user’s requirements during the process of system development.
Depending on the requirements, this system has been developed to satisfy the
needs to the largest possible extent. With development in technology, it may be
possible to add many more features based on the requirements in future. The
coding and designing is simple and easy to understand which will make
maintenance easier.

TESTING STRATEGY :

A strategy for system testing integrates system test cases and design techniques
into a well planned series of steps that results in the successful construction of
software. The testing strategy must co-operate test planning, test case design, test
execution, and the resultant data collection and evaluation .A strategy for software
testing must accommodate low-level tests that are necessary to verify that a
small source code segment has been correctly implemented as well as high
level tests that validate major system functions against user requirements.

Software testing is a critical element of software quality assurance and represents


the ultimate review of specification design and coding. Testing represents an
interesting anomaly for the software. Thus, a series of testing are performed for
the proposed system before the system is ready for user acceptance testing.

SYSTEM TESTING:
Software once validated must be combined with other system elements (e.g.
Hardware, people, database). System testing verifies that all the elements are
proper and that overall system function performance is achieved. It also tests to
find discrepancies between the system and its original objective, current
specifications and system documentation.

UNIT TESTING:

In unit testing different are modules are tested against the specifications produced
during the design for the modules. Unit testing is essential for verification of the
code produced during the coding phase, and hence the goals to test the internal
logic of the modules. Using the detailed design description as a guide, important
Conrail paths are tested to uncover errors within the boundary of the modules.
This testing is carried out during the programming stage itself. In this type of
testing step, each module was found to be working satisfactorily as regards to the
expected output from the module.

In Due Course, latest technology advancements will be taken into consideration.


As part of technical build-up many components of the networking system will be
generic in nature so that future projects can either use or interact with this.The
future holds a lot to offer to the development and refinement of this project.
TEST CASES

Module name: Admin

Expected Actual
S. No Test Case Input Pass/Fail
Output Output
Check admin Admin
Login must be
1. login username Login success Pass
successful
functionality and password
Details of Must be added
2. Add faculty Add success Pass
faculty successfully
Details of Must be added
3. Add student Add success Pass
student successfully
Details of Must be
Generate time Generation
4. faculty and generated Pass
table success
subject successfully
Leave Must be
Accept/reject Accept/reject
5. request from accepted/rejected Pass
leaves success
faculty successfully

Module name: Faculty

Expected Actual
S. No Test Case Input Pass/Fail
Output Output
Check faculty Faculty
Login must
1. login username and Login success Pass
be successful
functionality password
2. View time Request for Time table View success Pass
table time table must be
viewed
successfully
Give details Must be
Upload
3. Ask leave regarding uploaded Pass
success
leave successfully

Module name: Student

Expected Actual
S. No Test Case Input Pass/Fail
Output Output
Check student Student
Login must
1. login username and Login success Pass
be successful
functionality password
Time table
View time Request for must be
2. View success Pass
table time table viewed
successfully

CONCLUSION
The manual operating system of time table preparation in colleges is very monotonous and time-
consuming which results in either the same teachers ending up with more than one class at a time
or many classes conflicting at the same classroom. Due to a non-automatic perspective, absolute
utilization of resources has proven ineffective. In order to deal with such problems, a mechanized
system can be designed with a computer aided timetable generator. Normally timetable
generation is done manually.
As we know all institutions/organizations has its own timetable, managing and maintaining these
will not be difficult.

Considering workload with this scheduling will make it more complex.

As mentioned, when Timetable generation is being done, it should consider the maximum and
minimum workload that is in a college.

References
References for the project development were taken from the following books and
websites.

Java Technologies

Java Complete Reference

Java Script Programming by Yehuda Shiran

Mastering Java Security

Java2 Networking by Pistoria

Java Security by Scotl Oaks

Head First EJB Sierra Bates

J2EE Professional by ShadabSiddiqui


Java Server Pages by Lame Pekowsley

Java Server Pages by Nick Todd

HTML

HTML Black Book by Holzner

JDBC

Java Database Programming with Programming with JDBC by Patel

Moss Software Engineering by Roger Pressman

www.tutorialspoint.com

www.stackoverflow.com

www.javapoint.com

You might also like