Application de Gestion de Stock Pharma
Application de Gestion de Stock Pharma
UNIVERSITE D’ANTANANARIVO
----------------------
ECOLE SUPERIEURE POLYTECHNIQUE
-----------------------
MENTION TELECOMMUNICATION
MEMOIRE
en vue de l’obtention
du DIPLOME de LICENCE
Examinateurs :
M. RANDRIAMANAMPY Samuel
M. BOTO ANDRIANANDRASANA Jean Espérant
M. RAKOTONDRAINA Tahina Ezéchiel
Directeur de mémoire :
M. RANDRIAMIHAJARISON Jimmy
REMERCIEMENTS
Je tiens à exprimer en premier toute ma gratitude à Dieu de m’avoir donnée la santé et le courage
de réaliser ce travail.
J’adresse par la suite mes plus vifs remerciements ainsi que mes sentiments et mes
reconnaissances les plus respectueux à quelques personnes qui m’ont aidé à l’achever et qui
m’ont aussi assisté jusqu’à son aboutissement final, à savoir :
i
TABLE DES MATIERES
REMERCIEMENTS ................................................................................................................. i
ABREVIATIONS .................................................................................................................... vi
1.3.5 Merise................................................................................................................................ 8
CHAPITRE 2 ........................................................................................................................ 12
CHAPITRE 3 .......................................................................................................................... 20
iii
3.5.2 HTML ............................................................................................................................. 31
3.6.3 S ....................................................................................................................................... 36
ANNEXES 1 ............................................................................................................................ 52
iv
A1.2 Extrait de code de la page d’accueil ............................................................................. 53
ANNEXES 2 ............................................................................................................................ 55
APPLICATION WEB............................................................................................................ 55
BIBLIOGRAPHIE ................................................................................................................. 59
RESUME ................................................................................................................................. 62
ABSTRACT ............................................................................................................................ 62
v
ABREVIATIONS
CD : Compact Disc
CV : Curriculum Vitæ
E/R : Entité/Relation
FI : Form Interpreter
vi
MCD : Modèle Conceptuel de Données
PC : Personnal Computer
vii
INTRODUCTION GENERALE
Durant ces dernières années, l'informatique s'est imposée d'une manière très impressionnante
dans les entreprises, cela est dû à son apport extraordinaire dans le domaine de gestion des bases
de données.
En effet, l'informatique désigne l'automatisation du traitement de l'information par un système
concret (machine) ou abstrait. On entend également par l'informatique, l'ensemble des sciences
et techniques en rapport avec le traitement de l'information.
L'informatique est de plus en plus utilisée dans tous les domaines d'activités y compris celui de
la gestion des stocks auquel nous rattacherons d'ailleurs notre étude, et cela pour une meilleure
gestion des différents traitements exigés par cette activité de gestion des stocks.
Nous avons pu constater, en effet, pendant nos recherches que l'ensemble des traitements au
sein du magasin de stockage d’une pharmacie se fait manuellement, ce qui engendre un certain
nombre de problèmes tels que la lenteur dans l'accès aux données et le risque de perte
d'informations ; donc la meilleure solution pour pallier aux problèmes est l'informatisation afin
d'assurer l'accès instantané aux données et une sécurisation de ces dernières, ce qui simplifie le
travail administratif d’où la mise en place de notre projet qui s’intitule : « LA CREATION
D’UNE APPLICATION DE GESTION DE STOCK PHARMACEUTIQUE :
GESTPHARMA ».
Ayant présenté les outils et la méthode adoptée, nous allons maintenant exposer le plan de
travail qui se subdivisera en quatre principaux chapitres.
Dans le premier chapitre, nous commençons à introduire le thème en développant la
numérisation de l’information et l’étude de base de données.
Puis, au sein de l’insertion du thème dans le deuxième chapitre, nous analysons la gestion des
stocks et l’application lui-même.
Au niveau de troisième chapitre, nous étendons la représentation l’analyse des besoins et les
outils utilisés durant la réalisation de notre projet. Finalement dans le dernier chapitre qu'on a
nommé : Conception et Réalisation de GestPharma, nous présentons le déroulement de la
réalisation de notre projet.
1
CHAPITRE 1
NUMERISATION DE L’INFORMATION ET ETUDE DE BASE DE DONNEES
1.1 Introduction
Pour être traitées automatiquement, toutes les informations qu'il s'agisse de données chiffrées,
de textes, d'images, ou encore de sons, sont traduites sous une forme conventionnelle
numérique, en fait binaire (0 et 1). Les données ainsi obtenues ont toutes le même format,
homogène. Une première conséquence est leur possible dématérialisation, c’est-à-dire leur
dissociation de tout support physique. [2]
2
Ce que l’utilisateur a devant soi, c'est donc toujours le couple « machine » plus « logiciel ». De
plus, dans une tâche instrumentée par de tels systèmes, il est rare de ne pas utiliser plusieurs
logiciels, et donc finalement plusieurs systèmes, en même temps.
Il est aussi de plus en plus rare d'utiliser un système informatique qui ne soit en réseau avec
d'autres systèmes. Des systèmes qui échangent des données, mais aussi des traitements. Ces
systèmes voient ainsi leurs capacités de stockages et de traitements augmenter.
Les modes d'échanges des systèmes informatiques sont basés sur des processus d'envoi d’une
requête puis d’attente d’une réponse. Les deux systèmes concernés sont mis, l’un dans un rôle
de client (celui qui envoie la requête), et l’autre de serveur (celui qui répond à la requête, qui
rend un service). Ces processus nécessitent des données et traitements spécifiques. Dans la
mesure où les systèmes en communication peuvent utiliser des technologies différentes, il est
nécessaire d’établir des conventions et des normes sur les formats des données échangées, les
langages permettant de les communiquer, ainsi que les protocoles suivis par ces échanges.
3
composants, et leur performance, font l’objet de progrès et d’innovation et sont donc très
variables.
La machine ne fonctionne pas seule, nue, sans logiciels ou programmes. Ils décrivent, dans un
langage interprétable par la machine, des traitements à réaliser et les données sur lesquelles les
réaliser. Lors d’une session d’utilisation d’une machine informatique, on utilise en fait de
nombreux programmes. Certains programmes font fonctionner la ou les machines utilisées (le
système d’exploitation, les pilots d’imprimantes, les gestionnaires de bus de communication,
etc.). D’autres programmes sont directement utilisés par l’utilisateur pour l’assister dans la
réalisation d’une tâche et l’obtention d’un résultat. Ce sont les logiciels applicatifs.
Ce que l’utilisateur a devant soi, c'est donc toujours le couple « machine » plus « logiciel ». De
plus, dans une tâche instrumentée par de tels systèmes, il est rare de ne pas utiliser plusieurs
logiciels, et donc finalement plusieurs systèmes, en même temps. [4]
Il est aussi de plus en plus rare d'utiliser un système informatique qui ne soit en réseau avec
d'autres systèmes. Des systèmes qui échangent des données, mais aussi des traitements. Ces
systèmes voient ainsi leurs capacités de stockages et de traitements augmenter.
Les modes d'échanges des systèmes informatiques sont basés sur des processus d'envoi d’une
requête puis d’attente d’une réponse. Les deux systèmes concernés sont mis, l’un dans un rôle
de client (celui qui envoie la requête), et l’autre de serveur (celui qui répond à la requête, qui
rend un service). Ces processus nécessitent des données et traitements spécifiques. Dans la
mesure où les systèmes en communication peuvent utiliser des technologies différentes, il est
nécessaire d’établir des conventions et des normes sur les formats des données échangées, les
langages permettant de les communiquer, ainsi que les protocoles suivis par ces échanges.
Une base de données est un ensemble structuré de données apparentées qui modélisent un
univers réel.
Une base de données est faite pour enregistrer des faits, des opérations au sein d'un organisme
(administration, banque, université, hôpital, ...).
Les bases de données ont une place essentielle dans l'informatique. [5]
4
1.3.1 Généralisation
Une base de données est une collection de données connexes à partir desquelles l'utilisateur
peut efficacement extraire des informations. Les données sont stockées dans un emplacement
central et partagées par différents utilisateurs. Les applications de base de données sont
largement utilisées dans de nombreux domaines: réservation de voyages, horaires de vols, suivi
de comptes ou d'emprunts, inscription à des cours, résultats d'examens, annuaires
téléphoniques, magasins en ligne, billetterie, consultations médicales, suivi d'achats, de stocks,
facturation, bibliothèques numériques, listes de produits et de clients, payement des salaires,
suivi des vacances, taxation, informations géographique ainsi que conception assistée par
ordinateur.
Une base de données peut-être partagée entre plusieurs utilisateurs en même temps d’où le
contrôle des accès concurrents.
Dans les applications de fouille de données (data mining), des renseignements bruts sont
collectés et placés dans une base de données géante, puis sont analysés et synthétisés en vue
d'en extraire des renseignements potentiellement utiles. Les applications de fouille de données
sont utilisées dans le domaine de la santé, du commerce et des banques pour obtenir des
réponses à des questions telles que « quelle est la probabilité d'obésité d'un adulte qui mange
rarement des fruits et des légumes ? », ou « quels sont les facteurs qui conduisent un client à
fermer son compte en banque ? », ou encore « quelle est la différence entre le panier d'achats
d'un habitant des villes et un habitant des campagnes ? ».
Les applications de base de données font appel à un logiciel moteur le SGBD pour définir,
stocker, retrouver et manipuler le contenu de la base de données, ainsi que contrôler la
redondance des données, imposer de la cohérence, et partager les informations entre plusieurs
utilisateurs. Dans ce type d'application, les utilisateurs expérimentés peuvent manipuler
directement le SGBD, pour répondre à des demandes complexes, tandis que les demandes
ordinaires sont effectuées en utilisant l'application et ne requièrent pas de connaissances
techniques.
1.3.2 Systèmes de gestion de base de données (SGBD)
Généralement, une base de données est contrôlée par un système de gestion permettant
d’effectuer la recherche, le tri ou la fusion de données, ainsi que toute autre requête relative à
ces données. Les bases de données comptent à l’heure actuelle de nombreux domaines de mise
5
en pratique : gestion de stocks, suivi commercial, gestion électronique de documents, gestion
de clientèle, etc.
Parmi les systèmes de gestion de bases de données (SGBD), les plus courants sont ceux associés
aux bases de données relationnelles (SGBDR), où l’information est rangée dans des fichiers,
sous forme de tables composées de lignes et de colonnes. Les lignes représentent les
enregistrements (ensembles d’informations relatives à des rubriques séparées), tandis que les
colonnes correspondent aux champs (attributs spécifiques à un enregistrement).
Lorsque l’on effectue une recherche dans une base de données relationnelle, on peut associer
l’information d’un champ d’une première table à celle d’un champ d’une deuxième table, afin
d’en produire une troisième rassemblant certaines données des deux tables d’origine. Par
exemple, si une table contient les champs N° EMPLOYÉ, NOM, PRÉNOM et DATE-
EMBAUCHE, et qu’une autre table contient les champs SERVICE, N° EMPLOYÉ et
SALAIRE, une base de données relationnelle pourra associer les champs N° EMPLOYÉ des
deux tables pour rechercher certaines informations, telles que les noms de tous les employés
ayant un certain revenu ou les services de tous les employés embauchés après une date donnée.
En d’autres termes, une base de données relationnelle utilise les correspondances existant entre
plusieurs tables pour en définir de nouvelles. [6]
Un SGBD doit permettre de décrire indépendamment des applications (de manière intrinsèque).
Il doit aussi manipuler des données c’est-à-dire interroger et mettre à jour les données sans
préciser l’algorithme d’accès.
Un SGBD permet aussi la vérification, le control des données.
Le choix de SGBD est également important dans la création d’une application. Il existe comme
le choix de langage de programmation quelques éléments à savoir :
- licence: libre et gratuit ou payant
- la plateforme: sa capacité à s’adapter aux plateformes
- les avantages: les plus par rapport aux autres SGBDR
6
On va voir un tableau récapitulatif pour bien déterminer un SGBDR :
En règle générale, les bases de données conçues pour les micro-ordinateurs sont relationnelles.
De nos jours, il existe de nombreux logiciels de gestion de bases de données relationnelles :
Access de Microsoft, Paradox de Novell, Oracle de Oracle Systems, etc.
La plupart d’entre eux utilisent le langage SQL, langage d’interrogation, de mise à jour et de
gestion de bases de données relationnelles.
1.3.4 Méthodes de conception de base de données
Lorsque l’on décide de créer une base de données relationnelle, il faut surtout veiller à définir
clairement ses caractéristiques. Les données du problème doivent être énoncées avec précision
et décidées en amont selon les besoins à traiter, la réalisation et l’installation de la base de
données s’avérant alors beaucoup plus souples.
En effet, une erreur de conception pourrait en générer d’autres bien plus graves lors de
l’installation de la base, allant parfois même jusqu’à la perte de certaines données.
7
C’est pour ceux que des méthodes de conception de bases de données ont été mises au point
afin d’éviter les erreurs majeures : la méthode MERISE constitue ainsi l’une des méthodes la
plus employée en entreprise, mais d’autres comme UML, HOOD, OOA ou encore REMORA
sont également très présentes dans les milieux industriels.
1.3.5 Merise
Merise ou Méthode d’Etude et Réalisation Informatique par Sous Ensemble étant une méthode
de conception et de développement de système d’information.
Réel perçu
Invariant / Stable
Conceptuel
Organisationnel
Logique
Physique
Variable
9
[Link] Modèle conceptuel de données (MCD)
Le MCD a pour objectif de modéliser les données (aspect statique) à mémoriser et à traiter ;
l’objectif est d’avoir des données toujours cohérentes et intègres ; il s’agit donc d’une
représentation des données, facilement compréhensibles.
Le MCD est une représentation graphique des données à un niveau conceptuel, c'est-à-dire, sans
se préoccupé ni des contraintes d’organisation, ni du gestionnaire de bases de données utilisé,
ni des traitements.
Le MCD de Merise correspond au modèle Entité-Association.
Une Entité est la représentation d’un élément matériel ayant un rôle dans le système que nous
souhaitons décrire.
Une Propriété est une donnée élémentaire que nous percevons sur une entité. L’identifiant d’une
entité est une propriété (ou ensemble de plusieurs propriété) de l’entité telle que à chaque valeur
de l’identifiant correspond une et une seul occurrence de l’entité.
Une association est un lien perçu dans le réel entre deux ou plusieurs entités.
La cardinalité d’une entité par rapport une association s’exprime sous forme d’un couple :
(cardinalité minimale, cardinalité maximale).
Cardinalité minimale : elle vaut 0 ou 1, c’est ne nombre minimal de fois ou une occurrence d’un
objet participe aux occurrences de l’association.
Cardinalité maximale : elle vaut 1 ou une entité fixé, n, c’est le nombre maximal de fois ou une
occurrence d’un objet participe aux occurrences de l’association.
Le MLD est une transcription (également appelée dérivation) du MCD dans un formalisme
adapté à une implémentation ultérieure, au niveau physique, sous forme de base de données
relationnelle.
Le MLD ajoute au MCD la notion d’organisation. Il indique comment les données seront
organisées.
La transcription d’un MCD en modèle relationnel s’effectue selon quelque règle simple qui
consiste d’abord à transformer toute entité en table, avec l’identifiant comme clé primaire, puis
à observer les valeurs prises par cardinalités maximum de chaque association pour représenter
celle-ci soit (exemple : cardinalité max 1,1 et 0,n) par l’ajout d’une clé étrangère dans la table
10
qui possède la cardinalité max 1, soit ( ex : cardinalité max n-n ) par la création d’une nouvelles
table dont la cl primaire est obtenue par concaténation de clés étrangères correspondant aux
table liées.
1.6 Conclusion
Dans ce chapitre, on a présenté en premier lieu notre domaine de travail qui se trouve dans le
domaine informatique. L’informatique facilite les tâches dans une entreprise et sécurise leurs
données et leurs informations.
La culture informatique a une double dimension. Une dimension pratique, d’une part, relative
à la connaissance des « produits » qui portent sur des objets concrets, répondent à des besoins
spécifiques, et sont sujets au changement. Une dimension plus théorique, d’autre part, portant
sur la connaissance de certains concepts et principes qui sont abstraits, indépendants des outils,
et stables dans le temps.
En situation éducative, où il est important de verbaliser et formuler les situations pour aider les
apprenants à se les approprier, il est d’autant plus important d’adosser toute utilisation d’un
produit à une démarche de compréhension et de structuration des principes sous-jacents.
Ensuite, on a vu aussi une étude approfondie d’une base de données qui nous aide à gérer les
données dans une entreprise, et les stocker dans un emplacement assuré. [8]
Dans la réalisation de ce projet nous avons utilisés de nombreux concepts et niveaux dans
MERISE tels que : le niveau conceptuel : entité et relation ; la règle de gestion et modèle
conceptuel des Données (MCD) et le niveau logique : le modèle logique des données (MLD).
11
CHAPITRE 2
2.1 Introduction
Le stock est un mot anglo-saxon signifiant, « une souche ».l’idée du stock est liée aux notions
de prévision et de précaution : on stock pour se prémunir contre les risques d’une période
possible. Exemple : des provisions de bois pour l’hiver.
Un stock est constitué par l’ensemble des marchandises ou des articles accumulés dans l’attente
d’une utilisation ultérieure plus au moins proche et qui permet d’alimenter les utilisateurs au
fur et à mesure de leurs besoins sans leur imposer les délais et les à-coups d’une fabrication ou
d’une livraison par les fournisseurs. [9]
12
Le stock est un régulateur entre l’approvisionnement, la production et l’écoulement des produits
et des marchandises.
Le stock est l’ensemble des biens accumulés qui seront utilisés ultérieurement (dans le future).la
notion de stock regroupe : les marchandises, les matières et fournitures, les produits finis,
Son objectif est de gérer les articles disponibles dans l'entreprise en vue de satisfaire les besoins
à venir. Ces besoins seront à satisfaire au bon moment, dans les bonnes quantités et d'une
manière permettant la bonne utilisation du stock, la rupture du stock est le non capacité de
satisfaire un besoin à l'aide du stock. Tout l'art de cette gestion est d'avoir suffisamment de stock
pour répondre correctement aux besoins et pas trop pour ne pas avoir à supporter les différents
coûts du stock.
Un stock est nécessaire pour les raisons suivantes :
La gestion des stocks est l'ensemble des procédures appliquées par une entreprise pour
déterminer les approvisionnements et les quantités à acheter.
La gestion des stocks est une fonction fondamentale pour la majorité des fonctions donc une
mauvaise gestion des stocks peut compromettre sérieusement les activités d'une entreprise à
court-terme pour cela il faut trouver le point d'équilibre afin de maximiser l'efficacité de
l'entreprise. La création d'un stock se produit lorsque l'arrivée des marchandises est plus élevée
13
que la sortie des marchandises. La rupture de stock, elle, se produit lorsque les sorties de
marchandises excèdent les entrées. La gestion des stocks commence dès les achats.
Une entreprise cherche toujours à éviter les ruptures de stocks et les commandes en souffrance
lorsque l'entreprise possède des stocks, elle s'assure d'une livraison alerte et ponctuelle, elle doit
aussi prendre en compte : un coût est lié au stockage de la marchandise tel que le coût des
intérêts, de la manutention, de l'espace loué, des assurances ainsi de suite.
Les dirigeants d'entreprise devront choisir la technique de gestion des stocks la plus appropriée
au bon fonctionnement de l'organisation.
Une étude de comparaison doit être élaborée avant de choisir une technique de gestion des
stocks.
Les responsables de la gestion des stocks doivent perpétuellement rechercher l’équilibre entre
le niveau de satisfaction des consommateurs et les coûts engendrés par la constitution des
stocks.
Une quantité élevée de stocks peut provoquer :
• Des charges financières élevées. Des charges fixes (bâtiment, étagères, engins
lourds de manutention …) et des charges variables (Salaires du personnel, frais
d’entretien, quittances d’électricité, pertes dues à la détérioration ou à
l’obsolescence des produits stockés …) ;
• Des immobilisations des capitaux. Chaque article qui entre en stock est valorisé
et réduit ainsi les facilités de trésorerie;
• Une augmentation des risques de rupture de stocks, avec quelques fois des
conséquences financières graves;
• La désorganisation d’un système de production entier (goulots d’étranglement,
augmentation des stockages intermédiaires) ;
• Une diminution des bénéfices de vente et une perte de la clientèle déçue par la
mauvaise qualité de service (retard de livraison, disponibilités insuffisantes,
ruptures …).
14
Une bonne gestion des stocks consiste donc à trouver cet équilibre qui permettra de maximiser
le profit en minimisant les coûts. Les prévisions et la planification sont des outils efficaces au
service de la gestion des stocks. [10]
Un projet est un ensemble finalisé d’activités et d’actions entreprises dans le but de répondre à
un besoin défini dans des délais fixés et dans la limite de l’enveloppe budgétaire allouée.
Les cinq aspects d’un projet sont :
- ouvrage : résultat unique tel que la construction des ponts, création des logiciels,…
- produit : mise au point d’une gamme de produit tel que la création de nouveau modèle
de voiture, nouvelle création de haute couture,…
- opération : fusion des deux entreprises, automatisations de processus, formation des
personnels
- évènement : coupe du monde de foot,…
La gestion de projet est définie comme une démarche visant à structurer, assurer et optimiser le
bon déroulement d’un projet, l’objectif étant d’obtenir un résultat de qualité pour le moindre
coût et dans le meilleur délai possible.
Les projets informatiques sont de plus en plus gros faisant intervenir des gens d’horizons
différents.
15
Le projet de création d’une application locale n’échappe pas aux règles de la gestion de projet.
En effet construire ou faire construire une application locale est avant tout un projet qui doit
être écrit, planifié et surtout évalué. Il s’agit de se fixer des objectifs, trouver des acteurs, répartir
des tâches, définir des étapes et aussi des échéances. [11]
Lorsque l’on souhaite créer une application locale, la première des choses est de définir son
projet. La perception d’un projet est essentielle pour sa réussite. En effet de nombreux projets
échouent à cause d’un mauvais cadrage ou d’une mauvaise définition du projet. Il est donc
important de définir la dimension d’un projet avant son lancement.
Une application, un applicatif ou encore une appli, dans le domaine informatique, est
un programme (ou un ensemble logiciel) directement utilisé pour réaliser une tâche, ou un
ensemble de tâches élémentaires d'un même domaine ou formant un tout. Typiquement,
un éditeur de texte, un navigateur web, un lecteur multimédia, un jeu vidéo, sont des
applications. Les applications s'exécutent en utilisant les services du système
d'exploitation pour utiliser les ressources matérielles.
Afin d’assurer une bonne gestion de ses différentes tâches, une pharmacie utilise des systèmes
informatique. On va voir deux sortes de logiciels : officine et pharma 2000.
Officine est un logiciel de gestion de pharmacie développé par un pharmacien dans les années
90s en une version DOS avec le langage COBOL puis il a évolué au début des années 2000
vers une version Windows en utilisant le langage procédurale WLANGAGE de WINDEV.
Etant donné que ce logiciel est conçu et développé par un pharmacien qui n’a pas de
connaissances fondamentales en informatique, Officine présente des défauts majeurs aussi
fonctionnels que non fonctionnels :
- il est clair que ce logiciel ne respecte pas les principes de génie logiciel tel que
l’extensibilité ou la modularité,
- Officine est un logiciel monoposte qui se base sur la fonctionnalité de partage de fichiers
et d’imprimante de Windows pour pouvoir s’exécuté en réseau,
16
- l’application oblige les utilisateurs parfois à effectuer des tâches répétitives, ce qui cause
une perte de temps considérable,
- Officine utilise pour la persistance de donné les fichiers indexés, ce qui nécessite
beaucoup des ressources ainsi qu’une phase de programmation importante pour gérer
l’intégrité des données,
- la manipulation d’Officine est un peu difficile vu qu’il fournit des interfaces
compliquées et chargées par plusieurs boutons inutiles.
Développé dans les années 2000, Pharma 2000 se compte parmi les logiciels de gestion de
pharmacie les plus utilisés sur le marché. Il est mis à jour chaque année pour supporter
l’évolution du domaine pharmaceutique. Bien que ce logiciel, procure à son utilisateur les
principales tâches de gestion de la pharmacie, il souffre de quelques défaillances parmi
lesquelles :
- Pharma 2000 ne contient pas un module de gestion de personnels et de ressources
humaines,
- l’application oblige les utilisateurs parfois à effectuer des tâches répétitives ce qui cause
une perte de temps considérable.
Nous présentons dans cette section une comparaison entre les logiciels de gestion de pharmacie
cités précédemment. [12]
17
2.3.3 Solution proposée
Pour remédier aux inconvénients des logiciels de gestion de pharmacie existants, nous
proposons une solution qui assure le bon déroulement des différents processus dans une
pharmacie en prenant en considération l’expérience utilisateur en termes d’interface
homme/machine, rapidité et efficacité. Nous envisageons alors de concevoir et de développer
un système qui permet de :
- proposer une meilleure expérience utilisateur avec une interface graphique moderne et
L’objectif du projet est de créer une application locale pour gérer les stocks dans une pharmacie
afin de faciliter les tâches de ces travailleurs et aussi d’éviter les pertes des données dans la
pharmacie.
La création d’une telle application peut donner beaucoup d’avantages au propriétaire de la
pharmacie, si on ne parle simplement que du temps par exemple.
18
2.4 Conclusion
L’informatique devient une carrière très importante dans les pays plus ou moins développés,
son importance croissante peut s’expliquer en outre par une augmentation du degré
d’automatisation dans tous les systèmes d’informations…, et nous pouvons conclure que la
finalité première de la fonction de l’informatique consiste à faciliter le travail pour l’utilisateur
tout ce qui concerne la recherche, la mise à jour de l’information.
L’évolution de l’information exige et oblige l’utilisation de l’outil informatique avec une bonne
gestion, car l’informatique joue un très grand rôle dans la survie et le développement de
l’entreprise et les administrations, nous pouvons dire qu’il n’y aura pas d’accélération dans
l’information sans l’outil informatique et la bonne gestion.
Ce travail nous a permis d’aborder les problèmes dans les pharmacies, et de les situer dans le
conteste de réalité. Nous avons donc essayé de mettre à profil notre contribution à l’examen
bien pratique du sujet et d’apporter des suggestions qui permettront son amélioration. A travers
cet étude, nous pouvons conclure que : la pratique quelques soit sa nature nous a permis de
voir les problèmes que vit la gestion, ainsi que la mission de l’informatique.
A travers les démarches appliquées à travers notre étude détaillée on a pu dégager les points
suivants : adopter une meilleure méthode de travail pour aboutir au vif du sujet et connaître au
mieux les étapes pour la création d’une application de gestion de stock qui répond aux exigences
d’une pharmacie.
19
CHAPITRE 3
3.1 Introduction
Les besoins fonctionnels se rapportent aux fonctionnalités que l'application en question doit
offrir pour satisfaire les utilisateurs.
Les fonctionnalités que doit intégrer l'application à développer peuvent être décrites comme
suit :
- Gestion des sécurités : le système permet de gérer les droits d'accès de chaque utilisateur
ainsi les menus qui seront affichés selon le privilège
- Gestion des médicaments : cette opération consiste à suivre l'état du stock à savoir les
mouvements réalisés sur le stock (entrée /sortie de médicament, quantité des
médicaments dans le stock).
- Gestion des commandes : cette opération est établie lorsqu'il y a un besoin de renouveler
le stock des médicaments. L'utilisateur doit créer un bon de commande correspondant à
ses besoins.
20
3.2.1 Les besoins non fonctionnels
- Authentification : le système doit permettre à l'utilisateur de saisir son login et son mot
de passe pour accéder au système. Cette opération assure la sécurité du système et limite
le nombre des utilisateurs.
- Ergonomie : le système devra offrir aux utilisateurs une interface qui soit le plus riche
possible afin de limiter le nombre d'écrans. Par ailleurs, l'interactivité devra être adaptée
(usage du clavier, menu, etc..).
- La performance: un logiciel doit être avant tout performant c'est à-dire à travers ses
fonctionnalités, répond à toutes les exigences des utilisateurs d'une manière optimale.
[Link] Définition
Les cas d'utilisation représentent un élément essentiel de la modélisation orientée objet : ils
doivent en principe permettre de concevoir et de construire un système adapté aux besoins de
l'utilisateur.
Les cas d'utilisation se déterminent en observant et en précisant, acteur par acteur, les séquences
d'interaction -les scénarios- du point de vue de l'utilisateur.
Un acteur représente un rôle joué par une personne ou une chose qui interagit avec un système.
En réponse à l'action d'un acteur, le système fournit un service qui correspond à son besoin.
21
L’acteur défini pour notre système est l’utilisateur. Il gère :
Il existe plusieurs logiciels pour effectuer la conception de la base de données tels que :
Win ‘design, jmerise, powerAMC,…
Durant la réalisation du projet, on a choisi powerAMC 15 pour la conception de la base de
données.
3.3.1 PowerAMC 15
22
[Link] Modélisation à l’aide de powerAMC 15
PowerAMC fournit un jeu unique d’outils de modélisation professionnels qui associent les
techniques et notations standard de la modélisation de processus métiers, de la modélisation des
données et de la modélisation d’applications UML et d’autres fonctionnalités puissantes afin de
vous aider à analyser, concevoir, construire et maintenir vos applications, en utilisant les
techniques les plus élaborées d’ingénierie logicielle.
La solution de modélisation PowerAMC permet d’intégrer étroitement la conception et la
maintenance des couches de données centrales de votre application et exigences de projet,
processus métiers, code orienté objet, vocabulaires XML et informations de réplication de base
de données. En mettant à votre disposition une série complète de modèles à tous les niveaux
d’abstraction, PowerAMC vous permet d’élargir la portée de votre processus de conception
itérative à tous les aspects de l’architecture de votre système, de la conception au déploiement,
et même au-delà.
PowerAMC n’impose aucune méthodologie ou aucun processus d’ingénierie logicielle.
Chaque société peut mettre en oeuvre sa propre organisation, en définissant les responsabilités
et les rôles, en indiquant quels outils utiliser et quelles sont les validations requises, et en
spécifiant les documents à produire à chaque stade du processus.
Une équipe de développement va comprendre plusieurs rôles d’utilisateurs, incluant les
analystes métier, les analystes et concepteurs, les administrateurs de base de données, les
développeurs et des testeurs, chacun utilisant une combinaison différente de composants de
PowerAMC.
23
[Link] Schéma d’un power AMC 15
Il existe aussi plusieurs serveurs de base de données mais pour notre réalisation, on a
choisi MySQL.
3.3.2 MySQL
MySQL est un serveur de base de données relationnelles SQL qui fonctionne sur de nombreux
systèmes d’exploitation différents, incluant AIX, BSDi, FreeBDS, HP-UX, Lunix, Mac OS X,
NetWare, NetBSD, OpenBSD, OS/2, Warp, SDIIRIX, Solaris, Windows…Il est surtout
développé dans un souci de performances élevées en lecture, ce qui signifie qu’il est davantage
orienté vers le service de données déjà en place que vers celui de mises à jour fréquent et
fortement sécurisées. Cette fonctionnalité s’observe sur phpMyAdmin qui permet de créer, de
24
remplir et d’utiliser des bases MySQL avec presque la facilité d’un tableur. Et le plus
intéressant s’est que MySQL supporte deux langages informatiques, le langage de requête SQL
et le SQL/PSM (Persistent Stored Modules), Une extension procédurale standardisée au SQL
incluse dans la norme SQL : 2003. SQL/PSM, introduit dans la version 5 de MySQL, permet
de combiner des requêtes SQL et des instructions procédurales (boucles, conditions…), dans le
but de créer des traitements complexes destiné à être stocker sur le serveur de base de données
(objets serveur), par exemple des procédures stockées ou des déclencheurs (rudimentaires). [14]
Pour la conception des interfaces de l’application, on a utilisé les logiciels artisteer version 4.1
et Macromedia Dreamweaver 8.
3.4.1 Artisteer
Artisteer est une marque déposée d’Extensoft [Link], utilisé pour créer des interfaces ou
des templates dans une application.
L'interface d’Artisteer est assez simple. Il y a plusieurs items principaux: Menu principal, Accès
Rapide au Menu, la barre de navigation par onglets et la visualisation.
Le Menu principal contient les commandes de fichiers de base, documents récents et d'autres
articles standards du menu Fichier. Le Menu Accès Rapide est une barre d'outils personnalisable
qui offre la possibilité de créer un raccourci aux commandes fréquemment utilisées et de
rapidement effectuer les tâches les plus courantes. Le Menu Accès Rapide contient annuler,
refaire, enregistrer et raccourcis d’ouverture. La Barre de navigation contient tous les outils
d'édition disponibles. La Visualisation vous permet de voir votre conception. Tous les liens et les
boutons dans la conception sont non cliquables.
25
[Link] Schéma d’Artisteer
26
se trouveront tous les objets manipulés par votre site Web (page HTML, images, feuilles de
styles…). [15]
En effet il :
- rédige un code HTML économique (pas de codes inutiles, ce qui allège la page);
- utilise le HTML à 100 % (ce qui n'est pas le cas de FrontPage qui possède ses propres
composants).
Le gestionnaire de fichiers de Dreamweaver est donc un outil puissant que l'on a tout avantage
à utiliser. Le gestionnaire de fichiers se trouve dans son propre panneau, le panneau "Fichiers",
normalement dans la section de droite de la fenêtre. Il est séparé en trois onglets Fichiers,
Actifs, Fragments de code et possède sa propre barre d'outils et ses propres menus déroulants.
27
[Link] Utilisation de Dreamweaver
Dreamweaver offre deux modes de conception par son menu affichage. L'utilisateur peut choisir
entre un mode création permettant d'effectuer la mise en page directement à l'aide d'outils
simples, comparables à un logiciel de traitement de texte (insertion de tableau, d'image, etc.). Il
est également possible d'afficher et de modifier directement le code (HTML ou autre) qui
compose la page. On peut passer très facilement d'un mode d'affichage à l'autre, ou opter pour
un affichage mixte. Cette dernière option est particulièrement intéressante pour les débutants
qui, à terme, souhaitent se familiariser avec le langage HTML.
Durant la réalisation de ce projet, on a utilisé quelques langages pour pouvoir atteindre les buts
du projet.
28
3.5.1 Le langage PHP
PHP n'est pas le seul langage de programmation « web », parmi les concurrents de PHP citons :
Ruby, Python, ASP, ColdFusion,…
Avant PHP veut dire « Personal Home Page», puis HypertextPreprocessor. Il a été créé par
Rasmus Lerdof en 1994, pour ses besoins personnels. Comme dans beaucoup d’autres cas, la
mise à disposition du langage sur internet est à l’origine de son développement par d’autres
utilisateurs qui y ont vu un outil propre à satisfaire leurs besoins. Après plusieurs évolutions
importantes, PHP en est à sa version 5.2, celle que nous utilisons. PHP est le plus souvent
associé à MySQL, ce qui fait le succès du web aujourd’hui.
La syntaxe de PHP est proche de celle du C, (et donc du C++) : C'est ce qui a permis à de
nombreux développeurs de venir au PHP, et qui a en partie, contribué à son sucés. Il y a donc
des chances que son successeur reprenne tout ou partie de sa syntaxe.
[Link] Historiques
Aujourd'hui, 2 millions de serveurs utilisent PHP pour abriter 50 millions de sites web. Il doit
y avoir une raison ... L'histoire commence en 1994 : Un étudiant danois, Rasmis Lerdorf, qui
venait de mettre son CV en ligne sur son site, s'est demandé comment compter le nombre de
visites ... Il a écrit une série de scripts CGI mis sur le serveur de son hébergeur, qui
incrémentaient une base SQL. Comme de nombreux internautes lui demandèrent ce
programme, Rasmus Lerdorf mit en ligne en 1995 la première version de ce programme qu'il
baptisa Personal Home Page v1.0. Devant le succès de PHP 1.0, Rasmus Lerdorf décida
d'améliorer ce langage en y intégrant des structures plus avancées telles que des boucles, des
structures conditionnelles, et y intégra un package permettant d'interpréter les formulaires qu'il
avait développé (FI, Form Interpreter) ainsi que le support de mySQL.
C'est de cette façon que la version 2 du langage, baptisée pour l'occasion PHP/FI v 2, vit le jour
en 1995. Le projet s'internationalisa et de nombreux développeurs prirent part au projet. PHP
fut rapidement utilisé sur de nombreux sites (15.000 fin 1996, puis 50.000 en mi 1997).
En 1997, le projet passa sous la direction de deux étudiants Israéliens : Zeev Suraski et Andi
Gurmans, qui décidèrent, pour mettre au point PHP 3, de tout réécrire. C'est PHP 3.0 en 1998.
Le sens de l'acronyme PHP a d'ailleurs changé à cette date. Il signifie maintenant PHP Hypertext
Processor. Suraski et Gurmans choisirent d'accélérer encore PHP pour la V4 en changeant le
29
moteur du système : plutôt que d'interpréter chaque instruction une à une, il fut décidé de «
compiler » l'ensemble du script. [16]
C'est le Zend Engine, cœur de la version PHP 4 sortie en 2000.
La version 5 (2004) met l'accent sur la programmation objet et les services Web.
Une version 6 est, bien sûr, en développement.
L'open source est un mouvement planétaire qui regroupe ceux qui veulent y participer. Il a pour
principe fondateur la mise à disposition des sources de logiciels. Ainsi, alors que l'ASP n'est
développé que par Microsoft, PHP est un projet sur lequel travail des centaines d'étudiants, de
chercheurs, d'ingénieurs et de passionnés à travers le monde. En disposant des sources, tout un
chacun peut étudier la manière avec laquelle le langage est conçu et peut ainsi corriger
d'éventuels bugs. Cela explique directement que PHP soit extrêmement stable et ne souffre que
de très rares bugs ou failles. Appartenant à tout le monde en même temps, les logiciels Open
Source ont un énorme avantage sur les logiciels propriétaires : Ils ne peuvent pas disparaître.
Un autre avantage à travailler avec des logiciels Open Source tel que PHP est d'avoir à sa
disposition une énorme bibliothèque de scripts dont les sources peuvent être récupérés
gratuitement sur le Web. Il est quand même très rare de ne pas trouver sur le web un morceau
de code qui répond exactement à votre besoin ...
[Link] Extrait
3.5.2 HTML
Lorsque nous créons un site web, on est amené à manipuler non pas un mais plusieurs langages.
En tant que webmaster, il faut impérativement les connaître.
De nombreux langages ont été créés pour produire des sites web. Deux d'entre eux constituent
une base incontournable pour tous les webmasters.
HTML est le langage universel utilisé pour communiquer sur le Web. Votre information sera
ainsi transportée sur cette gigantesque toile de réseaux interconnectés qu'est Internet, pour
aboutir sur l'ordinateur de votre lecteur grâce à un programme appelé navigateur ou browser.
Le logiciel que l'on appelle un browser vous permet de surfer sur le Net et d'afficher sur votre
écran les "pages" qu'il a interceptées. Il y a, hélas, beaucoup de marques et de types de browsers
différents. Des simples, des archaïques ou des sophistiqués... Les plus connus sont Netscape
Navigator et Internet Explorer de Microsoft mais il en existe beaucoup d'autres. Chaque browser
a sa propre façon de travailler. [17]
A la différence de votre traitement de texte qui restitue exactement votre document sur une
feuille de papier avec votre police de caractères et votre mise en page, vous ne saurez jamais
exactement ce que le browser de votre lecteur du bout du monde affichera sur l'écran de celui-
ci.
En fait, rien ne différencie à première vue les fichiers HTML pour un site avec des frames des
autres fichiers HTML. La seule différence s'observe dans les liens hypertextes : il faut préciser
le frame de destination pour l'affichage du fichier à charger. Par défaut, si rien n'est indiqué, le
fichier se charge dans le cadre où se trouvait le lien hypertexte.
3.5.3 CSS
CSS est un langage de mise en forme des sites web. Alors que le HTML permet d'écrire le
contenu des pages web et de les structurer, le langage CSS s'occupe de la mise en forme et de
la mise en page. C'est en CSS que l'on choisit notamment la couleur, la taille des menus et bien
d'autres choses encore.
CSS est un langage spécifique au Web, fréquemment employé comme complément du langage
HTML, et dont la fonction est de former des feuilles de styles chargées de la mise en forme des
documents web. Il gère l’esthétique (couleurs, typographie) et diverses fonctionnalités. Son
champ d’action ne se limite pas au média screen (écran), mais s’étend également aux médias
print (imprimante), projection (présentations projetées), braille (tablettes à l’usage des
aveugles), embossed (impression en braille), aural/speech (propriétés auditives), handheld
(assistants numériques) et tv (Web-TV).
La version actuelle de CSS (CSS 2) complète la version précédente, CSS 1, avec laquelle elle
est entièrement compatible. Les feuilles de styles sont apparues dans les années 1990, période
pendant laquelle les deux principaux navigateurs, Netscape Navigator et Microsoft Internet
Explorer, créaient leurs extensions mutuellement incompatibles et truffées de balises
propriétaires. Chacun refusant les éléments de l’autre, il fallait concevoir ses pages en détectant
le navigateur utilisé et en adaptant le code au besoin. CSS s’est peu à peu imposé comme
32
standard universel palliant ces problèmes de compatibilité. Après son acceptation par le W3C
qui l’associa au langage HTML, la version 1.0 des feuilles de styles CSS fit son entrée dans les
différents navigateurs (il s’agissait alors de Netscape 4 et d’Internet Explorer 4, qui
incorporèrent peu à peu ces nouvelles propriétés). CSS version 2.0, apparu plus tard, offrait de
nouvelles possibilités bien plus vastes : positionnements divers et précis, fonctionnalités
d’accessibilité (notamment pour les lecteurs vocaux), etc. À présent, la quasi-totalité des
navigateurs proposent tout CSS1 et presque tout CSS 2. Mais les standards continuent leur
évolution, et CSS 3 attend désormais son adoubement officiel par le W3C (recommandation).
Il prendra alors la suite des versions précédentes sur les navigateurs les plus réactifs (comme
Mozilla et Opera). Rappelons que les normes du Web incitent désormais webmasters et
concepteurs de sites web à séparer clairement leurs contenus (HTML) de la mise en forme
(CSS). Cette distinction a d’autres intérêts que la simple satisfaction de théoriciens chagrins :
la conception des pages web s’en trouve vraiment facilitée. Cette dissociation des fonctions
évite encore de pénaliser les anciens navigateurs (les documents y demeurant lisibles), les
navigateurs en mode texte (ciblant les aveugles ou les utilisateurs en mode texte), et les
programmes utilisant d’autres médias (assistants personnels, WAP, ordinateurs avec
synthétiseur vocal, navigateurs braille, etc.). Pourtant, nous n’avons pas encore abordé leur
intérêt principal. Quel webmaster n’a jamais dû modifier tout son site, page après page, pour
répéter fastidieusement la même manipulation élémentaire (par exemple, changer la couleur
des titres) ? CSS simplifie cette opération : avec cette nouvelle technique, une seule feuille de
styles, stockée dans un fichier, assure la gestion graphique de l’intégralité d’un site, qu’il
compte trois pages ou plusieurs centaines. Toute intervention dans ce fichier sera
immédiatement répercutée partout. En outre, cette feuille CSS étant conservée dans la mémoire
cache de l’ordinateur du navigateur après la première connexion, toutes les pages du site
s’afficheront plus rapidement que si les indications de présentation étaient répétées sur chacune
d’entre elles. Cette première mise en bouche vous a sans doute motivé pour aller plus loin.
Mettons-nous donc en situation et appliquons nos premiers styles CSS.
Quelle que soit la version de CSS retenue, une feuille de styles CSS prend toujours la forme
d’une liste de déclarations, écrites dans un langage spécifique et distinct de HTML.
33
Les accolades sont précédées d’un sélecteur, qui s’applique ici à la balise <h1>. Cette règle
colorera donc toutes les balises <h1> contenues dans la page. Le bloc de déclaration, situé dans
les accolades, contient une ou plusieurs déclarations, ces dernières étant constituées de couples
« propriété – valeurs ». Cet exemple ne contient qu’une seule déclaration, associant la valeur
blue à la propriété color. C’est toujours le caractère deux points (:) qui sépare une propriété de
sa valeur.
Pour compléter ce bloc par d’autres déclarations, il suffit de les ajouter à la suite, sans oublier
le séparateur d’instruction : le point-virgule (;). Souvent oublié, ce dernier est pourtant
nécessaire. On assurera la lisibilité du code en réservant une ligne à chaque déclaration. Au
final, l’ensemble formé par le sélecteur et le bloc de déclaration sera nommé « règle ».
3.5.4 JavaScript
Le JavaScript a été développé par Netscape pour le côté client (dans le navigateur) et pour les
scripts côté serveur. À l'origine le langage s’appelait Live Script, mais alors qu'il était sur le
point de devenir connu Java était devenu immensément populaire. Au dernier moment Netscape
a changé le nom de son langage de Script en "JavaScript". Ceci a été fait purement pour des
raisons commerciales.
34
La conception de documents interactifs doit aussi intégrer une couche de programmation
absente des technologies précédentes. Le langage JavaScript offre cette possibilité. Le
JavaScript est souvent utilisé comme un langage de script côté client. Quand un navigateur fait
une requête sur une page XHTML avec du JavaScript, le script est envoyé au navigateur qui
interprète le code à la différence d'un code PHP, par ex, qui est interprété par le serveur.
JavaScript comme Java descendent du C et du C++. Tous les deux sont orientés objet (bien que
ce soit moins important pour le JavaScript que pour beaucoup d'autres langages) et ils partagent
une syntaxe similaire. [19]
On va voir un exemple de JavaScript inséré dans du code HTML :
<?xml version="1.0" encoding="utf8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-
[Link]">
<html xmlns="[Link]
<head>
<title>Exemple de page XHTML contenant du Javascript</title>
<script type="text/javascript">
<![CDATA[
function fenetre() { alert(’Message d’alerte dans une fonction.’);} ]]>
</script>
</head>
<body onload="alert(’Message d’alerte g´en´ere´ `a la fin du chargement.’)">
<script type="text/javascript">
<![CDATA[
alert(’Message d’alerte dans le corps du document.’); ]]>
</script>
<p> Ceci est le corps du document.
<a href="javascript:fenetre()">Message d’alerte
</a>.
</p>
</body>
</html>
3.6 Choix de service local
WAMP est une plateforme de développement web. Nous avons affaire sur une abréviation qui
veut dire Windows, Apache, MySQL et PHP. WAMP désigne une plateforme et avec une
présentation en hiérarchie selon son domaine de définition vue de la formation de son
abréviation. Alors il s’agit un système Windows, un interpréteur PHP.
35
3.6.2 Utilisation de WampServer
Par la présence d’un double serveur de bases de données MySQL et un interpréteur PHP. Par
la présence d’un double serveur (Apache et MySQL) au sein de cette plateforme, WAMP est
connue sous le nom de wampserver, nous avons choisi d’utiliser la version 2.1 qui permet de
faire fonctionner localement les scripts PHP c'est-à-dire on n’a pas besoin de se connecter à un
autre serveur externe. Il dispose aussi une interface d’administration permettant d’organiser et
de gérer ses serveurs à travers l’icône placé près de l’horloge de Windows. Et sans dévaloriser
le présent de phpMyAdmin pour l’administration web des bases MySQL. En plus les
développeurs ont une potentielle de reproduire fidèlement son serveur de production sur sa
machine local par la possibilité d’installer et d’utiliser n’importe quelle version de PHP, apache
ou MySQL juste en un clic. En notant que le 26 juin 2013 qu’est sortie la version 2.4 qui intégré
Apache 2.4.4, MySQL 5.6.12.
3.6.3 Schéma de WampServer
On va voir ensuite un schéma de WampServer :
3.7 Conclusion
Dans ce chapitre, on a présenté les technologies et les outils qu’on a utilisés pour la réalisation
de notre application. On a vu que la construction d’une page web nécessite l’intervention des
technologies côté serveur permettant la gestion, la mise en jour et la requête d’une base de
données. Ces technologies permettent aussi la transformation de la page constituée par
36
plusieurs langages en une page html pour qu’elle puisse être publiée par le navigateur. Dans ce
qui suit, nous présentons en détails les étapes de réalisation.
CHAPITRE 4
CONCEPTION ET REALISATION DE GESTPHARMA
4.1 Introduction
Dans cette phase, on va représenter une vue dynamique du système à travers les différents
diagrammes de séquences relatifs aux cas d'utilisations.
Ensuite, je dégagerai les différentes tables de la base de données via le diagramme de classe.
La réalisation du projet concerne la création des pages de l’application et des éléments
graphiques. La création des pages consiste à créer des fichiers en utilisant les différents langages
de développement : Html et CSS, PHP, JavaScript.
Logiciel qui sera mis en œuvre par nos soins aura pour nom GestPharma :
L’application de gestion de stock GestPharma a pour but de :
Lorsqu'un client veut acheter un produit, l’utilisateur doit vérifier la disponibilité de chaque
produit dans le stock, le logiciel doit être capable d'indiquer à l’utilisateur la quantité de stock
restante dans le stock pour chaque produit demandé par le client ainsi que leur date de
péremption. Ce n'est qu'après cette étape de vérification que l’utilisateur peut effectuer la vente
en saisissant dans le logiciel le nom et la quantité de produit vendu, ce dernier doit lui retrouver
le prix de chaque médicament ainsi que le montent total qui sera encaissé par l’utilisateur.
37
[Link] Gestion de stock
Lorsqu'un fournisseur lui livre les produits commandés, l’utilisateur doit implémenter la base
de données du logiciel par le nombre de produits livrés, leur nom, leur type et leur date de
péremption.
4.2.2 Identifications des messages
GestPharma émet:
- La disponibilité d'un produit ainsi que leur date de péremption.
- Le montant total à encaisser à la fin de vente.
- La caractéristique de chaque produit.
GestPharma reçoit:
- Les caractéristiques de chaque médicament.
- Création, modification, annulation d'une vente.
4.2.3 Modélisation du contexte
Utilisateurs
Annulation de commande
GestPharma
GestPharma
Client
Pour la conception du projet nous avons décidé de choisir les concepts suivants :
- Le MCD pour le niveau conceptuel afin de définir les domaines et les entités a utilisé,
ainsi que la façon dont ils sont reliés entre eux. La création du MCD implique la
désignation de toutes les entités, ainsi que les cardinalités, il est donc important de
précisé la règle de gestion qui relie les entités.
- Le MLD pour le niveau logique afin de savoir toutes les tables à créer pour l’application
et tous les attributs de ce dernier.
- Le MPD pour le niveau physique afin d’obtenir les tables des relations entités-
associations.
D’après le chapitre précédant, un MCD est un modèle Entité / Association, il est souvent
nommé Entité-Relation.
Il repose sur les concepts des : entités, associations, propriétés
Il permet de décrire un ensemble de données relatives à un domaine défini afin de les intégrer
Une entité est un objet, une chose concrète ou abstraite qui peut être reconnue distinctement.
Un attribut ou une propriété est une caractéristique associée à une entité type.
Pour faire court le MCD du système se résume à la relation entre six entités qui sont :
- L’entité Utilisateurs qui possède les attributs suivants : id_utilisateurs, nom_utilisateurs,
password
- L’entité Catégories qui possède les attributs suivants : id_catégories, nom_catégories
- L’entité Articles qui possède les attributs suivants : id_articles, nom_articles, prix_articles
- L’entité Dépôts qui possède les attributs suivants : id_dépots, date
- L’entité Clients qui possède les attributs suivants : id_clients, nom_clients
41
- L’entité Commande qui possède les attributs suivants : id_commande, date_commande
Avant de pouvoir représenter le MCD il faut tout d’abord connaitre la relation entre chaque
entité. Pour cela nous donnerons ci-après la règle de gestion qui gère tous les entités.
b)-Règle de gestion
La règle de gestion consiste à exposer les relations entre deux ou plusieurs entités.
42
c)-MCD du projet
On va voir ensuite le modèle MCD de l’application :
Figure 4.02 :
Comme il a été expliqué dans le chapitre précédent, ce Modèle Logique des Données indique
l’organisation des données dans la base de données. Le MLD est la représentation des
différentes tables qui seront implémentées dans la base de données. Ce modèle est la
transcription du MCD en tenant compte des cardinalités. Cette représentation ne peut pas
directement manipuler et accepter par un système informatique que par l’intermédiaire du
MCD. Ce niveau consiste d’abord à transformer toute entité en table, avec l’identifiant comme
clé primaire, puis à observer les valeurs prises par les cardinalités maximum de chaque
43
association pour représenter celle-ci soit par l’ajout d’une table dont la clé primaire est obtenu
par concaténation de clés étrangères correspondant aux entités liées.
En appliquant la règle expliquée précédemment le MLD du projet doit être comme suit :
- Toutes les entités deviennent des tables
- L’association doit devenir lui aussi une table car les cardinalités maximal des deux coté
sont n-n.
On va voir ensuite le modèle MLD de notre application :
45
drop table if exists CLIENTS;
Dans cette phase, je vais représenter une vue dynamique du système à travers les différents
diagrammes de séquences relatifs aux cas d'utilisations.
Enfin, je dégagerai les différentes tables de la base de données via le diagramme de classe.
La réalisation du projet concerne la création des pages de l’application et des éléments
graphiques. La création des pages consiste à créer des fichiers en utilisant les différents langages
de développement : Html et CSS, PHP, JavaScript.
4.3.1 Le squelette et template de l’application
[Link] Le squelette de l’application
Le squelette de l’application sera comme le schéma ci-dessous :
Slider
Barre de menu
Contenu
Figure 4.05 : Schéma du squelette de GestPharma
46
Notre page est constitué de trois sections :
- le slider : pour les images défilantes et le titre de l’application
- la Barre de menu : constitué de plusieurs boutons pour chaque menu
- le contenu : pour le contenu de chaque page dans la barre de menu
Dans ce qui suit, nous allons présenter quelques interfaces de notre application.
Ces interfaces sont créées par le même logiciel Artisteer.
47
[Link] L’interface de l’authentification
- Son nom
- Son mot de passe
La page d’accueil souhaite la bienvenue de l’utilisateur et affiche quelques boutons sur la barre
de menu comme : produits (médicaments, autres), dépôts, commande.
48
Voici l’interface de la page d’accueil :
Cette interface nous montre les opérations qu’on peut exécuter. Elle affiche aussi quelques
boutons tels que : ajouter, afficher,…
On voir un extrait de l’interface de la page médicament :
Cette interface nous montre les opérations qu’on peut exécuter. Elle affiche aussi quelques
boutons tels que : ajouter, afficher,…
On va voir un extrait de l’interface de la page outil :
4.4 Conclusion
Dans ce chapitre, nous avons décrit brièvement le processus de réalisation de notre application
GestPharma en spécifiant l'environnement de développement, l'implémentation de la base des
données et la démarche suivie pour la réalisation. En effet, nous avons achevé l'implémentation
et les tests de tous les cas d'utilisation, tout en respectant la conception élaborée. En d'autres
termes, nous détenons la version finale du logiciel, installée dans notre environnement de
développement. Ainsi que nous avons prévenu la plateforme sous laquelle le système sera
installé dans l'environnement des utilisateurs. A titre personnel, le bénéfice qu'on en a tiré est
l'apprentissage de concepts à la pointe de la technologie et des tendances actuelles dans le
monde professionnel. Ce projet nous a permis d'enrichir nos connaissances dans des domaines
très variés.
50
CONCLUSION GENERALE
Nous avons réussi à dégager les lacunes du système actuel et suggérer des solutions afin d'y
remédier. Nous avons essayé de structurer et définir les besoins attendus du futur système.
Il faut noter que le dégagement des grandes fonctionnalités du système n'a pas suffi pour
aborder la phase de conception, il fallait dégager plus de besoins. Il nous a fallu interroger
l’acteur du système d'information de pharmacie pour enrichir notre diagramme de cas
d'utilisation. Et là nous étions confrontés à un problème délicat : la dissimulation de
l'information. Il fallait donc construire des interfaces prototypes et les présenter à l’acteur.
Les éléments à livrer au terme de la phase d'analyse (acteurs, besoins fonctionnels, besoins non
fonctionnels) étant déterminés, nous pouvions passer à la phase suivante.
Ensuite nous avons entamé la phase de conception. Dans cette phase, nous avions déjà un
modèle final des cas d'utilisation. Il s'agissait alors d'étendre la représentation effectuée au
niveau de l'analyse en y intégrant les aspects techniques les plus proches des préoccupations
physiques. L'élément principal à livrer au terme de cette phase est le schéma relationnel.
Enfin, nous étions arrivés à la dernière phase, où il s'agissait de réaliser l’application et de voir
les différentes interfaces de l’application.
Ce travail nous a permis d’aborder les problèmes, et de les situer dans le conteste de réalité.
A travers cette étude que nous venons d’achever, nous pouvons conclure que : résoudre les
problèmes que vit la gestion est l’un des missions de l’informatique.
L’informatique devient une carrière très importante dans les pays plus ou moins développés,
son importance croissante peut s’expliquer en outre par une augmentation du degré
d’automatisation dans tous les systèmes d’informations…, et nous pouvons conclure que la
finalité première de la fonction de l’informatique consiste à faciliter le travail pour l’utilisateur
tout ce qui concerne la recherche, la mise à jour des informations.
L’évolution de l’information et ça nombreuse exigent et obligent l’utilisation de l’outil
informatique avec une bonne gestion, car l’informatique joue un très grand rôle dans la survie
et le développement de l’entreprise et les administrations, nous pouvons dire qu’il n’y aura pas
d’accélération dans l’information sans l’outil informatique et la bonne gestion.
51
ANNEXES 1
<?php
$title = 'login';
require_once '../include/[Link]';
if(Utilisateur::utilisateurConnecte()) {
Application::redir((Utilisateur::getUtilisateurConnecte()->estAdmin())?
Application::$PAGE_ADMIN : Application::$PAGE_USER);
}
$error = Utilisateur::pasDelements();
$afficheMsgErr = false;
if(isset($_POST['submit'])): //bouton cliqué
$login = $_POST['login']; //le login est unique
$pw = $_POST['password'];
$u = new Utilisateur(null, null, $login, $pw, null, null);
if(Utilisateur::peutConnecter($u)): //utilisateur existe
$u = Utilisateur::connecter($u);
Application::redir(($u->estAdmin())? Application::$PAGE_ADMIN :
Application::$PAGE_USER);
else:
$afficheMsgErr = true;
endif;
endif;
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Login V15</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--
===================================================================
============================-->
<link rel="icon" type="image/png" href="images/icons/[Link]"/>
<!--
===================================================================
============================-->
<link rel="stylesheet" type="text/css"
href="public/vendor/bootstrap/css/[Link]">
<!--
===================================================================
============================-->
<link rel="stylesheet" type="text/css" href="public/fonts/font-awesome-4.7.0/css/font-
[Link]">
52
<!--
===================================================================
============================-->
<link rel="stylesheet" type="text/css" href="public/fonts/Linearicons-Free-v1.0.0/icon-
[Link]">
<!--
===================================================================
============================-->
<link rel="stylesheet" type="text/css" href="public/vendor/animate/[Link]">
<!--
===================================================================
============================-->
<link rel="stylesheet" type="text/css" href="public/vendor/css-
hamburgers/[Link]">
<!--
===================================================================
============================-->
<link rel="stylesheet" type="text/css"
href="public/vendor/animsition/css/[Link]">
<!--
===================================================================
============================-->
<link rel="stylesheet" type="text/css" href="public/vendor/select2/[Link]">
<!--
===================================================================
============================-->
<link rel="stylesheet" type="text/css"
href="public/vendor/daterangepicker/[Link]">
<!--
===================================================================
============================-->
<link rel="stylesheet" type="text/css" href="public/css/[Link]">
<link rel="stylesheet" type="text/css" href="public/css/[Link]">
<!--
===================================================================
============================-->
</head>
<body>
A1.2 Extrait de code de la page d’accueil
<div id="login_info">
<span id="nom">
<?php echo $_SESSION['prenom'] ?>
</span>,
<span id="prenom">
<?php echo $_SESSION['nom'] ?>
</span>
53
<span id="deconnexion">
<a href='[Link]'>Déconnecter</a>
</span>
</div>
<div id="main">
<div id="header">
<div id="logo">
<div id="logo_text">
<h1>
<a href="#">
<span class="logo_colour">GestPharma</span>
</a>
</h1>
<h2>Mai 2019</h2>
</div>
</div>
<?php require 'include/cssmenu_admin.php'; ?>
<div id="site_content">
<div id="content">
<h1>Présentation</h1>
<p>Bienvenue sur l'application web pour l'administration d'une
pharmacie</p>
</div>
</div>
<div id="footer">
<p>Author Minax</p>
</div>
</div>
</div>
54
ANNEXES 2
APPLICATION WEB
Le contrôleur charge de traiter les requêtes du client et la vue construit le résultat d’une requête.
Les vues sont basées sur des technologies de production de contenu (JSP, PDF,…).
Les vues ne modifient pas les données (problème avec JSP).
Une vue peut être interprétée comme un processus de fabrication à partir de données fournies
en entrée (pas de logique applicative).
A2.2.2 Le modèle
Le modèle est indépendant de la logique applicative. • Si une couche métier existe, elle
représente le modèle. • Dans une architecture orientée service, le modèle est l’ensemble des
services du système d’information.
55
A2.2.3 Le contrôleur
Le contrôleur est basé sur des technologies de traitement de requêtes (Servlet, C#, C++, Ruby,
Python). • Le contrôleur peut être unique ou multiple. • Le contrôleur est responsable de la
logique applicative. • Il transforme les requêtes utilisateur en requêtes métier (vérification des
données entrantes).
- Dresser la liste des vues (maquette HTML) : nom de la vue, type de données générés
(XHTML/XML/PDF), paramètres (nom, type, obligatoire/facultatif), requêtes engendrées par
la vue,
- Dresser la liste des requêtes : nom de la requête (URL), paramètres (nom, type,
obligatoire/facultatif), contexte d’utilisation, vues utilisées.
Chaque utilisateur de l’application va ˆêtre représente par une instance d’un java Bean de portée
session :
package [Link];
public User() { }
56
// getters and setters ...
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
<include-prelude>/[Link]</include-prelude>
<include-prelude>/[Link]</include-prelude>
<include-coda>/[Link]</include-coda>
</jsp-property-group>
</jsp-config>
– Les données en provenance d’un client doivent toujours être vérifiées (présence des
paramètres, typage du contenu).
– Ne pas utiliser les champs cachés HTML pour transmettre des données entre deux requêtes :
utiliser la session.
– Un formulaire doit toujours être présent à partir de données et d’éventuels messages d’erreur
associés à ces données.
57
– Une validation JavaScript et/ou AJAX est envisageable, mais elle ne doit pas remplacer une
validation côte serveur.
– des liens absolus générés automatiquement par les balises <c:url .../>
– Le contexte utilisé dans le cadre du développement (/mon appli) ne doit pas apparaitre.
– Si vous devez exporter des URL (par exemple dans un courriel), prenez-soin de les construire
à partir de la requête.
– La charte graphique doit être implantée en dernier mais vous devez prendre soin de prévoir
les classes CSS.
– Les ressources statiques (images...) doivent être référencées par la feuille CSS grâce à des
URL relatives à la position de la feuille CSS.
– Si la technologie des CSS ne suffit pas, utilisez les balises personnalisées (.tag).
58
BIBLIOGRAPHIE
[2] C. Duchateau, Peut-on définir une «culture informatique». Journal de Réflexion sur
[10] C. Bruneton C « Optimiser les activités de la gestion de stock : Guide dans les pays en
[Link]
[Link]@[Link]
59
[18] J.P. Leboeuf, Les Cahiers du Programmeur HTML/CSS, 2002, 228 pages.
Septembre 2011)
60
FICHE DE RENSEIGNEMENTS
Nom : ANDRIAMANJAKA
Téléphone : 0340422720
Email : manoaandria98@[Link]
Nombres de pages : 62
Nombres de tableaux : 02
Nombre de figures : 15
Directeur de mémoire :
Nom : RANDRIAMIHAJARISON
Prénom : Jimmy
Email : jimam2511@[Link]
61
RESUME
ABSTRACT
The creation of a database system and of an automatic lay-out needs a very meticulous study of
the data you are working on, including the general context of their use and of the potential
partners and users. A technical booklet and a user manual will help the users in their exploration
of the system and its possible development. The project objective is the design and
implementation of a pharmacy management software and to facilitate the work of pharmacists
by ensuring better interactivity.
62