Vous êtes sur la page 1sur 60

UNIVERSITE SIDI MOHAMED BEN ABDELLAH

FACULTE DES SCIENCES ET TECHNIQUES FES


DEPARTEMENT DINFORMATIQUE

Projet de Fin dEtudes


L
Liicceennccee SScciieenncceess eett T
Teecchhnniiqquueess G
Gnniiee IInnffoorrm
maattiiqquuee

D
Dvveellooppppeem meenntt dduunnee aapppplliiccaattiioonn w
weebb JJaavvaa E
EE E ppoouurr
llee ccaallccuull ddee H
Heeaaddrroooomm dduunnee ccoom mbbiinnaaiissoonn

Lieu de stage : YAZAKI Morocco S.A, Tanger

Ralis par : Encadr par :


EL MORABET Hicham Pr. BENABBOU Abderrahim
EL FALLAQY Youssef M. ELADDALI Karim

Soutenu le 09/06/2015 devant le jury compos de :

Pr. MRABTI Fatiha


Pr. ZENKOUAR Khalid
Pr. BENABBOU Abderrahim

Anne Universitaire 2015-2016


Remerciement

Aprs ALLAH, nous tenons remercier :

En premier lieu nos parents qui nous ont soutenus moralement et matriellement tout au
long de notre vie. Nous esprons avant tout que nous serons toujours votre fiert. Que
DIEU vous bnisse.

Nos valeureux encadrants Monsieur Abderrahim BENABBO la Facult des Sciences et


Techniques Fs et Monsieur Karim ELADDALI dveloppeur software au sein du service
IT YAZAKI Tanger pour leurs conseils fructueux, leurs directives et leurs
encouragements qui nous ont si gnreusement aids durant toute la priode du stage.

Tout le personnel de YAZAKI spcialement Monsieur Karim MAHFOUD responsable


COSEE sertissage YAZAKI Europe et Monsieur Fouad FILALI Ingnieur au
dpartement Ingnierie et Process pour avoir nous accord leur temps prcieux, leur
attention et leur nergie pour nous aider dans la ralisation de ce travail.

Enfin, toutes personnes qui ont contribu et collabor de prs ou de loin la ralisation de
ce modeste travail.

1|Page
Table des matires

Rsum.8
Abstract.9
Introduction gnrale..10
Chapitre I. Prsentation gnrale....11
I. Organisme daccueil12
1. YAZAKI..12
1.1. Historique du groupe YAZAKI.12
1.2. Activits de YAZAKI13
1.3. Processus de dlocalisation....13
2. YAZAKI Maroc...14
2.1. Cration de YAZAKI Maroc.....14
2.2. Activit de YAZAKI Maroc..15
2.3. Organigramme gnral..15
II. Prsentation du projet.16
1. Problmatique..16
2. Cahier de charge..17
3. Solution propose18
Chapitre II. Analyse des besoins et conception..19
I. Mthodologie du dveloppement....20
1. Langage de modlisation.20
1.1. Dfinition...20
2. Mthodologie adopte.21
2.1. Dfinition...21
2.2. Itratif et incrmental.22
2.3. Phases du RUP...22
II. Analyse...23
1. Identification des besoins23

2|Page
1.1. Besoins fonctionnels..23
1.2. Besoins non fonctionnels...24
2. Acteurs du systme..25
3. Messages mis et reu par le systme..26
3.1. Messages envoys par lAdministrateur ..26
3.2. Messages envoys par lEmploy 27
4. Cas dutilisation par acteur..28
4.1. Diagramme associ lAdministrateur ...28
4.2. Diagramme associ lEmploy .29
5. Description textuelle des cas dutilisation...30
5.1. Description textuelle des cas dutilisation de lAdministrateur ...30
5.2. Description textuelle des cas dutilisation de lEmploy 32
III. Conception....33
1. Diagramme de classes modle statique .33
2. Diagrammes de squences modle dynamique .35
2.1. Diagramme de squence calculer le Headroom ...35
2.2. Diagramme de squence modifier une combinaison ...36
2.3. Diagramme de squence crer un compte ...37
2.4. Diagramme de squence modifier un compte .38
3. La base de donnes de lapplication39
Chapitre III. Mise en place de lapplication...40
I. Langages et technologies de dveloppement..41
1. Plate-forme Java EE....41
1.1. Dfinition...41
1.2. Pourquoi Java EE...42
2. Framework JSF....43
3. HTML..43
4. CSS..43
5. JavaScript.44
6. JQuery..44
7. MySQL....44
II. Environnement de ralisation.45

3|Page
1. Environnement matriel...45
2. Environnement logiciel....45
2.1. Apache TomEE..45
2.2. NetBeans IDE46
2.3. Entreprise Architect...46
III. Prsentation de lapplication.46
1. Prototype de linterface Authentification ..46
2. Prototype de linterface calculer le Headroom ..48
3. Prototype de linterface gestion des combinaisons 48
4. Prototype de linterface crer un compte ...51
5. Prototype de linterface gestion des comptes 52
6. Prototype de linterface gestion des machines ...52
7. Prototype de linterface contacter un utilisateur 53
8. Prototype de linterface contacter ladministrateur ...53
Conclusion gnrale54
Annexes..55
Bibliographie..59
Webographie...59

4|Page
Liste des figures

Figure 1 : logo de YAZAKI ...12


Figure 2 : YAZAKI travers le monde 13
Figure 3 : YAZAKI Maroc, Tanger .. 14

Figure 4 : cblage fini ... 15

Figure 5 : organigramme de la socit .. 15

Figure 6 : Interface du fichier YEL-CE-S-211 . 16

Figure 7 : schma de la mthode RUP .. 21

Figure 8 : les incrments du modle incrmental itratif .. 22

Figure 9 : diagramme de cas dutilisation associ lAdministrateur 28

Figure 10 : diagramme de cas dutilisation associ lEmploy 29

Figure 11 : diagramme de classes . 34

Figure 12 : diagramme de squence Calculer le Headroom ... 35

Figure 13 : diagramme de squence Modifier une combinaison 36

