Académique Documents
Professionnel Documents
Culture Documents
A ma famille.
Epigraphie
« On façonne les plantes par culture et les Hommes par l’éducation, puisque ça implique à la
fois non seulement l’effort mais aussi l’éducation » Emile, livre I
Je remercie mes très chers parents, qui ont toujours été là pour moi. Mes remerciements les
plus chaleureux vont aux membres de ma famille, pour leurs encouragements durant tout mon
parcours.
Pour finir, je remercie toutes les personnes ayant contribué de près ou de loin à la réalisation
de ce travail.
Introduction générale
Les stations-services, acteurs indispensables de notre quotidien, assurent l'approvisionnement
en carburant et offrent une gamme de services essentiels tant pour les particuliers que pour les
entreprises. La gestion efficace de ces stations-services est cruciale, non seulement pour
garantir un fonctionnement fluide et une rentabilité optimale, mais également pour répondre
aux attentes élevées de la clientèle. À l'ère de la transformation numérique, l'informatique
émerge comme un catalyseur incontournable, remodelant notre monde en un réseau
interconnecté.
L'analyse approfondie des défis spécifiques auxquels sont confrontées les stations-services
met en lumière la nécessité impérieuse d'adopter des solutions innovantes. Dans ce contexte,
les entreprises intègrent de plus en plus des outils informatiques pour optimiser leurs
opérations, offrant des avantages significatifs en termes d'efficacité et de productivité. Il
devient évident que le secteur des stations-services ne peut faire l'impasse sur cette révolution
numérique.
C'est dans ce contexte que l'entreprise 2iSoft a entrepris de développer une application de
gestion et suivi des stations-services. Notre mémoire, intitulé « Conception et réalisation
d’une application de gestion et suivi des stations-services » explore en détail les aspects
théoriques, méthodologiques, organisationnels et conceptuels de ce projet ambitieux. Ce
document sera structuré en trois grandes parties, chacune détaillant les étapes cruciales de
notre démarche :
Cette approche structurée permettra une compréhension approfondie de notre démarche, des
défis rencontrés, et des solutions apportées tout au long du processus de conception et de
réalisation de l'application de gestion des stations-services.
Première partie :
Cadre théorique et méthodologique
Chapitre I Cadre théorique
I.1 Problématique
La gestion efficiente des stations-services demeure un enjeu majeur pour garantir un
approvisionnement en carburant sans accroc, assurer la rentabilité de l’activité et répondre aux
attentes variées de la clientèle. L'application "2iStation", actuellement en production et
développée par l'entreprise 2iSoft, présente des insuffisances notables dans sa capacité à
répondre de manière optimale aux défis de gestion spécifiques à ces établissements. Des
insuffisances dans la modélisation lors de la conception, des faiblesses au niveau de
l'architecture logicielle, et des incohérences fréquentes lors du relevé d'index des pompes et
l’approvisionnement des cuves ont été identifiées, mettant en lumière la nécessité d'apporter
des ajustements significatifs pour garantir un fonctionnement optimal de l'application.
Face à cette situation, nous nous sommes posés les questions suivantes :
Chapitre : I
Chapitre III Cadre organisationnel
Avant de nous lancer dans le vif du sujet, nous allons parler de 2iSoft et ensuite nous
détaillerons l’ensemble des problèmes qui feront l’objet de notre étude.
Forte d’une expertise variée, leurs équipes utilisent différentes technologies pour développer
rapidement des applications fort ergonomiques.
Les progiciels de gestion intégrés sur mesure permettent une gestion coordonnée de
l'ensemble des processus des entreprises, qu'ils soient liés à la direction des affaires ou à la
gestion des ressources humaines et matérielles. Elles regroupent, autour de l’application-
métier principale, les fonctions traditionnelles telles que la gestion financière et comptable, la
Gestion des Ressources Humaines (GRH), la gestion de production et la gestion de la relation
client.
L’objectif principal est de satisfaire sa clientèle à travers la conception de logiciels, mais aussi
dans l’étude et la mise en place de réseaux informatiques, puis dans la maintenance du parc
informatique.
III.2.2 Les missions
2iSoft offre les prestations suivantes :
III.2.3 Organigramme
2iSoft (Ingénierie Informatique Soft) est composé :
C’est l’ensemble des installations et des activités destinées à stocker et à transférer les
hydrocarbures liquides à la pression atmosphérique de réservoirs de stockage fixes
dans les réservoirs à carburant de véhicules routiers à moteur et, le cas échéant, dans
des réservoirs mobiles. Elle est composée généralement : d’une piste destinée aux
voies de circulation, - d’une aire de distribution étanche aux hydrocarbures
généralement bétonnée, constituée par des postes de distribution, des cuves, et
éventuellement de bâtiments constitués par un bureau du gérant et/ou une salle de
vente, un magasin de stockage, une toilette et des services annexes tels que : le
vidange, le graissage, le lavage, la vulcanisation, et les petits entretiens automobiles et
les installations pour la vente des bouteilles de gaz.
Une application, un applicatif ou encore une appli, une app est, dans le
domaine informatique, 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.
En informatique, une application web (aussi appelée web application, de
l'anglais et français) est une application manipulable directement en ligne grâce
à un navigateur web et qui ne nécessite donc pas d'installation sur les
machines clientes.
Une base de données est une collection organisée d’informations structurées,
généralement stockées électroniquement dans un système informatique. Une
base de données est généralement contrôlée par un système de gestion de base
de données.
La conception est la phase créative d’un projet d’ingénierie. Le but premier de
la conception est de permettre de créer un système ou un processus répondant à
un besoin en tenant compte des contraintes. Le système doit être suffisamment
défini pour pouvoir être installé, fabriqué, construit et être fonctionnel, et pour
répondre aux besoins du client.
Littéralement, un Framework signifie “cadre de travail”. Véritable boîte à
outils des temps modernes, ce kit de composants logiciels structurels permet
aux développeurs d’être plus efficaces dans la conception d'applications web,
entre autres, en offrant une architecture et des composants logiciels prêts à
l’emploi et réutilisables.
Un langage de programmation est un langage informatique, permettant à un
être humain d'écrire un code source qui sera analysé par une machine,
généralement un ordinateur.
Le système d’information (SI) est un ensemble de ressources et de dispositifs
permettant de collecter, stocker, traiter et diffuser les informations nécessaires
au fonctionnement d’une organisation (administration, entreprise…).
Un système de gestion de base de données (SGBD) est un logiciel système
permettant aux utilisateurs et programmeurs de créer et de gérer des bases de
données.
Troisième partie :
Conception
Chapitre V Analyse des besoins et méthodologies de travail
V.1 Analyse de l’existant
V.1.1 Etude de l’existant
V.1.2 Critique de l’existant
V.1.3 Solution proposée
La solution que nous allons opter est d’améliorer l’application actuelle de l’entreprise, adopter
un modèle d’architecture logicielle conforme afin de faciliter la maintenance. Pour cela, une
nouvelle application (2IStation) sera mise place pour optimiser et améliorer la gestion
courante de l’entreprise.
D’une démarche : processus pour effectuer les travaux préconisés, étape par étape.
Les promoteurs de ces trois (3) méthodes se sont fixés pour objectif de créer une méthode qui
fasse la synthèse des éléments indispensables pour faire du développement objet. Sur le plan
du langage, ils ont créé le langage UML pour la modélisation orientée objet. Pour les
processus, le consensus se fait sur les processus unifiés qui sont des méta-processus à partir
desquels le chef du projet doit décrire son véritable processus, en prenant en compte les
spécificités du problème posé, les outils et les personnes impliquées. Ce processus réel
construit sur le modèle qu’est le processus unifié, s’exprime en termes d’itérations.
V.2.4 Les méthodes formelles
Par «formel», il faut comprendre l'établissement de règles strictes afin de structurer la
«forme», le tout au sens mathématique. En effet, la rigueur de cette discipline correspond bien
à cette idée de règles. Une utilisation de ces concepts est permise grâce à un langage formel,
offrant une syntaxe ou des notations (ensemblistes, logiques, etc...) à un énoncé. Le langage
d'une méthode formelle forme sa sémantique. Chaque énoncé et/ou expression possède(nt)
ainsi une signification mathématique précise, qui n'a d'autre sens que celui décrit par la
syntaxe du texte. En l'occurrence, le but d'une méthode formelle est de proposer un processus
de production, ainsi que des outils permettant d'offrir une certaine «abstraction» (fournie par
la rigueur mathématique intrinsèque à chaque méthodologie) au logiciel à développer.
Scrum
Scrum est conçue pour améliorer de manière significative la productivité des équipes
de développement. C’est une méthode qui s’adapte à tout type de contexte et de projet
dès lors qu’un groupe de personnes cherche à atteindre un but commun.
Le Scrum master qui est avant tout un coach de l’équipe et assure les tâches suivantes :
Elle est fonction du temps en abscisse et des points d’histoire en ordonné. Il permet
d’anticiper les dérives.
To Do
In progress
Done
Sprint Planning
Daily scrum meeting
Sprint Review
Retrospective (La rétrospective)
Elle permet de faire aussi un point sur l’avancement de la ”Release” et d’adapter au besoin le
plan et le product Backlog.
V.3.2.12 Retrospective
Le Rétrospectif est la dernière réunion que l’équipe doit réunir pour inspecter, adapter et
optimiser ses performances en constante amélioration en équipe. Contrairement à la revue
Sprint qui comprenait des parties prenantes externes en plus de l’équipe Scrum, cette réunion
est réservée à l’équipe elle-même.
Les inconvénients :
V.4.2 Généralités
UML n’est pas une méthode (i.e. une description normative des étapes de la modélisation) :
ses auteurs ont en effet estimé qu’il n’était pas opportun de définir une méthode en raison de
la diversité des cas particuliers. Ils ont préféré définir un langage graphique qui permet de
représenter, de communiquer les divers aspects d’un système d’information (aux graphiques
sont bien sûr associés des textes qui expliquent leur contenu).
UML est un métalangage car il fournit les éléments permettant de construire le modèle qui,
lui, sera le langage du projet. Il est impossible de donner une représentation graphique
complète d’un logiciel ou de tout autre système complexe, de même qu’il est impossible de
représenter une statue (à trois dimensions) par des photographies (à deux dimensions). Mais il
est possible de donner sur un tel système des vues partielles, analogues chacune à une
photographie d’une statue, et dont la juxtaposition donnera une idée utilisable en pratique sans
risque d’erreur grave. UML depuis la version 2.0 comporte treize types de diagrammes
représentant autant de vues distinctes pour représenter des concepts particuliers du système
d’information.
Le tableau ci-dessous illustre les besoins et les fonctionnalités extraits du cahier des charges.
Besoins Fonctionnalités
Gérer les pompes Enregistrer, modifier, retirer, affecter une
pompe à une cuve
Gérer les cuves Ajouter, mise à jour, retirer, associer un
carburant à une cuve
Gérer les achats de carburants Enregistrer un achat, réceptionner un achat,
approvisionner un achat dans une cuve
Gérer les inventaires Générer un bon de carburant, relever un index,
effectuer un jaugeage, faire les recouvrements
Gérer les employés Ajouter un employé, affecter un employé à une
équipe, planifier une équipe, attribuer une
fonction à un employé
Gérer les tiers Ajouter un fournisseur, un client,
Mettre à jour les informations d’un fournisseur
et un client
Gérer les transactions financières Effectuer des virements de la caisse vers la
banque et inversement, générer une facture
Gérer les accès au système
Création et mise à jour des utilisateurs
Création et mise à jour des profils utilisateurs
Affecter des habilitations aux profils
utilisateurs
Permettre l’authentification pour accéder au
système
VI.1.1.2 Besoins techniques
La capture des besoins techniques a pour objectif, en complément avec la capture des besoins
fonctionnels, de détailler et de formaliser la partie technique de ce qui a été produit au cours
de l’étude préliminaire. Elle couvre toutes les contraintes qui ne traitent ni de la description du
métier ni de la description des besoins fonctionnels.
Le tableau ci-dessous illustre les différents acteurs à mettre en place et leur rôle :
Acteurs Rôle
Pour affiner le diagramme de cas d’utilisation, UML définit trois types de relations
standardisées entre cas d’utilisation :
VI.1.1.3.1.1 Sprint 0
Dans le Sprint 0, nous allons retrouver les actions suivantes :
Constitution de l’équipe Scrum (Product Owner, Scrum Master, Équipe de
développement).
Écriture des users stories.
Écriture et Priorisation du Product Backlog.
Estimation et planification des Sprints et éventuellement des Releases.
Mise en place de tout élément nécessaire au commencement du Sprint 1
Chaque epic est une grande user story qu’elle peut être divisée en plus petites user stories.
VI.1.3.1.1.2 Javascript
JavaScript est un langage de programmation de scripts principalement employé dans
les pages web interactives. C'est un langage orienté objet à prototype, c'est-à-dire que les
bases du langage et ses principales interfaces sont fournies par des objets qui ne sont pas des
instances de classes, mais qui sont chacun équipés de constructeurs permettant de créer leurs
propriétés, et notamment une propriété de prototypage qui permet d'en créer des objets
héritiers personnalisés. En outre, les fonctions sont des objets de première classe.
VI.1.3.1.1.3 CSS
Les feuilles de style en cascade1, généralement appelées CSS de l'anglais Cascading
Style Sheets, forment un langage informatique qui décrit la présentation des documents
HTML et XML.
VI.1.3.1.1.4 HTML
L’HyperText Markup Language, généralement abrégé HTML, est le format de
données conçu pour représenter les pages web. C’est un langage de balisage permettant
d’écrire de l’hypertexte, d’où son nom HTML permet également de structurer
sémantiquement et de mettre en forme le contenu des pages, d’inclure des ressources
multimédias dont des images, des formulaires de saisie, et des programmes informatiques.
VI.1.3.1.1.5 SQL
SQL (Structured Query Language, en français langage de requête structurée) est un
langage informatique normalisé servant à exploiter des bases de données relationnelles. 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.
L'un des principaux avantages de Laravel est son système de routage facile à utiliser, qui
permet aux développeurs de diriger les demandes HTTP vers des contrôleurs spécifiques.
Laravel offre également un système de gestion de bases de données ORM (Object-Relational
Mapping) appelé Eloquent, qui facilite l'interaction avec les bases de données. Les vues dans
Laravel, qui sont générées à l'aide du moteur de templates Blade, permettent de créer des
interfaces utilisateur dynamiques avec une syntaxe claire et concise.
Une autre caractéristique notable de Laravel est son utilisation de Composer pour la gestion
des dépendances. Composer est un outil qui permet aux développeurs de gérer les
bibliothèques logicielles dont dépend leur projet.
En outre, Laravel possède un riche écosystème de packages et de tools, tels que Laravel Forge
pour le déploiement d'applications, Laravel Nova pour l'administration, et Laravel Echo pour
les événements en temps réel.
Visual Studio Code est un éditeur de code source léger mais puissant qui s'exécute sur votre
bureau et est disponible pour Windows, macOS et Linux. Il est livré avec une prise en charge
intégrée de JavaScript, TypeScript et Node.js et dispose d'un riche écosystème d'extensions
pour d'autres langages et environnements d'exécution (tels que C++, C#, Java, Python, PHP,
Go, .NET).
1.2 En tant
qu’administrateur,
je peux modifier
les informations
d’un utilisateur.
1.3 En tant
qu’administrateur,
je peux activer ou
désactiver le
compte d’un
utilisateur.
1.4 En tant
qu’administrateur,
je peux afficher
les informations
d’un utilisateur.
2.3 En tant
qu’administrateur,
je peux attribuer
un rôle a un
utilisateur.
2.4 En tant
qu’administrateur,
je peux consulter
la liste des rôles.
4.3 En tant
qu’administrateur,
je peux activer ou
désactiver une
station.
4.4 En tant
qu’administrateur,
je peux voir les
détails d’une
station.
4.5 En tant
qu’administrateur,
je peux consulter
la liste des
stations.
VII.1.2 Analyse
VII.1.2.1 Diagramme de cas d’utilisation
VII.1.2.2 Description textuelle des cas d’utilisation
Titre S’authentifier
Acteur Tous les utilisateurs
Description Lorsqu’un utilisateur veut accéder à l’application, il doit renseigner son
login et son mot de passe, ensuite le système vérifie s’ils sont corrects ou
pas afin d’autoriser ou de refuser l’accès.
Description des Scénario nominal :
scénarios
L’utilisateur veut l’accéder au système, il lance un
navigateur sur sa machine ;
Il saisit l’url de l’application sur la barre de recherche ;
La page de connexion s’ouvre, l’utilisateur introduit son
login et son mot de passe ; [Er1]
Le système génère le menu de l’utilisateur en fonction de
son profil ;
Le système affiche l’interface « Accueil » ;
Scénario alternatif :
Er1 : erreur de connexion, identifiant ou mot de passe incorrect.
Pré condition L’utilisateur doit avoir un compte.
Pré condition
VII.1.3 Conception
VII.1.3.1 Diagramme de séquence