HOTEL MANAGEMENT SYSTEM.
i) Project Overview
ii) Software & Hardware Specification
3) System Analysis
i) Proposed System
ii) Requirement Analysis & Specification
iii) Feasibility Study
4) System Design
i) Data Flow Diagrams
ii) Data Dictionary
iii) ER Diagrams
iv) Software & Hardware Requirements
7) System Testing
i) Unit Testing
ii) Integration Testing
iii) Performance Testing
8) Software Tools
9) Technical Notes
eZee Rewards and Loyalty is a software that can be used in the hospitality industry.
Through this software the Hotel administration can manage their loyalty programs in an effective
way. The Hotel Loyalty Programs can be used to entice guests into becoming a regular guest at
the hotel. These programs are especially beneficial to hotel chains, where the benefits of the
program can span over their entire hotel chain. Personalized service and rewards deliver
exceptional experiences to guests, and make them come back for more.
The scope of the project defines only those functionalities which are provided by
the eZee Rewards and Loyalty Software. On the other hand the scope of the users involved in the
Rewards and Loyalty Program is defined as the roles of each user in the system and their
accessibilities to the different elements and prospects within the system.
The eZee Rewards and Loyalty System will include three main users who take part
in the working of the system as a complete functionality. Considering the complete functionality
and interactions within the eZee Rewards and Loyalty System we will define the roles of each
user along with their access permissions towards the various elements of the system.
The various users participating in the system are as follows:
(i) The Hotel Administrator
(ii) The Hotel Front Desk Office
(iii) The Member ( The customer of the hotel who subscribed for the Hotel‟s Rewards and
Loyalty Program )
(iv) The System (or the eZee Rewards and Loyalty Software).
The eZee Rewards and Loyalty includes three types of users i.e. the hotel
administration, the hotel front desk office and the customers of the hotel. The Hotel Loyalty
Program works primarily on the basis of the type of membership cards the hotel administration
provides to its customers who subscribed for the hotel loyalty program. These membership cards
represent the points allocated to the customers who subscribed for the hotel loyalty program.
The subscription to the eZee Rewards and Loyalty is offered to the customers of
the hotel when they make their first reservation in the hotel. For this the hotel maintains a
subscription form and is made available on the hotel‟s website. The hotel can also maintain a
paper form which can be given to the new customers who have made their first reservation. The
hotel can also opt to send the subscription form through emails to the appropriate customers. The
details of all the customers are maintained by the hotel administration as a part of the hotel‟s
database. The hotel is solely responsible on its decision on how to avail the subscription form to
As a default the eZee Rewards and Loyalty provides the hotel with three types of
membership cards i.e. (i) Silver (ii) Gold and (iii) Platinum. The names of these membership
cards can be edited as per the will of the hotel. The number of different types in the membership
cards can also be edited as per the hotel‟s choice.
As an initial step after buying the software, the hotel administration has to setup
the configuration page of the eZee Rewards and Loyalty to determine how the points are
allocated to the different subscribers of the hotel‟s Loyalty program. The fields on the
configuration page may include the following: (i) Points per day stay and (ii) Points for the
overall amount spent. These fields in the configuration page can be edited anytime by the hotel
The hotel administration will be given an address book table as a part of the
software which can be updated by the hotel staff in order to maintain the records of all the
subscribers of the Hotel‟s Loyalty Program. This address book is supposed to be updated on a
regular basis to contain the updated membership details list of all the subscribers of the Hotel‟s
Initially when a customer of the hotel subscribes for the hotel‟s Rewards and
Loyalty program, he/she is given a membership card of silver type. From this moment onwards
the customer will be a part of the Rewards and Loyalty Program that the hotel offers. Hence the
customer becomes a subscriber for the hotel‟s Rewards and Loyalty program and can now
increase his points of loyalty by making more and more reservations in this hotel or by spending
on other hospitality services offered by the hotel. In this way the customer who is now a member
of the Rewards and Loyalty program of the hotel can increase his/her points by becoming a
regular customer to the hotel. Moreover by increasing his/her points the customer can improve
his/her membership type so as to avail nice offers and discounts from the hotel.
The subscribers to this program can view their points from time to time either
through the hotels‟ website or through automated mails delivered by the hotel. This depends on
the hotels decision on how to implement the process of delivering updates to their subscribers.
Whenever the subscribers have crossed the milestone of their respective
membership type, they are promoted to the next membership type and the new membership card
is posted to the respective subscriber‟s official postal address. This posting of the membership
card is the responsibility of the front desk office of the respective hotel. All this happens when an
alert message triggers to the front desk office of the hotel as and when the milestones of any
subscriber is crossed. This automated reminder can benefit the hotel‟s administration by reducing
their overhead of maintaining and updating their customers‟ membership details. It also acts as a
prime factor in the process of maintaining consistency in updating the records. In this way it is
close to impossible for the management to miss on the updating of any membership account.
Figure:Overview of eZee Rewards and Loyalty Software
This section involves the scope of the project and the scope of its users. The scope of
the project defines only those functionalities which are provided by the eZee Rewards and
Loyalty Software. On the other hand the scope of the users involved in the Rewards and Loyalty
Program is defined as the roles of each user in the system and their accessibilities to the different
elements and prospects within the system.
The eZee Rewards and Loyalty System will include three main users who take part
in the working of the system as a complete functionality. Considering the complete functionality
and interactions within the eZee Rewards and Loyalty System we will define the roles of each
user along with their access permissions towards the various elements of the system.
The various users participating in the system are as follows: (i) The Hotel
Administrator (ii) The Hotel Front Desk Office (iii) The Member ( The customer of the hotel
who subscribed for the Hotel‟s Rewards and Loyalty Program ) (iv) The System (or the eZee
Rewards and Loyalty Software).
1) Role Based Access
a) The Hotel Administrator
i) Configures The Configuration Page
The hotel administrator is responsible for deciding on the number of points to be
allocated per day stay and also the number of points allocated for each hospitality
service provided by the hotel. These hospitality services may include: Reservation
charges, Add Ons, Restaurants, Bars, Shops, Other Extra Charges depending on the
ii) Creation Of A New Member
The hotel administrator can create a new user in the Rewards and Loyalty Program by
approving the subscription submitted by the customer as legitimate only after
reviewing his/her details completely.
iii) Creation Of The Subscription Form For The Rewards And Loyalty Program
The hotel administrator can design the subscription form for making it available to all
the customers who are new to the hotel. Having made their first reservation, these
customers are provided with the subscription form.
iv) Making The Subscription Form Available To The New Customers
The hotel administrator can do this in three ways as mentioned below:
The form can be made available on the hotel‟s website.
The form can be mailed to his new customers ( i.e. those customers who have
just made their first reservation in the hotel ).
The form can be handed over in hand at the time when the customer makes
his/her reservation for the first time in the hotel.
v) Manage Existing Members
The hotel administrator has the access to all his subscribers‟ information and
can therefore communicate with them. He can send automated messages to his
eligible subscribers about any offers or discounts which are announced.
The hotel administrator can send alert messages to the existing Rewards and
Loyalty members ( i.e. customers who have subscribed for the Rewards and
Loyalty Program ) regarding their membership expiry issues.
The hotel administrator maintains the details of all the members of the hotel‟s
Rewards and Loyalty Program.
Apart from details in the form of data records and tables like address book the
hotel administrator also maintains and generates reports for details of all the
subscribers to the hotel‟s Rewards and Loyalty Program.
vi) Maintains Information About Cards To Be Sent
The hotel administrator maintains a list of all the cards that are to be delivered to the
members of the Rewards and Loyalty Program along with their complete details. This
list may include members who have lost their membership cards and also the new
members of the Rewards and Loyalty Program.
vii) Reward Redemption
The hotel administrator maintains all the details of reward redemption and the
members associated with this functionality.
b) The Hotel Front Desk Office
i) Delivers Membership Cards To Members
The Front Desk Office is prompted when there is a member whose
membership points cross the milestone of the respective membership card
type. In this case the front desk office is responsible for delivering the updated
card to the respective member of the Rewards and Loyalty Program.
The Front Desk Office is also responsible for delivering membership cards to
all the members of the list given by the hotel administrator. This list includes
the members who have lost their membership cards and have applied for new
ones and also those members who are new to the Rewards and Loyalty
Program and are yet to receive their default membership cards.
c) The Member
i) View The Member‟s Profile Page
The members i.e. the customers who have subscribed for the Rewards and Loyalty
Program of the hotel can view their profile page in the hotel‟s website under the
Rewards and Loyalty section. This profile page also contains the Rewards and
Loyalty points of the member along with the membership details.
ii) Apply For A New Membership Card
The member can apply for a new membership card in case he/she loses their card.
iii) Interact With The Front Desk Office
The member can interact with the front desk office of the hotel for any kind of
d) The System ( or the eZee Rewards and Loyalty Software )
i) Maintains The Configuration Page
The latest configuration details are maintained. These details are available for the
hotel administrator to modify whenever necessary. The hotel administrator can find
these details on the configuration page in the Rewards and Loyalty section of the
ii) Maintains A View/Modify Page
This page is only available for the hotel administrator to modify or update its
members‟ membership details.
iii) Maintains A Search Page
This is provided for the hotel administrator and the hotel front desk office. Through
this a search can be made possible for a member‟s details or for a particular
iv) Maintains A Reports Page
Through this the system generates reports for the different users and also for the
different reservations related to the hotel. This pages accessibility can be defined by
the hotel administrator.
2) This page includes a confirmation message for making a reservation in the hotel. Hence this
page is seen when a user makes a reservation in the hotel.
3) This page also includes two options. These are respectively for viewing the user‟s profile if
he/she is already a member in the Rewards and Loyalty Program of the hotel and for viewing
the Rewards and Loyalty Form for subscribing for the Rewards and Loyalty Program of the
hotel if he/she is new to this program.
SOFTWARE & HARDWARE SPECIFICATION
Microsoft Windows XP
Internet explorer 5.0 or above or Netscape navigator.
Mysql 5.0 (DB)
Navicat( DB client)
Any Web Browser on any Windows operating system.
Pentium Dual Core Processor.
1.87 GB RAM.
150GB Hard Disk space.
eZee Rewards and Loyalty is a software that can be used in the hospitality
industry. Through this software the Hotel administration can manage their loyalty programs in an
effective way. The Hotel Loyalty Programs can be used to entice guests into becoming a regular
guest at the hotel. These programs are especially beneficial to hotel chains, where the benefits of
the program can span over their entire hotel chain. Personalized service and rewards deliver
exceptional experiences to guests, and make them come back for more.
The system will be divided into the following subsystems.
eZee Loyalty and Rewards is a Web Application. In this system administrator
collects the information from different hotels. eZee Loyalty and Rewards system administrator
contacts the specified rooms and collects the information and update the information time to time
and store in database in a flexible manner.
REQUIREMENT ANALYSIS & SPECIFICATION:
The scopes of eZee Loyalty and Rewards are:
The scope of the project defines only those functionalities which are provided by the
eZee Rewards and Loyalty Software.
The scope of the users involved in the Rewards and Loyalty Program is defined as the
roles of each user in the system and their accessibilities to the different elements and
prospects within the system..
The scope of this system includes planning and designing. The contents are as follows:
User Module Tasks:
Create a separate Menu item in eZeeFrontOffice application called “Loyalty and
In that create the following sub menu items viz.,
Loyalty and Rewards
o Metric Types
o Qualification Metrics
o Points Allocation
o Points Purchase
Evaluating the technical feasibility is the trickiest part of a feasibility study. This is
because, .at this point in time, not too many detailed design of the system, making it difficult to
access issues like performance, costs on (on account of the kind of technology to be deployed)
etc. A number of issues have to be considered while doing a technical
i) Understand the different technologies involved in the proposed system:
Before commencing the project, we have to be very clear about what are the technologies
that are to be required for the development of the new system.
ii) Find out whether the organization currently possesses the required technologies:
o Is the required technology available with the organization?
o If so is the capacity sufficient?
For instance –
“Will the current printer be able to handle the new reports and forms required for the new
Proposed projects are beneficial only if they can be turned into information
systems that will meet the organizations operating requirements. Simply stated, this test of
feasibility asks if the system will work when it is developed and installed. Are there major
barriers to Implementation? Here are questions that will help test the operational feasibility of a
Is there sufficient support for the project from management from users? If the current
system is well liked and used to the extent that persons will not be able to see reasons for
change, there may be resistance.
Are the current business methods acceptable to the user? If they are not, Users may
welcome a change that will bring about a more operational and useful systems.
Have the user been involved in the planning and development of the project?
Early involvement reduces the chances of resistance to the system and in
General and increases the likelihood of successful project.
Since the proposed system was to help reduce the hardships encountered. In the existing
manual system, the new system was considered to be operational feasible.
Economic feasibility attempts 2 weigh the costs of developing and implementing a
new system, against the benefits that would accrue from having the new system in place. This
feasibility study gives the top management the economic justification for the new system.
A simple economic analysis which gives the actual comparison of costs and
benefits are much more meaningful in this case. In addition, this proves to be a useful point of
reference to compare actual costs as the project progresses. There could be various types of
intangible benefits on account of automation. These could include increased customer
satisfaction, improvement in product quality better decision making timeliness of information,
expediting activities, improved accuracy of operations, better documentation and record keeping,
faster retrieval of information, better employee morale.
DATA FLOW DIAGRAMS
Data flows are data structures in motion, while data stores are data structures.
Data flows are paths or „pipe lines‟, along which data structures travel, where as the data stores
are place where data structures are kept until needed.
Data flows are data structures in motion, while data stores are data structures at
rest. Hence it is possible that the data flow and the data store would be made up of the same data
Data flow diagrams is a very handy tool for the system analyst because it gives
the analyst the overall picture of the system, it is a diagrammatic approach.
A DFD is a pictorial representation of the path which data takes From its initial
interaction with the existing system until it completes any interaction. The diagram will describe
the logical data flows dealing the movements of any physical items. The DFD also gives the
insight into the data that is used in the system i.e., who actually uses it is temporarily stored.
A DFD does not show a sequence of steps. A DFD only shows what the different
process in a system is and what data flows between them.
The following are some DFD symbols used in the project
Process: A transaction of information that
resides within the bounds of the system
to be module.
DATASTORE: A repository of data that is to
be stored for use by one or more processes,
may be as simple as buffer of queue or as a
RULES FOR DFD:
Fix the scope of the system by means of context diagrams.
Organize the DFD so that the main sequence of the actions reads left to
right and top to bottom.
Identify all inputs and outputs.
Identify and label each process internal to the system with rounded circles.
A process is required for all the data transformation and transfers.
Therefore, never connect a data store to a data source or the destinations or
another data store with just a data flow arrow.
Do not indicate hardware and ignore control information.
Make sure the names of the processes accurately convey everything the
process is done.
There must not be unnamed process.
Indicate external sources and destinations of the data, with squares.
Number each occurrence of repeated external entities.
Identify all data flows for each process step, except simple Record
Label data flow on each arrow.
Use details flow on each arrow.
Use the details flow arrow to indicate data movements.
There can‟t be unnamed data flow.
A data flow can‟t connect two external entity.
LEVELS OF DFD:
The complexity of the business system means that it is a responsible to represent
the operations of any system of single data flow diagram. At the top level, an Overview of the
different systems in an organization is shown by the way of context analysis diagram. When
exploded into DFD
They are represented by:
LEVEL-0 : SYSTEM INPUT/OUTPUT
LEVEL-1 : SUBSYSTEM LEVEL DATAFLOW FUNCTIONAL
LEVEL-2 : FILE LEVEL DETAIL DATA FLOW.
The input and output data shown should be consistent from one level to the next.
LEVEL-0: SYSTEM INPUT/OUTPUT LEVEL
A level-0 DFD describes the system-wide boundaries, dealing inputs to and outputs from
the system and major processes. This diagram is similar to the combined user-level context
LEVEL-1: SUBSYSTEM LEVEL DATA FLOW
A level-1 DFD describes the next level of details within the system, detailing the data
flows between subsystems, which makeup the whole.
LEVEL-2: FILE LEVEL DETAIL DATA FLOW
All the projects are feasible given unlimited resources and infinite time. It is both
necessary and prudent to evaluate the feasibility of the project at the earliest possible time.
Feasibility and the risk analysis are pertained in many ways. If project risk is great.
UNIFIED MODELING LANGUAGE DIAGRAMS
The unified modeling language allows the software engineer to express an
analysis model using the modeling notation that is governed by a set of
syntactic semantic and pragmatic rules.
A UML system is represented using five different views that describe the
system from distinctly different perspective. Each view is defined by a set
of diagram, which is as follows.
User Model View
i. This view represents the system from the users perspective.
ii. The analysis representation describes a usage scenario from the
Structural model view
In this model the data and functionality are arrived from inside the
This model view models the static structures.
Behavioral Model View
It represents the dynamic of behavioral as parts of the system,
depicting the interactions of collection between various structural
elements described in the user model and structural model view.
Implementation Model View
In this the structural and behavioral as parts of the system are
represented as they are to be built.
Environmental Model View
In this the structural and behavioral aspects of the environment in which the
system is to be implemented are represented.
UML is specifically constructed through two different domains they are
UML Analysis modeling, which focuses on the user model and
structural model views of the system.
UML design modeling, which focuses on the behavioral modeling,
implementation modeling and environmental model views.
Use case Diagrams represent the functionality of the system from a user‟s point of
view. Use cases are used during requirements elicitation and analysis to represent the
functionality of the system. Use cases focus on the behavior of the system from external
point of view.
Actors are external entities that interact with the system. Examples of actors
include users like administrator, bank customer …etc., or another system like central
Use Case diagram Admin: eZee Loyalty and Rewards
Use Case Diagram User : eZee Loyalty and Rewards
User Update Profile
Sequence Diagram - eZee Loyalty and Rewards (Admin Login)
Administrator Login Home Data Base
1 : Login()
2 : Invalid Data()
3 : Request to DB()
4 : Response from DB()
5 : Get Home()
User Login Sequence
User Login Home Data Base
1 : Login()
2 : Invalid Data()
3 : Request to DB()
4 : Response from DB()
5 : Get Home()
User Pasword View Modify Data Base
1 : Change()
2 : View own Details()
3 : Modify()
4 : Save()
5 : Save()
6 : Save()
SOFTWARE & HARDWARE REQUIREMENTS
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
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 for developing the code.
The Java programming language and environment is designed to solve a number of
problems in modern programming practice. Java started as a part of a larger project to develop
advanced software for consumer electronics. These devices are small, reliable, portable,
distributed, real-time embedded systems. When we started the project we intended to use C++,
but encountered a number of problems. Initially these were just compiler technology problems,
but as time passed more problems emerged that were best solved by changing the language.
A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture
neutral, portable, high-performance, multithreaded, dynamic language.
One way to characterize a system is with a set of buzzwords. We use a standard set of them in
describing Java. Here's an explanation of what we mean by those buzzwords and the problems
we were trying to solve.
Archimedes Inc. is a fictitious software company that produces software to teach
about basic physics. This software is designed to interact with the user, providing not only text
and illustrations in the manner of a traditional textbook, but also a set of software lab benches on
which experiments can be set up and their behavior simulated. The most basic experiment allows
students to put together levers and pulleys and see how they act. The italicized narrative of the
trials and tribulations of the Archimedes' designers is used here to provide examples of Java
We wanted to build a systsem that could be programmed easily without a lot of
esoteric training and which leveraged today's standard practice. Most programmers working
these days use C, and most programmers doing object-oriented programming use C++. So even
though we found that C++ was unsuitable, we designed Java as closely to C++ as possible in
order to make the system more comprehensible.
Java omits many rarely used, poorly understood, confusing features of C++ that in
our experience bring more grief than benefit. These omitted features primarily consist of operator
overloading (although the Java language does have method overloading), multiple inheritance,
and extensive automatic coercions.
We added automatic garbage collection, thereby simplifying the task of Java
programming but making the system somewhat more complicated. A common source of
complexity in many C and C++ applications is storage management: the allocation and freeing of
memory. By virtue of having automatic garbage collection (periodic freeing of memory not
being referenced) the Java language not only makes the programming task easier, it also
dramatically cuts down on bugs.
The folks at Archimedes wanted to spend their time thinking about levers and
pulleys, but instead spent a lot of time on mundane programming tasks. Their central expertise
was teaching, not programming. One of the most complicated of these programming tasks was
figuring out where memory was being wasted across their 20K lines of code.
Another aspect of being simple is being small. One of the goals of Java is to enable the
construction of software that can run stand-alone in small machines. The Java interpreter and
standard libraries have a small footprint. A small size is important for use in embedded systems
and so Java can be easily downloaded over the net.
This is, unfortunately, one of the most overused buzzwords in the industry. But
object-oriented design is very powerful because it facilitates the clean definition of interfaces and
makes it possible to provide reusable "software ICs."
Simply stated, object-oriented design is a technique that focuses design on the data
(=objects) and on the interfaces to it. To make an analogy with carpentry, an "object-oriented"
carpenter would be mostly concerned with the chair he was building, and secondarily with the
tools used to make it; a "non-object-oriented" carpenter would think primarily of his tools.
Object-oriented design is also the mechanism for defining how modules "plug and play."
The object-oriented facilities of Java are essentially those of C++, with extensions
from Objective C for more dynamic method resolution.
The folks at Archimedes had lots of things in their simulation, among them ropes
and elastic bands. In their initial C version of the product, they ended up with a pretty big system
because they had to write separate software for describing ropes versus elastic bands. When they
rewrote their application in an object-oriented style, they found they could define one basic
object that represented the common aspects of ropes and elastic bands, and then ropes and elastic
bands were defined as variations (subclasses) of the basic type. When it came time to add chains,
it was a snap because they could build on what had been written before, rather than writing a
whole new object simulation.
There are many things going on at the same time in the world around us.
Multithreading is a way of building applications with multiple threads Unfortunately, writing
programs that deal with many things happening at once can be much more difficult than writing
in the conventional single-threaded C and C++ style.
Java has a sophisticated set of synchronization primitives that are based on the
widely used monitor and condition variable paradigm introduced by C.A.R.Hoare. By integrating
these concepts into the language (rather than only in classes) they become much easier to use and
are more robust. Much of the style of this integration came from Xerox's Cedar/Mesa system.
Other benefits of multithreading are better interactive responsiveness and real-time behavior.
This is limited, however, by the underlying platform: stand-alone Java runtime environments
have good real-time behavior. Running on top of other systems like Unix, Windows, the
Macintosh, or Windows NT limits the real-time responsiveness to that of the underlying system.
Lots of things were going on at once in their simulations. Ropes were being pulled,
wheels were turning, levers were rocking, and input from the user was being tracked. Because
they had to write all this in a single threaded form, all the things that happen at the same time,
even though they had nothing to do with each other, had to be manually intermixed. Using an
"event loop" made things a little cleaner, but it was still a mess. The system became fragile and
hard to understand. They were pulling in data from all over the net. But originally they were
doing it one chunk at a time. This serialized network communication was very slow. When they
converted to a multithreaded style, it was trivial to overlap all of their network communication.
Basic concepts of OOPS
In order to understand the basic concepts in C++, the programmer must have a
command of the basic terminology in object-oriented programming. Below is a brief outline of
the concepts of Object-oriented programming languages:
Object is the basic unit of object-oriented programming. Objects are identified by its
unique name. An object represents a particular instance of a class. There can be more than one
instance of an object. Each instance of an object can hold its own relevant data.
An Object is a collection of data members and associated member functions also
known as methods.
Classes are data types based on which objects are created. Objects with similar
properties and methods are grouped together to form a Class. Thus a Class represent a set of
individual objects. Characteristics of an object are represented in a class as Properties. The
actions that can be performed by objects becomes functions of the class and is referred to as
For example consider we have a Class of Cars under which Santro Xing, Alto and
WaganR represents individual Objects. In this context each Car Object will have its own, Model,
Year of Manufacture, Colour, Top Speed, Engine Power etc., which form Properties of the Car
class and the associated actions i.e., object functions like Start, Move, Stop form the Methods of
No memory is allocated when a class is created. Memory is allocated only when an
object is created, i.e., when an instance of a class is created.
Inheritance is the process of forming a new class from an existing class or base class.
The base class is also known as parent class or super class, The new class that is formed is
called derived class. Derived class is also known as a child class or sub class. Inheritance helps
in reducing the overall code size of the program, which is an important concept in object-
Data Abstraction increases the power of programming language by creating user
defined data types. Data Abstraction also represents the needed information in the program
without presenting the details.
Data Encapsulation combines data and functions into a single unit called Class.
When using Data Encapsulation, data is not accessed directly; it is only accessible through the
functions present inside the class. Data Encapsulation enables the important concept of data
Polymorphism allows routines to use variables of different types at different times.
An operator or function can be given different meanings or functions. Polymorphism refers to a
single function or multi-functioning operator performing in different ways.
Overloading is one type of Polymorphism. It allows an object to have different
meanings, depending on its context. When an exiting operator or function begins to operate on
new data type, or class, it is understood to be overloaded.
This term refers to the ability for multiple programmers to use the same written
and debugged existing class of data. This is a time saving device and adds code efficiency to the
language. Additionally, the programmer can incorporate new features to the existing class,
further developing the application and allowing users to achieve increased performance. This
time saving feature optimizes code, helps in gaining secured applications and facilitates easier
maintenance on the application.
ABOUT JBOSS SEAM
Yet another Web Application Framework! This time it is from JBoss Community.
JBoss provides a new Web Application Framework called "JBoss Seam" which combines the
advantages from the two rapidly growing technologies Enterprise Java Beans 3.0 and Java
Server Faces. JBoss Seam, by sitting on top of J2EE provides a nice way of integration between
JSF and EJB Components with other great functionalities. This article is an introductory article
only and it covers the idea that gave birth to JBoss Seam, its advantages, the various modules
involved along with a Sample Application. This article assumes the readers to have some bit of
knowledge and programming in areas like Java Server Faces and Enterprise Java Beans 3.0. For
more information about these technologies, visit http://jsf.javabeat.net/index.php and
The Need for JBoss Seam
Let us exactly define what JBoss seam is. JBoss Seam provides a Light-weight
Container for J2EE standards and it addresses the long-standing issues in any Typical Web
Application like State Management and Better Browser Navigation. It also neatly provides an
integration between the two popular technologies, Java Server Faces (in the UI tier) and
Enterprise Java Beans (EJB 3 in the Server Side). Before getting into the various details about
JBoss Seam let us see the common set of problems that are being faced in a Development and the
Usability of a typical Web Application using Java Server Faces and Enterprise Java Beans.
For this, let us assume an imaginary application. Let us keep the requirements of
the imaginary Web Application we are going to consider very small. The Web Application is a
simple Registration Application, which provides the user with a View which contains username
and password text-fields. User can click the submit button after filling both the fields. If the
username password information given by the user is not found in the database, the user is
assumed to be a new user and he is greeted with a welcome message; else an error page is
displayed with appropriate message.
Let us analysis the roles of JSF and EJB 3.0 in this Web Application. More
specifically, we will analysis the various components in both the client as well the server tier
along with their responsibilities.
In the Client side, for designing and presenting the form with the input controls
(text-field and button) to the user, we may have written a userinput.jsp page with the set of JSF
core tag libraries like <f:view> and <h:form>. And then, a JSF Managed Bean called UserBean
encapsulated with properties(username and password) may have been coded which serves as a
Model. The UIcomponents values within the JSP page would have got bound to the properties of
the Managed Bean with the help of JSF Expression Language. Since the logic is to query from
the database for the existence of the username and the password, a Stateless Session Facade Bean
would have been written whose sole purpose is to persistence the client information to the
database. For persistence the information, the Session Bean may depend on the EntityManager
API for querying and persisting entities.
The Data Traversal Logic from JSF to EJB Session Bean should have be taken
care by the Managed Bean only. The Managed Bean apart from representing a Model may also
act as a Listener in handling the button click events. Say, after clicking the register button, one of
the action methods within the Managed Bean would have been called by the framework, and
here the Bean might have a JNDI Look-up to get an instance of the Session Bean to persisting or
querying the user information. If we look at carefully, the JSF Managed Bean is serving as an
intermediary between the transfer of Data from the Client to the Server. Within this Managed
Bean is the code for getting a reference to the Session Bean for doing various other
functionalities. Wouldn't a direct commnication between JSF UI Components and the
Enterprise Bean Components be nice? There is no purpose of the intermediate Managed Bean in
this case. JBoss Seam provides a very good solution for this. Not only this many of the
outstanding problems that are faced in a Web Application are also addressed and given solution
in this Framework.
Advantages of JBoss Seam
Following are the major advantages that a Web Application may enjoy if it uses
JBoss Seam Framework. They are
Integration of JSF and EJB
Stateful Web Applications
Dependency Bijection Support
Let us look into the various advantages of JBoss Seam in the subsequent sections.
3.1) Integration of JSF and EJB
Today the Web Application World see more and more matured technologies that
are focusing to establish an easy-to-use development by reducing lots and lots of boiler-plate
code along with some other added functionalities in their own domains. Let us consider JSF and
EJBtechnologies to extend further discussion regarding this.
EJB 3.0 which is a specification given from Sun has gained much popularity
because of its simplified yet robust programming model. Much of the middle-ware related
services like Security, Transactions, Connection Pooling etc is delegated to the container itself.
Comparing to its predecessors, EJB 3.0 offers a POJO programming Model. No need for your
beans to extend or implement EJB specific classes or interfaces. And also, along with the new
specification Java Persistence API (JPA)
_ejb_3_0_1.php, an unified programming model to access the underlying database along with
rich set of features are now possible thereby completely eliminating the heavy-headed entity
Java Server Faces provides a Component-based approach for developing User
Interface Components in a Web Application. It hides most of the boiler-plate code and provides a
higher-level abstraction over the client request and the server response objects. UsingJava Server
Faces, a Web Application can be viewed by components making events and listeners executing
the appropriate logic for the Events. No need for the traditional HttpServletRequest and
HttpServletResponse object to extract the client input parameters and to generate the response.
JBoss provides a framework in which the Events that are emitted by the JSF UI
Components can be directly handled by the Enterprise Beans. No need for the intermediate
Managed Beans which establishes the data transfer from and to JSF and EJB.
3.2) Dependency Bijection Support
Before getting into Dependency Bijection, it is wise to look at the two types: namely
Dependency Injection and Dependency Outjection. These two are the popular patterns and
modern Frameworks and Containers makes use of this abundantly. Let us see these two
3.2.1) Dependency Injection
This model is used when a Component or a Service which is running inside some
Framework or a Container is well known in the early stages so that the Framework/Container
can create instances of them thereby taking the burden from the Clients. These type of model is
used heavily in most of the J2EEComponents, to name a few, EJB, Servlets, JMS etc.
3.2.2) Dependency Outjection
In Dependency Injection, usually the Framework injects the services to
components that are in need of, whereas the reverse happens in Dependency Outjection.
3.3) Stateful Web Applications
Since the underlying protocol used in a Web Application is Http, all Web
Application are Stateless in nature. Precisely it means that all the requests that are coming from
the Client Browser are treated as individual requests only. The Server shows no partiality for the
Client Requests. It is up to the Application or the Framework to identify whether requests are
coming from the same Client or not. Session Management in Web Application is a time-
consuming job and typically Servlets/Jsp provides various ways to manage sessions. Even in this
case, Application Developers still have to depend on HttpSession like classes for creating session
objects and storing/retrieving objects from the session.
JBoss Seam provides an excellent way to Manage States amongst multiple client
requests. The State Management Facility is tightly integrated with Seam Components in the
form of various Contexts. Following are the most commonly used Contexts in Seam.
Conversation – A Conversation generally represents multiple requests that come from the same
client. Components that come under this category can remember the state of the client and this
forms the heart of State Management in Seam.
Application – This context generally holds information that is used by various components
within the same Application.
Session – Components that fall under this category simply uses Http Session Api for state
Page – The scope of the components managing the information is restricted to the Current Page
only. All the stored information is lost when the user leaves this current page.
Stateless – Components that falls under this category don't manage state between multiple Client
ABOUT RICH FACES
RichFaces is an open source framework that adds Ajax capability into existing JSF
RichFaces leverages JavaServer Faces framework including lifecycle, validation,
conversion facilities and management of static and dynamic resources. RichFaces components
with built-in Ajax support and a highly customizable look-and-feel can be easily incorporated
into JSF applications.
RichFaces allows to:
Intensify the whole set of JSF benefits while working with Ajax. RichFaces is fully integrated
into the JSF lifecycle. While other frameworks only give you access to the managed bean
facility, RichFaces advantages the action and value change listeners, as well as invokes server-
side validators and converters during the Ajax request-response cycle.
Add Ajax capability to the existing JSF applications. Framework provides two components
libraries (Core Ajax and UI). The Core library sets Ajax functionality into existing pages, so
ones. RichFaces enables page-wide Ajax support instead of the traditional component-wide
support and it gives the opportunity to define the event on the page. An event invokes an Ajax
request and areas of the page which become synchronized with the JSF Component Tree after
changing the data on the server by Ajax request in accordance with events fired on the client.
Create quickly complex View basing on out of the box components. RichFaces UI library
contains components for adding rich user interface features to JSF applications. It extends the
RichFaces framework to include a large (and growing) set of powerful rich Ajax-enabled
components that come with extensive skins support. In addition, RichFaces components are
designed to be used seamlessly with other 3d-party component libraries on the same page, so you
have more options for developing your applications.
Write your own custom rich components with built-in Ajax support. We're always working on
improvement of Component Development Kit (CDK) that was used for RichFaces UI library
creation. The CDK includes a code-generation facility and a templating facility using a JSP-like
syntax. These capabilities help to avoid a routine process of a component creation. The
component factory works like a well-oiled machine allowing the creation of first-class rich
components with built-in Ajax functionality even more easily than the creation of simpler
components by means of the traditional coding approach.
Package resources with application Java classes. In addition to its core, Ajax functionality of
RichFaces provides an advanced support for the different resources management: pictures,
these resources into Jar files along with the code of your custom components.
Easily generate binary resources on-the-fly. Resource framework can generate images, sounds,
Excel spreadsheets etc.. on-the-fly so that it becomes for example possible to create images using
the familiar approach of the "Java Graphics2D" library.
Create a modern rich user interface look-and-feel with skins-based technology. RichFaces
provides a skinnability feature that allows easily define and manage different color schemes and
other parameters of the UI with the help of named skin parameters. Hence, it is possible to access
the skin parameters from JSP code and the Java code (e.g. to adjust generated on-the-fly images
based on the text parts of the UI). RichFaces comes with a number of predefined skins to get you
started, but you can also easily create your own custom skins.
Test and create the components, actions, listeners, and pages at the same time. An automated
testing facility is in our roadmap for the near future. This facility will generate test cases for your
component as soon as you develop it. The testing framework will not just test the components,
more, it will do all of this without deploying the test application into the Servlet container.
RichFaces UI components come ready to use out-of-the-box, so developers save their time and
immediately gain the advantage of the mentioned above features in Web applications creation.
As a result, usage experience can be faster and easily obtained.
ABOUT HIBERNATE 3.0
Hibernate 3.0, the latest Open Source persistence technology at the heart of J2EE
EJB 3.0 is available for download from Hibernet.org.The Hibernate 3.0 core is 68,549 lines of
Java code together with 27,948 lines of unit tests, all freely available under the LGPL, and has
been in development for well over a year. Hibernate maps the Java classes to the database tables.
It also provides the data query and retrieval facilities that significantly reduces the development
time. Hibernate is not the best solutions for data centric applications that only uses the stored-
procedures to implement the business logic in database. It is most useful with object-oriented
domain modes and business logic in the Java-based middle-tier. Hibernate allows transparent
persistence that enables the applications to switch any database. Hibernate can be used in Java
Swing applications, Java Servlet-based applications, or J2EE applications using EJB session
Features of Hibernate
Hibernate 3.0 provides three full-featured query facilities: Hibernate Query Language, the
newly enhanced Hibernate Criteria Query API, and enhanced support for queries expressed in
the native SQL dialect of the database.
Filters for working with temporal (historical), regional or permissioned data.
Enhanced Criteria query API: with full support for projection/aggregation and subselects.
Runtime performance monitoring: via JMX or local Java API, including a second-level cache
Eclipse support, including a suite of Eclipse plug-ins for working with Hibernate 3.0, including
mapping editor, interactive query prototyping, schema reverse engineering tool.
Hibernate is Free under LGPL: Hibernate can be used to develop/package and distribute the
applications for free.
Hibernate is Scalable: Hibernate is very performant and due to its dual-layer architecture can be
used in the clustered environments.
Less Development Time: Hibernate reduces the development timings as it supports inheritance,
polymorphism, composition and the Java Collection framework.
Automatic Key Generation: Hibernate supports the automatic generation of primary key for
JDK 1.5 Enhancements: The new JDK has been released as a preview earlier this year and we
expect a slow migration to the new 1.5 platform throughout 2004. While Hibernate3 still runs
perfectly with JDK 1.2, Hibernate3 will make use of some new JDK features. JSR 175
annotations, for example, are a perfect fit for Hibernate metadata and we will embrace them
aggressively. We will also support Java generics, which basically boils down to allowing type
EJB3-style persistence operations: EJB3 defines the create() and merge() operations, which are
slightly different to Hibernate's saveOrUpdate() and saveOrUpdateCopy() operations. Hibernate3
will support all four operations as methods of the Session interface.
Hibernate XML binding enables data to be represented as XML and POJOs interchangeably.
The EJB3 draft specification support for POJO persistence and annotations.
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.
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 doesn‟t work. Testing is the process of executing a
program with the intent of finding errors.
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.
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…
Requirements System Testing
The philosophy behind testing is to find errors. Test cases are devised with this in
mind. A strategy employed for system testing is code testing.
This strategy examines the logic of the program. To follow this method we
developed some test data that resulted in executing every instruction in the program and module
i.e. every path is tested. Systems are not designed as entire nor are they tested as single systems.
To ensure that the coding is perfect two types of testing is performed or for that matter is
performed or that matter is performed or for that matter is performed on all systems.
Types Of 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, HWAdmin, MasterAdmin, Normal User, and PManager. Giving different sets of
inputs has tested each module. When developing the module as well as finishing the
development so that each module works without any error. The inputs are validated when
accepting from the user.
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
Link testing does not test software but rather the integration of each module in
system. The primary concern is the compatibility of each module. The Programmer tests where
modules are designed with different parameters, length, type etc.
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
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
Here the entire software system is tested. The reference document for this process
is the requirements document, and the goal is to see if software meets its requirements.
Here entire „ATM‟ has been tested against requirements of project and it is
checked whether all requirements of project have been satisfied or not.
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.
In this project „Network Management Of Database System‟ I have collected some
data and tested whether project is working correctly or not.
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 requirements are satisfied.
White Box Testing
This is a unit testing method where a unit will be taken at a time and tested
thoroughly at a statement level to find the maximum possible errors. I tested step wise every
piece of code, taking care that every statement in the code is executed at least once. The white
box testing is also called Glass Box Testing.
I have generated a list of test cases, sample data, which is used to check all possible
combinations of execution paths through the code at every module level.
Black Box Testing
This testing method considers a module as a single unit and checks the unit at
interface and communication with other modules rather getting into details at statement level.
Here the module will be treated as a block box that will take some input and generate output.
Output for a given set of input combinations are forwarded to other modules.
Criteria Satisfied by Test Cases
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.
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.
The method being used in developing the system is the system Development Life
Cycle (SDLC) The SDLC process includes project identification and selection, project initiation
and planning, analysis, design, implementation and maintenance.
PROJECT IDENTIFICATION AND
PROJECT INITIATION AND PLANNING
Figure 2.4: Waterfall Model (SDLC)
System Development Life Cycle (SDLC)
The system Development Life Cycle(SDLC) is a traditional methodology used
to develop, maintain and replace or enhance information system. The main reason SDLC model
is chosen because in SDLC it is possible to complete some activities in one phase in parallel with
some activities of another phase. The life cycle can also be interactive that is phase are repeated
as required until an acceptable system is found.
184.108.40.206 Phase 1: Project identification and selection
In this phase the project information system needs are identified and analyzed
such as identified the title of the project that is Web Based XpathAnalyzer, scope and objective
of the Web Based XpathAnalyzer.
220.127.116.11 Phase 2: Project initiation and planning
During this phase the Gantt chart has been developed as a time line to determining
the task involve in developing the Web Based XpathAnalyzer.
18.104.22.168 Phase 3: Analysis
In the phase, the exiting system is studies by collecting the information through
the Internet and analyzed the information to get alternatives for the used of proposed system.
Determine what the Web Based XpathAnalyzer should do.
22.214.171.124 Phase 4: Design
Logical design is the fourth phase in SDLC methodology. The functional features
chosen for the proposed system in Analysis phase are described. Part of the logical design of the
information system is to devise the user interface. The interface plays an important role to
connect the user with the system and is thus extremely important.
Windows XP Operating System
Microsoft Visual Studio-2007 2.0 Framework
Internet Mozilla FireFox
The entire project has been developed and deployed as per the requirements
stated by the user, it is found to be bug free as per the testing standards that are implemented.
Any specification untraced errors will be concentrated in the coming versions, which are planned
to be developed in near future.