Figure 14 : diagramme de squence Crer un compte 37

Figure 15 : diagramme de squence Modifier un compte ... 38

Figure 16 : schma de la base de donnes .39

Figure 17 : interface authentification ...48

Figure 18 : interface calculer le Headroom ..49

Figure 19 : interface my combinations ....50

5|Page
Figure 20 : interface edit combination .50

Figure 21 : interface all combinations .51

Figure 22 : rapport de combinaison (PDF) 51

Figure 23 : rapport de combinaison (Excel) ..51

Figure 24 : interface add user ...52

Figure 25 : interface manage users ..53

Figure 26 : interface manage machines ....53

Figure 27 : interface contact users ...54

Figure 28 : interface contact admin ..54

6|Page
Liste des tableaux

Tableau 1 : messages envoys au systme par lAdministrateur ...... 27

Tableau 2 : messages envoys au systme par lEmploy .... 28

Tableau 3 : description textuelle de cas dutilisation Sauthentifier ..... 31

Tableau 4 : description textuelle de cas dutilisation Crer un compte .... 32

Tableau 5 : description textuelle de cas dutilisation Modifier un compte ... 32

Tableau 6 : description textuelle de cas dutilisation Contacter un utilisateur . 33

Tableau 7 : description textuelle de cas dutilisation Calculer le Headroom ... 33

Tableau 8 : description textuelle de cas dutilisation Modifier une combinaison .... 34

Tableau 9 : Caractristique poste de travail .... 46

7|Page
Rsum

Nous avons effectu notre stage de fin d'tudes au sein de YAZAKI Morocco qui est une
Socit de cblage dautomobile appartenant au groupe YAZAKI installe la zone franche
de Tanger.

Ce stage tait destin la ralisation dune application web en Java EE pour le calcul de
Headroom dune combinaison. Nous avons ralis lapplication avec la plate-forme Java
EE (Java Entreprise Edition) en utilisant MySQL comme un SGBD (Systme Gestion de
Base de Donnes).

Mots cls : Java EE,MySQL,combinaison, Headroom, calcul de Headroom.

8|Page
Abstract

We have done my end of studies internship within YAZAKI Morocco which is an


automotive wiring company belonging to the YAZAKI Group installed in Tangier free
zone.

This training was intended for the realization of a Java EE web application to calculate the
Headroom for a combination. We realized the application with the Java EE platform (Java
Enterprise Edition) using MySQL as a DBMS (Database Management System).

Keywords : Java EE, MySQL, combination, Headroom, calculate the Headroom

9|Page
Introduction gnrale

Au terme de nos tudes la facult des Sciences et Techniques Fs, et dans le cadre de
lobtention de la licence Science et Technique - Gnie Informatique, nous sommes amens
effectuer un stage de fin d'tudes de deux mois afin de parfaire nos connaissances
acquises tout au long de cette anne et de les mettre en application dans le milieu
professionnel.

Ce rapport est le fruit dun stage qui sest droul au sein de la multinationale japonaise
YAZAKI Tanger de la priode du 04 Avril au 04 Juin 2016. Notre travail au cours du
stage porte sur la ralisation dune application en Java EE et utilisant MySQL comme
systme de gestion de base de donnes. Lapplication a pour but de calculer lindicateur
Headroom pour une combinaison donne.

Nous prsentons travers ce rapport trois chapitres principaux :


Le premier chapitre dfinit le cadre gnral de notre projet, il prsente en premier lieu
lorganisme daccueil, puis une description du projet.

Le deuxime chapitre se rsume dans lanalyse fonctionnelle du projet en spcifiant les


fonctionnalits de lapplication ainsi quune tude conceptuelle comprenant les diffrents
diagrammes dUML.

Le troisime chapitre dcrit lenvironnement technique du projet, les outils et les langages
de programmation et de modlisation utiliss pour la ralisation et la prsentation de
lapplication.

10 | P a g e
Chapitre I.
Prsentation gnrale

11 | P a g e
Chapitre 1
Prsentation gnrale

Introduction
Ce chapitre a pour objectif de situer le projet dans son contexte gnral. Pour ce faire, nous
prsentons dans un premier lieu lorganisme daccueil, ensuite, nous dcrivons
minutieusement le projet en dgagent les problmes en vue de prciser les objectifs.

I. Organisme daccueil

1. YAZAKI

1.1. Historique du groupe YAZAKI

YAZAKI [1] est lun des plus grands producteurs du monde de cblage automobile et un
joueur dans la fabrication des systmes de la distribution lectrique et lectroniques,
linstrumentation lectronique et les composants pour les voitures. La date de succs de
YAZAKI tait en 1929, quand SADAMI YAZAKI a commenc vendre les cblages pour
les automobiles. En 1939, laffaire pourrait tre tendue et en 1941, YAZAKI Fil
Electrique Industriel Co. Ltd a t tabli avec approximativement 70 employs.

Figure 1 : logo de YAZAKI

12 | P a g e
1.2. Activits de YAZAKI

Le groupe japonais [1] dont le sige est bas Tokyo, son activit principale est le cblage,
la fabrication de composants lectriques pour automobiles et instruments.
Ses autres activits sont la fabrication des fils et cbles lectriques, la fabrication des
produits de gaz et la climatisation.

1.3. Processus de dlocalisation

Le processus de dlocalisation de la socit a commenc en 1962 avec sa filiale, THAI


YAZAKI ELECTRIC WIRE CO. LTD.

Le groupe [1] est localis dans 45 pays, il compte son actif :

173 socits.
478 units rparties entre usines de production et centres de service au client
et centres de Recherche & Dveloppement.
284 200 demploys.

Figure 2 : YAZAKI travers le monde [1]

13 | P a g e
2. YAZAKI Maroc

2.1. Cration de YAZAKI Maroc

Le processus de dlocalisation de la socit sest poursuivi par la cration, en Octobre


2000, dune unit de Production Tanger au Maroc, sous la dnomination de YAZAKI
SALTANO DE PORTUGAL , Succursale MAROC.

