Académique Documents
Professionnel Documents
Culture Documents
Département d’Informatique
Thème
Réalisé par :
0
Remerciements
Nous remercions en premier lieu le bon Dieu de nous avoir donnés les moyens et l’énergie
mais surtout la volonté nécessaire pour la réalisation de ce modeste travail.
Nos chers parents pour tous les sacrifices consentis à notre égard ;
Nous tenons à adresser nos plus profonds et sincères remerciements à notre encadreur
Mr. Khaled Bedjou de nous avoir encadré et guidé tout au long de ce projet ;
Nous tenons à remercier tous ceux qui nous ont soutenu et aidé dans la réalisation de ce
mémoire de près ou de loin.
Nous remercions, enfin, les membres du jury qui ont accepté d’évaluer ce mémoire.
2-Analyse et conception……………………………………………………..............11
2-1 Analyse………………………………………………………………………………..11
1-Administrateur..…………………………………………………………………12
2-Directeur……………………………………………………………..................12
3-Responsable dépôt………………………………………………………………13
4-Chef magasin……………………………………………………………………13
5-Magasinier……………………………………………………………………..13
A) Besoins fonctionnels………………………………………………………….13
B) Besoins non fonctionnels…………….………………………………………14
Conclusion et perspectives………………………………………………………………29
Figure 3-4 :NetBeans…………………………………………………………………………24
Introduction Générale
5
Avant l'invention de l'ordinateur, les entreprises enregistraient toutes les informations
manuellement sur des supports en papier ce qui n’était pas vraiment pratique car cela créé
beaucoup de problèmes tel que la perte de temps considérable dans la recherche de ces
informations ou la dégradation de ces dernières. Mais Une entreprise étant déterminée par une
concurrence acharnée, elle est dans l'obligation de respecter les exigences de productivité, de
qualité, de coût et de délai pour répondre au mieux aux besoins des clients.
-En effet, les stocks entraînent avec le temps des coûts de plus en plus importants. Le fait de
maintenir une grande quantité de stocks peut provoquer un effet nuisible sur la gestion
financière d’une entreprise. D’un autre côté, ces stocks sont importants pour éviter les risques
reliés aux délais de livraison et aux comportements changeants des utilisateurs. C’est là où les
gestionnaires doivent trouver un bon équilibre entre les niveaux de leurs stocks afin de réduire
les coûts, en réduisant les niveaux d'inventaire sans risquer l'interruption de vente en raison de
rupture de stock.
Pour éviter ces problèmes à présent l'ordinateur est le moyen le plus sûr pour le traitement et
la sauvegarde de l'information. Cette invention a permis d'informatiser les systèmes de gestion
de données des entreprises, ce qui est la partie essentielle dans leur développement
aujourd'hui.
C’est pour ça que notre projet de fin de cycle a pour objectif de concevoir et mettre en œuvre
une application desktop de gestion de stocks avec code a barre interactive, fiable et facile à
intégrer dans l'environnement de travail des entreprises. Pour cela, notre choix s'est porte sur
la Méthode de développement logiciel UP (Processus Unified) et UML (Unified Modeling
Language) comme langage de modélisation.
Nous avons commencé notre projet par la présentation de la problématique et les objectifs
visés par notre travail. Après nous avons fait une analyse et conception détaillée de notre
application en présentant les spécifications des besoins et les cas d'utilisation avec les
diagrammes nécessaires. Ensuite il y a l'implémentation et la réalisation de notre application,
ou nous avons défini tous les outils qui nous ont permis de concevoir notre application
desktop et quelques interfaces y seront présentées. Enfin, notre projet s’achèvera par une
conclusion générale.
6
1-Présentation du projet
Dans cette partie on présente quelques problèmes avec objectifs et solutions qui
concernent des applications de gestion de stock.
1-1 Problématique
La gestion des fournitures et des informations dans n’importe quelle entreprise
nécessite une organisation pointue et une sécurité accrue, surtout dans le domaine de la
gestion de stocks.
Une lourdeur dans la gestion quotidienne du stock en utilisant des fiches et des
documents en papiers.
Une faible sécurité des informations concernant les documents.
Une difficulté dans la recherche de documents qui engendre une perte de temps.
La non disponibilité des informations en temps réel, ce qui peut engendrer une perte
d’argent.
Risque de ruptures de stocks.
Des erreurs de calcul, erreur administratives et non traçabilité des taches réaliser.
1-2 Objectifs
Les objectifs de la gestion des stocks sont précisément dirigés vers une performance
accrue pas une meilleure maitrise des stocks telle :
- Une gestion souple et rapide (ajout, modification et suppression) des produits, des clients et
des fournisseurs.
- Une sécurité d’accès et une traçabilité et historiques de toutes les tâches effectuées sur
l’application.
- Une conception qui permet de faire sortir les états de stocks (liste de tous les produits, listes
des entrées, listes des sorties…).
7
Le code a barre a pour but d’aider les entreprises dans la gestion des stocks dans la
recherche des produits, c’est pour cela quand la ajouté dans notre application.
Si les barre sont remplacé par des carrés ou des points, il est considéré comme bidimensionnel.
Les codes barre portent des indications concernant le pays d’où les produits proviennent. [W2]
a) Unidimensionnel (1D)
Ces codes sont ceux représentés par une série de lignes parallèles (voir figure1-1)
d'épaisseur variable. Leur lecture est unidimensionnelle. Selon la technologie de lecture utilisée,
le décodage pourra se faire de façon unidirectionnelle ou bidirectionnelle afin de confirmer le
premier décodage. [W3]
Les codes-barres EAN : EAN 8, EAN 13, Code Universel des Produits (CUP).
Le code-barres Monarch (alias 2 parmi 7, 2 of 7, Ames Code, Rationalized Codabar) :
format obsolète utilisé dans les bibliothèques.
Le Code 11 : format obsolète utilisé en téléphonie.
Le Code 39 : utilisé dans le secteur automobile, constructeurs et équipementiers.
Le Code 93 : utilisé pour 'acheminement du courrier.
8
Le Code128 : utilisé pour des besoins de logistique et de traçabilité.
Le 2 parmi 5 : utilisé par les postes de canada.
Le Code Plessey : utilisé pour les magasins à rayons, les entrepôts et les inventaires.
Le code GS1 : utilisées dans la chaîne logistique.
Le code PostBar : utilisé par Postes Canada.
Le code Postnet : utilisé par la poste américaine.
b) Bidimensionnels (2D)
Ces codes utilisent une variété de symboles (rectangles, points, hexagones et autres
formes géométriques). Cette forme matricielle permet d'enregistrer davantage d'informations
(voir figure 1-2). On distingue deux familles de codes 2D : [W3]
b.1) Les codes empilés Il s'agit de codes 1D empilés (Code one, PDF417, etc.).
Ces codes peuvent aussi être lus par les lecteurs 1D en faisant un balayage du code.
b.2) Les codes bidimensionnels Il s'agit de codes dont les motifs constituent une forme souvent
rectangulaire ou carrée qui ne peuvent être lus que par des technologies de prise de photos. Voici
quelques types de codes-barres bidimensionnels (2D).
Le PDF-417 : Portable Data File, code avec une grande capacité de stockage.
Le Code 1 : de domaine public, utilisé pour les étiquettes médicales et l'industrie du
recyclage.
Le code One : utilisé dans les industries électronique et chimique.
Le DataMatrix surnommé Tag pour certaines applications.
Le DPM : Direct Part Mark, code DataMatrix gravé dans la matière comme le métal, le
verre, le caoutchouc…
Le Flashcode : spécification issue de DataMatrix.
Le MaxiCode : de domaine public, utilisé par United Parcel Service.
Le Code Aztec : utilisé par les compagnies ferroviaires.
Le Bokode : code expérimental, prévu pour contenir beaucoup plus d’informations que
les autres codes-barres tout en étant bien plus petit.
Le Code QR : Quick Response, conçu pour être décodé rapidement, stocker une grande
quantité d'informations et être lu par plusieurs types d'appareils.
Le High CapacityColorBarcode : créé par Microsoft.
Le MMCC : Mobile Multi-Coloured Composite
9
1-4-3 Appareil de lecture de code-barres
Pour décoder un code-barres, il faut un lecteur relié à un ordinateur. Un lecteur de codebarres
est un appareil électronique servant à lire les informations stockées sous la forme de codes-barres
(voir figure 1-3 ) . Il est l'ancêtre du lecteur de code QR. Tout d'abord implémentés sous la forme
de crayons optiques avec lesquels l'utilisateur devait manuellement balayer le code à une vitesse
aussi constante que possible, ils ont ensuite évolués grâce à l'application de miroirs mobiles, vers
des scanners automatiques. [W4]
- Une connaissance plus rapide des ventes réalisées pour un produit par tous ses partenaires
commerciaux.
- Une fluidité des opérations et temps d’attente réduit au niveau des caisses.
10
1-4-5 Le code-barres utilisé dans l’implémentation
Le code-barres utilisé dans notre travail est de type unidimensionnel c’est un type de code-
barres à une seule dimension.
-On a choisi un code a une dimension car facilite la traçabilité des produit
2. Analyse et conception
Nous présentons dans cette partie, deux phases du processus UP qui sont : L’analyse et la
Conception. Nous commençons par l’analyse ensuite la conception.
2-1 Analyse
Dans cette 1ère partie, nous allons présenter le langage de modélisation UML et le processus UP,
qu’on a utilisé pour notre application avec les acteurs et quelques diagrammes.
Ce langage est certes issu du développement logiciel, mais pourrait être appliqué à toute science
fondée sur la description d’un système.
UML modélise l'ensemble des données et des traitements en élaborant des différents diagrammes.
[W5]
11
2-1-3 Processus up
Le processus unifié est un processus de développement logiciel, il regroupe les activités à
mener pour transformer les besoins d’un utilisateur en système logiciel (voir figure 2-2). L'objectif
d'un processus unifié est de maîtriser la complexité des projets informatiques en diminuant les
risques. C'est un patron de processus pouvant être adapté à une large classe de systèmes logiciels,
à différents domaines d'application, à différents types d'entreprises, à différents niveaux de
compétence et à différentes tailles de l'entreprise. [W6]
Figure 2-2 : processus up
Suivant le processus up, nous allons nous nous sommes limités à 3 types de Diagrammes qui
sont :
Diagramme de séquence.
Diagramme de classe.
On a choisi Le diagramme de cas d’utilisation parce qu’il donne une version globale de
comportement d’un système logiciel, et pour le diagramme de séquence il aide a représenté
graphiquement les interactions entre les acteurs et les systèmes.
Enfin le diagramme de classe est utilisé pour mettre en relation les classes et les interfaces du
système.
Alors nous avons déterminé Cinq acteurs principaux interagissant avec le système qui
sont :
12
2. Directeur : supervise l’ensemble des activités et possède les mêmes droits
d’utilisation que tous les acteurs du système.
3. Responsable dépôt : C’est la personne qui gère les magasins, les fournisseurs et le
stock des produits, valide la facture et les bons fournisseurs.
4. Chef magasin : C’est la personne qui peut gérer les clients et les produits du magasin
et établit la facture client.
5. Magasinier : C’est la personne qui établit le devis, la facture et les bons clients et peut
consulter les produits.
A) Besoins fonctionnels
Les besoins fonctionnels expriment une action que doit effectuer le system en réponse à une
demande.
L’analyse des besoins fonctionnels nous a amené à décomposer ces besoins pour chaque
acteur de notre système en Cinq parties principales :
13
Consulter, ajouter, modifier, rechercher ou supprimer un client et un produit du
magasin.
Imprimer et Etablir la facture client.
Imprimer et valider le bon d’achat client.
Il s’agit des besoins qui caractérisent le système. Ce sont des besoins en matière de
performance ou de type matériels. Ces besoins peuvent concerner les contraintes
d’implémentation.
Dans le cadre de ce travail, c’est une application desktop client/serveur qui sera installé dans
un réseau local (LAN) et qui devra être extensible, c’est-à-dire qu’il pourra y avoir une
possibilité d’ajouter ou modifier de nouvelles fonctionnalités, et devra aussi répondre aux
caractéristiques suivantes :
L’accès doit se faire au moyen d’un numéro utilisateur et d’un mot de passe.
Le système doit être interactif et fiable.
L’interface doit être simple à cerner par l’utilisateur.
Chaque produit doit posséder un code barre unique
Ci-dessous nous avons représenté le diagramme de cas d’utilisation globale qui décrit
l’ensemble des cas d’utilisation associés aux différents acteurs de notre système. [W7]
14
Diagramme de cas d’utilisation globale
15
2-1-7 Diagramme de séquence
Les diagrammes de séquences sont la représentation graphique des interactions
entre les acteurs et le système selon un ordre chronologique. Ci-dessous nous avons choisis de
représenter que trois diagrammes de séquences qui sont crucial pour notre application. [W8]
16
Diagramme de séquence ajout d’un produit
17
Diagramme de séquence recherche
18
Après avoir fait l’analyse des besoins de notre application, et élaboré les différents
digrammes de cas d’utilisation et de séquences qui représentent les différentes fonctionnalités
et interactions entre les acteurs et le système, nous entamons la partie Conception de notre
solution à travers l’élaboration du diagramme de Classe de Conception, le modèle du domaine
et le modèle relationnel.
2-2-Conception
Dans cette partie, nous présentons la conception de notre application, en illustrant le
diagramme de Classe de Conception, le modèle du domaine et le modèle relationnel.
Ci-dessous nous avons représenté le diagramme de classe qui décrit la constitution de notre
système.
19
Diagramme de classes
20
2-2-2 Diagramme de modèle de domaine
Le diagramme de modèle de domaine est le modèle conceptuel d’un domaine. Il
comprend tant le comportement que les données. [W10]
Modèle de domaine
21
2-2-3 Modèle relationnel de données
Le modèle relationnel de données est une manière de modéliser les relations existantes
entre plusieurs informations, et de les ordonner entre elles. Nous avons fait le passage vers le
modèle relationnel en respectant les règles de passage. [W11]
22
Après avoir fait le diagramme de classe et élaboré la relation entre les différents de ces
dernières, on a ensuite réalisé le modèle de domaine et le modèle relationnel de données qui
modélise les relations existantes entre plusieurs informations, nous entamons la partie
implémentation de notre solution à travers l’élaboration des différent outils et langages utilisé
dans notre application et une brève de notre application.
3. Implémentation
Dans cette partie, Nous allons essayer de projeter la lumière sur les grandes étapes de
la réalisation de notre application, en commençant par le choix des outils de développement et
langage utilisés en arrivant à la présentation des différentes fonctionnalités offertes.
1-Outils utilisés
Dans cette partie nous avons défini les outils utilisés dans notre programmation.
ArgoUML
ArgoUML est un logiciel libre de création de diagrammes UML. Programmé en Java, il
est édité sous licence EPL 1.0. Il est multilingue, supporte la génération de code et l'ingénierie
inverse (voir figure 3-1). [W12]
MYSQL
MYSQL est un système de gestion de bases de données relationnelles (SGBDR). Il est
distribué sous une double licence GPL et propriétaire. Il fait partie des logiciels de gestion de
base de données les plus utilisés au monde, autant par le grand public (applications web
principalement) que par des professionnels, en concurrence avec Oracle, PostgreSQL et
Microsoft SQL Server (Voir figure 2-3). [W13]
23
Figure 3-2 : MYSQL
WampServeur
WampServeur est une plateforme de développement Web de type WAMP, permettant de
faire fonctionné localement (sans avoir à se connecter à un serveur externe) des scripts PHP.
WampServer n'est pas en soi un logiciel, mais un environnement comprenant trois serveurs
(Apache, MySQL et MariaDB), un interpréteur de script (PHP), ainsi que phpMyAdmin pour
l'administration Web des bases MySQL (voir figure 3-3) . [W14]
NetBeans
NetBeans est un environnement de développement intégré (EDI), placé en open source par
Sun en juin 2000 sous licence CDDL (Common Development and Distribution License) et
GPLv2. En plus de Java, NetBeans permet la prise en charge native de divers langages tels le
C, le C++, le JavaScript, le XML, le Groovy, le PHP et le HTML, ou d'autres (dont Python et
Ruby) par l'ajout de greffons. Il offre toutes les facilités d'un IDE moderne (éditeur avec
coloration syntaxique, projets multi-langage, refactoring, éditeur graphique d'interfaces et de
pages Web) (voir la figure 3-4). [W15]
24
JDBC
JDBC Est une interface de programmation créée par Sun Microsystems, depuis racheté
par Oracle Corporation, pour les programmes utilisant la plateforme Java. Elle permet aux
applications Java d'accéder par le biais d'une interface commune à des sources de données
pour lesquelles il existe des pilotes JDBC. Normalement, il s'agit d'une base de données
relationnelle, et des pilotes JDBC sont disponibles pour tous les systèmes connus de bases de
données relationnelles (voir la figure3-5) [W16]
Figure 3-5 : JDBC
2 Langages utilisés
Dans cette partie nous avons défini les langages utilisés dans notre programmation.
Langage Java
Java est un langage de programmation orienté objet.
La particularité et l'objectif central de Java est que les logiciels écrits dans ce langage doivent
être très facilement portables sur plusieurs systèmes d’exploitation tels que Unix, Windows,
Mac OS ou GNU/Linux, avec peu ou pas de modifications, mais qui ont l'inconvénient d'être
plus lourd à l'exécution (en mémoire et en temps processeur) à cause de sa machine virtuelle.
Pour cela, divers plateformes et frameworks associés visent à guider, sinon garantir, cette
portabilité des applications développées en Java (Voir figure 3-6). [W17]
SQL
SQL est un langage informatique destiné à interroger ou piloter une base de donnée, La
partie langage de manipulation des données de SQL permet de rechercher, d'ajouter, de
modifier ou de supprimer des données dans les bases de données relationnelles (Voir figure 3-
7). [W18]
25
Figure3-7 : SQL
Bibliothèques externes
1. L’interface d’accueil
Si le système valide les données entrer par l’utilisateur, l’interface concerner sera affichée ou
il pourra accéder aux différentes fonctionnalités.
27
Figure 3-11 : interface de gestion des clients.
28
Conclusion et perspective
Dans ce travail, nous nous somme intéressé au développement d’une application de
gestion du stock. Notre application permet aux magasiniers de garder une trace sur tous les
mouvements effectués (entrée et sortie des produits,) dans les stocks de l’entreprise. Avec ses
mouvements. L’application permet aussi la gestion des clients, des fournisseurs, ainsi que la
gestion des factures des achats et des ventes.
Au final, les recherches et les études réalisées toute au long de ce projet de fin d’études, nous
ont permis de consolider nos connaissances dans le domaine de gestion de stock, mais aussi
d’acquérir de nouvelles connaissances à-propos de l’utilisation des codes à barres et d’enrichir
nos connaissances dans d’autres domaines variés à l’instar de la modélisation UML, la
programmation sous Java et la gestion des bases de données.
Bien que les objectifs que nous avons tracés lors de la réalisation de ce projet ont été réalisés
avec succès, il reste certains points à perfectionner et d’autres fonctionnalités à développer,
comme :
29
- Références Bibliographique -
Sites web :
[W1] https://www.gralon.net/articles/materiel-et-consommables/materiels-
industriels/articlele-code-barres-histoire-d-une-invention-3942.htm.........................................8
[W2] https://www.futura-sciences.com/tech/definitions/technologie-code-barres-11112........8
[W3] https://fr.wikipedia.org/wiki/Code-barres........................................................................8
[W4] https://fr.wikipedia.org/wiki/Lecteur_de_code-
barres....................................................10
[W6] https://fr.wikipedia.org/wiki/Unified_process................................................................12
[W7] https:/fr.m.wikipedia.org/wiki/Diagramme_des_cas_d%27utilisation………………..14
[W8] https://fr.m.wikipedia.org/wiki/Diagramme_de_s%C3%A9quence……………..........16
[W9] https://www.lucidchart.com/page/fr/tutoriel-sur-les-diagrammes-de-classes……........19
[W10] https://www.fr.m.wikipedia.org/wiki/Mod%C3%A8le-de-domaine...........................21
[W11] https://www.fr.m.wikipedia.org/wiki/mod%C3%A8le_relationnel............................22
[W12] https://fr.wikipedia.org/wiki/ArgoUML......................................................................23
[W13] https://fr.wikipedia.org/wiki/MySQL..........................................................................23
[W14] https://fr.wikipedia.org/wiki/WampServer..................................................................24
30
[W15] https://fr.wikipedia.org/wiki/NetBeans........................................................................24
[W16] https://fr.wikipedia.org/wiki/Java_Database_Connectivity.........................................25
[W17] https://fr.wikipedia.org/wiki/Java_Database_Connectivity.........................................25
[W18] https://www.futura-sciences.com/tech/definitions/informatique-sql-2524..................25
Ouvrages :
L. Debrauwer, F. Van Der Heyde, UML 2.5 : Initiation, Exemples et Exercice corrigés, ENI,
4e édition, 2016
31