human resource management report
DESCRIPTION
reportTRANSCRIPT
1
Design and Implementation of a Web
Service Application for HRM
Antonis Meliou
Supervisor: Dr Sandra Sampaio
Third Year Project – COMP30030 School of Computer Science University of Manchester May - 2011
2
Abstract
Project Title: Design and Implementation of a Web Service Application for HRM
Student: Antonis Meliou
Supervisor: Dr Sandra Sampaio
Date: May 2011
Human Resource Management is a fast evolving discipline playing an important role in an
organisation’s performance. Today’s organizations need to adapt to the changing
environment and meet their employee’s needs and are therefore embracing human resource
management in their everyday processes. [2]
The objective of this project is to create a handy web tool for the manager of a small or
medium sized firm to keep control and manage the employees of the firm and provide
support in carrying out the main and vital human resource practices.
This report is created to provide a detailed explanation of the project life cycle, from the
basic ideas of the project to the full design and implementation.
Acknowledgement
I would like to take the opportunity to thank my supervisor Dr Sandra Sampaio for all the
time, support and effort she has devoted in this project and for the great communication we
had throughout the year.
I would also like to thank my family for all their love and support and all my friends in
Manchester and Cyprus that stood beside me whenever I needed them.
3
Table of contents
Abstract ......................................................................................................................... 2
Acknowledgement ........................................................................................................ 2
Chapter 1: Introduction .............................................................................................. 5 1.1 Motivation & Problem statement ................................................................... 5
1.2 Project Objective ............................................................................................ 5
1.3 Project Scope ................................................................................................. 5
1.4 Report Overview ............................................................................................ 6
Chapter 2: Background and literature survey .......................................................... 7 2.1 Web Services ....................................................................................................... 7
2.1.1 Introduction to web services ......................................................................... 7
2.1.2 Web services advantages and limitations ..................................................... 7
2.1.3 Web services Technologies [3] ..................................................................... 8
2.2 JSF........................................................................................................................ 9
2.2.1 What is JSF? ................................................................................................. 9
2.2.2 JSF elements ................................................................................................. 9
2.3 Human Resource Management (HRM) ............................................................. 10
2.3.1 HRM Definition and applications ............................................................... 10
2.3.2 The need for HRM ...................................................................................... 10
2.3.3 Web services in HRM ................................................................................. 10
Chapter 3: Design ...................................................................................................... 11 3.1 Use cases ............................................................................................................ 11
3.1.1 Login/Logout Use Case Diagram ............................................................... 11
3.1.2 Manage Employees Use Case Diagram ...................................................... 12
3.1.3 Manage Projects Use case Diagram ............................................................ 13
3.1.4 Manage Training Use case Diagram ........................................................... 14
3.1.5 Manage Leaves Use case Diagram ............................................................. 15
3.2 Requirements ..................................................................................................... 16
3.2.1 Functional Requirements ............................................................................ 16
3.2.2 Non-Functional Requirements .................................................................... 17
3.3 Data Flow Diagrams .......................................................................................... 17
3.3.1 Login DFD .................................................................................................. 18
3.3.2 View Profile DFD ....................................................................................... 18
3.3.3 Add Employee DFD ................................................................................... 19
3.3.4 Find Employees DFD ................................................................................. 20
3.3.5 Edit Employee DFD .................................................................................... 20
3.3.5.1 Dismiss Employee DFD .......................................................................... 21
3.3.6 Monitor Performance DFD ......................................................................... 21
3.3.7 Create Project DFD ..................................................................................... 22
3.3.8 Add Training DFD ...................................................................................... 22
3.3.9 Add Leave/Absence DFD ........................................................................... 23
3.3.10 Cancel Leave DFD .................................................................................... 24
3.3.11 View Remaining Holidays DFD ............................................................... 25
3.4 Software Development....................................................................................... 25
3.5 Database Design................................................................................................. 26
3.5.1 Database tables/relations analysis ............................................................... 27
3.6 System Architecture ........................................................................................... 28
3.7 Website architecture design ............................................................................... 29
3.8 Website (web client) design ............................................................................... 30
4
3.9 Summary ............................................................................................................ 30
Chapter 4: Implementation ....................................................................................... 31 4.1 Tools and Technologies ..................................................................................... 31
4.1.1 Netbeans 6.9 ................................................................................................ 31
4.1.2 MySQL server ............................................................................................. 31
4.1.3 SQL – Structured Query Language............................................................. 31
4.1.4 Java Server Faces (JSF) .............................................................................. 31
4.1.5 XML ............................................................................................................ 32
4.1.6 Java ............................................................................................................. 32
4.1.7 JavaScript .................................................................................................... 32
4.2 Database Implementation................................................................................... 32
4.3 Web Service Implementation ............................................................................. 34
4.3.1 DBConnect .................................................................................................. 34
4.3.2 Login ........................................................................................................... 36
4.3.3 Web Service operations .............................................................................. 38
4.4 Web Client Implementation ............................................................................... 40
4.4.1 Web client and & Web Service integration and communication ................ 40
4.4.2 Create Profile .............................................................................................. 42
4.4.3 JavaScript .................................................................................................... 44
4.4.4 Web application navigation ........................................................................ 45
Chapter 5: Results...................................................................................................... 46 5.1 System Walkthrough .......................................................................................... 46
Chapter 6: Testing and Evaluation .......................................................................... 65 6.1 Validations ......................................................................................................... 65
6.2 System Testing ................................................................................................... 67
6.2.1 Code Testing ............................................................................................... 68
6.2.2 Black Box Testing....................................................................................... 68
6.2.3 White box testing ........................................................................................ 72
6.2.4 User acceptance .......................................................................................... 72
6.3 Evaluation .......................................................................................................... 73
6.3.1 Strengths ..................................................................................................... 73
6.3.2 Limitations .................................................................................................. 73
Chapter 7: Conclusions ............................................................................................. 74 7.1 Initial Requirements vs. Project Achievements ................................................. 74
7.2 Future Development........................................................................................... 75
7.3 Personal Experience ........................................................................................... 75
References ................................................................................................................... 77
Appendix A – Project Plan ........................................................................................ 78
5
Chapter 1: Introduction
1.1 Motivation & Problem statement
Human resource management is still in the emergence and has not yet fully reached many
small and medium sized firms, due to the lack of knowledge and also the great costs that such
an attempt would entail. Most medium and small sizes companies usually buy ready made or
web based HRM support software. The former could be very general and not firm specific
and while developing specific software for a firm would be very expensive and the latter.
Both standalone and web application software are not flexible and need often improvements
when changes in the strategy or the HRM practices of the firm occur, or when regulations
change. [1]
Service orientation solutions are becoming widely spread and very popular in various
business areas. The ease of reusability, the technologies involved and the interoperable
characteristics of web services together with the flexibility of making changes at any point
without interrupting the normal use of the software using the web service are some of the
reasons that make web services popular and why this application is being implemented using
a web service to provide solutions to small and medium firms when dealing with HRM
practices and managing efficiently their employees. [3]
1.2 Project Objective
Design and Implement a web service application for HRM to tackle the everyday
problems a company has managing efficiently its employees through the solution that
a web service can offer.
Design and implement a web client that will be consuming (using) the web service
and that will give the user the opportunity to explore and make use of the features of
the web service in the best possible way.
1.3 Project Scope
The name of the application to be developed is “e-HRM which will be used to support a
manager of a small or medium company to manage and coordinate all the details
regarding the employees and provide support in applying the HRM practices of the firm.
Some of the main HRM features that the project will be covering are:
Managing employee job-cycle
Managing Training
Managing Leaves
Managing Projects
e-HRM will be offering a number of different options to its users:
Data storage, where employee information will be stored together with additional
information (Holiday, Training, Leaves, Projects)
Data manipulation. Users can add, edit and delete information
6
A user will be able to query the data and apply filters to get specific reports. For
example if a promotion or an empty position needs to be filled the user can search
the database for the employees that have undertaken the appropriate training to be
placed on the job
Reports will be provided. General staff report, holidays report, performance report
are some of the reports that will be supporting the manager his job.
General support will be provided. For example the system will warn the user in
the case of an employee asking for holiday leave when he/she has exceeded
his/her holiday allowance.
1.4 Report Overview
This report is designed to provide a step by step incremental approach to the design and
implementation of the application. The research performed and the literature survey that took
place to acquire the appropriate knowledge to implement the application will be discussed.
Then the design of the application will be presented with diagrams and other visual aids.
Next the implementation chapter will give a description of the most important parts of the
application which will be followed by the presentation of results and the testing and
evaluation of the new system. The last part is the conclusion which will sum up and close the
report contrasting the initial requirements with the actual achievements of the implemented
application.
7
Chapter 2: Background and literature survey
2.1 Web Services
2.1.1 Introduction to web services
Web services take distributed software systems a step forward and enable a new range of
strengths and possibilities that have not been present before them. Web services are adapted
to the web and enable the creation of new applications and ideas for providing better and
more effective solutions to software problems. [4]
Web services are XML applications mapped to programs, objects or databases. Any kind of
program or application can be mapped to a web service by using the web service WSDL file
and manipulating XML messages. XML is a variety if technologies describing data structure
and semantics. The most important characteristic of web services is interoperability. Web
services are platform independent making it possible to be used by any kind of software
platform and also make it possible for two different systems to communicate and exchange
data without problems. [3]
2.1.2 Web services advantages and limitations
There are several benefits and also drawbacks when choosing to create a web service
application over a standalone application. All these are analysed and explained briefly in this
section.
Advantages [3]
Web services enable automated B2B (business to business) interaction and
communication otherwise done manually, reducing communication costs.
Web services are based on widely used network protocols for exchanging documents.
Web services are loosely coupled. They can be upgraded at any time without
disrupting seriously the normal flow and the operations of the clients that are using
the web service. A consumer of the web service is not tied to the service directly.
Web services use XML technologies that can be adopted by all software platforms,
operating systems and programming languages without any problem making web
services interoperable and platform independent.
Limitations [3]
One major limitation of web services is that they rely on the integrity of the network.
If there is a problem with the network then the web service might be unreachable.
8
2.1.3 Web services Technologies [3]
Web services are XML applications. XML is a group of technologies used for the creation
and use of web services
XML (Extensible Markup Language)
XML is the foundation of web services. It is the technology used to provide the description,
the storage and transmission format of the data that will be transmitted to and from a web
service.
It is similar to HTML having elements, attributes and values but offers greater flexibility and
extensibility than plain HTML.
WSDL (Web Service Description Language)
The WSDL is an XML schema that is used to describe and publish web services. The WSDL
file contains the description of the data to be passed to the web service so that the sender and
receiver understand the data being exchanged. It also contains a description of the operations
to be performed on that data so that the receiver knows how to process it.
If a potential user (sender of message) and the receiver of the message (web service) share
the same WSDL file they can communicate and exchange messages.
SOAP (Simple Object Access Protocol)
The SOAP protocol defines the way in which the message will be sent from one place to
another and to be available for processing at the destination. Messages are sent via HTTP
request and any reply is received via HTTP response. SOAP is neutral and platform
independent and this is the reason why web services are also interoperable. SOAP is itself an
XML document and consists of three parts
• The Envelope which is requires and marks the start and end of the SOAP message
• The header which is optional and can contain the attributes of the message
• The body which contains the message to be sent
UDDI (Universal Description, Discovery and Integration)
The UDDI is a registry/repository where businesses can publish the web services they offer
and interested users can find web services to use. Contact information of the business
providing the service together with a URL of the WSDL file are registered for each service
and can be used by interested users.
9
2.2 JSF
There is the need for the implementation of a client of the web service in order to be able
to make use of the service’s features in the best possible way. After some research about
the various technologies available for the implementation of the web client that will be
using the web service it was decided that JSF (Java Server Faces) will be used. In this
section the reasons for this choice are explained together with the various advantages and
limitations there are when using JSF for implementing the web client.
2.2.1 What is JSF?
JSF is the most recent java-based software development framework. JSF integrates a number
of different technologies in a coherent manner supporting the creation of web applications
and automating many basic development steps. It focuses specifically on the interface
between client and server and will provide the interface of the client that will be used by a
potential user and also will be responsible for the communication with the web service. [6]
2.2.2 JSF elements
JSF pages (.jsp)
JSF pages is the collection of pages used for creating the HCI (Human Computer Interaction)
through which the user will interact with the application. A JSF page is similar to a HTML
page. It has markup syntax and elements like HTML but has its own special tags (elements)
extending HTML capturing the dynamic elements of the page. [5]
UI components
Special JSF tags are associated a UI (User Interface) component which is a special Java
object. These components are generated by the JSF framework and are not visible to the
programmer. [5]
Beans
In hybrid applications such as JSF, pages which contain Java features in addition to features
of another language (HTML, JavaScript, and XML) which are non-java must be linked to the
Java units. Java Beans were introduced in order to make this link possible and connect Java
units to external non java ones. [5]
For e-HRM the bean classes will be responsible for the connection and communication with
the web service were the main functions of the system will be kept.
The JSF configuration file
Several configuration files are used in the development of web applications such as
“web.xml” defining how the web application will be deployed, the “sun-web.xml”
automatically generated by Netbeans, and “faces-config.xml” which defines the links
between the JSF pages making the application and the Java features of the application. [5]
10
2.3 Human Resource Management (HRM)
2.3.1 HRM Definition and applications
HRM is the strategic approach undertaken in managing an organization’s most valuable
assets, the people working at the organization, the employees. HRM focuses on all the
aspects regarding an employee’s job cycle in an organisation. Recruitment, hiring/firing,
payroll, training, providing direction, motivating and monitoring performance are the most
important features that HRM is dealing. [1]
2.3.2 The need for HRM
We live in an era of service oriented economies where competition is huge. In order for
organisations to succeed and be able to compete, they must provide the best possible working
environment for their employees in order to get the most out of them.
In their effort to provide the best services and products, large organisations and firms tend to
specialize in what they do so they either have their own separate HR department or they
outsource their HRM to external organizations. [2]
These solutions are very costly and inefficient for small and medium companies. E-HRM
aims to help small and medium organisations to embrace the basic and fundamental HR
practises for their firm avoiding huge costs. e-HRM will be a tool for the manager of the firm
to effectively and efficiently control the firm’s employees and all the aspects of their job such
as absences, training, appraisals, recruitment and firing.
2.3.3 Web services in HRM
Due to the fierce invasion of the internet and information technology in the business world,
e-Commerce and e-Business are becoming the most popular way to conduct business.
Companies nowadays use web services in an effort to improve their business processes such
as in SCM (Supply Chain Management) or CRM (Customer Relationship Management).
Therefore web services could make a very cheap and efficient solution for small and medium
firms to conduct their HRM activities. There is no need to purchase special dedicated
hardware and software or acquire the available resources and pay specialist staff that would
implement and maintain any standalone application.
11
Chapter 3: Design .
This chapter is intended to give a detailed explanation of the design process that was used
throughout this project. The requirements of the new system, the database design, the
application and website design and how the technologies will be used to create the
application are the main parts that will be covered in this chapter.
3.1 Use cases
In this section the use cases that were drawn in order to help in the design of the system and
capturing the system requirements are given. Use cases are one of the simplest and yet the
most efficient and quick ways of depicting the system’s requirements.
Five different use case diagrams were used in order to explain the system and give a more
clear and analysed view of the requirements than having a single large and complex use case
diagram.
3.1.1 Login/Logout Use Case Diagram
e-HRM
Figure 1 – Login Use Case diagram
Use cases Description
12
3.1.2 Manage Employees Use Case Diagram
e-HRM
Figure 2 – Manage Employees Use Case diagram
Use cases description
Use Case Name Use Case Description Participating
Actors
View Profile View the profile of an employee. The user has to
enter the ID number of the employee and the
profile is presented on screen
User
Add Employee Add a new employee in the system when a new
employee is hired. The details entered will be
validated and stored in the DB
User
Find Employees Searching for a specific employee or for more
than one employees matching some specified
criteria.
User
Edit/Remove
Employees
Edit the details of an employee. The user will be
able to update the details, dismiss or remove the
employee.
User
13
Monitor
Performance
View the average performance of individual
employees or produce a report with the
performance for all employees.
User
View Old
Employees
View the details of employees that have left the
company. Limited data will be held in the
database according to UK data protection
regulations.
User
3.1.3 Manage Projects Use case Diagram
e-HRM
Figure 3 - Manage Projects Use Case diagram
Use cases description
Use Case Name Use Case Description Participating
Actors
Create Project Create a new project. The user will enter
the project details which will be validated
and stored in the DB.
User
Find Project Search for a specific project or for a list of
projects matching some specified criteria.
User
Edit/Remove Project Edit the details of a project. The user will
have the options to update the details or
cancel a project
User
14
3.1.4 Manage Training Use case Diagram
e-HRM
Figure 4 - Manage Training Use Case Diagram
Use cases description
Use Case Name Use Case Description Participating
Actors
Add Training Add a new training session for an employee.
The user will enter the training details.
User
View Training Data Search for the training sessions that match
some specified criteria the user enters.
User
Edit/Remove Training
Data
Edit the details of a training session. The user
will have the options to update the details or
cancel training.
User
15
3.1.5 Manage Leaves Use case Diagram
e-HRM
Figure 5 – Manage Leaves Use Case diagram
Use cases description
Use Case Name Use Case Description Participating
Actors
Add Leave Add a new leave/absence an employee. The
user will enter the leave details which will be
stored in the DB.
User
View Leaves Data Search for the details of a specific
leave/absence matching some user specified
criteria.
User
Edit/Remove Leaves
Data
Edit the details of a leave. The user will have
the options for updating or cancelling the
leave.
User
16
3.2 Requirements
In order for a system to be fully functional there is the need for complete and up to date
requirements to be gathered. The use cases presented above are one of the most important
sources were requirements were extracted. The system’s functional and non-functional
requirements are presented and explained below.
3.2.1 Functional Requirements
Functional requirements are the requirements defining the functionality that the system is
supposed to accomplish. They depict the desired behaviour of the proposed system.
Requirement
1 The system must have a log-in/log-out feature
2 The system must allow the user to add, update or delete employee details
3 The system must allow the user to dismiss an employee and save him in a
temporary location
4 The system must allow the user to add, update or cancel a project details
5 The system must allow the user to add, update or delete the details of a training
session undertaken by employees
6 The system must allow the user to add, update or cancel absences/leaves requested
by employees and granted by the manager
7 The system must allow the user to browse employees, projects, training sessions
and leaves/absences using keywords and different search criteria and sorting
requirements
8 The system must allow the user to browse projects, employees, training details and
absence/leaves using keywords, different search criteria and sorting criteria
9 The system must automatically allocate a predefined number for holidays for each
new employee according to his position and reset this number for all employees at
a specified date every year.
10 The system must to calculate and present the average performance for each
employee based his/her project scores.
17
3.2.2 Non-Functional Requirements
Non-Functional requirements are the criteria that specify the nature and general operation of
a system rather than the system’s behaviour.
Requirement
1 The application should make a useful tool and support the manager of a company
to carry out the main HRM practises of the firm effectively
2 The application will be implemented as a web service
3 The client of the web service will be a web application
4 The user interface of the client should be friendly and simple to use and navigate
through the various pages
5 The font size and colour used should be easily readable by the user.
6 Multiple user access should be allowed
7 The client should be able to connect to the web service quickly and effectively
3.3 Data Flow Diagrams
In this subsection, the use case diagrams and the use case descriptions given in section 3.1
will be analysed using DFDs in order to give a detailed explanation and business process
analysis of the system behaviour.
DFD Notations used
Notation Description/Representation
System Process
Data store
External entities
Sub process start point
Process Termination
Data Flow
Process number
Process Name
18
3.3.1 Login DFD
Figure 6 – Login DFD
3.3.2 View Profile DFD
Figure 7 - View Profile DFD
To create the profile for an employee first the employee ID is checked. If the ID belongs to
an employee in the database then the profile is created dynamically and presented to the user.
2.0
Create Profile User
Enter Employee ID
Invalid ID
HRM
DB
Valid ID:
show profile
1.0
Login User
Enter usernane
And password
Invalid credentials
HRM
DB
Valid credentials:
Allow access
19
3.3.3 Add Employee DFD
Figure 8 - Add Employee DFD
Figure 9 - Add Employee Sub process DFD
When adding a new employee the details are validated by the system. If the ID does not exist
then the rest of the details are validated and any errors are reported to the user for correction.
If the details are valid then the new employee is created and stored in the DB.
3.1
Check
employee ID
Employee
exists
HRM DB
Invalid details
HRM DB
3.2
Check
employee details
Employee
does not exist
3.3
Create Employee
Valid details
HRM DB
3.4
Allocate
Holidays
3.0
Add Employee
User Enter
employee details
Invalid details
HRM
DB
Valid details
3.0
20
3.3.4 Find Employees DFD
Figure 10 - Find Employees DFD
When searching for employees the user enters the search keywords and criteria which will be
used by the system to perform the search.
3.3.5 Edit Employee DFD
Figure 11 - Edit Employee DFD
When the user wants to edit (update, dismiss, remove) an employee the first step is to search
and find that employee if he/she exists. The user can then update the details of an employee,
dismiss an employee (Figure 12) when an employee is fired or left the company or remove
completely an employee from the database.
6.0
Dismiss
Employee
User
5.0
Update
Employee
7.0
Remove
Employee
HRM
DB
4.0
Find
Employee
4.0
Find Employee
User Enter search parameter
and employee details
Employee does not exist
HRM
DB
Valid details
Employee Exists
Show details
21
3.3.5.1 Dismiss Employee DFD
Figure 12 - Dismiss Employee DFD
When an employee is to be dismissed, the system first will save his/her details in a temporary
table where limited details for all old employees are kept and then the details for that
employee are removed from the main employees table.
3.3.6 Monitor Performance DFD
Figure 13 - Monitor Performance DFD
For the case of viewing the performance for employees the user will have two options. The
first option is to view the average performance achieved in projects by an individual
employee and the second is to view the average performance for all employees together in a
list.
8.1
Get
Performance
(All)
User
Enter employee ID
HRM DB
Display performance
8.2
Get
Performance
(Individual)
Select ALL
Employees
HRM DB
Display performance
8.0
6.2
Remove
Employee
HRM DB
6.1
Save In
temporary table
6.0
HRM DB
22
3.3.7 Create Project DFD
Figure 14 - Create Project DFD
When creating a new project the user has to enter the details of the new project and after
validated a new record is created in the DB.
3.3.8 Add Training DFD
Figure 15 - Add Training DFD
When adding a new training for an employee the user has to enter the details of the new
training such as the employee ID, the course name and year and the course status.
13
Add Training User Enter
training details
Invalid details
HRM
DB
Valid details
10
Create Project User Enter
project details
Invalid details
HRM
DB
Valid details
23
3.3.9 Add Leave/Absence DFD
When a new leave is to be added the details of the employee and the new leave are checked
and the system also checks for any overlapping leaves appointed by the same employee
during the same period. If the details are valid then the new leave is stored in the database.
Figure 16 - Add Leave DFD
Figure 17 - Add Leave Sub processes DFD
16.1
Check
employee ID
Employee
Does not exist HRM DB
Invalid or overlapping leave details
HRM DB
16.2
Check
Leave details and
search for
overlaps
Employee
exists
16.3
Add leave
Valid details
HRM DB
16
Enter leave
details
16.4
Update Holidays
left
Leave is a holiday
HRM DB Leave is not a
holiday
16
Add Leave User Enter
leave details
Invalid details
HRM
DB
Valid details
24
3.3.10 Cancel Leave DFD
When cancelling a leave, if that leave was a holiday apart from removing the leave from the
database, the duration of that holiday (in days) is added back to the total number of holidays
the employee is allowed.
Figure 18 - Cancel Leave DFD
18.1
Find Leave User Enter
leave details
Invalid details
HRM
DB
18.2
Cancel Leave
18 Cancel Leave
18.3
Update
(Increment)
Holidays Left
HRM
DB
25
3.3.11 View Remaining Holidays DFD
This function is used by the user to find the holidays figure for individual employees using
their ID or by producing a report with the holidays figure for all employees.
Figure 19 - View Remaining Holidays DFD
3.4 Software Development
For this project it was decided that the spiral model would be followed for the development
of the application. As shown in the diagram with the spiral model the development of the
application would proceed in chunks of requirements gathering, analysis, implementation and
design until the end of it. Unlike the waterfall process where each step is done at a time and
then is not visited again in this case following the idea that “requirements change”
requirements will be gathered and revisited continuously until the project is finished in an
effort to create a complete and fully functional application that will fully meet the most
relevant requirements. The project plan is given in appendix A.
Figure 20 - The spiral software development model
19.1
Get Holidays
Left
(All)
User
Enter employee ID
HRM DB
Display holidays left
19.2
Get Holidays
Left
(Individual)
Select ALL
Employees
HRM DB
Display holidays left
19.0
26
3.5 Database Design
Figure 21 - The database design diagram
The diagram above is the design of the HRM database showing the relations and the
relationships between them. The tables in the next page explain the idea behind all the
relations and relationships
27
3.5.1 Database tables/relations analysis
Relation Description Notes
Employee This table contains information
about employees working for the
company, both personal and job
related.
Employee absence This table contains information
about the leaves/absences that
employees take.
Employee ID and absence Start
Date make up the primary key as
one employee can only appoint one
absence on one day.
Employee Training This table contains information
about the training that employees
have taken or are taking at the
moment.
All three (EmployeeID,
CourseName, Year) attributes make
up the primary key in the concept
that one employee can take a
specific course only once a year
HolidaysLeft This table contains the number
figure that an employee is
allowed throughout a year
according to his position
Project This table contains information
about the projects developed by
the company
Project Force This table contains information
about the employees working in
projects. It links employees to
projects
Old Employee This table contains limited
information about employees that
left the company and are no
longer working there.
This table is not linked to any other
table since it is only used for
reference purposes and will holds
limited personal information
according to regulations monitoring
personal data and the amount of
time you are allowed to keep it.
Promotion History This table contains information
about all the promotions, and
raises employees had throughout
their job life in the company
This table is not linked to any other
table since it is only used for
reference purposes.
WS Users This table contains the log in
credentials of the users of the web
service
28
3.6 System Architecture
Figure 22 - System architecture design [3]
The above diagram gives an overview of how the whole system comes together and how the
various technologies interact in an integrated way delivering the service functionality to the
potential user. The table below gives the architecture and flow of events explanation.
Description
1 The service provider publishes his web service (WSDL file) to the UDDI
organization where potential users can find it.
2 & 3 The service user searches for the web service and acquires the WSDL file
needed to communicate with the web service
4 The web client sends a SOAP request (i.e. Add Employee) and the appropriate
data in the XML format the web service is ready to accept it.
5 & 6 The web service interface receives the XML message, and translates it to the
programming language instructions the backing end application is written to.
Then the request is performed by the application and a response is prepared
and sent to the web service interface
7 The web service interface generates the appropriate XML message response
(i.e. informing the user if the Employee has been added or not) and sends it
back over the internet to the web service client.
29
3.7 Website architecture design
Figure 23 - Website hierarchical architecture design
This diagram is a general website outline of how the page flow of the website (web client) will be implemented and the
options that will be available in each page.
Login (Index)
Projects Menu
Leaves Menu
Training Menu
Employees Menu
View Profiles Add Employee Edit Employee
Search Employees Monitor Performance
e-HRM
Home Page Main Menu
Add Leave Edit/Cancel Leave
Search Leaves Holidays Left
Add Project Edit/Cancel Project
Search Projects
View Profiles Add Employee Edit Employee
Search Employees Monitor Performance
30
3.8 Website (web client) design
The website that will be the user interface of the web client of the web service was designed
with such way in order to make the page as simple as possible and also easily understood by
the user. The colors chosen have a high contrast and will not be stressful for the eyes or
confusing for the user. The website was designed in an effort to make the user interface as
friendly and simple to use as possible.
Figure 24 - Website design
3.9 Summary
This chapter was a description of the design phase of all the aspects of the new application.
The next step is to implement the application based on the design chosen.
Logo
Title
Page Content
Footer
Section Name
Main Navigation
31
Chapter 4: Implementation
This chapter gives the implementation of the application. The technologies that have been
used and how they have been used to create the web service, the web client and the database,
and the processes that will make up the system are explained in this chapter. Too much detail
will be avoided and only the most important and difficult parts of the project will be
presented here. Repetitive tasks and tasks that are simple to implement will be omitted
4.1 Tools and Technologies
This section describes the tools and technologies that have been used to implement this
application and the reasons that each technology has been chosen.
4.1.1 Netbeans 6.9
Netbeans 6.9 was decided to be used as the IDE to develop the application. Netbeans
provides functionality to easily create web services, generates the WSDL file for a web
service and provides a handy function to test a web service when created. Also using
Netbeans you can easily turn a web application to a web service client by passing it the
WSDL URL for the web service.
4.1.2 MySQL server
MySQL is a powerful database management system used to create, maintain and access
relational databases. MySQL server provides functionality for secure storing, processing and
querying of data found in a database. It will be used as the server that will maintain the
“HRM” database which will hold the relations and data described in part 3.5.
4.1.3 SQL – Structured Query Language
SQL is a language for accessing databases maintained by a relational database management
system such as the MySQL server and managing the data found in them (add, delete, update).
SQL is very simple to learn and use and can be easily combined with Java to create JDBC
applications.
4.1.4 Java Server Faces (JSF)
The main characteristics of JSF have been explained in the background chapter in part 2.2.
JSF was chosen to create the web client that will use the web service because it provides an
easy and flexible framework for creating web applications. JSF can easily connect the web
pages of the client to the back end application (written in java) that carries the functionality
of the system and enables the communication with the web service
32
4.1.5 XML
The main characteristics of XML have been discussed in the background chapter in section
2.1.2.
XML is used to create the web client’s configuration files, the WSDL file and the SOAP
requests and responses from the client to the web service and vice versa. All these files are
automatically generated by Netbeans.
4.1.6 Java
Java will be the programming language that will be used to create the main classes that will
make up the web service and the back end functionality of the web application that will serve
as the web client. Java can be easily used in combination with SQL to create a JDBC
application in order to access and manage the data in the database.
4.1.7 JavaScript
JavaScript will be embedded in the JSF pages and will be used for validations on the user
actions when using the website. It is a powerful scripting language that provides a very
efficient way of carrying out many necessary validations on the client side and avoid loading
the server.
4.2 Database Implementation
The database has been created using the graphical user interface provided by Netbeans after
the MySQL server has been configured and connected to it. The database design given in
part 3.5 has been followed to create the database. The images in the next page show how the
HRM database has been created together with the tables and their attributes.
33
Create Database
Figure 25 - Create database screenshot
Create tables
Figure 26 - Create Tables and relations screenshot
34
4.3 Web Service Implementation
A single web service that will house all different operations in functions which will be called
in turn according to the user requests has been implemented.
The operations of the web service are explained here. Only the code for some of the
operations is shown here as the full code is given in the CD submitted in directory
webservice2/src/java/mypackage/NewWebService.java.
4.3.1 DBConnect
This operation is used in order to connect to the database when it is needed. The function is
called by each operation which needs to manipulate data in the database (add, edit, delete) in
order to open a database connection and then the connection is closed when the operation is
finished.
The connection strings are declared outside the operation and are used by the DBConnect
function to connect to the DB.
Figure 27 - DB connection strings code extract
The above strings are used in the following code extract of the DBConnect operation.
Figure 28 - DBConnect web service operation code extract
35
Below are the SOAP request and SOAP response messages sent and received when the
operation DBConnect of the web service is called. DB connect is a Boolean operation so if
the connection with the database was successful the SOAP response should be “true”.
Figure 29 - SOAP request / response messages for DBConnect operation
36
4.3.2 Login
This operation is used when the user wants to login and use the web client and have access to
the data of the database. The user enters his/her username and password which are then
checked upon the database. If the credentials are valid then the user is allowed to access and
use the system, otherwise access is denied.
The code extract below is part of the Login operation of the web service. The two important
things to notice is first how the operation DBConnect is used to connect to the database first
and the second is the SQL command used together with a result set in order to check the
user’s credentials in the database.
Figure 30 - Web service operation login code extract
The Login operation is a string operation. It is a string operation since there are three possible
outcomes. First a database connection error might occur, secondly the login was incorrect
and third the login was correct. A string is returned to the client according to each case and
the client will deal with the string and will inform the user about each case.
37
The SOAP request and response provided by the web service tester when the credentials
entered are wrong and therefore access will not be allowed to the user are shown below.
Figure 31 - SOAP request / response messages for login operation
38
4.3.3 Web Service operations
The rest web service operations are summarised and explained in the following table to avoid
excess detail.
No Operation Name Description Notes 1 DBConnect Open the connection to the database
2 DBDisconnect Close the connection to the database
3 login Login to be able to use the system. User’s credentials checked upon
the database
4 addEmployee Add a new employee record in the
database
The return type is a string since
several outcomes are possible.
(Successfully added, duplicate
error, connection error
5 viewEmployee Find the details of a specific employee
in the database by employee ID
The details are used in order to
update the properties in the java
Bean and to present the details on
the website
6 removeEmployee Delete the details (record) of an
employee from the database
7 dismissEmployee Remove the details of an employee
from all the tables he is found and
create a new record for that employee
in the old employee relation
8 addAbsence Add a new leave/absence for an
employee
9 getHolidaysLeft Get the number of holidays a specific
employee is still allowed using his/her
ID.
10 updateHolidaysLeft Update the number of holidays after an
employee takes a holiday or cancels a
holiday
11 validateTraining Validate the details of a new training
for an employee. If the details are
invalid inform the user.
12 addTraining Add the details of a new training to the
database
13 removeAbsence Cancel a leave/absence an employee
has appointed and remove the record
from the database.
14 findAbsence Find the details of a specific
leave/absence in the database by
employee ID and absence start date
The details of the absence will be
used in order to update the
properties in the java Bean and to
present the details on the website
15 searchEmployees Browse the employees using various
keywords and different search criteria
(ID, name, surname, nationality,
salary). The list is sorted according to
the search criteria (i.e. by name
ascending)
Used when the user requests a
report with one or more number
of employees meeting the search
criteria.
16 updateEmployee All or some details (except ID) of the
employee are updated and saved in the
database.
17 searchOldEmployees Same as No15 Same as No15
18 searchTraining Browse training data using various
keywords and different search criteria
Used when the user requests a
report with one or more number
of training sessions meeting the
search criteria
19 viewAbsences Browse absences/leaves data using
various keywords and different search
criteria
39
20 getTraining Find the details of a specific training
session
The details are used in order to
update the properties in the java
Bean and to present the details to
the user using the special JSF tags
which are linked to the Bean
properties
21 updateTraining Update the status (complete attribute)
of a training session.
22 removeTraining Delete the details of a training session
from the database when a training was
cancelled
23 viewHolidaysLeft Return a list with the employee details
and number of holidays remaining for
each employee
Used when the user requests a
report for the holidays for all or a
single employee
24 checkEmployee Check if an employee exists in the
database
This operation is used by other
operations (i.e. addProjectForce)
to first check if the employee
exists and then proceed.
25 getNextProjectID Find the last ID and increment it by one
to give a new project its ID
Used when a new project is
created since the ID is
automatically assigned
26 addProject Create a new project and add its details
in the database
27 addProjectForce Add the details of the employees that
will be involved in a project
26 checkProject Check if a project exists in the database This operation is used by other
operations (i.e. addProjectForce)
to first check if the project exists
and then proceed.
27 searchProjects Browse projects using various
keywords and different search criteria
Used when the user requests a
report with one or more number
of projects meeting the search
criteria
28 viewProject Find the details of a specific project Use the details in order to update
the properties in the java Bean
and to present the details on the
website
29 getProjectForce Get the employees that work is a
specific project
30 updateProjectForce update employees details that work in a
project (i.e. score)
31 removeProjectForce Remove employees from a project
32 updateProject Update projectDetails
33 cancelProject Cancel a project and remove the record
from the DB
34 getEmployeeAverage
Performance
Get the average performance of a
specific employee
35 getJobType Get the position of an employee
36 promoteEmployee Promote an employee to a higher
position and give raise
37 updateHolidays Reset the number of holidays the
employees are allowed to their original
values at a specific date of the year.
40
4.4 Web Client Implementation
At this stage the description of the implementation of the web client of the web service is
shown. Since the important part of the project is the web service itself, the web client is just
the interface of the web service. The client could also be a standalone application. The CSS
style of the website of the client is a free template taken from the free source website
http://www.iwebsitetemplate.com/.
4.4.1 Web client and & Web Service integration and communication
The first thing that was created was the Java Beans. Two beans were created that are the Java
files that serve as the communication medium between the web pages and the web service.
The first is the HRM bean which is responsible for log-in and log-out requests from the user
and the second is the Employee Bean which deals all the rest requests which have to do with
managing employees, projects, trainings and leaves. Both files can be found in the CD
submitted in e-HRM/src/java directory.
Thirty four web pages (jsp) have been used to create the User Interface. The following
images show the user interface and extracts of the U I code and Bean code and explain how
the beans communicate with the jsp pages. The explanation and process flow of the images is
given right after the images. The login process is used as an example.
Log-in page
Figure 32 - Login page
41
Index.jsp – login page
HRM bean properties
HRM Bean Login function
42
Images explanation
Referencing the web service
In order to be able to communicate with the web service the java bean must reference the
web service first by locating the WSDL file as shown by the code extract below.
Calling the web service
The web service is called from the Bean function after creating a web service instance as
shown below
Process walkthrough
When the user enters his username and password in the text fields, the values of these fields
are then passed from the jsp page to the properties of the bean. Then these properties are used
by the login function of the HRM bean and passed as parameters the web service login
operation which responds back to the client.
The client takes the web service response and accordingly renders the appropriate message or
action on the website.
The JSP pages communicate with the Java Beans which in turn communicate with the web
service and which in turns communicates with the database. All the rest of the web pages and
bean functions work in the same way and will not be shown here in an effort to avoid
excessive detail.
4.4.2 Create Profile
This function is responsible for creating the personal profile for an employee with all the
relevant and up to date details.
The user enters the employee ID which is checked by calling the checkEmployee web
service operation as shown in the yellow rectangle below.
The personal and job details are retrieved by calling the Bean function viewEmployee
(orange rectangle) which in turns calls the web service operation viewEmployee and
the Bean properties are updated with the details of the employee.
Then the holidays left are retrieved by calling the Bean function getHolidaysLeft (red
rectangle) which in turns calls the web service operation getHolidaysLeft. As it can
be noticed the functions viewEmployee() and getHolidaysLeft() do not take any
parameters. This is because the web service called by these function uses the value of
the property “ID” which is given by the user as input and the property value is reused
in these operations to call the web service.
43
The web service operation searchTraining is called in order to retrieve all the training
sessions for the employee (blue rectangle).
The last call to the web service is to the getEmployeeAveragePerformance operation
which takes the employee ID as parameter and returns the number that corresponds to
the average performance of that employee according to the scores he gained from the
projects he worked in (green rectangle)
The createProfile function can be found in the CD in the directory e-
HRM/src/java/com/corejsf/EmployeeBean.java and the web service operations can be found
in the directory webService2/src/java/mypackage/NewWebService.java.
44
4.4.3 JavaScript
For this project JavaScript was mainly used for validations on the user inputs and actions on
the website. The description of the validations is analysed and explained in the testing
chapter. In this chapter only an explanation of how JavaScript was used in order to enable the
client side validations on the website. The reason JavaScript was used is to avoid loading the
server with more validations. Inputs and actions are validated before submitted using
JavaScript which is embedded inside the web page directly. In the next diagrams the
JavaScript that was used in the login (index.jsp) page is explained. [8]
Index.jsp extract
In order for the JavaScript function to be called an action on the JSP page must call it. The
code extract below from the index.jsp page shows how the above JavaScript is triggered
when the user clicks on the login button and the form is submitted. [6]
.
Get the values of the JSF
tags from the form and
pass the to the function
variables
Check for missing
username and password
Message in output box
alerting the user for
missing details
Check which details are
missing specifically in
order to create more
accurate and specific alert
message to the user
45
4.4.4 Web application navigation
As stated in section 2.2.2 the “faces-config.xml” file defines the links between the JSF pages
making the application and the Java features of the application and defines how the
navigation is performed in the application. The following code extract is part of the “faces-
config.xml” file of e-HRM web client of the web service. As shown in the image below in
the first navigation case, when the string outcome “logout” appears, then the navigation is
directed to the index.jsp page. These outcomes are returned from the bean functions to the jsp
page when a function is called.
The “faces-config.xml” file is also responsible for stating the managed beans of the
application in order to enable communication between the jsp pages and the managed beans
(java files) as shown in the following “faces-config.xml” extract.
46
Chapter 5: Results
5.1 System Walkthrough
Login
The above images show the login page and the main menu. Once the user enters his/her
username and password correctly the system grants access to the user and displays the main
menu of the system.
47
Employee submenu
When the employee navigates to the employee’s submenu he is presented with various
options as shown in the image below.
48
Employee Profile Page
The next images show the outcome when the user searches for the personal profile of an
employee. The user is required to enter the employee’s ID and the profile page is presented
to the user.
Add Employee
When the user selects the option to add a new employee from the employee’s submenu, the
new employee form appears and the user is required to enter the new employee details.
49
Find Employee
When browsing employees that match some search criteria the following screen appears.
When the user selects the search criteria (i.e. by ID, name, surname, salary, nationality,
position) he/she is presented with the report of the employees that match the criteria and their
details.
50
Edit Employee
Editing an employee, either update his/her details, or dismiss, or remove completely first the
user must search for the employee. Then the details of the employee are shown together with
the options available.
51
Monitor Performance
Choosing “Monitor Performance” from the employees submenu the following screen appears
showing the average performance for all employees.
52
Projects submenu
When the employee navigates to the projects submenu he is presented with various options as
shown in the image below.
53
New Project
To a new project first the screen for entering the project details appears and when the new
project is created the screen for entering the details of the employees that will be involved in
the project appears for the user to fill the required information.
54
Find Projects
When searching for projects that match some search criteria the following screen appears.
The user selects the search criteria (i.e. by project ID, project name or manager ID) and
he/she is presented with the relevant report.
55
Edit Project
When the user wants to edit the details of a project, either update or cancel the project
completely, first the user must search for the project. Then the details of the project are
presented to the user together with the options available.
56
Training submenu
When the employee navigates to the training submenu he/she is presented with various
options as shown in the image below.
57
New Training
When the user wants to add a new training for an employee and selects the option “New
Training” from the training submenu the screen for entering the training details appears for
the user to fill the required information.
58
View Training Data
Searching for training sessions that match some search criteria the following screen appears.
When the user selects the search criteria (first either by employee ID or course name and
secondly for course status which is either courses passed, courses failed, courses in progress
or all) he/she is presented with the report containing the relevant information.
Searching by employee ID for all the courses passed and searching for employee ID
“885058” gives the following outcome
59
Edit Training Data
In the case when training needs to be edited the user has to provide the details of the training
in order to track it. Then the user has two options. The first is to update the status of the
training (i.e. change from “in progress” to “completed successfully” or “not completed”) and
the second is to cancel and remove the training completely. The following images show the
steps for changing the status of training for employee with ID “885058”.
60
Leaves submenu
When the employee navigates to the leaves submenu he/she is presented with various options
as shown in the image below.
61
New Leave
Selecting the option “New Leave” from the leaves submenu the screen for entering the leave
details appears for the user to fill the required information.
62
View Leaves Data
Searching for leaves/absences that match some search criteria the following screen appears.
When the user enters the search criteria (first search for the absence type: i.e. Holiday,
secondly search for a specific employee ID or for All employees and third the date criteria:
i.e. starting from date or ending on date or on a specific date) he/she is presented with the
report containing the relevant information.
63
Edit Leaves
The user is only able to cancel a leave but not edit any details. If changes to the date or the
reason have to be made then the existing leave has to be cancelled and a new one must be
created.
64
Remaining Holidays
When the user selects the option “Remaining Holidays” the user has the option to search for
a specific employee or for all employees and the system will provide a report with the total
days remaining for each employee as holidays. This option could be very useful for the user
since he/she can monitor which employees take up all their holidays and which take very
little holidays and investigate the reasons for the case.
65
Chapter 6: Testing and Evaluation
This chapter is broken into three main parts. The first is the validations that were included in
order to make the user input and the system response as accurate and correct as possible, the
second is the testing of the new system to check the correctness and find errors and problems
in the behaviour of the system. The third part is the evaluation of the new system where
strengths and limitations are discussed.
6.1 Validations
Validations on the user input have been used in order to get as accurate and correct input
from the user and create the most appropriate and correct response. JavaScript was used to
make the website input validations and the rest are either done on the client side by the Java
Beans or by the web service itself. A list of the validations used and an example is given
below.
No Validation Description
1 The user must not be allowed to proceed if there are blank fields for information
which are required. (i.e. username and/or password)
2 The user must not be allowed access if the login credentials are invalid
3 The date format accepted is YYYY/MM/DD or YYYY-MM-DD which are the two
formats accepted by the database.
4 The age of a new employee must be between 18 and 65 years old
5 Minimum and maximum wage figures are controlled according to UK regulations
6 Employees cannot take more holidays than they are allowed without permission
7 Employees cannot appoint two different absences on the same period
8 Employees must not retake a training they have already passed
9 The user must be warned before sending an employee to training if he/she has failed
that course twice.
10 An employee must exist in the DB in order to add a new training, leave or project for
him/her
11 Text fields should not accept numbers or other characters and numeric fields should
not accept letters or other characters to be entered
12 The start date of a leave must be before the end date
13 The year of a training which is in progress must not be before the current year
These are some of the basic validations and business rules applied on the system. Below is an
example of the validations performed for cases 1, 2, 3 above.
66
Case 1 – No empty required fields
Case 2 – Invalid credentials
67
Case 3 – Date format
68
6.2 System Testing
System testing is broken down into several testing phases. The first is code testing where
the code is tested for syntax, logic and run-time errors. Then black box testing is used to
test the system as an integrated application and find flaws and bugs. White box testing is
then performed on each function individually of both the web service and the Java Bean
to ensure that each functions behaves in the expected way. The last is the user acceptance
testing by having friends that are familiar or not with the system trying to make full use of
the system and report errors or any omissions.
6.2.1 Code Testing
Code testing is performed in parallel with the code writing process. Netbeans provides a
code testing editor which compiles and tests the code at the same time it is being written
and reports any syntax, run-time, logic errors or any omissions (packages or libraries) by
highlighting the error and giving hints and also a server output were any errors found
during compilation are reported together with the exact directions (line number and
reason) of where the error was found. The image below gives an example of a case were
an error was detected and reported during code writing.
6.2.2 Black Box Testing
Black box testing is not one of the most popular ways for testing a system but one of the
most common. Parts of the system or all of it is tested together to check the integration and
communication between the different parts. The system was checked using black box testing
where some unexpected behaviour was observed in some occasions which was observed and
tested more analytically using white box testing to find the source of the problem.
69
The web service tester provided by Netbeans were each operation can be tested using
different inputs and the outcome is checked to make sure that each operation behaves as
expected in all situations and all inputs.
The example below shows a test case were the web service operation “login” is tested using
the tester tool provider by Netbeans. The table with the test data, the tester tool and the test
outcome are shown in the images below.
Login operation Testing
Test Data Expected Outcome Actual Outcome
Wrong username, correct password False False
Correct username, wrong password False False
Wrong username, wrong password False False
Correct username, correct password True True
Netbeans web service tester tool
70
Correct Username, correct password case - tester outcome
71
Correct Username, wrong password
In the same way all the web service operations have been tested before they were used by the
web client to make sure that each operation behaves as expected in every possible input.
72
6.2.3 White box testing
White box testing is a more detailed and function specific testing to find errors and bugs in
the code of each function individually. White box testing is performed when abnormal or
problematic behaviour is noticed during black box testing. Some minor errors and
inconsistencies have been found and have been corrected after looking carefully at the code.
6.2.4 User acceptance
Friends that were familiar and others that have never seen the application before have been
asked to use it and try every feature available and report any problems or omissions of the
system and a list of them is provided below. This type of testing also serves as a user
interface testing were many ideas and visual advices were given by the people who tested the
system and some of them were taken into account and improvements were made.
No Problem Description Solution
1 The reset holidays should be
done automatically and not
manually by the user
No solution was given to this problem due to lack
of time. The intention was to make the system
reset the holiday allowance on a specific date each
year but due to time pressure this is only done
manually by the user by using an option available.
This will be considered as part of the future
development and improvements of the project
2 When user was browsing
employees and then tried to
browse projects, leaves or
trainings the system crashed
After some research it was found that this error
occurred because the lists used to hold the report
details were reused for each case and were not
cleared so the system crashed. The solution was to
use a different list for each report type (i.e. one for
employees, one for training, one for leaves and one
for projects) for better code quality and to avoid
similar problems in the future.
73
6.3 Evaluation
6.3.1 Strengths
The main strength of the application is the web service nature it carries. The web service
makes the application independent of operating system, software platform and programming
language giving it an important advantage over simple web based applications which might
face compatibility issues.
The web service implemented cannot only be used by the web client implemented for the
purposes of this project but can also be used by other applications implemented by anyone
interested by mapping the application to the web service using the WSDL file and by making
it able to manipulate XML messages.
About the program itself, the combination of the web service and the web service client is a
useful tool for the manager of a small or medium sized company to control and manage
effectively all the aspects surrounding the job cycle of their employees and get support in
carrying out the company’s human resource practises.
6.3.2 Limitations
The main problem that this and every other web service based application is phasing as
opposing to simple web based applications is the time delay required to communicate with
the web service for each request. Some amount of time is required until the web service is
called and a request is sent and the response is received which is a clear disadvantage.
Also it is more complex to create web services and map clients on the web service by
manipulating XML messages than to create a simple web application.
74
Chapter 7: Conclusions
This is the final chapter of the report. In this chapter the project achievements will be
compared with the initial requirements and goals set at the beginning of the project, future
improvements and development will be presented and an overall idea about the project, the
experience and the knowledge acquired throughout this process will be given.
7.1 Initial Requirements vs. Project Achievements
In this section the initial requirements (functional & non-functional) will be compared with
the final project achievements in an effort to see into what extend the requirements were met
and what has been achieved in this project
Functional Requirement
Review
1 The system must have a log-in/log-out feature Fully Implemented
2 The system must allow the user to add, update or delete
employee details
Fully implemented
3 The system must allow the user to dismiss an employee
and save him in a temporary location
Fully Implemented
4 The system must allow the user to add, update or cancel a
project details
Fully implemented
5 The system must allow the user to add, update or delete the
details of a training session undertaken by employees
Fully implemented
6 The system must allow the user to add, update or cancel
absences/leaves requested by employees and granted by the
manager
Fully implemented
7 The system must allow the user to browse employees,
projects, training sessions and leaves/absences using
keywords and different search criteria and sorting
requirements
Fully implemented
8 The system must allow the user to browse projects,
employees, training details and absence/leaves using
keywords, different search criteria and sorting criteria
Fully implemented
9 The system must automatically allocate a predefined
number for holidays for each new employee according to
his position and reset this number for all employees at a
specified date every year.
Partly implemented. The
system automatically
allocates a number for each
employee but the reset is
done manually.
10 The system must be able to process and present to the user
when needed the average performance for each employee
based on the individual performance in each project the
employee was involved.
Fully implemented
75
Non-Functional Requirement Review
1 The application should make a useful tool and support
the manager of a company to carry out the main HRM
practises of the firm effectively
Implemented. The main
and most important HRM
processes are supported.
More could have also been
implemented
2 The application will be implemented as a web service Successfully Implemented
3 The client of the web service will be a web application Successfully implemented
4 The user interface of the client should be friendly and
simple to use and navigate through the various pages
Successfully implemented
5 The font size and colour used should be easily readable
by the user.
Clear and visible colour
combinations used.
6 Multiple user access should be allowed Partly implemented
7 The client should be able to connect to the web service
quickly and effectively
Successfully implemented
Most of the requirements have been successfully implemented and achieved. Some of them
were not fully implemented due to lack of time.
The requirement 6 of the non-functional requirements has been intentionally left out as after
agreement with the project supervisor it was decided that the application will be directed
towards a single company model and thus only one company’s managers will be able to use
it. This is because each company uses a different business model and it is difficult to capture
all the models in a single application. Also for each company that subscribes a new database
should be created and devoted to the company and companies cannot share databases
something which was not possible due to the lack of resources for the needs of this project.
Multiple user access on the same data is possible but multiple company registration is not for
the above reasons.
7.2 Future Development
The application is not perfect and many areas could be improved and also further
development and extensions are possible.
The two things that are crucial and could be improved is first the updating of the holidays
figure which should be done automatically by the system and the second one is the option for
expanding the application to other business models and also allowing the registration of more
companies.
A further development option would be to make the application support more complex HRM
practises such as job application control, recruitment support, and job vacancies control
where the manager could be advised about the most appropriate person for a specific position
according to his qualifications and skills.
7.3 Personal Experience
This project has been a unique experience to work in a one man environment rather than a
group, to measure personal strengths and find and improve weaknesses. The project has
offered me a real life experience and gave me the opportunity to learn and research about
76
technologies and disciplines that I have never encountered before and enrich my personal
knowledge base.
77
References
[1] Margaret Foot and Caroline Hook – Introducing Human Resource Management, Fifth
Edition, Prentice Hall Financial Times – Pearson Education, 2008
[2] Beardwell, I. and L. Holden (2001) Human Resource Management: A Contemporary
Approach third edition
[3] Eric Newcomer – Understanding Web Services XML, WSDL, SOAP, and UDDI,
2002
[4] Understanding SOA with Web Services – Eric Newcomer, Greg Lomow, Addison
Wesley, 2004
[5] T.Scheurer -Engineering Web Applications, part2: Core JavaServer Faces, 2010
[6] David Geary, Cay Horstmann – Core JavaServer Faces, Third Edition
[7] http://www.horstmann.com/corejsf/jsf-tags.html - JSF tags
[8] http://bytes.com/topic/javascript/insights/738607-how-use-javascript-jsf - JavaScript
in JSF
[9] http://www.w3schools.com/js/default.asp - JavaScript
[10] http://www.roseindia.net/xml/ - XML
[11] http://www.w3schools.com/xml/default.asp - XML2
78
Appendix A – Project Plan