En 2001, le Maroc a t le premier pays africain auquel Mr. YAZAKI a fait honneur, par
linauguration de son site oprationnel YAZAKI MAROC (YMO) pour la production des
cbles automobile, en prsence de SM le ROI MOHAMMED VI. Ce nest quen mai 2003
quelle acquiert son indpendance et devient YAZAKI MOROCCO. Avec un capital de 88
millions de DH, elle a accumul un investissement de plus de 253 millions de DH.

YAZAKI MOROCCO a ralis un chiffre daffaires de 150 millions deuros en 2010 pour
un total demplois suprieur 4900 postes. [2]

Figure 3 : YAZAKI Maroc, Tanger

14 | P a g e
2.2. Activit de YAZAKI Maroc

Lactivit de YAZAKI Maroc est la conception des cbles lectriques qui servent
connecter des diffrents lments dans un systme lectromcanique et de fournir
de lnergie lectrique et des signaux lectronique diffrents priphriques du systme.

Figure 4 : cblage fini

2.3. Organigramme gnral

Figure 5 : organigramme de la socit

15 | P a g e
II. Prsentation du projet

1. Problmatique
chaque lancement de nouveau projet ou bien en relation avec les changements techniques
des projets en cours, le service Crimping Process de chaque usine de YAZAKI Europe
(19 usines) est toujours amen faire un test de validation pour les nouvelles combinaisons
par le calcul de leur indicateur Headroom.

Pour faire le calcul, les employs du service Crimping Process ont besoin de tlcharger la
dernire version du fichier YEL-CE-S-211 de E-Matrix et vrifier si la combinaison est
dj disponible dans le fichier (le Headroom de cette combinaison est dj calcul dans
une autre usine) les employs prennent seulement les rsultats de calcul, sinon ils calculent
le Headroom et enregistrent la combinaison avec ses rsultats dans le mme fichier.

Le fichier YEL-CE-S-211 est une application VBA (Visual Basic for Applications) faite
en Excel.

Figure 6 : Interface du fichier YEL-CE-S-211

16 | P a g e
Les employs ont envisag plusieurs problmes utilisant ce fichier pour le calcul et pour
lenregistrement des combinaisons et leurs informations :

Chaque jour lemploy doit tlcharger le fichier, faire les calculs et le charger, ce
qui prend beaucoup de temps.
Excel devient trs lent avec lajout des centaines des combinaisons chaque jour.
Lemploy doit vrifier la liste des combinaison enregistres dans le fichier avant
le calcul de Headroom de chaque combinaison.
Les informations enregistres dans le fichier sont confidentielles et doivent tre
scurises, ce qui nest pas le cas avec cette mthode.

2. Cahier de charge

Au but de calcul de Headroom dune combinaison au sein du service Crimping Process :

LEmploy fait le calcul de Headroom en saisissant les valeurs de Crimping Full et


Empty, ainsi que les informations de la combinaison, la machine, lapplicateur et CFM
Tolerance.

Il peut en plus consulter tous combinaisons enregistres dans base de systme, ainsi la
gnration de rapport dune combinaison (sous forme PDF ou Excel), comme il peut
modifier et supprimer les combinaisons quil a enregistr lui-mme.

LAdministrateur gre les comptes utilisateurs de lapplication, il ajoute de nouveaux


comptes, comme il peut consulter, activer, dsactiver, modifier et supprimer les comptes
existants.

En plus, il gre les machines (Press, CFM, Applicateurs ...) et les paramtres de
combinaison (Wire Size et Strands).

17 | P a g e
3. Solution propose
Nous avons propos une application web Java EE en utilisant MySQL comme systme de
gestion de base de donnes.

Lapplication a pour but :

Calculer lindicateur Headroom pour une combinaison donne


Meilleure gestion des combinaisons
Garantir la scurit des donnes
Communication entre les utilisateurs de lapplication

18 | P a g e
Chapitre II.
Analyse des besoins
et conception

19 | P a g e
Chapitre 2
Analyse des besoins et conception

Introduction
Dans ce chapitre nous allons prsenter l'tude technique de notre projet. L'analyse des
donnes sera prsente en premier lieu suivie d'une conception, vu que ltape de la
ralisation nest quun fruit dune bonne analyse et conception, ceux-ci savrent donc
primordiaux et fondamentaux dans la totalit du travail du projet.

I. Mthodologie du dveloppement

1. Langage de modlisation
Nous avons choisi comme langage de modlisation UML (Unified Modeling Language).

1.1. Dfinition

UML [3] est une mthode de modlisation oriente objet


dveloppe en rponse lappel propositions lanc par
lOMG (Object Management Group) dans le but de dfinir
la notation standard pour la modlisation des applications
construites laide dobjets.

UML est utilise pour spcifier un logiciel et/ou pour concevoir un logiciel. Dans la
spcification, le modle dcrit les classes et les cas dutilisation vus de lutilisateur final du
logiciel. Le modle produit par une conception oriente objet est en gnral une extension
du modle issu de la spcification. Il enrichit ce dernier de classes, dites techniques, qui
nintressent pas lutilisateur final du logiciel mais seulement ses concepteurs. Il comprend

20 | P a g e
les modles des classes, des tats et dinteraction. UML est galement utilise dans les
phases terminales du dveloppement avec les modles de ralisation et de dploiement.

2. Mthodologie adopte
Parmi les mthodologies du dveloppement qui existent et en coordination avec notre
projet, nous avons trouv que le RUP est la mthodologie de travail qui peut nous orienter
tout au long du projet.

2.1. Dfinition

Le processus RUP (Rational Unified Process) est un processus de dveloppement logiciel


itratif et incrmental, centr sur larchitecteur, pilot par les cas dutilisation et par les
risques.

Figure 7 : schma de la mthode RUP

21 | P a g e
2.2. Itratif et incrmental

Notre projet a t dcoup en itrations de courte dure qui nous ont aid mieux suivre
lavancement de projet. la fin de chaque itration une partie excutable du systme final
est produit de faon incrmentale.

Figure 8 : les incrments du modle incrmental itratif

