human resource management report

78
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

Upload: travis-yates

Post on 12-Apr-2015

37 views

Category:

Documents


0 download

DESCRIPTION

report

TRANSCRIPT

Page 1: Human Resource Management Report

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

Page 2: Human Resource Management Report

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.

Page 3: Human Resource Management Report

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

Page 4: Human Resource Management Report

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

Page 5: Human Resource Management Report

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

Page 6: Human Resource Management Report

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.

Page 7: Human Resource Management Report

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.

Page 8: Human Resource Management Report

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.

Page 9: Human Resource Management Report

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]

Page 10: Human Resource Management Report

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.

Page 11: Human Resource Management Report

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

Page 12: Human Resource Management Report

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

Page 13: Human Resource Management Report

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

Page 14: Human Resource Management Report

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

Page 15: Human Resource Management Report

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

Page 16: Human Resource Management Report

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.

Page 17: Human Resource Management Report

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

Page 18: Human Resource Management Report

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

Page 19: Human Resource Management Report

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

Page 20: Human Resource Management Report

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

Page 21: Human Resource Management Report

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

Page 22: Human Resource Management Report

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

Page 23: Human Resource Management Report

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

Page 24: Human Resource Management Report

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

Page 25: Human Resource Management Report

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

Page 26: Human Resource Management Report

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

Page 27: Human Resource Management Report

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

Page 28: Human Resource Management Report

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.

Page 29: Human Resource Management Report

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

Page 30: Human Resource Management Report

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

Page 31: Human Resource Management Report

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

Page 32: Human Resource Management Report

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.

Page 33: Human Resource Management Report

33

Create Database

Figure 25 - Create database screenshot

Create tables

Figure 26 - Create Tables and relations screenshot

Page 34: Human Resource Management Report

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

Page 35: Human Resource Management Report

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

Page 36: Human Resource Management Report

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.

Page 37: Human Resource Management Report

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

Page 38: Human Resource Management Report

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

Page 39: Human Resource Management Report

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.

Page 40: Human Resource Management Report

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

Page 41: Human Resource Management Report

41

Index.jsp – login page

HRM bean properties

HRM Bean Login function

Page 42: Human Resource Management Report

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.

Page 43: Human Resource Management Report

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.

Page 44: Human Resource Management Report

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

Page 45: Human Resource Management Report

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.

Page 46: Human Resource Management Report

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.

Page 47: Human Resource Management Report

47

Employee submenu

When the employee navigates to the employee’s submenu he is presented with various

options as shown in the image below.

Page 48: Human Resource Management Report

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.

Page 49: Human Resource Management Report

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.

Page 50: Human Resource Management Report

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.

Page 51: Human Resource Management Report

51

Monitor Performance

Choosing “Monitor Performance” from the employees submenu the following screen appears

showing the average performance for all employees.

Page 52: Human Resource Management Report

52

Projects submenu

When the employee navigates to the projects submenu he is presented with various options as

shown in the image below.

Page 53: Human Resource Management Report

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.

Page 54: Human Resource Management Report

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.

Page 55: Human Resource Management 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.

Page 56: Human Resource Management Report

56

Training submenu

When the employee navigates to the training submenu he/she is presented with various

options as shown in the image below.

Page 57: Human Resource Management Report

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.

Page 58: Human Resource Management Report

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

Page 59: Human Resource Management Report

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”.

Page 60: Human Resource Management Report

60

Leaves submenu

When the employee navigates to the leaves submenu he/she is presented with various options

as shown in the image below.

Page 61: Human Resource Management Report

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.

Page 62: Human Resource Management Report

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.

Page 63: Human Resource Management Report

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.

Page 64: Human Resource Management Report

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.

Page 65: Human Resource Management Report

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.

Page 66: Human Resource Management Report

66

Case 1 – No empty required fields

Case 2 – Invalid credentials

Page 67: Human Resource Management Report

67

Case 3 – Date format

Page 68: Human Resource Management Report

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.

Page 69: Human Resource Management Report

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

Page 70: Human Resource Management Report

70

Correct Username, correct password case - tester outcome

Page 71: Human Resource Management Report

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.

Page 72: Human Resource Management Report

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.

Page 73: Human Resource Management Report

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.

Page 74: Human Resource Management Report

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

Page 75: Human Resource Management Report

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

Page 76: Human Resource Management Report

76

technologies and disciplines that I have never encountered before and enrich my personal

knowledge base.

Page 77: Human Resource Management Report

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

Page 78: Human Resource Management Report

78

Appendix A – Project Plan