Académique Documents
Professionnel Documents
Culture Documents
…َّآمين،الجنة
َ ِينَّفازواَّ ِب ََّ آللّهُمََّّارْ َح َّْمَّأُمِّيَّواجْ َع ْلهاَّم
ََّ ِنَّالذ
Nous vous remercions pour votre soutien, votre amour, vos prières, et vos encouragements…
A toute la famille,
Nous vous remercions pour votre soutien, votre amour et présence à nos côtés dans les
moments de joie, de dépression et de stress, nous vous aimons si fort.
MAHDARI Yassine
2
Remerciements
Nous tenons à remercier premièrement le bon DIEU qui nous a donné la force pour travailler
et de mener à bien ce travail.
Nous remercions de suite l’entreprise Upline Group qui nous a permis de faire le stage au sein
de leur établissement.
Nos remerciements s’adressent aussi à notre encadrant à Upline Group, en la personne de Mr.
MOAWYA Omar à qui nous sommes très reconnaissant pour les efforts qu’il n’a cessé de
déployer pour le bon déroulement de notre stage. C’est grâce à ses explications et son partage
de connaissance en développement web, nous remercions de même tout le personnel d’Upline
Group.
Nous tenons à remercier aussi tout le corps professoral de la FST de Settat, pour leur
mobilisation, la formation qu’ils nous ont donnée durant notre parcours et pour l’élaboration du
présent rapport.
Ainsi, qu’à tous les membres du jury pour leur présence, remarques et leur conseil. Nous
n’oublions pas de remercier nos amis pour leur amabilité et leurs aides durant toute la période
du Projet de Fin d’Etudes.
Que tous ceux qui ont contribué, de près ou de loin, pour mener à bien ce stade trouvent ici
l’expression de notre parfaite considérations de nos remerciements chaleureux.
3
Résumé
Notre projet consiste dans l’étude, la conception et la réalisation d’une application pour la
gestion et le suivi de processus d’une demande d’achat pour la société Upline Group, qui permet
les filiales d’Upline Group. Les objectifs majeurs de cette application sont la gestion, le suivi
et le contrôle de processus d’une demande d’achat. Pour atteindre cet objectif, nous avons eu
recours à créer une plateforme web basé sur une architecture 3 tiers dont MySQL comme
système de gestion de bases de données, une étude conceptuel réalisé par le langage de
modélisation UML et Eclipse comme IDE. Enfin, notre application sera exploitée par les
employés de la société Upline Group. Le présent rapport décrit les différentes étapes de
réalisation de ce projet.
4
Table des matières
Remerciements ........................................................................................................................... 3
Résumé ....................................................................................................................................... 4
Table des matières ...................................................................................................................... 5
Liste des figures ......................................................................................................................... 7
Introduction générale .................................................................................................................. 8
CHAPITRE I
Introduction : ............................................................................................................................ 10
I. Organisme d’accueil :....................................................................................................... 10
1. Présentation d’Upline Group :....................................................................................... 10
2. Organigramme : ............................................................................................................. 11
3. Filiales d’Upline Group : ............................................................................................... 11
II. Contexte générale du projet : ........................................................................................... 12
1. Introduction : ................................................................................................................. 12
2. Problématique : ............................................................................................................. 13
3. Objectifs : ...................................................................................................................... 13
4. Diagramme de Gantt : ................................................................................................... 14
Conclusion ................................................................................................................................ 14
CHAPITRE II
Introduction : ............................................................................................................................ 16
I. Etude de l’existant et proposition : ................................................................................... 16
1. Processus d’une demande d’achat à Upline Group : ..................................................... 16
2. Critique : ........................................................................................................................ 17
3. Solution proposée : ........................................................................................................ 18
II. La Plate-forme Java EE : .................................................................................................. 18
1. Présentation et historique : ............................................................................................ 18
2. Composants et Architecture Java EE : .......................................................................... 19
3. Les conteneurs web : ..................................................................................................... 25
4. API et services Java EE : ............................................................................................... 27
III. Le modèle MVC : .......................................................................................................... 31
1. Le modèle MVC en théorie : ......................................................................................... 31
2. Le modèle MVC en pratique : ....................................................................................... 32
IV. Outils et environnement de développement : ................................................................ 34
1. Les outils : ..................................................................................................................... 34
5
2. Téléchargement des outils ............................................................................................. 34
3. Installation des outils :................................................................................................... 34
4. Outils matériels : ........................................................................................................... 34
CHAPITRE III
I. Introduction : .................................................................................................................... 36
II. Analyse des besoins : ....................................................................................................... 36
1. Les besoins fonctionnels : ............................................................................................. 36
2. Les besoins non fonctionnels : ...................................................................................... 36
III. Conception : .................................................................................................................. 37
1. Diagramme de cas d’utilisation : ................................................................................... 37
2. Identification des acteurs :............................................................................................. 38
3. Les diagrammes de séquence : ...................................................................................... 38
4. Diagramme de classe : ................................................................................................... 48
Conclusion ................................................................................................................................ 48
CHAPITRE IV
I. Introduction : .................................................................................................................... 50
II. Environnement de travail : ............................................................................................... 50
1. Environnement logiciel : ............................................................................................... 50
III. Développement : ........................................................................................................... 52
1. Choix de la plateforme JEE :......................................................................................... 52
IV. Choix de développement : ............................................................................................. 52
1. Le modèle : .................................................................................................................... 53
2. La vue : .......................................................................................................................... 53
3. Le contrôleur : ............................................................................................................... 53
V. Phase de test : ................................................................................................................... 54
VI. Interface graphique : ...................................................................................................... 54
1. Interface authentification : ............................................................................................ 55
2. Interface administrative : ............................................................................................... 55
3. Interface création d’une demande d’achat : .................................................................. 56
4. Interface de consultation : ............................................................................................. 56
5. Interface suivi de bon de commande : ........................................................................... 57
Conclusion ................................................................................................................................ 57
Conclusion générale ................................................................................................................. 58
6
Liste des figures
Figure I.1: Organigramme d'upline Group ............................................................................... 11
Figure I.2 : Schéma d'Upline Group.......................................................................................... 11
Figure I.3 : FILIALE D’UPLINE ALTERNATIVE INVESTMENTS ..................................................... 12
Figure I.4 : Diagramme de Gantt .............................................................................................. 14
Figure II.1 : Processus d’une demande d’achat à Upline Group .............................................. 17
Figure II.2 : Architecture Java EE Standard .............................................................................. 20
Figure II.3 : Communication Java EE entre les différents tiers................................................. 22
Figure II.4 : Tiers web et Tiers métier Java EE .......................................................................... 23
Figure II.5 : Architecture évoluée Java EE ................................................................................ 24
Figure II.6 : Serveur Java EE et conteneur ................................................................................ 26
Figure II.7 : Modèle MVC .......................................................................................................... 32
Figure II.8 : MVC avec Java EE .................................................................................................. 33
Figure III.1 : Diagramme de cas d’utilisation ............................................................................ 37
Figure III.2 : Cas d’utilisation « Créer une demande d’achat » ................................................ 38
Figure III.3 : diagramme de séquence « Créer une demande d’achat » .................................. 39
Figure III.4 : Cas d’utilisation « Valider une demande d’achat ».............................................. 40
Figure III.5 : Diagramme de séquence « Valider une demande d’achat » ............................... 40
Figure III.6 : Cas d’utilisation « Suivre une demande d’achat » ............................................... 41
Figure III.7 : Diagramme de cas d’utilisation « Suivre une demande d’achat »....................... 41
Figure III.8 : Cas d’utilisation « Répondre à une demande d’achat » ...................................... 42
Figure III.9 : Diagramme de séquence « Répondre à une demande d’achat » ........................ 43
Figure III.10 : Cas d’utilisation « Gestion des utilisateurs » ..................................................... 43
Figure III.11 : Diagramme de séquence « Ajouter un utilisateur » .......................................... 45
Figure III.12 : cas d’utilisation « Consulter toutes les DA » ...................................................... 45
Figure III.13 : diagramme de séquence « Consulter toutes les DA » ....................................... 46
Figure III.14 : cas d’utilisation « Suivi de bon de commande » ................................................ 46
Figure III.15 : diagramme de séquence « suivi de bon de commande » ................................. 47
Figure III.16 : Diagramme de classe ......................................................................................... 48
Figure IV.1 : Modèle MVC ........................................................................................................ 53
Figure IV.2 : interface authentification .................................................................................... 55
Figure IV.3 : interface administrative ....................................................................................... 55
Figure IV.4 : interface création d’une demande d’achat ......................................................... 56
Figure IV.5 : interface consultation des demandes d’achats ................................................... 56
7
Introduction générale
Aujourd'hui, Internet et les technologies de l'information et de la communication deviennent
indispensables dans la vie de l'entreprise, quelle que soit sa taille et quel que soit son secteur
d'activité. En effet, Internet tisse de nouveaux points de contacts avec sa clientèle en modifiant
les méthodes de travail au sein de l'entreprise : service-client, circulation plus rapide de
l'information, travail en réseau ou à distance, etc.
Avec la croissance du Web et l'arrivée de nouvelles technologies, les attentes de ses utilisateurs,
à l'égard des sites Web se sont développées énormément. Actuellement, on s'attend de plus en
plus à des sites complets, interactifs et mis à jour rapidement, utilisant des technologies de
pointe et offrant plus de fonctionnalités.
Dans ce contexte, la société Upline Group relève un besoin pour le suivi de processus des
demandes d’achats entre ses filiales.
Il s'agit donc d'une application Web permettant de gérer les demandes depuis leurs arrivées
jusqu'à la livraison, offrir aux employés la possibilité de créer et de consulter leurs appels à
distance.
Pour atteindre ces objectifs, il était nécessaire de subdiviser ce travail en quatre chapitres :
Chapitre 2 : «Etude théorique» décrit la Plateforme JavaEE puis présente en détail ses
composantes et son architecture.
8
9
Introduction :
Dans ce chapitre nous présenterons les éléments permettant de mieux appréhender ce projet de
fin d’étude, commençant par l’organisme d’accueil, ainsi que son domaine d’activités, et
enchainant par l’aspect global du déroulement du projet en présentant son périmètre, le cahier
des charges exigé, le management du projet et les différentes circonstances caractérisant cette
période.
I. Organisme d’accueil :
1. Présentation d’Upline Group :
Fondée en 1992, Upline Group est considérer comme un acteur de référence dans les métiers
de la banque d’affaire.
10
2. Organigramme :
11
3.1. Upline Corporate Finance :
Elle a pour missions l’accompagnement des PME ou une grande entreprise dans leur croissance
et le conseil dans les matières de :
Fusion et acquisition
Levée de fonds
Privatisation
Conseil stratégique et étude de marché
Conseil financier et évaluation d’entreprise
12
Plusieurs études démontrent même que les achats dit « indirects », c’est-à-dire pas directement
liés à l’activité (les fournitures de bureau par exemple) représentent près d’un tiers des
dépenses. Bien souvent ce type d’achats sort du cadre de fonctionnement normal de l’entreprise,
et est gérer de manière plus ou moins formelle en fonction des sociétés.
D’ailleurs, même en ce qui concerne les achats récurrents, il est bien souvent difficile pour les
organisations de structurer et gérer leurs démarches « Achats ».
2. Problématique :
A l’entreprise Upline Group une demande d’achat est encore aussi un formulaire papier
circulant de services en services, est bien souvent le principal outil de formalisation des achats.
Liste des différents problèmes :
Perte de documents
Piles de demandes s’entassant dans les services d’achats
Temps de traitement plus ou moins aléatoire
Manque de traçabilité
3. Objectifs :
Lors de notre stage au sein de l’entreprise Upline Group, nous avons eu comme projet de fin
d’études la conception et la réalisation d’une application web pour la gestion et le suivi des
demandes d’achats qui résout les problèmes posés dans la partie problématique.
Le développement d’une application web qui permet aux demandeurs d’effectuer une demande
d’achat simplement et rapidement via une connexion à une interface web, saisie dans un
formulaire qui peut être pré-rempli en fonction des services, du profil de l’utilisateur.
La demande peut être suivi en ligne, plus besoin de demander par mail ou téléphone au service
achat ou en est la commande. En se connectant sur l’application le demandeur voit où en est sa
demande, si elle a été validée ou non.
Validation des demandes d’achats par un simple clic en se connectant sur l’application, après
la validation des demandes, celles-ci se transitent automatiquement entre services.
La génération automatique des bons de commande, permet des gains de temps. Permet des gains
de temps considérables permettant aux chargés d’achat de se concentrer sur des activités métiers
stratégiques. Chaque responsable d’action est clairement identifié.
13
4. Diagramme de Gantt :
Conclusion
Ce chapitre introductif a été dédié essentiellement à la présentation générale de notre stage y
compris l’environnement de stage, l’entité d’accueil Upline group. Il met aussi l’accent sur le
contexte général du projet ainsi que la méthodologie suivie pour son élaboration, et sa
planification tenant compte des délais à respecter.
Avant d’entamer les différentes phases qui nous ont permis de mener à bien le projet, il serait
judicieux de commencer tout d’abord par une étude théorique.
14
15
Introduction :
Dans ce chapitre on va vous présenter le processus d’une demande d’achat à la société Upline,
et les problèmes dans ce processus et la solution proposée.
Ainsi dans ce chapitre une étude théorique sur la plateforme JEE, ses composants et son
architecture.
16
Figure II.1 : Processus d’une demande d’achat à Upline Group
2. Critique :
Comme on a cité dans la partie problématique, le processus d’une demande d’achat se fait
encore à partir d’un formulaire papier circulant entre les services, l’éditeur de la demande
d’achat a besoin de demander par mail ou téléphone au service d’achat pour suivre l’état de sa
demande, manque de traçabilité, une demande d’achat n’est pas identifié par un référence, perte
de document, le temps de traitement plus ou moins aléatoire, etc.
17
3. Solution proposée :
La société Upline Group relève un besoin pour l’automatisation de la gestion des demandes
d’achats. Il s’agit donc d’une application web permettant de gérer les demandes d’achats depuis
la création jusqu’à la livraison.
La version J2EE 1.4 proposait 20 spécifications lors de sa sortie fin 2003. Cette version
apportait le support des services Web et des EJB version 2.1. Mais cette version conséquente
était difficile à utiliser, tester et déployer.
Les développements par couches, de type Modèle Vue Contrôleur (MVC), ne facilitent pas la
compréhension de l'ensemble, et les technologies Servlet et JSP ne sont pas adaptées pour un
développement rapide. En réponse à cela, quelques Frameworks ou outils spécialisés voyaient
le jour, comme Struts et Spring pour la partie développement serveur, et Hibernate ou TopLink
pour la persistance.
La version Java EE 5 sortie en 2006 proposait 23 spécifications et apportait une réponse à cela
en proposant désormais un outil de développement côté serveur adapté au design pattern MVC,
nommé JavaServer Faces. Cette nouvelle version était une étape majeure pour la plate-forme
18
Java EE qui s'orientait vers la simplicité, en proposant les EJB 3 associés à JPA (Java
Persistance API) pour la persistance des données, JAX-WS (Java API for XML based Web
Services) 2.0 pour les services Web en lieu et place de JAX-RPC (Java API for XML based
RPC) et surtout le principe des annotations Java 5 pour la configuration des applications
(configuration du déploiement, persistance, EJB ou autres) en remplacement des nombreux
fichiers XML.
L'API JAX-RS.
L'injection de dépendances et de ressources avec Contexts and Dependency Injection
(CDI).
L'interface d'authentification pour le conteneur.
Les nouveaux composants EJB 3.1 qui facilitent encore leur utilisation.
La nouvelle version des Servlets (3.0) et des JavaServer Pages (2.2).
Une nouvelle API JavaServer Faces (2.0) (JSF) pour la couche ou tiers Web.
19
Les composants Clients ou tiers Client sont des applications clientes (logiciel installé en
local ou navigateur Web ou Applets) s'exécutant sur la machine des utilisateurs.
Les composants Web ou tiers Web sont les technologies Servlets, JavaServer Pages et
Java- Server Faces.
Les composants métier ou tiers Métier sont des composants Entreprises JavaBeans
(EJB) représentant la logique métier, s'exécutant sur le serveur Java EE et dialoguant
avec la couche de stockage (EIS : Enterprise Information System).
20
2.1. Les composants clients ou tiers clients :
La plate-forme Java EE propose trois types de clients : les clients Web, les Applets et les
applications clientes riches type Java SE.
Un client Web consiste en des pages Web de différents types (HTML, XHTML, XML,
JavaScript ou autres) générées à partir de composants exécutés côté serveur dans un conteneur
Web et capables de répondre aux requêtes HTTP en provenance du navigateur Internet. Ces
programmes côté serveur sont représentés en Java EE par les Servlets, pages JSP et JSF. Ces
programmes serveur ne réalisent en général pas directement les accès aux bases de données
mais s'occupent de la logique applicative.
Les Applets sont des interfaces graphiques Java SE exécutées dans un navigateur Web. Ces
applications utilisent une interface graphique évoluée de type SWING et sont exécutées dans
une machine virtuelle Java installée dans le navigateur. Cependant cette technique est plus
contraignante à maintenir, requiert des accès et des droits pour la sécurité et nécessite un plug-
in pour les navigateurs. Les clients Web sont donc préférables pour la création du tiers Client.
Une application de type client est un logiciel riche, qui s'exécute sur la machine du client et
fournit un ensemble de services aux utilisateurs par l'intermédiaire d'une interface graphique
évoluée encore appelée Graphical User Interface (GUI).
Les clients et le serveur dialoguent ensemble par l'intermédiaire d'un composant standardisé
nommé JavaBean ou classe Plain Old Java Object (POJO). Un composant JavaBean peut être
vu comme la plus petite unité de communication entre les couches ou tiers Java EE. Les
composants JavaBeans sont des objets, instances de classes POJO, composés de propriétés et
de leurs accesseurs associés pour accéder aux données. Les JavaBeans s'exécutent sur le serveur
Java EE et dialoguent avec les clients ou avec la base de données (tiers EIS).
Ces applications riches sont développées avec les composants SWING en général, exécutées
avec Java Web Start ou Application Client Container (ACC) et déployées dans le projet
Enterprise ARchive (EAR).
21
Figure II.3 : Communication Java EE entre les différents tiers
La figure ci-dessus montre les différents types de clients utilisés dans une plate-forme Java EE.
Les clients riches de type application communiquent directement avec le tiers Métier alors que
les clients de type navigateur Internet communiquent à travers le tiers Web par l'intermédiaire
de pages exécutées sur le serveur et générées par des Servlets, JSP ou JSF.
22
Les entités beans (entity bean ou bean entity) peuvent être exécutées par un conteneur
léger (pas forcément un serveur Java EE) et permettent de réaliser la persistance des
données à partir des JavaBeans et de Java Persistance API (JPA).
Les Enterprise JavaBeans offrent des possibilités plus riches comme la gestion des
transactions, les accès directs par clients riches ou encore la gestion automatique des
sessions utilisateur, mais sont exécutés sur un conteneur lourd, c'est-à-dire compatible
Java EE.
La figure ci-dessus présente le découpage du tiers Métier avec les entités beans et les Enterprise
JavaBeans. Les informations sont reçues par un client léger au travers du tiers Web et des pages
Internet, ou directement depuis un client lourd. Ces informations sont ensuite envoyées sous la
forme de JavaBeans, images des informations en provenance des clients et à destination du tiers
Métier pour stockage. Dans le sens inverse, les Enterprise JavaBeans (EJB) lisent les données
en provenance du système de stockage, réalisent des opérations si nécessaire, et sont envoyés
au client.
La partie stockage des données, nommée tiers Enterprise Information System (EIS) est
directement liée au tiers Métier et correspond dans la majorité des cas, aux systèmes de gestion
de bases de données (Derby, MySQL, PostgreSQL, Oracle ou autres) ou à un entreprise
ressource planning (ERP), un gros système transactionnel ou n'importe quel système de
stockage évolué.
23
Figure II.5 : Architecture évoluée Java EE
La figure précédente représente une architecture optimisée d'une application Java EE. Trois
types de clients sont représentés (client Web, client Applet et client Application), le serveur
Web utilisé en frontal est le serveur Internet de référence : Apache. Ce serveur renvoie
indirectement les résultats des pages dynamiques exécutées par le serveur d'applications Java
EE, et directement les contenus statiques de type images, CSS, JavaScript ou autres.
La partie contrôleur contient la logique de traitement. Cette couche dialogue avec les différents
types d'Enterprise JavaBeans (Stateless Bean, Stateful Bean et Message Driven Beans). La
couche métier est gérée par le standard JPA, permettant de paramétrer les classes ainsi que
l'outil de persistance EclipseLink, le tout configuré par le fichier persistence.xml.
24
3. Les conteneurs web :
Les serveurs Java EE proposent plusieurs types de conteneurs (containers) pour chaque type de
composant. Chaque conteneur a un rôle bien défini et offre un ensemble de services pour les
développeurs :
L'annuaire de nommage d'accès aux ressources : Java Naming and Directory Interface
(JNDI) est une interface unifiée de gestion de nommage pour les services et l'accès à
ceux-ci par des applications.
L'injection dynamique de ressources.
La gestion des accès aux bases de données.
Le modèle de gestion de la sécurité.
Le paramétrage des transactions.
Les exécutions et développements sont donc directement liés au conteneur utilisé et une
application Java EE côté tiers Web ne sera pas programmée comme une application côté tiers
EJB, par exemple. Les accès aux ressources nommées, les accès aux bases de données ou encore
l'injection dynamique de ressources seront différents. Pour résumer, un conteneur permet de
gérer le cycle de vie et la gestion des ressources.
Une application Java EE de type Web nécessite un conteneur Web pour son exécution alors
qu'une application utilisant les EJB nécessite un conteneur EJB pour son exécution. Chaque
conteneur propose un ensemble de services avec ses avantages et ses contraintes.
25
Figure II.6 : Serveur Java EE et conteneur
L'architecture Java EE présentée dans la figure ci-dessus est découpée selon plusieurs domaines
ou services, appelés des conteneurs ou containers. D'après les précédents schémas, il existe en
Java EE cinq types de conteneurs :
26
lancés en même temps sur le poste client. Ces programmes sont lancés dans un « bac à
sable » aussi nommé « sandbox » afin de gérer la sécurité des accès sur le poste client.
Application Client Container (ACC) ou conteneur des applications clientes, permet
l'exécution d'applications Java SE. L'application de type client et son conteneur sont
lancés sur le client en simultané. Le conteneur d'applications client (ACC) propose une
bibliothèque de classes, un système de gestion de sécurité et le service de nommage
JNDI pour les applications Java SE. La communication directe entre le conteneur client
et le conteneur EJB est réalisée avec les technologies RMI-IIOP, alors que la
communication avec le conteneur Web est réalisée avec le protocole HTTP pour les
services Web, par exemple.
27
4.4. JavaServer Faces (JSF)
La technologie JavaServer Faces s'exécute dans le conteneur Web et correspond à la réponse
du consortium Java EE en matière de Framework de développement côté serveur. JSF 2.0 est
un Framework de développement de projets Web proposant la construction rapide de code
serveur, la validation des entrées, la gestion des modèles objets, la configuration de la
navigation, les conversions de données, l'utilisation d'annotations, les balises et technologies
d'affichages de données pour la partie Vue, le support de la technologie Ajax en natif et bien
d'autres fonctionnalités. JSF est orienté composant et repose sur un cycle de vie proche du
développement d'applications Java SE (écouteurs, évènements...).
La gestion de la persistance.
Un langage de requêtage évolué : Java Persistance Query Langage (JPQL).
Un mécanisme de mapping objet/relationnel ORM à partir de métadonnées (fichiers
XML ou annotations).
Une API à typage fort pour le requêtage.
28
4.8. Entreprise JavaBeans (EJB) (Technologie Java EE –
Conteneur EJB) :
Les composants Enterprise JavaBeans s'exécutent dans le conteneur dédié EJB et correspondent
à la couche ou tiers Métier de l'application. Ces EJB 3.X sont des classes composées de champs
et de méthodes d'accès. Java EE propose deux familles d'EJB : les session beans et message-
Driven beans.
Les session beans représentent les conversations entre le client et le serveur, qu'elles soient avec
ou sans état. Un Message-Driven Bean (MDB) mélange un session bean et un écouteur de
message permettant ainsi la réception asynchrone de messages. Ces services utilisent Java
Message Service (JMS) pour leur fonctionnement. La nouvelle version de Java EE offre la
possibilité d'empaqueter les EJB directement dans des archives WAR (Web ARchive),
l'utilisation du Design Pattern Singleton dans les sessions beans et la possibilité d'utiliser des
EJB légers avec un serveur Java ne proposant pas le conteneur EJB.
4.10.JavaMail :
Les applications Java EE utilisent l'API JavaMail pour l'envoi d'e-mails. L'API JavaMail fournit
pour cela un ensemble de classes de gestion.
29
4.13.Java Authentication and Authorization Service (JAAS):
La technologie Java Authentication and Authorization Service (JAAS) fournit les mécanismes
d'authentification et d'autorisation pour un groupe ou utilisateur spécifique lançant l'application.
JAAS est une version du standard Pluggable Authentication Module (PAM).
30
4.19.Java Naming and Directory Interface (JNDI):
L'API Java Naming and Directory Interface (JNDI) fournit un mécanisme de nommage de type
annuaire pour l'accès aux ressources. Ces ressources peuvent être de différents types mais le
but est d'associer les objets à un nom (bind) et de retrouver ces objets (lookup) dans un annuaire
de nommage semblable à LDAP, DNS ou NIS. Nous pouvons ainsi nommer une source de
données de type base de données, un Enterprise JavaBean, une session JavaMail ou autres.
JNDI permet une utilisation et un accès depuis une application de type client, un EJB ou un
composant Web.
31
que l'on puisse être amené à travailler à plusieurs contributeurs sur un même projet
ou une même application (travail en équipe).
que l'on puisse être amené à maintenir et corriger une application que l'on n'a pas
créée soi-même.
que l'on puisse être amené à faire évoluer une application que l'on n'a pas créée soi-
même.
Pour toutes ces raisons, il est nécessaire d'adopter une architecture plus ou moins standard, que
tout développeur peut reconnaître, c'est-à-dire dans laquelle tout développeur sait se repérer.
Il a été très vite remarqué qu'un modèle permettait de répondre à ces besoins, et qu'il s'appliquait
particulièrement bien à la conception d'applications Java EE : le modèle MVC (Modèle-Vue-
Contrôleur). Il découpe littéralement l'application en couches distinctes, et de ce fait impacte
très fortement l'organisation du code ! Voici dans les grandes lignes ce qu'impose MVC :
32
des méthodes (traitements) qui leur sont propres, et un système capable de stocker des données
d'autre part. Rien de bien transcendant ici, la complexité du code dépendra bien évidemment de
la complexité des traitements à effectuer par votre application.
Un serveur d'applications est constitué d'un serveur HTTP et d'un conteneur web.
Le modèle de conception MVC impose une répartition stricte des tâches au sein d'une
application :
la couche Modèle se charge des traitements à effectuer sur les données et de leur
stockage.
la couche Vue se charge de la présentation des données pour l'utilisateur et de
l'interaction.
la couche Contrôle se charge d'aiguiller les requêtes entrantes vers les
traitements et vues correspondants.
Un Framework est une boîte à outils mise à disposition du développeur pour lui alléger
certaines tâches.
Dans une application Java EE sans Framework :
la couche Modèle est constituée d'objets Java.
33
la couche Vue est constituée de pages JSP.
la couche Contrôle est constituée de servlets.
1. Les outils :
4. Outils matériels :
La programmation a été effectuée sur un ordinateur de capacité suivante :
34
35
I. Introduction :
La phase d’analyse et de spécification, est la première étape du processus de développement
que nous avons adopté. En effet, elle formalise et détaille ce qui a été ébauché au cours de
l'étude préliminaire, et permet de dégager l'étude fonctionnelle du système. Elle permet ainsi
d'obtenir une idée sur ce que va réaliser le système en termes de métier (comportement du
système).
Tout au long de ce chapitre, nous commencerons par définir les besoins fonctionnels et non
fonctionnels de la solution que nous allons proposer, et présenter le diagramme général de cas
d’utilisation.
Gestion des utilisateurs : Il s’agit d’un outil permettant d’effectuer les opérations de
gestion telles que l’ajout, la suppression, la modification, et la consultation des
informations caractérisant chacun des utilisateurs.
Gestion des demandes d’achat : l’application doit permet
o La saisie d’une demande d’achat.
o La validation des demandes d’achats.
o Le suivi d’une demande d’achat.
Gestion de bon de commande : l’application doit permet
o Générer un bon de commande.
o Consultation des bons de commandes.
Les besoins non fonctionnels concernent les contraintes à prendre en considération pour mettre
en place une solution adéquate aux attentes des concepteurs des architectures dynamiques.
36
La sécurité : l’application devra être hautement sécurisée, les informations ne devront
pas être accessibles à tout le monde, c’est-à-dire que le site web est accessible par un
identifiant et un mot de passe attribué à une personne physique.
L’interface : avoir une application qui respecte les principes des interfaces
Homme/Machine tels que l’ergonomie et la fiabilité.
La performance : l’application devra être performante c’est-à-dire que le système doit
réagir dans un délai précis, quelque soit l’action de l’utilisateur.
La convivialité : l’application doit être simple et facile à manipuler même par des non
experts.
III. Conception :
1. Diagramme de cas d’utilisation :
Le diagramme de cas d’utilisation décrit les utilisations requises d’un système, ou ce qu’un
système est supposé faire. Les principaux concepts de ce diagramme sont les acteurs, cas
d’utilisation et sujets. Un sujet représente un système avec lequel les acteurs et autres sujets
interagissent.
37
2. Identification des acteurs :
Un diagramme de séquence est un document graphique qui montre pour des scénarios de cas
d'utilisation précis, les événements générés et les interactions entre objets en se basant sur des
messages ordonnés. Chaque message transitant sur un lien est symbolisé par une flèche porteuse
d'une expression. La lecture se fait de haut en bas, et l'ordre chronologique doit respecter ce
sens.
38
faut, et après la confirmation de ces informations, le système enregistre ces
informations.
Les scénarios
1. L’éditeur demande de créer une demande d’achat.
2. Le système demande de choisir le type de la demande d’achat à créer.
3. L’éditeur effectue son choix.
4. Le système affiche une fiche de création d’une demande d’achat selon le type
choisi.
5. L’éditeur remplit les champs du formulaire (désignation, fournisseur, articles,
quantité…).
6. Le système vérifie les champs introduits, sauvegarde les informations saisies, et
affiche un message correspondant à la réussite de l’opération.
39
3.2. Cas d’utilisation « Valider une demande d’achat »
But : Ce cas d’utilisation permet à ses acteurs de valider une demande d’achat reçu.
Les acteurs : Président de directoire, service RH, Responsable d’achat.
Description textuelle : le validateur demande au système de consulter les demandes
d’achats en cours de traitement pour la validation. Et il valide la demande pour qu’il
transite à l’étape suivante.
Les scénarios :
1. Le validateur demande la liste de DAs non validées.
2. Le système affiche la liste des demandes d’achats en attente de validation.
3. Le validateur valide la demande d’achat.
4. Message de réussite.
40
3.3. Cas d’utilisation « Suivre une demande d’achat »
But : ce cas d’utilisation permet à ses acteurs de suivre l’état d’une demande d’achat
s’elle est validée ou non.
Les acteurs : Editeur demande d’achat.
Description textuelle : l’éditeur demande au système de consulter la liste des demandes
d’achats en cours de traitement pour voir l’état de ses demandes.
Les scénarios
1. L’éditeur demande la liste des demandes d’achats en cours de traitement.
2. Le système envoi la liste des DAs en cours de traitement.
3. L’éditeur visualise l’état de ses demandes en cours.
41
3.4. Cas d’utilisation « répondre à une demande d’achat »
42
Figure III.9 : Diagramme de séquence « Répondre à une demande d’achat »
43
But : Ce cas d’utilisation permet à l’administrateur du système d’ajouter, modifier ou
supprimer un utilisateur, permet aussi d’affecter un rôle à un utilisateur (lors de la
création du compte, l’administrateur spécifie le login et le mot de passe de l’utilisateur).
Les acteurs : Administrateur
Description textuelle : l’administrateur a le droit d’ajouter, modifier ou supprimer un
utilisateur, le système demande les informations nécessaires pour l’action effectuer.
Les scénarios
Ajouter un utilisateur : permet d’ajouter un utilisateur à la liste des utilisateurs
selon l’enchainement suivant
1. L’administrateur du système demande d’ajouter un utilisateur.
2. Le système affiche un formulaire à remplir par l’administrateur pour
ajouter un utilisateur.
3. L’administrateur saisit les informations nécessaires et valide la création.
4. Le système créer un compte pour le nouvel utilisateur, le sauvegarde, et
retourne un avis d’enregistrement.
Modifier un utilisateur : permet de modifier un utilisateur donné selon
l’enchainement suivant :
1. L’administrateur demande la liste des utilisateurs.
2. Le système retourne la liste des utilisateurs.
3. L’administrateur sélectionne l’utilisateur qui lui convient.
4. Le système retourne la description complète de l’utilisateur (nom,
prénom, login…).
5. l’administrateur modifie tout ou une partie des informations concernant
l’utilisateur, et valide la modification.
6. Le système confirme la modification.
Supprimer un utilisateur : permet de supprimer un utilisateur selon
l’enchainement suivant
1. l’administrateur du système demande la liste des utilisateurs.
2. le système retourne la liste des utilisateurs.
3. l’administrateur du système sélectionne l’utilisateur à supprimer.
4. le système retourne la description complète de l’utilisateur (nom,
prénom, login...).
5. l’administrateur valide la suppression.
6. le système avertit l’administrateur, en lui affichant une confirmation de
suppression.
7. l’utilisateur sera supprimé dans le cas de confirmation.
44
Figure III.11 : Diagramme de séquence « Ajouter un utilisateur »
45
2. Le système retourne l’historique des demandes d’achat effectuées par
tous les filiales.
But : ce ces d’utilisation permet au responsable d’achat de consulter tous les bon de
commande.
Les acteurs : Responsable d’achat.
Description textuelle : après la validation d’une demande d’achat par le responsable
d’achat le système génère un bon de commande à partir de la demande d’achat. Le
responsable d’achat consulte tous les bons de commande et il a la possibilité de
l’imprimer.
46
Scénario
1. Le responsable d’achat demande au système la liste des bons de commande.
2. Le système retourne la liste des bons de commande.
3. Le responsable d’achat sélectionne un bon de bon de commande
4. Le système affiche les détails.
47
4. Diagramme de classe :
Conclusion
Dans ce chapitre, nous avons présenté le langage UML. Aussi nous avons fait la description des
diagrammes des cas d’utilisation, de classe et de séquence, et de contexte afin de délimiter le
cadre de notre travail et de préparer un terrain favorable pour la prochaine étape.
Maintenant, notre application est prête à être codée. Dans le chapitre suivant, nous allons nous
intéresser à l’implémentation de notre système en se basant sur la conception détaillée de ce
chapitre.
48
49
I. Introduction :
Dans chapitre précédent nous avons présenté les étapes de conception de l’application, ainsi
que les différents diagrammes des cas d’utilisation, par la suite nous avons détaillé cette phase
en établissant les diagrammes des classes ainsi que les diagrammes de séquences.
50
1.5. Outils d’administration base de données :
MySQL Workbench :
Nous avons appliqué MySQL Workbench comme un logiciel de gestion et d'administration de
bases de données MySQL, il possède une interface graphique intuitive, il permet, entre autres,
de créer, modifier ou supprimer des tables, des comptes utilisateurs, et d'effectuer toutes les
opérations inhérentes à la gestion d'une base de données. Pour ce faire, il doit être connecté à
un serveur MySQL.
HTML
HTML (Hyper Text Markup Language / langage hypertexte) est le langage dans lequel sont
écrites les pages du web. Un site web est constitué d’un ou plusieurs documents HTML,
appelées aussi pages. Pour se déplacer d’une page à l’autre dans nos modules on passe par
l’intermédiaire d'hyperliens. Pour ajouter des objets graphiques on utilise le HTML d’autre part
pour tester des pages web html en local, il suffit d'ouvrir le fichier dans un navigateur. Le HTML
n’est pas un langage de programmation comme le C++. Les langages dynamiques comme PHP
et Javascript vont d' ailleurs générer des pages HTML statiques.
JavaScript
JavaScript est un langage de programmation de scripts principalement utilisé pour les pages
web interactives comme les pages HTML. JavaScript est exécuté sur l'ordinateur de l'internaute
par le navigateur lui-même. C'est une extension du langage HTML qui est incluse dans le code.
Ce langage est un langage de programmation qui permet d'apporter des améliorations au
langage HTML en permettant d'exécuter des commandes. Ce code est directement écrit dans la
page HTML, c'est un langage peu évolué qui ne permet aucune confidentialité au niveau des
codes.
CSS
Les CSS, Cascading Style Sheets (feuilles de styles en cascade), servent à mettre en forme des
documents web, type page HTML ou XML. Par l'intermédiaire de propriétés d'apparence
(couleurs, bordures, polices, etc.) et de placement (largeur, hauteur, côte à côte, dessus, dessous,
etc.), le rendu d'une page web peut être intégralement modifié sans aucun code supplémentaire
51
dans la page web. Les feuilles de styles ont d'ailleurs pour objectif principal de dissocier le
contenu de la page de son apparence visuelle.
III. Développement :
1. Choix de la plateforme JEE :
Pour le développement de l’application, nous avons utilisé la plateforme JEE (Java Edition
Entreprise).
Parmi les avantages de la plateforme JEE, on peut citer :
Technologie sans frais : Java (sur le quel est basé JEE) est une technologie Open
Source, les outils de développement JEE sont disponibles gratuitement.
Maintenabilité : Les applications JEE sont plus faciles à entretenir, dans la plupart
des cas, ils sont conçus en plusieurs couches. Il est facile d'ajouter de nouvelles
fonctionnalités tierces pour les applications JEE en raison de sa fonction d'évolutivité.
Indépendance : Les applications développées avec JEE peuvent être déployées sur la
plupart des matériels disponibles. Elles offrent une flexibilité de matériel à l'utilisateur
final. Ainsi, l’utilisateur peut déployer et exécuter des applications JEE sur le système
d'exploitation et le matériel de son choix.
L'organisation globale d'une interface graphique est souvent délicate. L'architecture MVC ne
résout pas tous les problèmes. Elle fournit souvent une première approche qui peut ensuite être
adaptée. Elle offre aussi un cadre pour structurer une application.
Ce patron d'architecture impose la séparation entre les données, la présentation et les
traitements, ce qui donne trois parties fondamentales dans l'application finale : le modèle, la
vue et le contrôleur.
52
Figure IV.1 : Modèle MVC
1. Le modèle :
2. La vue :
La vue correspond à l'interface avec laquelle l'utilisateur interagit. Sa première tâche est de
présenter les résultats renvoyés par le modèle. Sa seconde tâche est de recevoir toutes les actions
de l'utilisateur (clic de souris, sélection d'une entrée, boutons, etc.). Ces différents événements
sont envoyés au contrôleur. La vue n'effectue aucun traitement, elle se contente d'afficher les
résultats des traitements effectués par le modèle et d'interagir avec l'utilisateur.
3. Le contrôleur :
Le contrôleur prend en charge la gestion des événements de synchronisation pour mettre à jour
la vue ou le modèle et les synchroniser. Il reçoit tous les événements de l'utilisateur et enclenche
les actions à effectuer. Si une action nécessite un changement des données, le contrôleur
demande la modification des données au modèle, et ce dernier notifie la vue que les données
ont changée pour qu'elle les mette à jour.
53
V. Phase de test :
En informatique, un test désigne une procédure de vérification partielle d'un système
informatique. Le but en est de trouver un nombre maximum de comportements problématiques
du logiciel, car il est impossible de prouver qu'un logiciel fonctionne bien dans tous les cas.
Plus on trouve d'erreurs, plus il y a de chances qu'il y ait d’avantage d'erreurs dans le composant
logiciel visé. Les tests de vérification ou de validation visent à s'assurer que ce système réagit
de la façon prévue par ses concepteurs (spécifications) ou est conforme aux attentes du client
l'ayant commandé (besoins), respectivement. Dans cette partie nous allons présenter une liste
des modules de test, scénario de test et le résultat obtenu à partir du tableau suivant :
Voici maintenant quelques captures d’écrans sur les principaux points d’entrées de
l’application :
54
1. Interface authentification :
Lors du clic sur le bouton « Entrer » de l’interface home, une interface d’authentification est
affichée. L’utilisateur doit introduire son Login et son mot de passe dans les champs
correspondants pour pouvoir accéder aux différentes fonctionnalités de l’application.
Une fois que le client a cliqué sur le bouton « Entrée », le système vérifie les données entrées.
En cas d’échec, il réaffiche la page d’authentification avec un message d’erreur. Si le Login et
le mot de passe sont valides, le système passe au menu principal.
2. Interface administrative :
55
Cette interface permet les ajouts, les suppressions et les modifications des différents utilisateurs.
Ces tâches sont effectuées par l’administrateur.
Cette interface permet aux éditeurs de créer des demandes d’achats, le système affiche une
formulaire pré-remplit.
4. Interface de consultation :
56
Cette interface permet aux utilisateurs de visualiser la liste des demandes d’achats ainsi que le
suivi des demandes d’achat s’ils sont validés ou non.
Cette interface permet de consulter la liste de bon de commande, permet aussi d’imprimer un
bon de commande.
Conclusion
La dernière partie de ce projet était dédiée à la navigation dans notre application. Cette partie
constitue le dernier volet de ce rapport ; elle a pour objet de présenter l’environnement logiciel
et matériel de réalisation. Elle a été clôturée par l’exposition des imprimés écrans décrivant
quelques interfaces de notre outil.
57
Conclusion générale
Tout au long de ce rapport, nous avons présenté les différentes étapes de réalisation de
l’application au sein de la société Upline Group. Pour le développement de ce projet la
technique UML a été utilisée, ce qui a permis de mener correctement la tâche d’analyse des
besoins à l’aide du diagramme de cas d’utilisation et la tâche de conception, ainsi les scénarios
sont aussi détaillés afin d’expliquer tous tâches faite Puisque nous travaillons avec le plateforme
J2EE.
Ce projet nous a donné l’opportunité de s’initier à la vie professionnelle dans un milieu réel et
avoir un début d’expérience significatif, et il nous a appris comment dès le matin on peut
prendre le parti de la gaieté, comment réussir de bonnes relations pour assurer un travail de
groupe, comment compter sur soi pour résoudre les problèmes au cas où ils se présentent,
comment être méticuleuses dans notre travail, comment être attentives aux indications de nos
supérieurs, comment être bien organisées pour accomplir dans les meilleurs délais, et meilleures
conditions les tâches qui nous sont confiées.
Au cours de la réalisation de notre projet, nous avons étaient astreints par quelques limites
notamment, la contrainte du temps qui était relativement un obstacle devant l’ajout de certaines
autres fonctionnalités. Cependant, il était une occasion pour mettre en évidence et déployer sur
le plan pratique nos connaissances en informatique.
Le projet peut être amélioré, et ce, en lui ajoutant quelques modules ou interfaces pour mieux
l’adopter aux besoins de l’utilisateur et pour qu’il soit toujours fiable et au niveau des progrès
atteint par la société.
58