2.3. Phases du RUP

Les quatre phases de cycle de vie du RUP :

Phase dincubation : Dfinir le champ daction de projet (spcification des besoins


et prsenter larchitecteur de systme).
Phase dlaboration : On dveloppe de faon incrmentale l'architecture du noyau,
prciser la plupart des cas dutilisateurs afin de prsenter larchitecture de systme
sous forme de vue de prsentation pour chaque modle.
Phase de construction : Cest la phase de ralisation de produit, il contient en fin
tous les cas dutilisation.
Phase de transition : Le produit final est livr la disposition des utilisateurs. Les
activits comme les formations et la correction des anomalies seront supposes dans
cette phase.

22 | P a g e
II. Analyse

1. Identification des besoins


L'objectif principal d'un systme logiciel est de rendre service ses utilisateurs, il faut par
consquent bien comprendre les dsirs et les besoins des futurs utilisateurs. Donc dans ce
qui suit, nous commencerons par numrer les besoins fonctionnels et non fonctionnels.

1.1. Besoins fonctionnels

Les besoins fonctionnels sont dfinis comme tant des services attendus par lutilisateur de
produit. Ils doivent constituer un ensemble complet et cohrent. Dans ce qui suit, nous
allons prsenter les besoins fonctionnels bauchs durant la proposition de la solution.

Authentification : pour laccs aux services bas sur le profil de lutilisateur.


Calcul de Headroom dune combinaison : le calcul dindicateur Headroom
pour la validation dune combinaison.
Gestion des combinaisons : la modification, la suppression et la consultation des
combinaisons existants.
Gnration des rapports : lutilisateur peut gnrer un rapport pour chaque
combinaison avec la possibilit de le tlcharger sous forme PDF ou Excel.
Gestion des comptes utilisateurs : La cration dun nouveau compte utilisateur
ainsi que lactivation, la dsactivation, la modification, la suppression et la
consultation des comptes existants ne sont faits que par ladministrateur systme.
Gestion des machines : ladministrateur systme a la possibilit dajouter des
nouvelles machines (machine Press, machine CFM et applicateur) ainsi que la
suppression des machines existantes.

23 | P a g e
Gestion de paramtres de combinaison : ladministrateur systme a la possibilit
dajouter des nouveaux paramtres de combinaison (Wire Size et Strands) ainsi
que la suppression des paramtres existants.
Communication entre les utilisateurs : les utilisateurs peuvent communiquer
entre eux travers lapplication.
Contacter ladministrateur : les utilisateurs peuvent envoyer un email
ladministrateur travers lapplication.

1.2. Besoins non fonctionnels

Les besoins non fonctionnels se basent sur le respect des normes de lergonomie et des
interactions homme/machine quon fournit lapplication. Notre application doit
ncessairement assurer ces besoins :

La rapidit de traitement : le systme doit garantir la rapidit dexcution des


traitements.

La fiabilit : le systme doit excuter correctement toutes ses structures, pour


rpondre convenablement aux besoins de lutilisateur.

Lergonomie : les interfaces doivent tre claires et bien structures. A ce propos un


thme sera choisi et utilis au cours de dveloppement de lapplication pour assurer
le bon choix de design.

Lintgrit : les fonctionnalits offertes chaque utilisateur doivent tre restreintes


celles qui lui sont autorises. Linformation nest modifie que par les personnes
y ayants droit. Dans ce cas, nous dfinissons pour chaque utilisateur ces droits
daccs au systme.

24 | P a g e
La portabilit : il sagit de minimiser leffort pour se faire transporter dans un autre
environnement matriel et/ou logiciel.

Lextensibilit : lapplication devra tre extensible, cest--dire quil pourra y avoir


une possibilit dajouter ou de modifier de nouvelles fonctionnalits.

La scurit : le systme doit traiter les failles de scurit do le besoin dun login
et dun mot de passe pour accder au systme. Les messages derreurs doivent
identifier tous les cas derreurs de saisie et leur source.

2. Acteurs du systme
Nous parvenons une tape cl du processus. Cest elle qui grce ltude ralise dans
la partie prcdente mettra en valeur le rle de chaque acteur du systme ainsi que les
fonctionnalits prsentes plus haut.

Dans cette partie nous allons numrer les diffrents acteurs susceptibles dinteragir avec
le systme.

Administrateur : ces rles sont rsums comme dcrit ci-dessous :

Sauthentifier
Crer un compte
Modifier un compte
Supprimer un compte
Activer/dsactiver un compte
Consulter compte
Ajouter une machine
Supprimer une machine

25 | P a g e
Ajouter un paramtre de combinaison
Supprimer un paramtre de combinaison
Contacter un utilisateur

Employ : (Process Owner) ces rles sont rsums comme dcrit ci-dessous :

Sauthentifier
Calculer le Headroom dune combinaison
Modifier une combinaison
Supprimer une combinaison
Consulter une combinaison
Gnrer le rapport dune combinaison
Contacter un utilisateur
Contacter ladministrateur

3. Messages mis et reus par le systme


Nous allons dtailler les diffrents messages permettant de dcrire les interactions de plus
haut niveau entre les acteurs et le systme.

3.1. Messages envoys par lAdministrateur

Messages envoys au systme Messages mis par le systme


- Espace administrateur
Authentification
- Message derreur
- Message succs
Crer un compte
- Message derreur
- Message succs
Modifier un compte
- Message derreur

26 | P a g e
Supprimer un compte - Confirmation de suppression
Consulter un compte - Liste des comptes utilisateurs
Activer/dsactiver un compte - Pas de message
- Message succs
Ajouter une machine
- Message derreur
Supprimer une machine - Confirmation de suppression
- Message succs
Ajouter un paramtre de combinaison
- Message derreur
Supprimer un paramtre de combinaison - Confirmation de suppression
Contacter un utilisateur - Pas de message

Tableau 1 : messages envoys au systme par lAdministrateur

3.2. Messages envoys par lEmploy

Messages envoys au systme Messages mis par le systme


