Upload
issam-mbarek
View
174
Download
2
Embed Size (px)
DESCRIPTION
This report covers the design and development of a project that helps the company to enhance its Quality Management. It is ought to make the use and display of the KPIs in a simple dashboard easier for the user. It should manage the references of documents and handle the Audit process.The application was developed using the J2EE architecture using the Spring and Hibernate frameworks. The client side was enhanced by the powerful JSF2, HTML5 and PrimeFaces. This project took place in the Focus within the Quality Management department as an end of study project (PFE).Keywords: J2EE, Spring, Hibernate, PrimeFaces, JSF2, Dashboard, KPI, Audit.
Citation preview
Ministry of Higher Education and Scientific Research
University of Manouba
National School of Computer Science
Graduation Project Report
Presented in order to obtain
National Diploma of Engineering in Computer Science
SUBJECT :
Design and development of a Quality Management
System
Focus
Elaborated by : Issam MbarekMonitored by: Madame Manel SmatiSupervised by: Madame Houda GuermaziHosting company: FOCUSAdresse:Lot numro 33 Zone Industrielle Chotrana2, Ariana.Tel: 216 70 106 100 Fax: 216 70 106 111 Email: [email protected]
Academic year :2013 - 2014
RsumCe rapport couvre la prsentation du dveloppement et la conception du projet de fin
dtudes PFE. Ce projet a comme but daugmenter la performance de la gestion de qualit au
sein de la socit FOCUS. Cette application doit rendre la gestion des KPI plus efficace et plus
simple travers une Dashboard. Elle doit aussi faire la gestion des rfrences des documents,
et le planning des Audits. Cette application a t dveloppe autour larchitecture J2EE, avec
lintgration les Frameworks Spring et Hibernate et en utilisant dans la cot client PrimeFaces,
JSF2 et HTML5. Ce projet a lieu au sein de lentreprise FOCUS dans le dpartement de la ges-
tion de la qualit.
Mots cls : J2EE, Spring, Hibernate, PrimeFaces, JSF2, Dashboard, KPI, Audit.
AbstractThis report covers the design and development of a project that helps the company to en-
hance its Quality Management. It is ought to make the use and display of the KPIs in a simple
dashboard easier for the user. It should manage the references of documents and handle the
Audit process. The application was developed using the J2EE architecture using the Spring
and Hibernate frameworks. The client side was enhanced by the powerful JSF2, HTML5 and
PrimeFaces. This project took place in the Focus within the Quality Management department
as an end of study project (PFE).
Keywords: J2EE, Spring, Hibernate, PrimeFaces, JSF2, Dashboard, KPI, Audit.
Signatures and stamps
ii
Dedication
iii
Acknowledgment
DUring my experience of internship in Focus i got acquainted with many memorable peo-ple whose help was such a treasure for me. Thus, I will not miss this opportunity tothank them and express my deep gratitude and respect.
I start by Madame Manel Smati, my companys monitor, who with her patience, help and
guidance i was able to achieve my work. I want to thank her for helping me in understanding
the work process in the management department of the company.
I want to express my gratitude for all the members of the SAP development team and
the other workers from other teams and departments who, for some of them, made me feel
welcomed and accepted in the company, and for some others, who actually made me feel like
I was at home.
I want to thank Madame Houda Guermazi, my supervisor, for her help and valuable ad-
vices during the phase of writing the projects report. I want to thank her also for her availabil-
ity, believing in me and my capabilities, and patience in correcting, checking and reviewing my
report.
I would like also to thank all of my teachers at ENSI for their continuous help and treasur-
able training during my study years. And I thank the jury members who gave me the great
honor of examining and evaluating this modest contribution and took the time to read my
report.
Graduation Project Report | 2014 iv
Contents
General introduction 1
1 Projects frame 3
1.1 Presentation of the hosting Company . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Generalities and mission of Focus . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 History of Focus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.3 The Quality Management in Focus . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Project overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 The reasons behind the project . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 The Aim of Our Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.3 The adopted work methodology . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Preliminary study 8
2.1 Study of the state of the art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 literature review of quality in outsourcing . . . . . . . . . . . . . . . . . . 8
2.1.1.1 Importance of the quality in the outsourcing . . . . . . . . . . . . 9
2.1.1.2 Computerizing the adopted quality management system . . . . 9
2.1.2 The projects Key words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Assessment of the current working method in Focus . . . . . . . . . . . . . . . . . 12
2.2.1 KPI management and tracking . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 References generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.3 Audit planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Critics of the current way of work . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4 The proposed solution and expected work . . . . . . . . . . . . . . . . . . . . . . . 18
Graduation Project Report | 2014 v
CONTENTS
3 Requirements analysis and specification 20
3.1 Requirement Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.1 Functional requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.2 Non-functional requirements . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Requirement specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.1 Identification of the actors of the application . . . . . . . . . . . . . . . . . 21
3.2.2 Use case Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2.1 General use case ( systems use case) . . . . . . . . . . . . . . . . 22
3.2.2.2 Extended Plan the audit use case . . . . . . . . . . . . . . . . . 23
3.2.2.3 Extended Manage the dashboard use case . . . . . . . . . . . . 24
3.2.2.4 Extended Manage the KPIs use case . . . . . . . . . . . . . . . 25
3.2.3 Description of the most relevant nominal scenarios . . . . . . . . . . . . . 26
3.2.3.1 Nominal scenario for documents traceability . . . . . . . . . . . 26
3.2.3.2 Nominal scenario for Audit planning . . . . . . . . . . . . . . . . 27
3.2.3.3 Nominal scenario for KPIs tracking . . . . . . . . . . . . . . . . . 28
4 Design and structure 31
4.1 Global Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.1 Logical architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1.2 Applicative architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.3 Technical architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2 Detailed Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.1 Model layer (datas model) . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.2 Data access object (DAO) layer . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.3 Service layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2.4 Presentation layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5 Achievements 44
5.1 Developing environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.1.1 The hardware environment . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.1.2 The software environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.1.2.1 Main Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.1.2.2 Other Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Graduation Project Report | 2014 vi
CONTENTS
5.2 Technical choices: Development languages and paradigms . . . . . . . . . . . . . 46
5.2.1 Development languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.2.2 Development standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.2.3 Development frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.2.3.1 Spring Framework . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.2.3.2 Hibernante Framework . . . . . . . . . . . . . . . . . . . . . . . 49
5.2.3.3 PrimeFaces Library . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.3 Work achievements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.3.1 Access to the application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.3.2 Administration of the application . . . . . . . . . . . . . . . . . . . . . . . 51
5.3.3 Managing the KPIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.3.4 Document traceability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.3.5 Audit planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.4 Projects planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
General conclusion and perspectives 60
Bibliography 63
Nethography 64
A ISO 9000- Quality management 66
A.1 ISO 9001:2008 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
A.2 Support for implementing ISO 9001:2008 . . . . . . . . . . . . . . . . . . . . . . . 67
B Capability Maturiy Modal Integration: CMMi 68
Graduation Project Report | 2014 vii
List of Figures
1.1 The logo of Focus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1 Example of dashboard from Oracle Corporation . . . . . . . . . . . . . . . . . . . 12
2.2 Information related to the KPIs management . . . . . . . . . . . . . . . . . . . . . 14
2.3 Update of a values for a KPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 sample of a referencing document . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5 Sample of audit planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1 System use case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2 Extended "Plan Audit" use case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Extended "Manage the dashboard" use case . . . . . . . . . . . . . . . . . . . . . . 24
3.4 Extended Manage the KPIs use case . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5 Nominal scenario for documents traceability . . . . . . . . . . . . . . . . . . . . . 27
3.6 Nominal scenario for Audit planning . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.7 Nominal scenario for KPIs tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.1 Spring and Hibernate architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2 The applications logical layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3 The application final design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4 Package diagram for the application . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.5 The technical design of the application . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.6 Class diagram for the Model layer . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.7 Class diagram for the DAO layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.8 Class diagram for the Service layer . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.9 Class diagram for the Presentation layer, data package . . . . . . . . . . . . . . . 42
4.10 Class diagram for the Presentation layer, presentation package . . . . . . . . . . . 43
Graduation Project Report | 2014 viii
LIST OF FIGURES
5.1 Sum up diagram for the choosen frameworks . . . . . . . . . . . . . . . . . . . . . 48
5.2 Login page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.3 Home page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.4 Admin page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.5 Interface to add new information . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.6 Interface to display the existing information . . . . . . . . . . . . . . . . . . . . . . 53
5.7 Interface to delete information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.8 Interface to update information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.9 Dashboard settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.10 Display of the Sales turnovers value for the year 2012 . . . . . . . . . . . . . . . . 56
5.11 Interface to update the KPIs values . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.12 Interface to provide the information for document tracking . . . . . . . . . . . . . 57
5.13 Interface to audit planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.14 Work timeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Graduation Project Report | 2014 ix
Acronyms
ACL Access Control List
API Application Programming Interface
CMMI Capability Maturiy Modal Integration
CRUD Create-Read-Update-Delete
CSS Cascading Style Sheets
DAO Data Access Object
IoC Inversion of Control
IDE Integrated Development Environement
IT Information Technology
ITO Information Technology Outsourcing
ISO International Standardization Organization
HQL Hibernate Query Language
HTML Hypertext Markup Language
J2EE Java 2 Enterprise Edition
JDBC Java Database Connectivity
JPA Java Persistence API
JSF JavaServer Faces
JSP JavaServer Pages
KPI Key Performance Indicator
LDAP Lightweight Directory Access Protocol
ORM Object Relational Mapping
PA Process Area
POJO Plain Old Java Objects
QM Quality Management
Graduation Project Report | 2014 x
LIST OF FIGURES
QMS Quality Management System
RDBMS Relational Database Management System
RUP Rational Unified Process
SME Small and Medium Enterprises
SPI Software Process Improvement
SQL Structured Query Language
SRS Software Requirements Specification
UML Unified Modeling Language
UP Unified Process
XHTML Extensible HyperText Markup Language
XML Extensible Markup Language
Graduation Project Report | 2014 xi
General introduction
OVer the last years, the competition between companies has become harder than everbefore. Especially for the IT-outsourcing-based companies. And in order to standout and have a better share of the market, many companies try to make their inter-nal processes and work more efficient and valuable.
Thats where the set of theories and principles of the Quality Management, which will be anno-
tated throughout this report by QM, happen to be a valuable treasure. In fact the QM through
its numerous techniques makes the work of the company more and more organized, standard-
ized and efficient [1].
In order to get the most of these QM theories, and to win the trust of their clients, compa-
nies tend to follow certain standards and recommended specifications that have proven their
efficiency in the business world. For instance the Capability Maturity Model Integration CMMI
and The International Standard for Quality management ISO 9001: 2008, which is one of the
best recognized QM regimes, and probably the most widely implemented worldwide since it
deals with quality and sustainability and their integration in the company[2].
But despite the fact that these theories are normaly beneficial to every company in an equal
way, some companies are still more advantageous than the others. And thats due to the fact
that they tend to automatize most of the functionalities of the QM.
In the realm of this very hot topic, our graduation project comes as a perfect fit with this
context. Its topic is the design and the development of an application, in which we will try to
improve and automatize some functionalities of the QM within Focus, the company in which
the internship took place.
Our work will be presented throughout this report, accordingly to the following plan. We
will start by a brief introduction of the hosting company: its history, present and future, in the
chapter Projects frame, and we will put our project in its correspondent framework, and in-
troduce the adopted work methodology. In the next chapter Preliminary Study we will shed
Graduation Project Report | 2014 1
General introduction
the light on some of the most important keywords of our work and a brief literature review in
the state of the art section, and then we will try to analyze the current way of maintaining
the QM around the hosting company, and we will put into question its efficiency, and then we
present, defend and argue our solution. After that we will make a list of the functional and
non-functional requirements related to our application, afterwords we will present them in a
semi-formal way by using a set of use case diagrams, in the chapter Requirements analysis
and specification. In the next chapter Design and structure, we will go through the appli-
cations architecture and how it was designed. Afterwords we will finish by giving a glimpse
of the different technologies that were used to make the project, and presenting and display-
ing the main interfaces in the Achievements chapter, illustrated by a set of screen shots, and
presenting the timeline followed throughout our project.
Graduation Project Report | 2014 2
Chapter 1
Projects frame
THroughout this chapter we will present Focus, the company in which our project washeld. And then we will proceed to put our project in its general framework, by givingthe reasons behind elaborating it and presenting the expected work to do. And finally we will
put in evidence the adopted methodology of the work.
1.1 Presentation of the hosting Company
In this part we shed the light on Focus, the hosting company, and give a brief introduction to
its history and then we give a glimpse of its management department.
1.1.1 Generalities and mission of Focus
Focus (figure 1.1) is a Tunisia-based Software Development and Information Technology (IT)
Services Company founded in 2003.
Figure 1.1: The logo of Focus
It delivers cost effective outsourcing software and IT solutions based on advanced technical
skills, IT expertise, and strong commitment to quality assurance.
Graduation Project Report | 2014 3
CHAPTER 1. PROJECTS FRAME
Working with customers around the world, Focus offers significant experience and expertise in
a broad range of technologies, with a portfolio of value-added IT services that includes:
Software engineering and development.
Software Maintenance and Support.
Software Testing and Validation.
Application Customer Technical Assistance Services.
Thanks to Focuss dedication and strong determination to deliver the best software services
and outsourcing solutions to its clients, and the experienced dedicated staff and IT engineers
with strong team spirit and success commitment, the company has grown and reached a size
of more than 200 employees by the end of 2011 with revenue of more than 5.6 million USD[N1].
1.1.2 History of Focus
Focus was founded in 2003 with its first achievement of assuring high quality development
services to its first partner SIEMENS AG [N2]. The major milestones for the company are:
2003 - Creation of Focus and partnership with Siemens Com Tunisia
2006 - Partnership with Continental Automotive (former Siemens VDO)
2006 - Partnership with Nokia-Siemens Networks (Telco, former Siemens I and C)
2007 - ISO 9001:2000 Certification (AFAQ France)
2008 - Partnership agreement with SAP and Business Object
2009 - CMMi L3 certification
2010 - ISO9001:2008
2011 - Partnership with Parrot
2011 - Strengthening the Partnership with SAP via new agreement for Software Development
services
2013 - Creation of our subsidiaries in France and Germany
2013 - Launch of the IT Infrastructure Services
Graduation Project Report | 2014 4
CHAPTER 1. PROJECTS FRAME
1.1.3 The Quality Management in Focus
The Company is focusing on project-level quality systems, to ensure that every customer en-
gagement progresses smoothly [N3]. The Project Management capabilities are enhanced and
driven by:
competency development through extensive trainings and certifications:
In March 2007, Focus obtained its AFAQ certification ISO 9001-version 2000 and
carried out intermediate assessment in order to upgrade the actual Quality Manage-
ment System.
In December 2009, Focus carried out successfully a CMMi L3 SCAMPI A assess-
ment and reached the CMMi Maturity Level 3. Focus has been reappraised as fully
compliant at Maturity Level 3 in December 2012.
Since March 2013, Focus renewed its ISO 9001-version 2008 certification by AFAQ
AFNOR INTERNATIONAL. AFAQ certificate No. QUAL/2007/28885 valid until
20/03/2016.
Infrastructure development through integrated project management tools The following
activities are certified:
Design, Implementation, and Integration of applications, Third-party applications
maintenance, third party applications test and validation
Technical Support of third party applications
1.2 Project overview
In this part of the chapter we present, as a first moment, the dilemma that caused the respon-
sible of the QM department to propose this project. And as a second moment, we will give
the goal of our work. And we will finish by presenting briefly the methodology chosen for our
work.
1.2.1 The reasons behind the project
As we mentioned, our hosting company Focus is an IT-outsourcing-based company, thus the
maintaining of a good quality is a matter of survival.
Graduation Project Report | 2014 5
CHAPTER 1. PROJECTS FRAME
And ever since, Focus as the presentation section bellow showed us, was certified ISO 9001:2008
and CMMI which are among the most recognized QM standards [1], it has never stopped aim-
ing for having even more efficient measurements to enhance its Quality Management System
(QMS). Nevertheless, the hand-based work to manage the quality management in the com-
pany and to keep up-to-date information about the evolution of the metrics of quality can turn
out to be an overwhelming and very hard mission, especially when the amount of documents
increases by time.
1.2.2 The Aim of Our Work
The goal of our application is optimizing the Quality Management System in Focus. Actually,
we will be expected in this project to design and develop an application that would enhance
some of the companys QMS functionalities, namely the management of quality metrics (or
Key Performance Indicators: KPI), which drives and controle all the aspects of quality in the
company, and the management of the documents that are generated during the documentation
of quality processes, and the automatization of the audit management process.
This application, hosted in the companys servers, should make it work in an efficient way,
by making the management of documents and the access to the KPIs a lot more easier, and
presenting the relevant data with clear charts by automatizing the whole process. It should
also help the responsible in the process of the audit. This application must be based on the
J2EE architecture and more precisely with the Spring framework, with a collaboration of the
Hibernate framework for persistence matters. It must also interact with a directory to extract
the list of users, in this case: Lightweight Directory Access Protocol (LDAP) . We should also
follow the Rational Unified Process (RUP) methodology specifications during the realization of
the project, which will be detailed in the next section.
1.2.3 The adopted work methodology
In order to meet the responsible of the QM departments desire, we would rather work accord-
ingly to the Rational Unified Process, annotated RUP, methodology specifications.
This method is specifically one of the most recognized implementations of the unified pro-
cess (UP). It gives a development environment that respond to the fundamental needs of the
designer and the client [11] [13].
The Unified Process (UP) is a use-case-driven, architecture-centric, iterative and incremen-
Graduation Project Report | 2014 6
CHAPTER 1. PROJECTS FRAME
tal development process framework. The UP is broadly applicable to different types of software
systems, including small-scale and large-scale projects having various degrees of managerial
and technical complexity, across different application domains and organizational cultures.
Unified Process is considered an agile methodology, thus it embraces the idea of collabora-
tive and incremental iterative development.
Instead of other methodologies which focus solely on engineering disciplines or project man-
agement disciplines, RUP is a complete methodology focusing on engineering and support
disciplines. It is important to say that RUP is a development process, not software process [13].
It has no references to phases such as production and maintenance.
Since RUP is nothing but an implementation of the UP methodology, it is defined by the
following concepts:
Iterative development, which means the rework of the scheduling strategy where the
time is set aside to revise and improve parts of the system. Being iterative, it helps to
improve the product.
Incremental development, which is a scheduling strategy in which the various parts of
the system are developed at different times or rates, and integrated as they are completed.
Being incremental helps to improve the process.
Continuous integration, which means the practice where developers integrate their de-
velopment frequently, usually through a tool which performs unit tests in a daily basis to
detect errors as soon as possible.
Conclusion
In this first chapter of our report, we presented the hosting company and we gave a glimpse of
its history, present and future. We tried also to make it clearer what our project was needed for,
and how we should proceed to develop this application by the working methodology part.
In the next chapter we will go further into the analysis of how currently Focus does its QM.
Graduation Project Report | 2014 7
Chapter 2
Preliminary study
IN this chapter we will start by a study of the state of the art, in which we present, the mostimportant key words of QM, and a brief literature review. Afterwords we will analyze howFocus, namely its quality management department, manages to maintain the QM. Then we will
put into question its feasibility and efficiency by shedding the light on the dilemma, and we
will finish by presenting and arguing our solution.
2.1 Study of the state of the art
Here we will try to answer the question: "what is the importance of quality in the growth of the
IT-Outsourcing-based companies and how it can be enhanced?" Therefore, we will start by a
brief investigation of the quality and computerization. Then we will provide a set of definition
of the most relevent keywords of the quality. Not only because they will help to better under-
stand the project, but also they will be the basis to understand the section Assessment of the
current situation in the company in which we will display how the company manages to keep
its QM well maintained.
2.1.1 literature review of quality in outsourcing
In this section we investigate the importance of the quality in outsourcing, since our hosting
company is an outsourcing-based company, and why managers tend to digitalize the manage-
ment of the quality. This will be through a brief literature review.
Graduation Project Report | 2014 8
CHAPTER 2. PRELIMINARY STUDY
2.1.1.1 Importance of the quality in the outsourcing
Companies which are specialized, fully or partially, in the IT-outsourcing for functions rang-
ing from infrastructure to software development, maintenance and support, are striving to get
their share of the market, thus to survive in a highly competetive market.
Even though the definition of the success of the outsourcing experience is a bit confusing [3] [4],
but as the study held by Colleen Schwarz shows, quality is among the very important basis of
this venture [5].
In fact companies that need to outsource their work are getting threatened by failure and demo-
lition. Actually one PricewaterhouseCoopers [6] report found that 55 percent of clients reported
that they were not realizing the benefits they had expected from outsourcing. So they become
picky of their collaborative companies. And their choice is based on the quality. And the tradi-
tionnal way of managing the quality is no longer efficient.
In fact the concept of quality does not concern only the quality of the final product, but
it deals with the whole process of producing it. And it certainly deals with all the aspects of
outsourcing, not only the auditing and surveillance; otherwise there will be a high defect rate,
late deliveries, poor service and customer dissatisfaction issues.
To provide acceptable quality, company, especially the Small and Medium Enterprises (SME),
follow certain Software Process Improvement (SPI), Capability maturity model integration
(CMMI) for instance.
2.1.1.2 Computerizing the adopted quality management system
To get gain the trust of their clients, quality become very essential. But a new challenge em-
merged: how to manage quality. In fact it takes too much work and effort from the responsi-
ble. For instance CMMI encourages that every phase of the product development should be
documented, thus there should be an efficient way to name these documents. And the audit
planning sometimes gets really complicated since there may exist conflicts in the dates and the
audetees.
So to efficiently manage the QMS, companies computerize many tasks. Sometimes they
build even their own information system to maintain the excellence[17]. So the real challenge for
IT-Outsourcing-based companies now is very much about implementing efficient programs,
applications, information systems in order to survive. Adopted solutions can be as an autom-
atization tool for repetetive tasks like audit planning or naming the generated documents. Or
Graduation Project Report | 2014 9
CHAPTER 2. PRELIMINARY STUDY
to represent the information in a meaningful way through charts and dashboards.
2.1.2 The projects Key words
Some of the most important definitions that are important for our project are listed below.
2.1.2.0.1 Quality Management (QM). The QM by definition ensures that an organization,
product or service is consistent [2]. It is based on four main components: quality planning,
quality control, quality assurance and quality improvement. Quality management is focused
not only on product and service quality, but also the means to achieve it. The QM is guided
by a set of KPIs (Key Performance Indicator). And often there should be audit for the existing
processes.
2.1.2.0.2 Quality Management System (QMS). Quality management systems [2] are the set
of business processes or structured procedures that enables the realization of the companys
quality policy and quality objectives, with granting for each responsible a particular task in
a hierarchical way. The documentation is an important way to keep track of the achieved
procedures.
2.1.2.0.3 Reference generation. Documentation plays an important role in ensuring that
the tests and checks have been carried out as planned and the results accurately recorded and
forwarded to the specified authority [2]. They must be referenced by a unique reference.
2.1.2.0.4 Quality Policy. The quality policy is a measurement that is taken to set the aim of
the firm or the company in a particular time [2], a phase in the company. This policy is set by
the top management and then announced to the other workers.
2.1.2.0.5 Quality Audit. The Audit is a periodic, independent, and documented examina-
tion and verification of activities, records, processes, and other elements of a quality system
to determine their conformity with the requirements of a quality standard such as ISO 9000
[12][2]. Any failure in their proper implementation may be published publicly and may lead to
a revocation of quality certification also called conformity assessment or quality system audit.
Graduation Project Report | 2014 10
CHAPTER 2. PRELIMINARY STUDY
2.1.2.0.6 Process. Sequence of interdependent and linked procedures [16] which, at every
stage, consume one or more resources (employee time, energy, machines, money) to convert
inputs (data, material, parts, etc.) into outputs. These outputs then serve as inputs for the next
stage until a known goal or end result is reached. Every company has various processes to
keep their work efficient. Each process has one or many KPIs to measure its development.
2.1.2.0.7 Software Process Improvement (SPI). A Software Process Improvement is a way
adopted by companies to improve their quality of service or products. For instance we find the
Capability Maturiy Modal Integration (CMMI)[14]. CMMI is a process improvement maturity
model for the development of products and services. It consists of set of the best practices that
help companies to enhance their development and maintenance activities of a product lifecycle
from conception through delivery and maintenance.
2.1.2.0.8 Process Area. Is a set of processes and practices which concern particular impor-
tant areas for a company, and which aim at improving these areas, CMMI provides 22 Process
areas (PA). [14]
2.1.2.0.9 Key Performance Indicator (KPI). The quality management is based in a big por-
tion of it on using indicators to follow and sometimes predict the development of a certain
important factor in the company [15] . Those indicators are called Key Performance Indicators
(KPI). Every KPI Is related to a process, a project, a responsible. . . The KPIs are quantifiable
measurements, agreed to beforehand, that reflect the critical success factors of an organization.
They will differ depending on the organization. For example, a school may focus its Key Per-
formance Indicators on graduation rates of its students. Whatever Key Performance Indicators
are selected, they must reflect the organizations goals, they must be key to its success, and they
must be quantifiable (measurable). Key Performance Indicators usually are long-term consid-
erations. The definition of what they are and how they are measured do not change often.
The goals for a particular Key Performance Indicator may change as the organizations goals
change, or as it gets closer to achieving a goal.
2.1.2.0.10 Dashboard. Management is a tool that sums up the businesss status in one
glance. It presents a number of KPIs in a visual display Dashboard [13]. The data for these
indicators is pulled from a variety of sources: departmental databases, customer relationship
Graduation Project Report | 2014 11
CHAPTER 2. PRELIMINARY STUDY
management systems, staff reports and web stats...
Figure 2.1: Example of dashboard from Oracle Corporation
The presentation is done through graphical (figure 2.1) [13], tabular and textual means, and
usually allows drill-down into specific measures.
2.1.2.0.11 Outsourcing. The outsourcing [5] is the fact that a company shifts entierly or par-
tially organizational activities. The aim of this act is to provide a cheaper product, and to have
more productivity. The outsourcing may concerns the services that are inside the company or
Information Technology (IT) outsourcing.
2.2 Assessment of the current working method in Focus
In this part we focus on explaining the most relevant tasks that, currently, the responsible of
the quality management is supposed to do in our particular case: the company Focus. These
Graduation Project Report | 2014 12
CHAPTER 2. PRELIMINARY STUDY
task, after a deep study of the works process, were divided into three main tasks. We present
them one at a time next.
2.2.1 KPI management and tracking
In order to supervise and manage the KPIs, currently, the responsible should spend most of his
time looking through tons of hard copy, hand-managed documents: excel, word, pdf. . .
Since the responsible is ought to make his decisions based on the information within these
documents, he has to bare the trouble of knowing and recognizing each one of the projects
details (figure 2.2) namely:
The frequency: how often the KPI is calculated and/or updated (every semester-year-
month- trimester)
The formula: how the KPI values are calculated every period of time
The target value: the desired value that a KPI should attain, it is a yearly value.
The action launching point: the starting value for every period.
The applicable projects: the projects that are evaluated by the KPI
The state of deployment: indicates whether the KPI is deployed or not
The related process: under which process this KPI should be
The process area: to which process area this KPI is related
The name of the process: to which the KPI is attached
The responsible
How to collect and analyze
As a concrete example we took a snapshot of the actual excel document, illustrated by the
figure (figure 2.3), used by the QM responsible to maintain the information of the KPI, and to
kept up-to-date the KPIs values accordingly to their appropriate frequency. In this example
we recognize the three KPIs Sales turnover, number of new agreements and customer
satisfaction. Those KPIs are under the same process Marketing and sales. Every KPI has its
own formula, responsible target and frequency.
Graduation Project Report | 2014 13
CHAPTER 2. PRELIMINARY STUDY
Figure 2.2: Information related to the KPIs management
This figure has all the attributes of the KPI and the next includes its values.
Graduation Project Report | 2014 14
CHAPTER 2. PRELIMINARY STUDY
Figure 2.3: Update of a values for a KPI
These KPIs are managed by a referenceing system explained next.
Graduation Project Report | 2014 15
CHAPTER 2. PRELIMINARY STUDY
2.2.2 References generation
The challenge of the QM responsible for this particular task lies behind following the strict
companys naming rules to keep the documents traceable. The figure (figure 2.4) provides
a concreate example of references used in the naming process in Focus. These references are
based on:
The name of the document
The extension of the document
The related process
The version of the document
Figure 2.4: sample of a referencing document
This latter figure shows how the responsible of QM does the references by hand with Excel file.
Graduation Project Report | 2014 16
CHAPTER 2. PRELIMINARY STUDY
2.2.3 Audit planning
Another cornerstone of the QM in companies, specifically Focus, is the audit planning. How
the audit planning is held in the company is shown by the MS-word document of the figure
(figure 2.5)
Figure 2.5: Sample of audit planning
In fact, a list of audited processes is added to a list of dates, hours, auditors and audited
responsible. The responsible have to plan an audit for each process in the list, and then let
everyone concerned by this audit know by telling them directly or by the phone.
Graduation Project Report | 2014 17
CHAPTER 2. PRELIMINARY STUDY
2.3 Critics of the current way of work
With the previous assessment, we defiantly find some tasks that cannot be classified as easy.
And we sum up the negative points of the current way of working by the following points:
It is hard to keep track of the development of the KPIs when the responsible have to
go through big amount of documents without an efficient tool to filter and display the
preferred KPIs and processes.
The huge amount of documents makes it almost impossible to manage them by the com-
panys strict naming roles during the referencing phase of the document.
Numbers are just meaningless when they are not well presented by charts. The KPIs
should be well presented by diagrams and charts.
The process of audit: planning, announcements and reporting, is quite complicated and
overwhelming for a human being to manage it by himself.
Most of the responsible tasks rely on interacting with other workers of the company, thats
why he keeps referring manually to their roles and permissions via the companys light
database LDAP directory deployed on the companys servers.
2.4 The proposed solution and expected work
Based on the literature review we propose as a solution for the last critics, to create an appli-
cation makes the access to the information about the KPIs easier via a dashboard that enables
the transformation of the raw data, within the documents, into more meaningful information
through the charts. It also must automatize the audit planning and announcement process,
and manages the documents referencing process. This application must integrate the Spring
and Hibernate frameworks and import users roles and credentials from an LDAP directory. It
must be also extendible and easy to use.
Graduation Project Report | 2014 18
CHAPTER 2. PRELIMINARY STUDY
Conclusion
In this chapter we went through a brief study of the state of the art and we presented the
most important QM notions, and then we attempted to put in evidence the necessity of our
application, and how the current way of working is not efficient enough. In the next chapter
will be enumerating the different functionalities that are needed for our application, and we
will make them more clear and formal by use case diagrams.
Graduation Project Report | 2014 19
Chapter 3
Requirements analysis and specification
AFter a concrete investigation of the companys work, and having a first look at the neededfunctionalities to help responsible of the QM, in the previous chapter, this one is fullydedicated to present and analyze them in a more formal way. We start by presenting the func-
tional and non-functional requirements of our application. Then we list the actors of our appli-
cation with their granted permissions. Finally we formalize the identified functionalities with
the help of Use Case diagrams.
3.1 Requirement Analysis
Throughout this section we identify and present the different functional and non-functional
requirements that our application should have by the end of our work.
3.1.1 Functional requirements
Our application should fulfill the following functionalities, ranked by order of importance.
FR1. Dashboard management: Our system allows the definition of the KPIs (process relative
KPIs, Team relative KPIs, KPI description, KPI formula, KPI frequency, KPI target value).
It offers also the interface to track KPIs values and analysis result in case of not achievement.
Users can display KPIs historic values and compare them to past values (same period last year,
last period value). Each user can choose its specific dashboard by selecting the list of KPIs to
display and their graphical layout and to update them.
FR2. Audit planning: Our system serves to the audit planning, reporting and publishing,
with integration with third party Action Management Tool (open source Mantis).
Graduation Project Report | 2014 20
CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
FR3. Document traceability: Our application should create automatic documents references,
based on the company internal documentation process. The generated references are based on
the document type, related process, related project, and related project specific phase.
FR5. Administration of the application: which serves to manage The users (integration with
the Lightweight Directory Access Protocol LDAP) and their roles.
3.1.2 Non-functional requirements
Once our application fulfilled the functional requirements listed above, it has to respect the
following measurable characteristics.
NFR1.Compatibility, our applications should be able to be used with external programs, such
as LDAP for authentication, and Mantis for reporting.
NFR2. Availability and performance, our application should respond to the users demands
in a reasonable amount of time.
NFR3. Usability and Simplicity of usage, the graphic interface should be intuitive and simple
so that the user can easily understand it and simply process the needed configuration without
a previous training.
NFR4. Maintainability, we should use the Java Coding Rules and the best practice of J2EE,
so that when other developer wants to understand or extend the code will not find a problem.
3.2 Requirement specification
This section has a double purpose, first to have a better understanding of the mentioned re-
quirements and to present them in a semi-formal way, second, to emphasize the interactions
between the actors and our application. In order to break down the complexity of these goals
we will use the Use Case Diagrams.
3.2.1 Identification of the actors of the application
An actor is an abstraction of a role of actual users who is in a perpetual interaction with the
application. Specifically our systems actors are classified accordingly to their roles and granted
permissions in the company, and they are as follow:
Graduation Project Report | 2014 21
CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
A normal user, this profile presents the users that can create, update or delete the KPIs
update their values and to set the personal settings for viewing the dashboard. This
profile gives the promise to the user of generating the references for the documents, and
the management of the Audit process.
The Administrator, who is a normal user with the same granted permissions. But what
is different is that an actor with an Administrator profile has all kind of permission to
manage the application as a whole.
3.2.2 Use case Diagrams
In this section we will present the set of use case describing our application to better understand
its functionalities.
3.2.2.1 General use case ( systems use case)
The following diagram (figure 3.1) presents our application as a black box and puts in evidence
its interactions with the actors in a semi-formal way. This diagram serves to limit the system
and define each actors functionalities and its interaction.
Basicaly our system presents two types of actors, Administrator and Simple user, which
both inherit the same permissions as a User with more functionalities granted for the admin-
istrator.
As a User the actor can keep track of the KPIs and the documents references. He can also
make the audit planning. In order to keep track of the KPIs, the user can manage them, update
their values or choose the settings of the dashboard.
The Administrator benefits extra permission, the administration of the application for in-
stance adding new users, deleting, or updating their information and credentials.
knowing the fact that the application must make the destinction between the different users
and their roles, with all the mentioned use cases, the authentication is the first thing to begin
with.
Graduation Project Report | 2014 22
CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
Figure 3.1: System use case
In order to attain the maximum of simplification, we didnt put all the possible use cases of
our application in the previous diagram. In fact we added the next three extra diagrams to put
in evidence the other use cases behind the Manage the dashboard, the Plan the audit and
Manage the KPIs.
3.2.2.2 Extended Plan the audit use case
This use case is illustrated by the next diagram (figure 3.2).
Graduation Project Report | 2014 23
CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
Figure 3.2: Extended "Plan Audit" use case
Actor: the User
Description: The user, both "simple" or "administrator" can plan the audit by creating a new
one and then send the notification to the other concerned workers.
3.2.2.3 Extended Manage the dashboard use case
The different use cases behind the dashboard management are presented by the following dia-
gram (figure 3.3).
Figure 3.3: Extended "Manage the dashboard" use case
Actor: the User
Description: User can manage his dashboard by choosing one of the two options, whether
Graduation Project Report | 2014 24
CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
he selects particular KPIs to be displayed or a whole process with his related KPIs. In this way
every user can define his own dashboard.
3.2.2.4 Extended Manage the KPIs use case
This use case is detailed by the following diagram (figure 3.4).
Figure 3.4: Extended Manage the KPIs use case
Graduation Project Report | 2014 25
CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
Actor: the User
Description: to manage the data related to the KPIs, the User may choose between:
Manage the policy management
Manage the Process
Manage the Process areas
Manage the customers
Manage the application projects
Manage the details of documents, which can also be extended to Manage extensions or
types.
And each one of the mentioned use case has the CRUD operations (Create-Read-Update-Delete)
presented by inheritance relation.
3.2.3 Description of the most relevant nominal scenarios
In this section we will present the most important nominal scenarios in our application, with
the help of sequence diagrams, and a brief description. Each sequence diagram considers just
one profile at a time, and gives the sequence of actions between him and the system.
3.2.3.1 Nominal scenario for documents traceability
The actor provides the necessary information and they will be processed by the system. This
scenario is clarified by the figure (figure 3.5).
Graduation Project Report | 2014 26
CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
Figure 3.5: Nominal scenario for documents traceability
This figure shows that a user must be authenticated first, and then he must ask the system
of reference generation. After providing the information needed for the generation: document
type, name version and related process, the system process these information and then display
the result for the involved users.
3.2.3.2 Nominal scenario for Audit planning
The actor provides the system with the right information, these will be processed and then a
notification is sent to the related persons. This scenario is illustrated by the figure (figure 3.6)
Graduation Project Report | 2014 27
CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
Figure 3.6: Nominal scenario for Audit planning
As usual, the user must be authenticated first, and ask for starting the audit planning. After
the system validate the given information; the date, the hour, the related processes, the audetees
and the audited, it confirms the user and notify the audeted workers.
3.2.3.3 Nominal scenario for KPIs tracking
This scenario is illustrated by th following figure.
Graduation Project Report | 2014 28
CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
Figure 3.7: Nominal scenario for KPIs tracking
Graduation Project Report | 2014 29
CHAPTER 3. REQUIREMENTS ANALYSIS AND SPECIFICATION
Depending on the actors choice, and as the figure (figure 3.7) shows, he can
Manage the dashboard: the actor provides the system with the preferable configuration.
Update KPIs values: provide the exact values of KPIs
Manage the KPIs: add-delete-update or select some related data to the KPIs
Accordingly to its choice, the user provide the information for the system. This latter pro-
cess the provided information and then confirm the choice in the case of success.
Conclusion
All along this chapter we specified and analyzed the requirements that our application should
deliver to the future user, and we gave the main scenarios and use case of our project. The
following chapter aims to go a step further in the process of developing the application via
presenting the applications design.
Graduation Project Report | 2014 30
Chapter 4
Design and structure
HAving finished putting together the functional and non-functional requirements in theprevious chapter, and giving the different use cases, we go in this chapter, deeper in theprocess of preparing to the development phase. This will be by choosing the suitable design
for our application.
4.1 Global Design
One of the things that our project must respect is to be developed and designed around the
Spring and Hibernate frameworks. This mixture is often used in the business world, and the
benefits of this choice will be developed in the next chapter. But for now, in order to respect this
condition we have to consider in our design process the architecture of Spring and Hibernate
that is shown by the figure (figure 4.1) [9].
For one thing, this figure demonstrates that Spring cooperates well with Hibernate by let-
ting the JPA (Java Persistence API) : the Springs abstraction layer of the manipulation of the
database [7], in the hands of Hibernate and the only communication between them is through
interfaces. Hibernate is the responsible for the ORM (Object Relational Mapping), the corre-
spondence between the relational world of the database and the object-oriented world of Java
[8]. Meanwhile the Spring framework stays as an umbrella that embraces all the used technolo-
gies
Graduation Project Report | 2014 31
CHAPTER 4. DESIGN AND STRUCTURE
Figure 4.1: Spring and Hibernate architecture
Throughout this section we will be explaining the logical, applicative and technical architecture
of our application that are based on the proposed overall-architecture: Spring-Hibernate.
4.1.1 Logical architecture
As the figure from the latter section showed us, the Spring framework maintains the clarity
of the design and assures the ease of growth, through a multi-layered architecture: Presenta-
tion, Service and Persistence layers [10]. The presentation layer containes two other layers: the
Controller and the View. The Model layer is another layer that in relation with all the others.
All these various layers are in a constant communication. The final allure of the architecture is
shown by the following figure (figure 4.2).
Graduation Project Report | 2014 32
CHAPTER 4. DESIGN AND STRUCTURE
Figure 4.2: The applications logical layers
This architecture saw its genesis by mixing the three following design patterns: MVC, Spring
IoC and the DAO design patterns.
MVC design pattern [8] :
The Model-View-Controller model solves inter-dependencies between data access code,
business logic code and presentation code by decoupling data access, business logic, and
data presentation and user interaction in order to create a flexible and loosely coupled
web applications. This three layered-architecture is generally considered to be included
in the presentation layer of Spring, with the exception of the model layer that can extend
to the service layer and the DAO.
The model layer represents the data. The model does not depend on the controller
or the view and in general they will consist of POJO (Plain Old Java Object) which
is a Java object that does not follow the Spring framework [10].
The view layer displays the model data, and sends user actions (e.g. button clicks)
to the controller. The view can:
be independent of both the model and the controller or
actually be the controller, and therefore depend on the model
Graduation Project Report | 2014 33
CHAPTER 4. DESIGN AND STRUCTURE
The controller layer is responsible for processing user requests and building appro-
priate model and passes it to the view for rendering. It provides model data to the
view, and interprets user actions such as button clicks. The controller depends on
the view and the model.
DAO (Data Access Object) design pattern [10]:
The Data Access Object pattern helps to decouple the business logic from the database
thus increasing the portability of the system. This design pattern is the reason behind the
existence of the DAO (persistence) layer.
This layer is totally inseparable from the Service layer, the main responsible of the secu-
rity. In fact this layer forbids the direct access to the database and the only allowed way
is through the DAO layer. It is also responsible for the transaction management. Its main
concern is the business logic. It depends mainly on the model and DAO layers to do the
CRUD (Create, Research, Update, Delete) operations on a persistent objects [10].
Spring IoC (Inversion of Control) design pattern[8]:
IoC is one of the techniques used to wire services or components to an application pro-
gram. In Spring, the IoC principle is implemented using the Dependency Injection design
pattern which leaves the system components loosely coupled and allows the developer
to code to abstractions.
The previous logical layer adopts also the principle of interface-implementation within every
layer. In fact every layer is characterized by an interface and its implementation. In this way
the layers will communicate via contracts: the interface, and ignore the complexity of its im-
plementation. This way we can make changes in some layers without taking care of changing
the higher layers.
In addition, for the DAO layer which is the one that will be in a direct interaction with the
database, there will be a persistence engine that will take into account the role of persisting the
objects in the database [N1]. This final cut of our architecture is clarified by the following figure
(figure 4.3).
Graduation Project Report | 2014 34
CHAPTER 4. DESIGN AND STRUCTURE
Figure 4.3: The application final design
Between the different layers, communication between the interfaces and their implementations
is granted.
4.1.2 Applicative architecture
In order to stay at the same page with the previous design, and to make a concrete palpable
design, we will present in this section the applicative architecture, with the help of packages
diagram. In fact we made five packages (figure 4.4), each one is concerned with a particular
task.
Presentation layer: this package will contain the managed bean of our application. These
managed beans are the controller of the users interfaces. They are in a direct interaction
with the service layer.
Navigation package: this package will contain the web pages that are used in the appli-
cation and the navigation of the user.
Graduation Project Report | 2014 35
CHAPTER 4. DESIGN AND STRUCTURE
Service package: this package will contain the classes on which the business logic is built.
The model package: this package will contain the classes that are the reflection of the
databases tables.
The DAO package is the only package that is with a direct interaction with the database.
Figure 4.4: Package diagram for the application
Through this packaging strategy, we grant a loose interaction between the various components
of the application. Namely between the managed beans and the navigation packages, between
the service and managed bean packages, the service and model packages and the model and
DAO packages.
4.1.3 Technical architecture
Until now, we did only present the logical layering design of our application which misses
an important aspect: the technical design. In order to enhance our understanding of how this
design is supposed to be implemented, we will present the technical architecture in this section.
Actually for one thing our application is a web application thus we will have to im-
plement an architecture that considers the distributed nature of the application, a multi-tiers
deployment. This particular suitable design is illustrated by the deployment diagram of the
figure (figure 4.5).
Graduation Project Report | 2014 36
CHAPTER 4. DESIGN AND STRUCTURE
The client tier is the one where the clients device is. The web tier is where the web pages
are living, in our case these pages are xhtml pages with integration of JSF2. The Application
tier is where the applications logic lies. The data tiers is where the data is stored, in our case
the users credentials and roles are stored in an LDAP server and the other information in a
MySQL server.
Figure 4.5: The technical design of the application
Between the different tiers communication is granted. for instance between the client tier
and the user tier, the communication is provided by the http protocol.
Graduation Project Report | 2014 37
CHAPTER 4. DESIGN AND STRUCTURE
4.2 Detailed Design
In this section we will present the specefic classes used for each paquage from the previous
section.
4.2.1 Model layer (datas model)
In this part we present the detailed architecture for the model layer. It is a reflection of the
existing tables in the database, for each of the databases table theire will be mapped a class
with the same name. This process is called the ORM (Object Relational Mapping) that is the
responsibility of Hibernate[8].
All the classes in this layer are model, which by defenition a class that is caracterized by
the following points:
Alll the attributes are private
For every single attribute we associate a getter and a setter
All the methods are public
A default constractor
A constractor intialised with the attributes
Since the methodes will be only getters, setters and constractors we will only represent the
attributes for the classes in the following figure (figure 4.6). It demonstrates, the Metrics class
is the center of the others. It is compsed by the Applicable projects, quality policy, pro-
cess and Process area, this relation is presented by an agregation. The class Metrics Values
is a in a relation of composition with the "Metrics" class.
The MetricValue model/class contains the up-to-date values of the KPIs, that will be ex-
tracted and shown to the user. The other important model/class is the Users witch is related
to the Role model by a Many-To-Many link. This is because one user can be assigned to many
roles and vice-versa. Each one of these model is presented by a table in the database, with the
same name.
Graduation Project Report | 2014 38
CHAPTER 4. DESIGN AND STRUCTURE
Figure 4.6: Class diagram for the Model layer
These model classes are in a constant communication with other classes from external pack-
ages. This communication is assured via interfacs. These interfaces are defined as contracts of
interactions between the different layers. In fact these classes are managed and handeled by
the set of classes within the DAO layer, explained next.
Graduation Project Report | 2014 39
CHAPTER 4. DESIGN AND STRUCTURE
4.2.2 Data access object (DAO) layer
This layer is capable of managing the models and the datatable access via a persistance engine,
which as mentioned before, is charged of mapping the tables with objects. This layer is devided
to interfaces and implementations which present the CRUD operation on the database. Every
class mentioned in the next figure (figure 4.7) is an interface that is implemented by a class with
the same name. To make the diagram clear we will not put the implementation classes.
Figure 4.7: Class diagram for the DAO layer
Graduation Project Report | 2014 40
CHAPTER 4. DESIGN AND STRUCTURE
These interface-implementation classes are used by another layer that defines the services pro-
vided for the models: the Service layer, explaind next.
4.2.3 Service layer
The Service layer is the responsible of defining the different functionalities of the appliction. It
is the core of the buisness logic of the project. It deals with the database through the DAO layer
and defianetly uses the model layer.
Figure 4.8: Class diagram for the Service layer
Graduation Project Report | 2014 41
CHAPTER 4. DESIGN AND STRUCTURE
the previous figure (figure 4.8) demonstrates well the different classes used in this layer. This
layer follows the inteface-implementation logic, the same for the DAO layer. This layer, is in
interaction with the presentation layer, explained later.
4.2.4 Presentation layer
This layer contains the set of managed beans of our application. A managed bean is a class that
works as a controller for the components of the users interfaces. Behind every component
displayed for the user, there is a specefic managed bean, that handle its actions.
To seperate more the different functionalities within this layer, we divided it to two packages,
the first "data" which containes the managed beans responsible for the beans that handle the
data management.
The next figure (figure 4.10) presents the set of managed bean in the package "Data"
Figure 4.9: Class diagram for the Presentation layer, data package
Graduation Project Report | 2014 42
CHAPTER 4. DESIGN AND STRUCTURE
the second package "Display" contains the managed beans responsible for the display. The
next figure (figure 4.9) illustrate these special classes within the package "Display".
Figure 4.10: Class diagram for the Presentation layer, presentation package
The latter classes use, via the interfaces, the different functionalities of the Service layer, and
use the classes of the Model layer. Moreover they manage the interactions with between the
user and the application.
Conclusion
All along this chapter we displayed the general architecture of our application, and showed
some of the detailed designs for the Buisness Layer and the database. In the next chapter we
will be presenting and exposing the technologies that helped during the process of creating our
application.
Graduation Project Report | 2014 43
Chapter 5
Achievements
Introduction
IN this chapter we will be presenting and arguing the different technologies that were chosento implement the application according to the design that was presented in the previouschapter. Then we will display some of the interfaces of the application. We finish by presenting
the schedule that we followed during the internship.
5.1 Developing environment
In this part we will start by listing the set of software and hardware environment that helped
to achieve the desired application.
5.1.1 The hardware environment
During our internship we developed our application using our laptop. It is characterized by:
2GO of RAM
2 MO of cache memory
Running Windows7 32 bits
Installed JVM
Graduation Project Report | 2014 44
CHAPTER 5. ACHIEVEMENTS
5.1.2 The software environment
During the realization of our project we had the chance to work with the next software envi-
ronment.
5.1.2.1 Main Programs
Here we list the most important software environment that were used.
5.1.2.1.1 Eclipse Indigo. Eclipse[N4] is a free integrated development environment (IDE).
It contains a base workspace and an extensible plug-in system for customizing the environ-
ment. Written mostly in Java, Eclipse can be used to develop applications. By means of various
plugins, Eclipse may also be used to develop applications in other programming languages.
The plugins system in Eclipse was useful particularly in our project, because we used the plu-
gin Maven to help building and downloading the needed libraries for our project. And our
choice was for the Eclipse Indigo because it works and cooperates fine with Maven.
5.1.2.1.2 Maven (plugin). Maven[N5] is a build automation tool used primarily for Java
projects. Maven addresses two aspects of building software: First, it describes how software is
built, and second, it describes its dependencies. Contrary to preceding tools like Apache Ant
it uses conventions for the build procedure, and only exceptions need to be written down. The
most advantageous thing about Maven is that it can easily be added to Eclipse, as a plugin, to
help handling the dependencies.
5.1.2.1.3 Tomcat (version 7.0). Tomcat [N6] is an open source Java application server and
servlet container developed by the Apache Software Foundation (ASF). Tomcat implements the
Java Servlet and the JavaServer Pages (JSP) specifications from Sun Microsystems, and provides
a "pure Java" HTTP web server environment for Java code to run in. The servlet container
manages Servlets (knows where physically Java classes, for which the URL call ...), and executes
them when requested. In our project we used Tomcat7 as a servlet container because its light
for using spring framework.
5.1.2.1.4 Database Management System MySQL and MySQL Workbench. Our choice of
MySQL [N7] as the relational database management system (RDBMS) for our application was
based on the fact that it is very fast, reliable, scalable, and easy to use. MySQL is an Open
Graduation Project Report | 2014 45
CHAPTER 5. ACHIEVEMENTS
Source SQL database management system, is developed, distributed, and supported by Oracle
Corporation. It is shipped with no user interface tools to administer MySQL databases or
manage data contained within the databases. Users may use the included command line tools,
or use MySQL "front-ends", desktop software and web applications that create and manage
MySQL databases, for our project we used MySQL Workbench to manage the data within the
database.
5.1.2.1.5 LDAP and LDAP Explorer Tool. LDAP [N8], Lightweight Directory Access Pro-
tocol, is an Internet protocol that email and other programs use to look up information from a
server. In our case the company uses LDAP as a light database to contain the names, creden-
tials and roles of the users of the application. And that is because it is very easy to access and
there is not big amount of updating. For our application its the source of information about
the users. And before we deployed our project in the companys server we simulated the work
of an LDAP server with the program LDAP Explorer Tool
5.1.2.2 Other Programs
We also used in the process of developing our application other programs such as:
Hibernate tools, to generate the classes and their annotations from an existing database
(reverse engineering).
Pencil, a tool to draw the story board of the application. It is a helps to better understand
the users need before starting the development phase.
GanntProjects, used to draw the schedule in a more expressive way.
5.2 Technical choices: Development languages and paradigms
In this section we will discuss the technical choices we madein the way of achieving our appli-
cation. We will start by presenting the languages used in the development of the project, and
then we will shed the light on the standards we used. Afterwords we will defend our choice
for the framework we used in the presentation and persistence layers.
5.2.1 Development languages
During our internship we had the chance to use the following languages.
Graduation Project Report | 2014 46
CHAPTER 5. ACHIEVEMENTS
Java: is a class-based, object-oriented language. Specifically designed to have as few
implementation dependencies as possible. It is intended to let application developers
"write once, run anywhere" (WORA), meaning that code that runs on one platform does
not need to be recompiled to run on another.
XML (Extensible Markup Language): is a markup language that defines a set of rules for
encoding documents in a format that is both human-readable and machine-readable. We
used it in our project to define the filters and the other functionalities of Spring and to
present the dependencies.
HQL (Hibernate Query Language): the syntax is quite similar to database SQL language.
The main difference is HQL uses class name instead of table name, and property names
instead of column name. We used it in the project to have access to data in the database
from the Java code.
HTML5 (HTML+ CSS+ JavaScript+ jQuery)
5.2.2 Development standards
As we mentioned in the previous chapter, our work was the result of putting together some of
the well-known design patterns in the web application world.
DAO
MVC
Spring IoC
These design patterns were fully introduced in the latter chapter.
5.2.3 Development frameworks
After having a deep thought on how to implement the multi-layered architecture we defined in
the latter chapter, and to meet the QM responsible expectation of using Spring and Hibernate,
we settled on the following frameworks:
For the model layer, JPA specification, we put the Hibernate framework.
For the controller layer we put Spring framework.
Graduation Project Report | 2014 47
CHAPTER 5. ACHIEVEMENTS
For the view layer we choose JSF2 specification, namely the Primefaces framework.
And the putting-together diagram is shown in the next figure (figure 5.1).
Figure 5.1: Sum up diagram for the choosen frameworks
Besides the fact that, as early as the requirement specification stage, it was imposed on us to use
the Spring and Hibernate frameworks. But this choice has strong reasons behind it. Next, we
will analyze the benefits of these frameworks and how they are in a perfect fit with our project.
5.2.3.1 Spring Framework
Using J2EE by itself alone (naked) would be not that beneficial as it ought to be, because there
is a few problems with these standards [N9] . First of all, the usage of these standards is too
complex. And writing a component (EJB: Enterprise Java Bean) requires writing a set of xml
files (deployment descriptors), home interfaces, remote/local interfaces, etc. Moreover, there
is the look-up problem, when a component requires another component, the components
itself is responsible for looking up the components it depends upon. Unfortunately, this look-
up happens by name, so the name of the dependency must be hardcoded in the component
(code or deployment descriptor). On top of that, letting components communicate with each
other from J2EE application servers of different vendors is almost always problematic. So the
Graduation Project Report | 2014 48
CHAPTER 5. ACHIEVEMENTS
components became heavy weight. And that is why developers were using a Plain Old Java
Objects (POJO) in coding the business logic. But with this solution one cannot benefit from
the services provided by the container of J2EE, such as transaction management, remoting,
etc. Here is why we choose the spring framework, to have the benefits of J2EE and POJO.
In fact Spring is a container that is used to wire things using dependency injection. Spring
provides additional services like transaction management and seamless integration of various
other technologies. Among the functionalities that we used from the Spring Framework in our
project, we have
Spring Security login-logout, Access Control List ACL to define for each profile its
granted permessions, the sessions timeout, remember me and the Filters.
Spring internationalization (to change the language for the users interface)
Dependency injection (to assure the independence between the layers)
Annotations, which can help make the development easier, thus faster.
5.2.3.2 Hibernante Framework
While it is true that Spring is a general-purpose framework that plays different roles in many ar-
eas of application architecture namely, the persistence. It does not provide its own persistence
framework. Instead, it provides an abstraction layer over Java database Connectevity JDBC,
and a variety of Oject/Relationel mapping frameworks, namely in our application: Hibernate.
This abstraction allows consistent, manageable data-access implementation [N10] . Hibernate
ORM (Hibernate in short) is an object-relational mapping library for the Java language, pro-
viding a framework for mapping an object-oriented domain model to a traditional relational
database. It also works fine with the Spring framework.
5.2.3.3 PrimeFaces Library
PrimeFaces is an open source component library[N11] for JavaServer Faces, developed by Prime
Technology. It provides a collection of mostly visual components (widgets). These can be used
by JSF programmers in addition to the small set of basic components that ship with the core JSF
platform to compose the UI for a web application. And specifically we used in our application
this library because it is elegant and has some charts that are very useful in our dashboard.
These charts have JQuery in their backend.
Graduation Project Report | 2014 49
CHAPTER 5. ACHIEVEMENTS
5.3 Work achievements
In order to be successful, an application should adopt a fluent and easy to follow interfaces. Es-
pecially in our case: a web application. We try in this section to present the different interfaces
provided by our application.
5.3.1 Access to the application
In order to access to the web application, a user must access to the address of the application,
and a login page (figure 5.2) will be opened, then he must provide his credentials.
Figure 5.2: Login page
The application checks these credentials in the LDAP and in case they are valid, the ap-
plication will be opened and display the home page (figure 5.3). And it loads the roles of this
user, in order to customize its granted permissions. This permessions will controle what are
the funcyionalities that the user will be able to do in the home page.
Graduation Project Report | 2014 50
CHAPTER 5. ACHIEVEMENTS
Figure 5.3: Home page
The welcome page contains the different functionalities of the application, with the condition
that the user has the right to do it. For instance it permits:
The logout
To manage the application if he is an admin
To check the values of a KPI and update their values
To track the documents
To plan an audit
We go into each one of these functionalities in the next paragraphs.
5.3.2 Administration of the application
This interface (figure 5.4) is not static, actually it can only be displayed for the admin profile,
and it contains a reminder of the users credentials and a set of information that the admin can
manage. For example theire is the information about the Processes and the Process Areas and
the Projects...
Graduation Project Report | 2014 51
CHAPTER 5. ACHIEVEMENTS
Figure 5.4: Admin page
In fact the user, by using the latter interface, can add a new item to the database, for instance
in the figure (figure 5.5) he add a new entry for the "Process Area".
Figure 5.5: Interface to add new information
Graduation Project Report | 2014 52
CHAPTER 5. ACHIEVEMENTS
By clicking on the blue icon, the user can display all the existing elements in the database.
For example the figure (figure 5.6) that shows all the element for the "Process Area".
Figure 5.6: Interface to display the existing information
And by accessing the previous interface the user can choose between deleting an exisiting ele-
ment, illustrated by the figure (figure 5.7)
Graduation Project Report | 2014 53
CHAPTER 5. ACHIEVEMENTS
Figure 5.7: Interface to delete information
Or he can update an existing element as the figure (figure 5.8) demonstrate.
Figure 5.8: Interface to update information
Graduation Project Report | 2014 54
CHAPTER 5. ACHIEVEMENTS
By clicking on the arrow on the right side of the window, the user can get back to the home
page and choose another functionality.
5.3.3 Managing the KPIs
From the home page, the user can choose another functionality: the KPI management. In order
to set the configuration of the dashboard, the user got to acces the interface of settings (figure
5.9) which enables him to choose the settings of his dashboard, by choosing which process or
KPIs to be displayed in the next time he opens the dashboard.
Figure 5.9: Dashboard settings
After setting his preferances, the user can select a specefic KPI to display display the corre-
spondent chart (figure 5.10). This chart containes the values of a specefic year with providing
the desired target for each month.
Graduation Project Report | 2014 55
CHAPTER 5. ACHIEVEMENTS
Figure 5.10: Display of the Sales turnovers value for the year 2012
Moreover the application offers the ability to update the values of the KPIs through the next
interface (figure 5.11).
Figure 5.11: Interface to update the KPIs values
Graduation Project Report | 2014 56
CHAPTER 5. ACHIEVEMENTS
5.3.4 Document traceability
Another possibility for the user is to choose the document traceability from the main menu.
This interface (figure 5.12) enables the user to input the information: name, type version and
description of document.
Figure 5.12: Interface to provide the information for document tracking
The application checks that these information are valid and then stock them in the database.
5.3.5 Audit planning
This interface, (figure 5.13) , is important for the user to make the planning of the audit. This
interface is only displayed for the workers that are entitled to start an audit planning for in-
stance the Responsible of the QM and the executive of the company. The user must provide the
information related to the audit namely the audited workers, the auditors and the date, and
the application takes care of the announcement to the involved workers.
Graduation Project Report | 2014 57
CHAPTER 5. ACHIEVEMENTS
Figure 5.13: Interface to audit planning
5.4 Projects planning
Throughout our internship we tried as much as possible to stick to the schedule. Eventually
we had to do some changes. Some phases were longer while others were shorter. The Planning
of our internship is as shown in the next figure (figure 5.14) .
Graduation Project Report | 2014 58
CHAPTER 5. ACHIEVEMENTS
Figure 5.14: Work timeline
We started by a period of documentation, in which we had to learn more about CMMI, ISO
9001, J2EE, Spring, Hibernate. . . . And then we wrote the Software Requirement Specification
(SRS). In order to break down its difficulty, we subdivided the projects into different modules
And then we begin the phase of having the requirements collected and then presented by use
cases. We began afterwards the design phase and then the programming. We repeated each of
the last phases in a cycle for each module apart.
Conclusion
DUring this chapter we presented the technologies that were chosen to implement ourprojects. We gave arguments for that choice. We also presented the different frame-works that were used. We finished by displaying the main features and interfaces of our appli-
cation.
Graduation Project Report | 2014 59
General conclusion and perspectives
IN this project, dedicated to obtain the national degree of engineering from the NationalSchool for Computer Science (Ecole Nationale des Sciences de lInformatique ENSI), wedesigned and developed an application that helps optimizing the Quality Management for the
company. This optimization concerned specifically the tracking of KPIs, the Audit Plan-
ning and the Documents Traceability.
The literature review and the study of the state of the art, enabled us to propose our solu-
tion to the challenges that Focus, the hosting company is facing. We embraced a semi formal
presentation of the QM responsibles requirements. Therefore we used a set of use cases dia-
grams using the UML.
During the different phases of the development of our application we worked with var-
ious technologies, programming languag