- Espace administrateur
Authentification
- Message derreur
Calculer le Headroom dune combinaison - Rsultats
- Message succs
Modifier une combinaison
- Message derreur
Supprimer une combinaison - Confirmation de suppression
Consulter une combinaison - Liste des combinaisons
Gnrer le rapport dune combinaison - Rapport dune combinaison
Contacter un utilisateur - Pas de message
- Message succs
Contacter ladministrateur
- Message derreur

Tableau 2 : messages envoys au systme par lEmploy

27 | P a g e
4. Cas dutilisation par acteur
Les diagrammes de cas d'utilisation sont des diagrammes UML utiliss pour donner une
vision globale du comportement fonctionnel du systme logiciel.

4.1. Diagramme associ lAdministrateur

Le diagramme ci-dessous prsente le diagramme de cas dutilisation dcrivant les


diffrentes fonctionnalits que le lAdministrateur peut les accomplir.

Figure 9 : diagramme de cas dutilisation associ lAdministrateur

28 | P a g e
4.2. Diagramme associ lEmploy

Le diagramme ci-dessous prsente le diagramme de cas dutilisation dcrivant les


diffrentes fonctionnalits que le lEmploy peut les accomplir.

Figure 10 : diagramme de cas dutilisation associ lEmploy

29 | P a g e
5. Description textuelle des cas dutilisation
La description textuelle de cas dutilisation [4] consiste recenser toutes les interactions
entre le systme et les acteurs de faon textuelle. Le cas dutilisation doit avoir un dbut et
une fin clairement identifis. Il doit prciser quand ont lieu les interactions entre acteurs et
systme, et quels sont les messages changs. Il faut galement prciser les variantes
possibles, telles que les diffrents cas nominaux, les cas alternatifs, les cas derreurs, tout
en essayant dordonner squentiellement les descriptions, afin damliorer leur lisibilit.
Chaque unit de description de squences dactions est appele enchanement. Un scnario
reprsente une succession particulire denchanements, qui sexcute du dbut la fin du
cas dutilisation.

Dans cette partie nous allons limiter aux cas dutilisation importantes.

5.1. Description textuelle des cas dutilisation de


lAdministrateur

Description textuelle : sauthentifier (Administrateur, Employ)

Titre Authentification
Objectif tre connue par le systme
Acteur Administrateur / Employ
Pr-condition Post-condition
Lutilisateur doit tre connu par le systme Lutilisateur avoir laccs son espace priv
Scnario nominal
1. Ladministrateur/lemploy lance lapplication
2. Le systme affiche un formulaire de connexion
3. Ladministrateur/lemploy saisie le E-Mail et le Password
4. Ladministrateur/lemploy demande la connexion
5. Le systme vrifie les donnes saisies
6. Le systme valide les donnes et permet laccs

Tableau 3 : description textuelle de cas dutilisation Sauthentifier

30 | P a g e
Description textuelle : crer un compte

Titre Crer un compte


Objectif Donner accs au systme
Acteur Administrateur
Prcondition Post-condition
Ladministrateur doit tre authentifi Un nouveau compte est ajout
Scnario nominal
1. Ladministrateur accde au menu Users
2. Ladministrateur choisit Create users dans le menu
3. Le systme affiche un formulaire de cration dun compte
4. Ladministrateur remplit le formulaire
5. Le systme valide les donnes saisies
6. Le systme fait les mis jour et indique que le compte est ajout avec succs

Tableau 4 : description textuelle de cas dutilisation Crer un compte

Description textuelle : modifier un compte

Titre Modifier un compte


Objectif Modifier un profil utilisateur
Acteur Administrateur
Pr-condition Post-condition
Ladministrateur doit tre authentifi Un profil utilisateur est modifi
Scnario nominal
1. Ladministrateur accde au menu Users
2. Ladministrateur choisit Manage users dans le menu
3. Le systme affiche la liste des comptes des utilisateurs enregistrs
4. Ladministrateur demande de modifier un compte
5. Le systme affiche un formulaire avec les donnes enregistres
6. Ladministrateur modifie le formulaire
7. Le systme valide les donnes saisies
8. Le systme fait les mis jour et indique que le compte est modifi avec succs

Tableau 5 : description textuelle de cas dutilisation Modifier un compte

31 | P a g e
Description textuelle : contacter un utilisateur (Administrateur, Employ)

Titre Contacter un utilisateur


Objectif Envoyer un message un utilisateur
Acteur Administrateur/Employ
Pr-condition Post-condition
Lutilisateur doit tre authentifi Le message est envoy ladministrateur
Scnario nominal
1. Ladministrateur/lemploy accde au menu Contact
2. Ladministrateur/lemploy choisit Contact users dans le menu
3. Le systme affiche une boite de message
4. Ladministrateur/lemploy crit le message
5. Ladministrateur/lemploy demande denvoyer le message

Tableau 6 : description textuelle de cas dutilisation Contacter un utilisateur

5.2. Description textuelle des cas dutilisation de


lEmploy

Description textuelle : calculer le Headroom dune combinaison

Titre Calculer le Headroom dune combinaison


Objectif Calculer le Headroom dune combinaison donne
Acteur Employ
Pr-condition Post-condition
Lemploy doit tre authentifi Le Headroom dune combinaison est calcul
Scnario nominal
1. Lemploy accde au menu Headroom & RS
2. Le systme affiche des formulaires dajoute dune combinaison
3. Lemploy remplit les formulaires
4. Le systme valide les donnes et affiche les rsultats
5. Lemploy demande denregistrer la combinaison
6. Le systme fait les mis jour et indique que la combinaison est ajoute avec succs

Tableau 7 : description textuelle de cas dutilisation Calculer le Headroom dune combinaison

32 | P a g e
Description textuelle : modifier une combinaison

Titre Modifier une combinaison


Objectif Modifier les donnes dune combinaison
Acteur Employ
Pr-condition Post-condition
Lemploy doit tre authentifi Une combinaison est modifie
Scnario nominal
1. Lemploy accde au menu Headroom Register
2. Lemploy choisit My combinations dans le menu
3. Le systme affiche la liste des combinaisons enregistres par cet employ
4. Lemploy demande de modifier une combinaison
5. Le systme affiche un formulaire
6. Lemploy remplit le formulaire
7. Le systme valide les donnes saisies
8. Le systme fait les mis jour et indique que la combinaison est modifie avec succs

Tableau 8 : description textuelle de cas dutilisation Modifier une combinaison

III. Conception
La conception est une tape primordiale pour la ralisation dun produit informatique. Nous
allons utiliser le diagramme de classes et le diagramme de squence en vue de prsenter le
comportement statique et dynamique de notre modle : le diagramme de classes exprime
dune manire gnrale la structure statique dun systme, en termes de classes et de
relation entre classes et le diagramme de squence illustre dune manire dynamique le
scnario de ralisation des fonctions du systme.

1. Diagramme de classes modle statique


Le diagramme de classes [5] est le point central dans le dveloppement orient objet, il
reprsente la structure statique du systme sous forme de classes et de relations entre
classes. Les classes constituent la base pour la gnration de code et pour la gnration des
schmas de bases de donnes.

33 | P a g e
Tableau 11 : diagramme de classes

34 | P a g e
2. Diagrammes de squences modle dynamique
Les diagrammes de squences [5] servent illustrer les cas d utilisation, ils permettent de
reprsenter les interactions dans le temps entre les objets du systme.

2.1. Diagramme de squence Calculer le Headroom

LEmploy accde au menu Headroom & RS , le systme affiche des formulaires


dajoute une combinaison. Ensuite lEmploy remplit les formulaires et valide, si ces
donnes sont incorrectes le systme lui renvoi un message derreur, sinon le systme
affiche les rsultats. LEmploy demande denregistrer la combinaison calcule, le systme
fait les mis jour et indique que la combinaison est ajoute avec succs.

Figure 12 : diagramme de squence Calculer le Headroom

35 | P a g e
2.2. Diagramme de squence Modifier une combinaison

LEmploy choisit My combinations dans le menu Headroom Register , le systme


affiche la liste des combinaisons enregistres par cet employ. Ensuite lEmploy demande
de modifier une combinaison, le systme affiche un formulaire, lEmploy remplit le
formulaire et valide, si ces donnes sont incorrectes le systme lui renvoi un message
derreur, sinon le systme fait les mis jour et indique que la combinaison est modifie
avec succs.

Figure 13 : diagramme de squence Modifier une combinaison

36 | P a g e
2.3. Diagramme de squence Crer un compte

LAdministrateur choisit Create users dans le menu Users , le systme affiche un


formulaire de cration dun compte. Ensuite lAdministrateur remplit le formulaire et
valide, si ces donnes sont incorrectes le systme lui renvoi un message derreur, sinon le
systme fait les mis jour et indique que le compte est ajout avec succs.

Figure 14 : diagramme de squence Crer un compte

37 | P a g e
2.4. Diagramme de squence Modifier un compte

LAdministrateur choisit Manage users dans le menu Users , le systme affiche la


liste des comptes des utilisateurs enregistrs. Ensuite lAdministrateur demande de
modifier un compte, le systme affiche un formulaire, lAdministrateur remplit le
formulaire et valide, si ces donnes sont incorrectes le systme lui renvoi un message
derreur, sinon le systme fait les mis jour et indique que le compte est modifi avec
succs.

Figure 15 : diagramme de squence Modifier un compte

38 | P a g e
3. La base de donnes de lapplication

La figure ci-dessous reprsente le modle relationnel de donnes de notre application.

Figure 16 : schma de la base de donnes

Conclusion :
Dans ce chapitre nous avons dtaill les diffrentes vues conceptuelles de lapplication
raliser travers les modles UML ncessaires. Cette conception est essentielle pour la
phase de ralisation qui constitue lobjet du chapitre suivant.

39 | P a g e
Chapitre III.
Mise en place de lapplication

40 | P a g e
Chapitre 3
Mise en place de lapplication

Introduction :
Dans ce chapitre, nous aborderons la partie ralisation du projet. Plus prcisment nous
parleront des outils et des langages de dveloppement, puis nous allons entamer les tapes
de la ralisation et quelques captures dcran pour expliquer de fonctionnement du systme.

I. Langages et technologies de dveloppement

1. Plate-forme Java EE

1.1. Dfinition

Sun (le concepteur de Java) a donc mis en place un ensemble de technologies pour raliser
des applications Web. Ces technologies sont regroupes sous le nom J2EE (Java 2
Entreprise Edition), dsormais Java EE.

La plateforme Java EE [6] sappuie entirement sur le


langage Java. Java EE est donc une norme, qui permet
des dveloppeurs, entreprises et SSII de dvelopper leur
propre application qui implmente en totalit ou
partiellement les spcifications de SUN. En simplifiant, il est possible de reprsenter Java
EE comme un ensemble de spcifications dAPI, une architecture, une mthode de
packaging et de dploiement dapplications et la gestion dapplications dployes sur un
serveur compatible Java.

41 | P a g e
1.2. Pourquoi Java EE

Il existe actuellement beaucoup dautres plates-formes de dveloppement qui sont bases


sur dautres langages (C#, PHP5, .NET...). Les principaux avantages dutiliser Java EE (et
donc Java) sont la portabilit, lindpendance, la scurit et la multitude de librairies
proposes.

Le dveloppement dapplications dentreprise ncessite la mise en uvre dune


infrastructure importante. Beaucoup de fonctionnalits sont utilises et dveloppes, le but
tant de produire des applications sres, robustes et faciles maintenir. Certains services
sont dailleurs rcurrents comme : laccs aux bases de donnes, lenvoi de mails, les
transactions, la gestion de fichiers, la gestion dimages, le tlchargement, le chargement,
la supervision du systme...

Cest pour cela que larchitecture Java EE est intressante car tous les lments
fondamentaux sont dj en place. Pas besoin de concevoir une architecture, des librairies
et des outils spcialement adapts. Cela ncessiterait un temps et un investissement
considrables.

Enfin, la plateforme Java EE est base sur des spcifications, ce qui signifie que les projets
sont portables sur nimporte quel serveur dapplications conforme (Tomcat, JBoss,
WebSphere...) ces spcifications. Cette implmentation est gratuite et permet de
bnficier de la totalit de lAPI sans investissement. La plateforme Java EE est la plus
riche des plates-formes Java et offre un environnement standard de dveloppement et
dexcution dapplications dentreprise multi-tiers. [6]

42 | P a g e
2. Framework JSF
JSF [7] (Java Server Faces) est une technologie dont le
but est de proposer un framework qui facilite et
standardise le dveloppement d'applications web avec
Java. Son dveloppement a tenu compte des diffrentes
expriences acquises lors de l'utilisation des technologies standard pour le dveloppement
d'applications web (servlet, JSP, JSTL) et de diffrents frameworks (Struts, ...).

3. HTML
HTML [8] L'Hypertext Markup Language, gnralement abrg HTML, est
le format de donnes conu pour reprsenter les pages web. C'est un
langage de balisage qui permet d'crire de l'hypertexte, do son nom.
Langage de balisagehypertexte Permet de structurer et de mettre en forme
le contenu des pages, dinclure des ressources multimdias dont des images, des
formulaires de saisie, et des lments programmables.

4. CSS
Le terme CSS [9] est l'acronyme anglais de Cascading Style
Sheets qui peut se traduire par feuilles de style en cascade . Le CSS
est un langage informatique utilis sur l'internet pour mettre en forme les
fichiers HTML ou XML. Ainsi, les feuilles de style, aussi appel les
fichiers CSS, comprennent du code qui permet de grer le design d'une page en HTML.

43 | P a g e
5. JavaScript
JavaScript [10], souvent abrg en JS, est le langage de script dvelopp
par Netscape utilis dans des millions de pages web et d'applications
serveur dans le monde entier. Le JavaScript de Netscape est une extension
du langage de script standard ECMA-262 Edition 3 (ECMAScript), ne
diffrant que lgrement des standards publis. JavaScript est un langage
lger, interprt, orient objet (les fonctions tant des objets part entire).

6. JQuery
JQuery [11] est une bibliothque JavaScript libre qui porte sur
l'interaction entre JavaScript (comprenant Ajax) et HTML, et a pour
but de simplifier des commandes communes de JavaScript. La
premire version date de janvier 2006.

7. MySQL
MySQL [12] est un Systme de Gestion de Base de Donnes (SGBD) parmi les
plus populaires au monde, Cest est un serveur de base de donnes relationnelles
SQL qui fonctionne sur de nombreux systmes dexploitation
(dont Linux, Mac OS X, Windows, Solaris, FreeBSD) et
qui est accessible en criture par de nombreux langages de programmation, incluant
notamment PHP, Java, Ruby, C, C++, .NET, Python

44 | P a g e
II. Environnement de ralisation
Dans cette partie avons prsents lenvironnement matriel et logiciel de la ralisation de
notre projet.

1. Environnement matriel
Lapplication a t dveloppe sur un ordinateur portable avec les caractristiques
suivantes :

Marque Dell Inspiron 3543

Processeur Intel Core i5-5200U CPU @ 2.20GHz (4CPUs),

Mmoire vive 4Go

Disque dur 500Go

Type du systme 64 bits

Systme dexploitation Windows 10

Tableau 9 : Caractristique poste de travail

2. Environnement logiciel
Lors de dveloppement de notre application, nous avons exploit plusieurs logiciels, a ce
quon va prsenter dans cette partie.

2.1. Apache TomEE

Apache TomEE prononc tommy est un serveur web


combinant plusieurs projets dentreprise JAVA tels que les
Servlet, JSP, JSF, JTA, JPA, CDI, JAAS, JACC, JavaMail
API, Bean Validation, Entreprise JavaBeans.

45 | P a g e
2.2. NetBeans IDE

L'EDI NetBeans [13] est un environnement


de dveloppement - un outil pour les
programmeurs pour crire, compiler,
dboguer et dployer des programmes. Il
est crit en Java - mais peut supporter
n'importe quel langage de programmation. Il y a galement un grand nombre de modules
pour tendre l'EDI NetBeans. L'EDI NetBeans est un produit gratuit, sans aucune
restriction quant son usage.

2.3. Enterprise Architect

Enterprise Architect [14] permet le dveloppement


d'applications selon le schma d'architecture orient
modle ainsi que le schma d'Architecture oriente
services. Enterprise Architect couvre tous les aspects du cycle de dveloppement
d'applications depuis la gestion des exigences, en passant par les phases de conception, la
construction, tests et maintenance. Ces aspects sont appuys par des fonctions de support
tels que la traabilit, la gestion de projet, ou encore le contrle de version.

46 | P a g e
III. Prsentation de lapplication

1. Prototype de linterface Authentification


Il trs important de noter que chaque opration ne peut tre ralise quaprs
authentification. Seul lAdministrateur qui se charge de dfinir les login et mot de passe
de chaque employ. Au lancement de lapplication, la fentre dauthentification saffiche
automatiquement, elle permet lutilisateur de se connecter. Sil y a des problmes lors de
la connexion, un message derreur est affich.

Figure 17 : interface authentification

47 | P a g e
2. Prototype de linterface Calculer le Headroom
L'application permet l'Employ de calculer le Headroom dune combinaison en
saisissant des informations correspondant celle-ci

Figure 18 : interface calculer le Headroom

3. Prototype de linterface Gestion des combinaison


Lapplication permet ladministrateur une gestion complte des combinaisons, o il la possibilit
de consulter tous les combinaisons et la gnration de leurs rapports (sous forme PDF ou Excel),
ainsi que la modification et la suppression de ses combinaisons.

48 | P a g e
Figure 19 : interface my combinations

Figure 20 : interface edit combination

49 | P a g e
Figure 21 : interface all combinations

Figure 22 : rapport de combinaison (PDF)

Figure 23 : rapport de combinaison (Excel)

50 | P a g e
4. Prototype de linterface Crer un compte
Pour crer des comptes utilisateurs il est ncessaire lAdministrateur de passer
linterface de cration des comptes comme illustre la figure suivante :

Figure 24 : interface add user

51 | P a g e
5. Prototype de linterface Gestion des comptes
Pour consulter, modifier ou supprimer des comptes utilisateurs, il est ncessaire
lAdministrateur de passer linterface de gestion des comptes comme illustre la figure
suivante :

Figure 25 : interface manage users

6. Prototype de linterface Gestion des machines


Lapplication permet ladministrateur une gestion complte des machines et des
paramtres de combinaison, o il la possibilit de consulter, ajouter et supprimer.

Figure 26 : interface manage machines

52 | P a g e
7. Prototype de linterface Contacter un utilisateur
Lapplication permet la communication entre ses utilisateurs

Figure 27 : interface contact users

8. Prototype de linterface Contacter ladministrateur


Lapplication permet ses utilisateurs denvoyer un email ladministrateur

Figure 28 : interface contact admin

53 | P a g e
Conclusion gnrale

Ce stage a t loccasion de mettre profit nos connaissances acquises la Facult des


Sciences et Techniques Fs notamment en JAVA, HTML, CSS, JavaScript et en MySQL
pour pouvoir approfondir mes connaissances en JAVA et la pratique et la comprhension
des outils MySQL. Nous avons galement acquis de de nouveaux outils de dveloppement
tels que la plate-forme JAVA EE et le Framework JSF.

Ce projet nous a donn lopportunit de s'initier la vie professionnelle dans un milieu rel
et avoir au dbut d'exprience significative et il nous a appris comment ds le matin on
peut prendre le parti de la gaiet, comment russir de bonnes relations pour assurer un
travail du groupe, comment compter sur soi pour rsoudre les problmes au cas o ils se
prsentent, comment tre attentives aux indications de nos suprieurs.

Au cours de la ralisation de notre projet, nous avons taient astreints par quelques limites
notamment, la contrainte de temps qui tait relativement un obstacle devant l'ajout de
certaines autres fonctionnalits.

En dfinitive, ce stage a t une exprience dterminante dont je pourrais certainement


profiter au niveau professionnel et de manire encore plus vidente au niveau personnel.

54 | P a g e
Annexes

Le code de hachage et de salage

public class Hasher implements Serializable{


public final Integer DEFAULT_ITERATIONS = 10000;
public final String algorithm = "pbkdf2_sha256";
private String salt;

public Hasher() {
salt = BCrypt.gensalt();
}

public String getEncodedHash(String password, int iterations) {


// Returns only the last part of whole encoded password
SecretKeyFactory keyFactory = null;
try {
keyFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
} catch (NoSuchAlgorithmException e) {
System.err.println("Could NOT retrieve PBKDF2WithHmacSHA256
algorithm");
}
KeySpec keySpec = new PBEKeySpec(password.toCharArray(),
salt.getBytes(Charset.forName("UTF-8")), iterations, 256);
SecretKey secret = null;

55 | P a g e
try {
if(keyFactory != null)
{
secret = keyFactory.generateSecret(keySpec);
}
} catch (InvalidKeySpecException e) {
System.out.println("Could NOT generate secret key");
}
if(secret != null)
{
byte[] rawHash = secret.getEncoded();
byte[] hashBase64 = Base64.getEncoder().encode(rawHash);
return new String(hashBase64);
}
return null;
}

public String encode(String password, int iterations) {


// returns hashed password, along with algorithm, number of iterations and salt
String hash = getEncodedHash(password, iterations);
return hash;
}

public String encode(String password) {


return this.encode(password, this.DEFAULT_ITERATIONS);
}

public boolean checkPassword(String password, String hashedPassword) {

56 | P a g e
String hash = encode(password, this.DEFAULT_ITERATIONS);

return hash.equals(hashedPassword);
}

public String getSalt() {


return salt;
}

public void setSalt(String salt) {


this.salt = salt;
}

Le code denvoi dun email

Transport transport = null;


try {
MimeMessage mimeMessage = new MimeMessage(mailSession);

mimeMessage.setFrom(new InternetAddress(FROM));
mimeMessage.setSender(new InternetAddress(FROM));
mimeMessage.setSubject(subject);
mimeMessage.setContent(message, "text/plain");

mimeMessage.addRecipient(Message.RecipientType.TO, new
InternetAddress(recipient));

57 | P a g e
transport = mailSession.getTransport("smtp");
transport.connect(HOST, PORT, USER, PASSWORD);

transport.sendMessage(mimeMessage, mimeMessage.getRecipients(
Message.RecipientType.TO ));
transport.close();
} catch (MessagingException ex) {
Logger.getLogger(Email.class.getName()).log(Level.SEVERE, null, ex);

} finally {
if(transport != null && transport.isConnected()) try {
transport.close();
} catch (MessagingException ex) {
Logger.getLogger(Email.class.getName()).log(Level.SEVERE, null, ex);
}
}

58 | P a g e
Bibliographie
[3] : Unified Modeling Language (UML). Bruno BOUZY

[4] : UML en action de lanalyse des besoins la conception en Java. Pascal ROQUES

[5] : Modlisation en UML. Pr. Abderrahim BENABBOU

[6] : Java EE-Guide de dveloppement d'applications web en Java. Jrme LAFOSSE

Webographie
[1] : http:// www.yazaki-europe.com

[2] : http://docslide.fr/documents/rapport-de-stage-qualite.html

[7] : http://www.jmdoudoux.fr/java/dej/chap-jsf.htm

[8] : http://slideplayer.fr/slide/4345759

[9] : http://glossaire.infowebmaster.fr/css

[10] : https://developer.mozilla.org/fr/docs/Web/JavaScript/A_propos

[11] : http://distilleri.es/javascript/jquery

[12] : http://sql.sh/sgbd/mysql

[13] : https://netbeans.org/index_fr.html

[14] : http://republic.pink/enterprise-architect_1439556.html

59 | P a g e

Vous aimerez peut-être aussi