Mémoire
Mémoire
REPUBLIQUE DU NIGER
Fraternité-Travail-Progrès
THEME :
Promotion : 2021-2023
Je dédie ce mémoire à mes chers parents, dont le soutien, les sacrifices et l’amour inconditionnel
m’ont guidé tout au long de mon parcours. Sans leur patience, leurs encouragements et leur foi
en mes capacités, je n’aurais pas pu atteindre cette étape. Leur persévérance et leurs valeurs
m’ont toujours inspiré à donner le meilleur de moi-même. Ce travail est le reflet de leurs efforts
et de leur confiance en moi.
i
REMERCIEMENTS
Mes remerciements vont également à l’endroit du corps professoral de mon école, pour sa
compétence et l’enseignement de qualité dont j’ai bénéficié durant tout mon cursus. Grâce à
leur dévouement et à leur expertise, j’ai pu acquérir des connaissances solides qui m’ont permis
de mener à bien ce travail.
Enfin, je remercie toutes les personnes qui ont contribué, de près ou de loin, à la réussite de ce
projet. Leur implication et leur disponibilité ont été essentielles à chaque étape.
ii
SIGLES ET ABREVIATIONS
iii
TCP: Transmission Control Protocol;
iv
LISTE DES TABLEAUX
v
LISTE DES FIGURES
vi
Figure 33: Interface profil utilisateur ...................................................................................... 74
Figure 34: Interface imputations ............................................................................................. 75
Figure 35: Formulaire de création d'imputation ..................................................................... 75
Figure 36: Historique opérations récurrentes ......................................................................... 76
Figure 37: Détail d'une opération récurrente .......................................................................... 76
Figure 38: Interface de gestion des clients .............................................................................. 77
Figure 39: Interface de gestion des articles............................................................................. 77
Figure 40: Historique de factures éditées ................................................................................ 78
Figure 41: Détail d'une facture ................................................................................................ 78
Figure 42: Facture en mode impression .................................................................................. 79
Dédicaces .................................................................................................................................... i
Remerciements ........................................................................................................................... ii
Problématique.................................................................................................................. 4
Conclusion .............................................................................................................................. 6
vii
Chapitre Ⅱ : Cadre Methodologique .......................................................................................... 7
Conclusion .............................................................................................................................. 8
.................................................................................................................................................... 9
2. Mission ............................................................................................................................ 9
3. Activités .......................................................................................................................... 9
4. Organigrammes ............................................................................................................. 10
5. Localisation ................................................................................................................... 11
Conclusion ............................................................................................................................ 11
viii
2.2 Système informatique ................................................................................................ 14
Conclusion ............................................................................................................................ 17
1. Méthodes cartésiennes................................................................................................... 23
2. Méthodes systémiques................................................................................................... 23
ix
1. UML .............................................................................................................................. 24
2. SysML ........................................................................................................................... 26
1. Critères de choix............................................................................................................ 27
2. Le choix ......................................................................................................................... 28
Conclusion ............................................................................................................................ 30
Chapitre Ⅳ : Le SaaS............................................................................................................... 31
6. Cloud et SaaS : quels outils sont les plus en vogue selon la catégorie ? ....................... 35
2. Diagramme de séquence................................................................................................ 44
1. Conclusion ................................................................................................................. 51
x
1. Qu’est-ce qu’une API ? ................................................................................................. 53
Conclusion ............................................................................................................................ 59
1. Définition ...................................................................................................................... 60
xi
2.2 Apache ....................................................................................................................... 64
4. Framework .................................................................................................................... 67
4.1 Symfony..................................................................................................................... 68
Conclusion ............................................................................................................................ 71
xii
2. Interface d’édition de factures ....................................................................................... 77
Conclusion ............................................................................................................................ 79
Bibliographie ............................................................................................................................ 81
Webographie ............................................................................................................................ 82
xiii
INTRODUCTION GENERALE
Ce mémoire s’inscrit dans la volonté de concevoir une solution web de gestion fiscale et
comptable sous forme de Software as a Service (SaaS), spécifiquement adaptée aux TPE
et PME nigériennes. La solution proposée vise à offrir une assistance fiable, accessible et
personnalisée en matière de gestion comptable et fiscale, permettant ainsi aux petites entreprises
locales de mieux maîtriser leurs obligations fiscales et d’optimiser la gestion de leurs
ressources.
1
et les outils de développement choisis pour créer l’application. Des interfaces de
l'application y sont également présentées pour donner un aperçu concret du produit final.
2
Première partie :
Cadre théorique et
méthodologique
3
CHAPITRE Ⅰ : CADRE THEORIQUE
Avant d'aborder notre sujet de mémoire, il est important de présenter l’étude préliminaire
qui encadre notre projet. Cette étape permettra d’exposer les différents problèmes que nous
allons traiter, en lien avec la gestion comptable et fiscale des TPE et PME nigériennes. À travers
cette étude, nous mettrons en lumière les défis et contraintes auxquels ces entreprises sont
confrontées, en raison de leurs ressources limitées et des solutions de gestion peu adaptées aux
réalités locales. Cela nous conduira à poser les bases de la solution innovante que nous
proposons, spécialement conçue pour répondre aux spécificités fiscales et économiques du
Niger.
Problématique
La gestion comptable et fiscale est un défi crucial pour les très petites et les moyennes
entreprises (TPE/PME), notamment dans un contexte économique comme celui du Niger, où
les ressources financières et humaines sont souvent limitées. Face à une pression réglementaire
croissante en matière de conformité fiscale et comptable, les TPE et certaines PME nigériennes
se retrouvent dans l’incapacité d’embaucher des comptables qualifiés à plein temps, faute de
moyens. Cette situation expose ces entreprises à des erreurs de gestion, à des retards dans les
déclarations fiscales, et à des pénalités pouvant gravement compromettre leur viabilité
financière.
En outre, les solutions de gestion comptable actuellement disponibles sont souvent génériques.
De ce fait, elles ne tiennent pas compte des particularités économiques et fiscales propres au
Niger. Elles sont généralement trop coûteuses ou inadaptées aux réalités locales des TPE et
PME nigériennes, ce qui limite leur adoption et leur efficacité.
Tout ceci crée un besoin pressant pour une solution innovante, spécifiquement conçue pour le
contexte nigérien, qui permet aux TPE et PME de surmonter ces défis tout en étant abordable
et facilement accessible.
Il est donc essentiel de se poser la question suivante : comment concevoir et déployer une
solution de gestion comptable et fiscale, qui soit non seulement abordable et accessible,
mais aussi parfaitement adaptée aux spécificités fiscales du Niger, afin de renforcer la
conformité réglementaire et la performance financière des TPE et PME locales ?
4
Les objectifs de recherche
2.1 Objectif général
Notre objectif principal à travers cette étude est de mettre en place une solution SaaS de gestion
comptable et fiscale, spécifiquement adapté aux TPE et PME locales, afin de leur permettre de
surmonter les défis liés à la conformité fiscale et à la gestion financière, tout en améliorant leur
compétitivité sur le marché local.
1. Gagner en efficacité
2. Faciliter la gestion des flux financiers
3. Eviter les erreurs et les retards dans la déclaration fiscale
4. Encourager le respect des obligations fiscales
5. Mettre en place une architecture robuste et évolutive
6. Fournir des interfaces utilisateurs simples, intuitives et adaptées aux utilisateurs ayant
peu de compétences en comptabilité ou en technologie
5
4. La pertinence du sujet
Au Niger, comme dans de nombreux pays en développement, les TPE et PME représente une
grande partie de l'économie. En facilitant la gestion comptable et fiscale de ces dernières avec
une solution SaaS bien conçue, cela pourrait les encourager à formaliser leurs activités, leur
permettant ainsi de se développer de manière plus structurée et de contribuer davantage à
l'économie nationale.
De plus, le projet de développer une solution SaaS de gestion comptable et fiscale s'inscrit dans
une dynamique plus large de digitalisation de l'économie. Il encourage l'innovation
technologique en proposant une solution numérique pour un problème traditionnel. Cela
pourrait également stimuler l'adoption des technologies numériques par les TPE et PME,
contribuant ainsi à l'amélioration générale de l'efficacité et de la compétitivité des entreprises
au Niger.
Conclusion
Dans ce premier chapitre, nous avons analysé le contexte et les motivations qui ont guidé le
choix de notre sujet. Nous avons défini la problématique, formulé les hypothèses de recherche,
précisé les objectifs et souligné l'importance de ce projet pour les TPE et PME nigériennes.
Cette première étape a permis de poser les bases théoriques nécessaires pour aborder la question
de la gestion comptable et fiscale adaptée au contexte local. Dans le chapitre suivant, nous
détaillerons la méthodologie adoptée pour répondre efficacement à nos objectifs de recherche.
6
CHAPITRE Ⅱ : CADRE METHODOLOGIQUE
Dans ce chapitre, nous allons d’abord présenter le cadre dans lequel s’inscrit notre étude.
Nous allons délimiter le champ de cette étude en termes d’espace et de temps, puis nous
décrirons les techniques d’investigation utilisées pour atteindre nos objectifs. Enfin, nous
partagerons les principales difficultés rencontrées lors de ce projet.
1. Cadre d’étude
Nous avons effectué un stage de six (6) mois au sein de l’entreprise SHAAWA MEDIA
SERVICES. Au cours de ce stage, nous avons eu comme mission de mettre en place une
solution SaaS de gestion comptable et fiscale pour les TPE et PME locales.
Cela nous a servi aussi de projet de mémoire dans le cadre du diplôme universitaire de Master
en science informatique option Génie Logiciel à l’Ecole Supérieure des Communications
Electroniques et de la Poste.
➢ Dans l’espace, nous avons mené notre étude au sein de l’entreprise SHAAWA MEDIA
SERVICES.
➢ Dans le temps, ce projet nous prendra une période de 6 mois durant laquelle Nous allons
concevoir et déployer notre solution.
3. Techniques d’investigation
Pour pouvoir atteindre les objectifs que nous nous sommes fixés et récolter les données
nécessaires à la réalisation de notre projet, nous avons fait recours à plusieurs techniques dont
entre autres :
➢ La consultation de tous les documents ayant un lien avec notre domaine de recherche
comme les ouvrages, les mémoires etc… ;
➢ Les recherches sur le net des projets similaires qui ont été déjà réalisés ;
➢ Les échanges avec des dirigeants de TPE et PME.
7
4. Difficultés rencontrées
L'une des principales difficultés rencontrées a été la compréhension et l'implémentation de
certains concepts comptables et fiscaux. Cela nous a pris du temps pour maîtriser ces notions
clés, nécessaires à la bonne conception de notre solution. Nous avons dû réfléchir attentivement
à la manière de les intégrer de façon intuitive, afin de faciliter leur utilisation par les futurs
utilisateurs.
Conclusion
Dans ce chapitre, nous avons présenté le cadre de notre étude et la délimitation de notre projet.
Nous avons aussi exposé les techniques d’investigation employées pour collecter les données
nécessaires, telles que la consultation de documents spécialisés et les échanges avec des
dirigeants de TPE et PME. Enfin, nous avons parlé des principales difficultés rencontrées,
notamment dans l'assimilation de notions comptables et fiscales.
8
Deuxième partie :
Cadre organisationnel et
conceptuel
9
CHAPITRE Ⅰ : CADRE ORGANISATIONNEL
Dans ce chapitre, nous allons présenter notre structure d’accueil en détaillant sa mission,
les principales activités qu’elle mène et sa localisation.
2. Mission
La mission de SHAAWA MEDIA SERVICES consiste à accroitre la visibilité des activités,
stimuler la performance, transformer efficacement le processus internes, et concevoir de
nouveaux produits et services innovants. Avec un engagement vers l’excellence, à SHAAWA
MEDIA SERVICES, nous nous efforçons de répondre aux besoins spécifiques de chaque client,
contribuant ainsi à leur succès dans un monde de plus en plus numérique.
3. Activités
SHAAWA MEDIA SERVICES propose à ses clients :
9
• La Conception d’application web et mobile ;
• L’intégration des solutions logicielles ;
• La création des sites web ;
• Le coaching et l’accompagnement en marketing digital
4. Organigrammes
Directeur Général
Responsable Responsable
Administratif & Technique(Chef de
financier projet)
Assistante
marketing & Developpeur web
Communication
Assistant Developpeur
Comptable mobile
Administrateur
Système
Assistant
qualité
L'agence SHAAWA MEDIA SERVICES est dirigée par un Directeur Général chargé de
superviser toutes les activités de l'entreprise et de définir sa stratégie globale. Sous sa direction,
se trouve le Responsable Administratif et Financier, dont le rôle consiste à gérer les aspects
administratifs et financiers de l'entreprise. Ce dernier est assisté par deux assistants : une
assistante en Marketing et Communication, responsable de la promotion de l’entreprise, ainsi
qu'un assistant comptable chargé des affaires financières.
10
D'autre part, le Responsable Technique, également désigné sous le titre de Chef de Projet,
supervise la réalisation technique des projets de l'agence. Cette fonction englobe une équipe
multidisciplinaire comprenant des développeurs web chargés de concevoir des applications
web, des développeurs mobiles spécialisés dans la création d'applications pour les plateformes
mobiles, un administrateur système en charge de la gestion des infrastructures informatiques et
un assistant qualité qui veille à l'adéquation des produits et services de l'entreprise avec les
normes de qualité établies.
5. Localisation
SHAAWA MEDIA SERVICES est situé au quartier Sonuci, Niamey-Niger et est joignable aux
adresses suivantes :
Conclusion
Dans ce chapitre, nous avons présenté l’entreprise SHAAWA MEDIA SERVICES, notre
structure d’accueil, en mettant en avant sa mission, ses activités principales ainsi que sa
localisation.
11
CHAPITRE Ⅱ : CADRE CONCEPTUEL
Dans ce chapitre, nous allons définir et expliquer les concepts et technologies essentiels à
la compréhension de notre projet.
1.2 Fiscalité
La fiscalité désigne l’ensemble des règles et des lois qui concernent les impôts. C’est un système
mis en place par l'État pour collecter des sommes d’argent auprès des citoyens et des entreprises.
1.3 Impôt
L'impôt est une contribution financière obligatoire prélevée par l'État ou d'autres collectivités
publiques sur les ressources des personnes physiques ou morales, sans contrepartie directe, afin
de financer les dépenses publiques. Les impôts peuvent être directs (perçus directement sur les
revenus ou la fortune) ou indirects (prélevés sur les dépenses de consommation).
1.4 TPE
Au Niger, une très petite entreprise (TPE) est généralement définie par :
12
• Effectif : Moins de 10 employés.
• Chiffre d'affaires : Moins de 30 millions de francs CFA par an.
1.5 PME
Les petites et moyennes entreprises (PME) au Niger sont souvent définies par :
➢ Effectif :
• Petites entreprises : Entre 10 et 50 employés.
• Moyennes entreprises : Entre 50 et 100 employés.
➢ Chiffre d'affaires :
• Petites entreprises : Généralement entre 30 millions et 150 millions de francs
CFA par an.
• Moyennes entreprises : Généralement entre 150 millions et 1 milliard de francs
CFA par an.
1.7 Facture
Une facture est un document écrit qui récapitule les biens vendus ou les services fournis que
vous fournissez à votre client. Elle mentionne le montant à payer, les modalités de paiement et
les informations nécessaires à l'identification des parties impliquées dans la transaction.
13
2. Définition des concepts informatiques
2.1 Conception
La conception se réfère au processus de création, de planification et de développement d'un
produit, d'un système ou d'une idée, en prenant en compte divers aspects tels que les
fonctionnalités, l'ergonomie, les contraintes techniques, les besoins des utilisateurs et les
objectifs commerciaux. Ce processus implique généralement la génération d'idées, la recherche,
la modélisation, le prototypage, les tests et l'itération, avec pour objectif final de créer un produit
ou un système répondant aux besoins et aux attentes des utilisateurs finaux.
2.4 Application
C’est un Programme (ou ensemble des logiciels) conçu pour répondre à un ensemble de besoins
précis (traitement de texte, graphisme…) : c’est-à-dire directement utilisé pour réaliser une
14
tâche, ou l’ensemble de tâches élémentaires d’un même domaine ou formant un tout. Parmi ces
applications, on distingue :
➢ Application web statique : Une application web statique affiche peu d’informations et
ne change généralement pas grand-chose. Elles sont généralement développées en
langage HTML et CSS en outre, les animations, vidéos peuvent être affichées quelque
part dans l’application.
➢ Application web dynamique : Les applications web dynamiques sont plus complexes
sur le plan technique. Elles utilisent des bases de données pour charger des informations
et ces contenus sont mis à jour chaque fois que l’utilisateur accède à l’application web.
Il existe des langages de programmation pour le développement d’applications web
dynamique. On retrouve PHP et ASP qui sont les plus courants car ils permettent une
bonne structuration du contenu.
➢ Les applications natives : Une application native est une application créée pour une
plateforme spécifique, en utilisant les outils de développement conçus pour cette
plateforme. Elle est développée en utilisant un langage de programmation spécifique au
système d’exploitation de cette plateforme et est disponible uniquement via son store
d’application (App Store pour IOS, Play Store pour Android, etc.). Si l’on souhaite
15
développer une application pour deux plateformes différentes, il est conseillé de
développer deux applications distinctes.
➢ Les applications Web mobiles : Une WebApp est une application mobile qui est créée
à l’aide des outils de développement web actuels tels que HTML5, CSS3 et JavaScript.
Elle peut être accessible et exécutable sur tous les smartphones via leur navigateur web.
Les avantages de ces applications sont le gain de temps et d’argent réalisé grâce à leur
développement unique et leur déploiement multiplateformes. Alors que dans le cas
d’une application native, vous devez développer une application distincte pour chaque
plateforme (Android, IOS et Windows Phone), les WebApps offrent une solution qui
permet de développer une seule application pour toutes les plateformes.
➢ Les applications hybrides : Les applications hybrides sont des applications qui partagent
le plus de code possible ou parfois le même code entre plusieurs plateformes également
appelées applications cross-plateformes, se situent entre les applications mobiles et web.
Elles sont accessibles sur toutes les plateformes d’application et combinent les
caractéristiques d’une application web développée en langage HTML 5 avec celles
d’une application native mentionnée précédemment. Cette technologie multiplateforme
permet un gain de temps considérable pour les projets peu complexes qui ne nécessitent
pas le développement de plugins spécifiques.
2.9 Le cloud
Le cloud computing, souvent simplement appelé "cloud", désigne la fourniture de services
informatiques via Internet. Plutôt que de posséder et de gérer physiquement des serveurs, du
stockage ou des applications sur place, les utilisateurs peuvent accéder à ces ressources à
distance, sur demande, via le cloud. Les services cloud sont généralement fournis par de grandes
entreprises qui disposent de vastes centres de données répartis dans le monde entier.
16
1.1 Fournisseur cloud
Un fournisseur cloud (ou fournisseur de services cloud) est une entreprise qui propose des
services informatiques sur Internet, tels que le stockage de données, le calcul, le réseau,
l'intelligence artificielle, et bien plus encore. Ces services sont généralement proposés sur une
base d'abonnement ou à la demande, permettant aux entreprises et aux individus d'accéder à des
ressources informatiques sans avoir à investir dans une infrastructure physique.
Conclusion
Tout au long de ce chapitre, nous avons défini et expliqué les concepts et technologies
fondamentaux liés à notre projet. Cette analyse nous a permis de mieux cerner les éléments
essentiels à la réalisation de notre solution et de poser une base solide pour la suite de notre
travail.
17
CHAPITRE Ⅲ : ANALYSE ET METHODE DE CONCEPTION
Dans ce chapitre, nous allons aborder la phase d’analyse et explorer les différentes méthodes
de conception. La phase d’analyse constitue une étape essentielle du processus de
développement logiciel, car elle permet de bien comprendre les pratiques comptables et fiscales
actuelles des TPE et PME. En approfondissant ces pratiques, nous pourrons cerner avec
précision les besoins exprimés par les utilisateurs finaux et poser les bases d’une solution qui
réponde efficacement à leurs attentes.
I. Analyse de l’existant
1. Etude de l’existant
L'étude de l'existant constitue une étape essentielle dans la réalisation de notre projet, car elle
permet de comprendre les pratiques comptables et fiscales actuelles des TPE et PME au Niger.
Ces entreprises, en raison de leurs ressources limitées, adoptent diverses approches pour gérer
leur comptabilité.
Certaines continuent de s'appuyer sur des méthodes traditionnelles, notamment les registres
papier, pour consigner leurs opérations financières. Cette méthode, bien qu'ancienne, reste
courante en raison de son accessibilité et de sa simplicité d'utilisation. D'autres entreprises, plus
à l'aise avec les outils numériques, utilisent des logiciels de comptabilité en ligne gratuits pour
automatiser certaines tâches, telles que la facturation, le suivi des dépenses et les états
financiers. Ces logiciels permettent aux entreprises de réduire le travail manuel et d'accroître
l'efficacité de certaines opérations.
Cependant, la majorité des solutions utilisées restent génériques et ne prennent pas en compte
les spécificités fiscales locales, laissant ainsi les TPE et PME dans une situation où elles doivent
adapter ces outils à leur réalité, parfois sans expertise comptable.
2. Critique de l’existant
Bien que les méthodes actuelles offrent des solutions temporaires aux TPE et PME, elles
présentent plusieurs limites importantes.
18
• Méthodes traditionnelles (papier) : le recours aux registres papier est non seulement
chronophage mais aussi source d’erreurs humaines fréquentes, telles que des erreurs de
calcul et des omissions d’écritures. De plus, cette approche ne permet pas d'automatiser
la gestion des déclarations fiscales ou des rapports financiers, ce qui expose ces
entreprises à des retards dans les paiements d'impôts et à des pénalités.
• Logiciels gratuits en ligne : Bien que ces outils soient accessibles financièrement, ils
manquent souvent de fonctionnalités avancées, comme la gestion des taxes spécifiques
ou la conformité avec la législation fiscale du Niger. Ces logiciels sont également
génériques, souvent conçus pour un marché international, et ne tiennent pas compte des
réalités fiscales locales telles que les taux de TVA, les régimes fiscaux particuliers ou
les délais de déclaration propres au pays. En outre, le support technique est souvent
limité ou inexistant, laissant les entreprises sans assistance en cas de problème.
• Complexité et manque d’adaptation : Les utilisateurs de ces logiciels doivent souvent
adapter les outils eux-mêmes, ce qui exige un niveau d’expertise que beaucoup de TPE
et PME n’ont pas. Cela engendre une gestion peu optimale des ressources et des risques
accrus d’erreurs comptables et fiscales.
3. Solution proposée
Face aux limites identifiées lors de l’étude de l’existant, notre projet de mise en place d'une
solution SaaS de gestion comptable et fiscale se présente comme une réponse adaptée aux
besoins spécifiques des TPE et PME au Niger. Ce projet vise à combler les lacunes des
méthodes traditionnelles et des logiciels génériques actuels en proposant une solution moderne,
accessible et spécialement conçue pour tenir compte des réalités fiscales locales.
Notre solution SaaS (Software as a Service) offrira aux petites entreprises une plateforme en
ligne intuitive et facile d’utilisation, qui leur permettra de gérer efficacement leur comptabilité
et leurs déclarations fiscales, tout en respectant les spécificités du cadre fiscal nigérien. En
automatisant certaines tâches comme : l’enregistrement des imputations(entrées/sorties), la
gestion du répertoire clients et celle des articles ou services proposée par l’entreprise, le calcul
des impôts, l’édition de factures certifiées, la gestion des déclarations, la production des états
financiers, pour ne citer que ceux-là… Cette solution réduira considérablement les erreurs
humaines et les retards dans les déclarations fiscales, des problèmes récurrents identifiés chez
ces entreprises.
19
II. Analyse des besoins
1. Besoins fonctionnels
Afin de répondre aux besoins exprimés par les petites et moyennes entreprises (TPE et PME)
au Niger, notre solution SaaS de gestion comptable et fiscale est conçue pour offrir un
ensemble de fonctionnalités complètes, simples et adaptées à leurs exigences. Ces
fonctionnalités permettront de gérer efficacement les opérations comptables et fiscales tout en
respectant les spécificités locales. Voici les principales fonctionnalités de la solution :
20
• Gestion des paiements de taxes et impôts
Le module de gestion des paiements offrira aux entreprises la possibilité de calculer et
de générer les dépenses relatives au paiement des taxes et impôts. Ce processus sera
automatisé pour simplifier la gestion des obligations fiscales et garantir leur respect.
• Gestion des demandes fiscales
Pour les entreprises qui ont besoin de services fiscaux spécifiques, cette fonctionnalité
permettra de soumettre des demandes directement à l’administration fiscale ou à
d’autres institutions compétentes, facilitant ainsi l’accès aux services et réduisant les
démarches administratives.
• Gestion des utilisateurs
Ce module permettra aux entreprises de gérer les accès utilisateurs de manière
sécurisée. Elles pourront créer plusieurs comptes utilisateurs avec des niveaux d’accès
distincts, assurant ainsi une gestion sécurisée et fluide des droits d’accès au sein de la
plateforme.
Voici une liste des besoins non fonctionnels indispensable pour notre solution :
➢ Performance et disponibilité :
• Temps de réponse : la solution doit offrir des temps de réponse rapides pour
toutes les opérations clés, y compris la génération de rapports et la gestion des
factures.
• Disponibilité : garantir un taux de disponibilité élevé (par exemple, 99,9% de
disponibilité) pour minimiser les interruptions de service et assurer que la
plateforme est accessible en tout temps.
• Scalabilité : la solution doit pouvoir évoluer en fonction des besoins croissants
des entreprises, notamment en termes de volume de données et de nombre
d’utilisateurs.
➢ Usabilité et accessibilité :
• Interface utilisateur (UI) : l’interface doit être intuitive et facile à utiliser,
même pour des utilisateurs sans compétences techniques avancées. Cela
21
comprend une navigation claire, des formulaires bien conçus et une aide
contextuelle.
• Accessibilité : la solution doit être accessible sur divers appareils (ordinateurs,
tablettes, smartphones) et navigateurs.
➢ Support et maintenance :
• Assistance technique : fournir un support technique réactif et disponible, avec
des options de contact comme le chat en ligne, les courriels et les lignes
téléphoniques.
• Mises à jour et correctifs : mettre en place un plan de maintenance régulière
incluant des mises à jour logicielles pour corriger les bugs, améliorer les
fonctionnalités et intégrer les changements législatifs ou réglementaires.
➢ Sauvegarde et récupération des données :
• Sauvegardes régulières : effectuer des sauvegardes régulières des données pour
prévenir la perte de données en cas de défaillance système ou d’incidents
imprévus.
➢ Performances de traitement des données :
• Traitement des volumes élevés de données : la solution doit pouvoir gérer
efficacement un grand volume de transactions et de données sans compromettre
la performance.
• Optimisation des requêtes : utiliser des techniques d’optimisation des requêtes
pour garantir des performances rapides lors des opérations sur les bases de
données.
Il existe plusieurs méthodes de conception logicielle, chacune adaptée à des contextes différents
en fonction des besoins et des contraintes du projet. Voici les principales :
22
1. Méthodes cartésiennes
Avec cette méthode, le système étudié est abordé par les fonctions qu'il doit assurer plutôt que
par les données qu'il doit gérer. Le processus de conception est vu comme un développement
linéaire. Il y a décomposition systématique du domaine étudié en sous-domaines, eux-mêmes
décomposés en sous domaines jusqu'à un niveau considéré élémentaire. SADT (Structured-
Analysis-DesignTechnique) en est un exemple.
2. Méthodes systémiques
Les méthodes systématiques sont des méthodes basées sur une approche systématique. Elles
définissent différents niveaux de préoccupations ou d’abstraction et proposent de nombreux
modèles complémentaires. Comme exemples de méthodes systémiques, nous pouvons citer
MERISE, AXIAL etc.
Les promoteurs de ces trois (3) méthodes se sont fixées pour objectif de créer une méthode qui
fait 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.
4. Méthodes agiles
Les méthodes de développement dites « méthodes agiles » (en anglais agile modeling) visent à
réduire le cycle de vie d’un logiciel (donc accélérer son développement) en développant une
version minimale puis en intégrant les fonctionnalités par un processus itératif basé sur l’écoute
du client et des tests tout long du cycle de développement. Comme méthodes agile, nous
pouvons citer Xtreme Programming (XP, SCRUM).
23
5. Méthodes formelles
Les méthodes formelles sont des techniques permettant de raisonner rigoureusement, à l'aide
de la logique mathématique, sur des programmes informatiques ou du matériel électronique,
dans le but de démontrer leur validité par rapport à une spécification donnée. Elles reposent sur
les sémantiques des programmes, c'est-à-dire sur des descriptions mathématiques formelles du
sens d'un programme donné par son code source.
✓ Diagramme des cas d’utilisation (DCU) représente les fonctionnalités que doit fournir
le système, décrit les possibilités d'interaction entre le système et les acteurs ;
✓ Diagramme d’activités (DAC) donne une vision de l’enchaînement des activités
propres à une opération ou à un cas d’utilisation.
On a quatre diagrammes :
24
stockage, etc.) et la manière dont les composants du système sont répartis sur ces
éléments matériels et interagissent avec eux.
✓ Diagramme d’états-transitions (DET) : montre la manière dont l'état d’un objet est
modifié en réaction aux événements ;
✓ Diagramme de séquence (DSE) : décrit les scénarios de chaque cas d’utilisation en
mettant l’accent sur la chronologie des opérations en interaction avec les objets ;
✓ Diagramme de collaboration (DCO) : décrit les scénarios des cas d’utilisation présentés
par l’intermédiaire d’objets et messages échangés.
25
Remarque : UML 2.0 comporte treize diagrammes : les neufs diagrammes de UML 1.4, à
l'exception du diagramme de collaboration (remplacé par le diagramme de communication).
Quatre nouveaux diagrammes s’ajoutent ainsi qu’il suit :
2. SysML
SysML, acronyme de System Modeling Language, est un langage de modélisation systémique
qui étend et adapte les principes d'UML (Unified Modeling Language) pour répondre aux
besoins spécifiques de la modélisation des systèmes complexes. SysML est principalement
utilisé pour la conception et l'analyse de systèmes, tels que les systèmes embarqués, les
systèmes d'information, les systèmes de transport, et d'autres systèmes complexes.
26
Figure 4: logo sysML
Pour le choix de la méthode de développement, l'accent a été mis sur l'importance d'une
livraison progressive des différents modules de l'application. Chaque livrable doit non
seulement être fonctionnel, mais aussi permettre de recueillir des retours qui guideront
l'amélioration et l'ajout de futures fonctionnalités. Il est donc essentiel de sélectionner une
méthode qui soit :
27
2. Le choix
Nous avons donc opté pour la méthode Scrum Agile avec une modélisation objet. Pour notre
langage de modélisation nous utiliserons le langage de modélisation UML.
➢ Engagement ;
➢ Focus ;
➢ Ouverture ;
➢ Respect ;
➢ Courage ;
• Une équipe avec des rôles bien définis des blocs de temps : Scrum utilise des blocs de
temps pour créer de la régularité. Le cœur du rythme de Scrum est le sprint, une itération
d’un mois ou moins.
• Des artefacts : Scrum exige peu d’artefacts lors du développement : le plus remarquable
est le Backlog de produit, pivot des différentes activités.
2. L’équipe SCRUM
L’équipe a un rôle capital dans Scrum. Dans le cadre de Scrum, l’équipe est composée de :
28
➢ Le Product Owner : Il est responsable de la définition du contenu des produits et de la
gestion des priorités pour son développement ;
➢ L’équipe de développement : elle est chargée de transformer les besoins exprimés en
fonctionnalités utilisables. L’équipe peut être pluridisciplinaire et embarquer plusieurs
types de personnes : les développeurs, les testeurs, les analystes fonctionnels, les
graphistes etc.
3. Le principe de fonctionnement
Le principe de fonctionnement de la méthode SCRUM repose sur une approche itérative et
incrémentielle de la gestion de projet. Plusieurs éléments contribuent au bon fonctionnement :
• Product Backlog : est une liste qui rassemble tout ce dont le produit a besoin pour
satisfaire les clients potentiels. Il est préparé par le propriétaire du produit et les
fonctions sont classées par ordre de priorité en fonction de ce qui est plus ou moins
important pour l’entreprise ;
• Les Sprint Backlog : Il s’agit d’un sous-ensemble d’éléments du Backlog produit, qui
sont sélectionnés par l’équipe pour être exécutés pendant le sprint sur lequel ils vont
travailler. L’équipe détermine la durée de chaque sprint ;
• Sprint : Le sprint est l’unité de travail de base d’une équipe Scrum. C’est la principale
caractéristique qui marque la différence entre Scrum et les autres modèles de
développement agile ;
• Planification du sprint : Le but du Sprint Planning est de définir ce qui va être fait dans
le Sprint et comment cela va être fait. Cette réunion se tient au début de chaque sprint
et définit la manière dont il abordera le projet à partir des étapes et des délais du Product
Backlog ;
• Daily Standup : Les membres de l'équipe se réunissent quotidiennement lors d'une
brève réunion appelée "Daily Standup" pour partager l'avancement et les défis ;
• Revues de Sprint : À la fin de chaque sprint, l'équipe démontre le travail accompli au
Product Owner et aux parties prenantes lors d'une revue de sprint ;
• Incrément : À la fin de chaque sprint, l'équipe livre un "incrément" du produit, c'est-à-
dire une version partiellement fonctionnelle du produit, prête à être utilisée ;
• Transparence : La transparence est fondamentale avec des tableaux de bord visibles
pour suivre le progrès et des communications ouvertes. Le cycle SCRUM se répète de
sprint en sprint, avec une amélioration continue du produit. Ce processus agile permet
29
de s'adapter rapidement aux changements et de livrer des produits de haute qualité. A la
fin d’un sprint, le résultat attendu est un incrément du produit final qui est
potentiellement livrable.
Le cycle SCRUM se répète de sprint en sprint, avec une amélioration continue du produit. Ce
processus agile permet de s'adapter rapidement aux changements et de livrer des produits de
haute qualité. A la fin d’un sprint, le résultat attendu est un incrément du produit final qui est
potentiellement livrable.
Conclusion
Dans ce chapitre, nous avons examiné la phase d’analyse en approfondissant l’étude de
l’existant et en identifiant les besoins des utilisateurs finaux. Nous avons aussi exploré plusieurs
méthodes de conception, justifiant notre choix de méthode pour structurer efficacement notre
solution. Dans le prochain chapitre, nous nous pencherons sur la notion de SaaS, en explorant
son historique et les avantages qu'une solution SaaS peut apporter à une entreprise. Nous
aborderons également la notion de cloud, en clarifiant la différence entre le cloud et le SaaS,
pour mieux situer le contexte de notre projet.
30
CHAPITRE Ⅳ : LE SAAS
2. L’historique du SaaS
31
logicielles robustes pouvaient être utilisées exclusivement en ligne, sans besoin
d’installation locale.
4. Années 2000 : Expansion rapide
Au début des années 2000, le SaaS s'est démocratisé, grâce à l'amélioration des
infrastructures Internet et des technologies de virtualisation. Des plateformes comme
Google Apps (maintenant Google Workspace) et Microsoft 365 ont adopté ce
modèle, offrant des solutions de bureautique et de collaboration accessibles en ligne.
5. Années 2010 et au-delà : Dominance du Cloud et du SaaS
L’évolution du cloud computing a consolidé la place du SaaS dans l'écosystème
logiciel. Les entreprises de toutes tailles ont commencé à adopter des solutions SaaS
pour des applications variées (CRM, comptabilité, RH, etc.), attirées par ses avantages
économiques et opérationnels. Des géants comme Amazon Web Services (AWS) et
Microsoft Azure ont fourni l’infrastructure nécessaire pour soutenir cette croissance.
Aujourd'hui, le SaaS est un pilier du cloud computing, omniprésent dans de nombreux secteurs
d'activité, en raison de sa flexibilité, de sa capacité à s'adapter rapidement, et de son coût réduit
par rapport aux modèles traditionnels.
1. Réduction des coûts : Pas besoin d'investir dans des serveurs ou des infrastructures
coûteuses. Le modèle par abonnement permet de réduire les coûts initiaux et d'éviter
des dépenses liées à la maintenance et à la mise à jour du logiciel.
2. Accès à distance : Les employés peuvent accéder aux logiciels depuis n’importe quel
endroit avec une connexion Internet, favorisant le travail à distance et la mobilité.
3. Mises à jour automatiques : Le fournisseur gère les mises à jour et les correctifs de
sécurité, assurant que l'entreprise utilise toujours la dernière version sans interruption
de service.
4. Scalabilité : Les solutions SaaS sont facilement évolutives, ce qui permet à l’entreprise
d’ajuster l’utilisation en fonction de sa croissance ou de ses besoins spécifiques sans
avoir à modifier son infrastructure.
32
5. Déploiement rapide : Contrairement aux solutions « on-premise » qui nécessitent une
installation longue et complexe, les logiciels SaaS sont prêts à l'emploi dès qu'ils sont
souscrits.
6. Sécurité renforcée : Les fournisseurs SaaS investissent généralement massivement
dans la sécurité des données, avec des systèmes de sauvegarde, de chiffrement et de
récupération en cas de désastre, ce qui peut être difficile à maintenir en interne pour une
petite entreprise.
4. Comprendre le cloud
En somme, le Cloud permet aux entreprises de gérer efficacement leurs données et leurs
opérations en ligne, sans avoir à investir dans leur propre infrastructure informatique.
Au lieu de cela, ils peuvent utiliser les serveurs et l'infrastructure d'un fournisseur de
services Cloud tiers, qui offrent des services d'hébergement et de stockage de données à
la demande.
33
• Le stockage de fichiers
Il peut également être utilisé pour déployer des applications et des services à grande
échelle, en offrant une flexibilité et une évolutivité sans précédent.
34
En résumé, les entreprises peuvent utiliser le Cloud pour stocker et gérer des données,
tandis que le SaaS leur permet d'accéder à des applications logicielles en ligne, sans
avoir à gérer l'infrastructure sous-jacente.
6. Cloud et SaaS : quels outils sont les plus en vogue selon la catégorie ?
Cloud et SaaS sont deux concepts étroitement liés et souvent utilisés ensemble, mais ils
présentent des différences significatives en termes d'outils utilisés.
Le Cloud utilise souvent des outils de virtualisation pour créer une infrastructure
informatique flexible et évolutive. Les entreprises peuvent les utiliser pour créer des
environnements personnalisés pour leurs besoins spécifiques.
Pour se familiariser avec les outils de gestion de Cloud, voici les plus connus :
• Microsoft Azure
En revanche, les applications SaaS sont fournies via une interface Web, ce qui signifie
que les utilisateurs n'ont pas besoin d'installer ou de maintenir de logiciels sur leur
propre ordinateur. Les fournisseurs de services SaaS sont responsables de la
maintenance, de la mise à jour et de la sécurité de l'application.
Pour vous donner des noms familiers, les plus populaires sont :
• Salesforce
• Office 365
• Dropbox
• Slack
• Zoom
Toutes ces plateformes ont pour point commun leur modèle économique via un
abonnement, pour davantage de souplesse et une mise à jour régulière de leurs capacités
pour leurs souscripteurs.
35
CHAPITRE Ⅳ : CONCEPTION
Dans ce chapitre, nous allons examiner la phase de conception, qui est cruciale dans le cycle
de vie de notre projet et joue un rôle décisif dans la création d'une application de qualité. C'est
à ce stade que nous devons définir clairement la vision d'ensemble de notre application, en
élaborant les spécifications fonctionnelles et techniques. Cette phase permet de traduire les
besoins identifiés lors de la phase d’analyse en éléments concrets et structurés, garantissant
ainsi une base solide pour le développement futur.
Acteurs Rôles
❖ Administrateur ➢ Il est le maitre du système il a tous les
privilèges du système.
❖ Gestionnaire ➢ Il est responsable du système au niveau de
son entreprise.
36
1.2 Les Diagrammes de Cas d’utilisations
Dans cette partie, nous allons présenter les différentes fonctionnalités du système à l’aide des
diagrammes de cas d’utilisation. Cependant, pour la description nous ne détaillerons que
quelques-uns d’entre eux.
37
Figure 7: Diagramme de Cas d'utilisation du Système
38
Figure 9: Cas d'utilisation gérer facture
39
Figure 10: Cas d'utilisation Gérer utilisateurs
40
Scenario nominal :
Post condition :
Titre S’authentifier
Acteurs Tous les Utilisateurs
Description Ce cas d’utilisation permet à l’utilisateur de saisir son mail et mot de
passe pour pouvoir accéder à l’application.
41
Scénario nominal :
1. L’utilisateur souhaite accéder à l’application, il clique sur son navigateur de
choix
2. L’utilisateur saisit l’url de l’application dans la barre de recherche du
navigateur
3. Le système affiche la page de login et invite l’utilisateur à saisir son mail et
mot de passe
4. L’utilisateur saisit son mail et mot de passe et clique sur le bouton « Se
connecter »
5. Le système fait une vérification
6. Le système redirige l’utilisateur vers la page d’accueil à l’utilisateur
Scénario Alternatif :
3.a L’utilisateur décide de quitter la page
Scénario d’Exception :
5.b Mail ou Mot de passe saisi incorrect (retour à l’étape 3)
Pré condition :
L’utilisateur doit avoir un compte
42
Scénario Alternatif :
1.a L’utilisateur décide de quitter la page
Scénario d’Exception :
4.b Adresse mail incorrect (retour à l’étape 3)
Post condition :
L’utilisateur est redirigé vers la page d’accueil
43
Tableau 5: Changer mot de passe
2. Diagramme de séquence
Les diagrammes de séquences décrivent les interactions entre les acteurs et les objets selon un
point de vue temporel découlant du haut vers le bas. Dans la plupart des cas, un seul diagramme
44
de séquence ne peut pas représenter toute la complexité d'un système, surtout s'il est complexe.
C'est pourquoi, nous utilisons plusieurs diagrammes de séquence, chacun se concentrant sur
une partie spécifique du système. Par exemple, un diagramme de séquence peut être utilisé pour
illustrer comment un cas d'utilisation particulier est géré dans le système.
45
Figure 12: Diagramme de séquence Authentification
46
Figure 13: Diagramme de séquence Mot de Passe Oublié
47
Figure 14: Diagramme de séquence Changer Mot De Passe
3. Diagramme de classe
Le diagramme de classe est considéré comme le plus important de la modélisation orientée
objet, il est le seul obligatoire lors d’une telle modélisation. Le diagramme de classe montre la
structure interne du système. Il permet de fournir une représentation abstraite des objets du
système qui vont interagir ensemble pour réaliser les cas d’utilisation. Il s’agit d’une vue
48
statique car on ne tient pas compte du facteur temporel dans le comportement du système. Les
principaux éléments de cette vue statique sont les classes et leurs relations.
49
4. Diagramme de déploiement
Le diagramme de déploiement est un type de diagramme UML (Unified Modeling Language)
qui représente la configuration physique du système, notamment la manière dont les
composants logiciels sont déployés sur l'infrastructure matérielle. Il montre les nœuds
physiques (serveurs, ordinateurs, appareils mobiles, etc.) ainsi que les relations entre eux, tels
que les connexions réseau. Chaque nœud peut exécuter un ou plusieurs artefacts logiciels,
comme des applications, des bases de données ou des services.
1. Nœuds : Ce sont les unités physiques qui exécutent les composants du système (par
exemple, serveurs, clients, etc.).
2. Composants logiciels : Ce sont les artefacts déployés sur les nœuds (fichiers
exécutables, bibliothèques, bases de données, etc.).
3. Relations entre nœuds : Elles montrent la communication ou les flux de données entre
les différentes entités matérielles via des protocoles ou des connexions réseau.
50
1. Conclusion
Dans ce chapitre, nous avons présenté les diagrammes UML qui ont été utilisés pour la
conception de notre application. Ces outils visuels nous ont permis de clarifier et d'organiser
les différentes composantes de notre projet, facilitant ainsi la transition vers la phase de
réalisation. Dans la suite, nous aborderons la dernière partie intitulée "Réalisation", où nous
explorerons la notion d’API, l’architecture logicielle, les outils utilisés et les mesures de sécurité
mises en place, ainsi que les interfaces développées.
51
Troisième partie :
Réalisation
52
CHAPITRE Ⅰ : LES API (Interface de Programmation d’Application)
En effet, ces API sont à la portée de tous les tiers et peuvent être utilisées sans restriction. Ce
type d'API peut être employé librement par les développeurs tiers pour créer puis tester des
applications, mais aussi leur donne les moyens d'innover.
53
Les API publiques peuvent aussi être commerciales. Dans ce cas, des frais d'abonnement sont
facturés ou utilisés sur une base de paiement à l'utilisation. Les essais gratuits offerts par les
éditeurs permettent aux utilisateurs d'évaluer les API avant de s'abonner.
L'API de Google Maps est un bon exemple d'API publique. Celle-ci permet aux utilisateurs de
bénéficier de fonctionnalités de suivi et de géolocalisation. Ces services sont utilisés dans des
applications de covoiturage ou de livraison de repas par exemple.
Bien que l'accès soit limité aux opérations internes, les API privées prévoient toujours des
mesures de sécurité pour vérifier l'identité des employés avant d'autoriser l'accès au système.
Par exemple, elles peuvent connecter les systèmes de paie et RH. Grâce à cette approche, les
organisations peuvent contrôler totalement l'utilisation d'une API. Les développeurs internes
peuvent aussi recourir à ce type d'API pour développer des applications destinées aux clients.
Les API privées facilitent les actions qui touchent les entreprises dans leur ensemble. En
utilisation et en réutilisant ces API, les entreprises développent leur productivité et leur
efficacité. Par exemple, une équipe d'un centre d'appel ayant créé une API d'informations client
permettant d'accéder à leur nom et à leurs coordonnées peut la réutiliser dans une application
orientée client.
En effet, les API partenaires sont plus limitées quant aux personnes qui peuvent accéder au
service. Elles peuvent être gratuites ou payantes. Étant donné que les API partenaires ne sont
mises à la disposition que de certaines parties, elles ont tendance à avoir des règles plus strictes
et plus rigoureuses en matière d'autorisation, d'authentification et de sécurité.
54
Certaines des API les plus importantes et les plus utilisées sont des API partenaires, l'API
d'eBay en est un exemple.
Autoriser l'accès aux données à ses partenaires permet à l'entreprise de surveiller la manière
dont ils utilisent les actifs numériques. Le but est notamment de s'assurer que les API employées
augmentent l'expérience utilisateur. Les API partenaires sont configurées de manière à ce que
chaque organisation puisse avoir accès aux données. Cette catégorie d'API permet de créer de
nouveaux flux de revenus sans compromettre la sécurité.
Les API composites sont particulièrement utiles dans les architectures de microservices, où un
utilisateur peut avoir besoin d'informations provenant de plusieurs services pour effectuer une
seule tâche.
REST (Representational State Transfer) repose sur des principes architecturaux, tandis que
SOAP (Simple Object Access Protocol) est un protocole formel encadré par le W3C (World
Wide Web Consortium). La principale distinction entre ces deux approches réside dans le fait
que SOAP est un protocole, alors que REST ne l'est pas. Le choix entre REST et SOAP pour
une API dépend généralement de l'usage prévu et des préférences des développeurs.
55
L'envoi d'une requête de données à une API REST se fait généralement par le protocole HTTP
(Hypertext Transfer Protocol). À la réception de la requête, les API développées selon les
principes REST (appelées API ou services web RESTful) peuvent renvoyer des messages dans
différents formats : HTML, XML, texte brut et JSON. Le format JSON (JavaScript Object
Notation) est le plus utilisé pour les messages, car, en plus d'être léger, il est lisible par tous les
langages de programmation (en dépit de son nom) ainsi que par les humains. Les API RESTful
sont ainsi plus flexibles et plus faciles à mettre en place.
Une application est dite RESTful lorsqu'elle respecte six recommandations architecturales.
Ainsi, une application RESTful doit inclure les éléments suivants :
56
1. WS-Security (Web Services Security) : spécification qui standardise la manière dont les
messages sont sécurisés et transférés via des identifiants uniques appelés jetons.
2. WS-ReliableMessaging : spécification qui standardise la gestion des erreurs entre les
messages transférés par le biais d'une infrastructure informatique non fiable.
3. WS-Adressing (Web Services Addressing) : spécification qui ajoute les informations de
routage des paquets en tant que métadonnées dans des en-têtes SOAP, au lieu de les
conserver plus en profondeur dans le réseau.
4. WSDL (Web Services Description Language) : décrit la fonction d'un service web ainsi
que ses limites.
Lorsqu'une requête de données est envoyée à une API SOAP, elle peut être gérée par n'importe
quel protocole de couches de l'application : HTTP (pour les navigateurs web), SMTP (pour les
e-mails), TCP et autres. En revanche, suite à la réception de la requête, les messages SOAP
doivent être renvoyés sous la forme d'un document XML, un langage balisé lisible aussi bien
par les humains que par les machines. Une fois finalisée, une requête destinée à une API SOAP
ne peut pas être mise en cache par un navigateur. Il n'est donc pas possible d'y accéder plus tard
sans la renvoyer vers l'API.
Le protocole HTTP
Les API REST sont plus légères et donc plus adaptées aux concepts récents tels que l'Internet
des objets (IoT), le développement d'applications mobiles et le serverless. Les services web
SOAP intègrent des spécifications de sécurité et de conformité des transactions qui répondent
aux besoins de nombreuses entreprises, mais qui les rendent également plus lourds. De plus, de
nombreuses API publiques, telles que l'API Google Maps, suivent les recommandations REST.
6. Le protocole http
Le protocole HTTP est l'un des moyens les plus couramment utilisés pour permettre la
communication entre différents systèmes. Une API web repose sur des requêtes HTTP pour
57
interagir avec les données ou les services d'une application, qu'elle soit hébergée sur le même
serveur ou sur un autre.
• GET : Récupère les informations sur une ou plusieurs ressources sans les modifier.
Exemple : récupérer la liste des utilisateurs ou les détails d'un utilisateur spécifique.
• POST : Crée une nouvelle ressource. Exemple : créer un nouvel utilisateur en envoyant
les données dans le corps de la requête.
• PUT : Met à jour complètement une ressource existante. Exemple : modifier toutes les
informations d'un utilisateur spécifique.
• PATCH : Met à jour partiellement une ressource. Exemple : mettre à jour uniquement
le nom ou l'email d'un utilisateur.
• DELETE : Supprime une ressource. Exemple : supprimer un utilisateur.
58
Figure 17: Fonctionnement d'une API REST
Conclusion
Dans cette partie, nous avons défini les APIs et exploré leurs différents types, afin de mieux
comprendre leur rôle essentiel dans le développement d'applications modernes. Nous avons
également discuté des différences entre les APIs SOAP et REST, en mettant en lumière les
avantages et inconvénients de chacune. De plus, nous avons abordé le protocole HTTP, qui
constitue la base de la communication entre les clients et les serveurs dans le contexte des APIs.
Cette analyse nous permettra d'appliquer ces concepts de manière efficace dans notre projet.
59
CHAPITRE Ⅱ: ARCHITECTURE LOGICIELLE, OUTILS ET
POLITIQUE DE SECURITE
Dans cette partie, nous allons d'abord parler de l'architecture logicielle de façon générale et
celle que nous avons adopté pour notre application. Nous présenterons ensuite les différents
outils utilisés pour la création de l'application, en soulignant leur pertinence et leur efficacité.
De plus, nous aborderons les aspects liés à la sécurité, en mettant en lumière les mesures et les
stratégies mises en place pour garantir la protection des données et assurer la fiabilité de
l'application.
I. Architecture logicielle
1. Définition
L'architecture logicielle désigne la structure fondamentale d’un logiciel, incluant ses
composants principaux, leurs relations mutuelles et les principes de conception qui les guident.
C'est la fondation sur laquelle repose tout le système. Elle définit la manière dont les différentes
parties d'un logiciel interagissent entre elles, gèrent les flux de données et répondent aux
exigences fonctionnelles et non fonctionnelles (Performance, Sécurité, Scalabilité, etc.).
L’architecture logicielle peut être vue comme une série de décisions structurantes qui orientent
la construction du logiciel et influencent directement sa stabilité, son efficacité, sa flexibilité et
son évolution à long terme.
60
• Performance : Elle garantit que le système fonctionne rapidement et efficacement
même sous forte charge.
• Sécurité : Une architecture bien conçue prend en compte la sécurité dès le départ, en
prévoyant des mécanismes pour protéger les données et l'accès au système.
• Coût : Une architecture mal pensée peut générer des coûts élevés à cause des révisions
ou d’une faible maintenabilité.
• Facilité de collaboration : Une architecture claire permet aux membres de l'équipe de
développement de travailler ensemble plus efficacement.
• Compatibilité : Elle doit être compatible avec les différentes plateformes (systèmes
d’exploitation, navigateurs, tailles d'écran, etc.) nécessaires à l’utilisation du logiciel.
• Modèle (Model) :
Il gère la logique métier et les données. Le modèle est responsable de la gestion des interactions
avec la base de données, les calculs métiers et la logique de traitement des informations. Par
exemple, dans un système de gestion comptable, le modèle gère les entités telles que les
factures, les clients, les articles… etc. et stocke ces informations dans une base de données.
• Vue (View) :
La vue est responsable de l'affichage des données à l'utilisateur. Elle représente l'interface
utilisateur qui permet de visualiser et interagir avec les informations gérées par le modèle. Dans
un environnement web, cela correspond à l'interface utilisateur (UI), les pages HTML, ou
encore les fichiers PDF générés pour présenter des rapports de facturation.
• Contrôleur (Controller) :
61
Le contrôleur agit comme un intermédiaire entre le modèle et la vue. Il reçoit les actions de
l'utilisateur (comme la création d’une nouvelle facture), appelle le modèle pour modifier les
données, puis actualise la vue pour refléter ces changements. Dans notre contexte, le contrôleur
pourrait gérer les actions comme l'ajout de nouveaux articles, l’édition d’une facture…etc.
Le modèle MVC distingue clairement les responsabilités entre la gestion des données (Modèle),
la gestion de l'interface utilisateur (Vue) et le traitement des interactions (Contrôleur). Cette
séparation facilite la compréhension et la maintenance du système.
Il est possible de modifier une partie de l'application (par exemple, changer l'interface
utilisateur) sans affecter les autres (comme la logique métier). Cela répond à la nécessité de
maintenabilité et d'évolutivité de l'architecture logicielle, permettant d'ajouter de nouvelles
fonctionnalités ou de modifier les existantes sans remettre en question l’ensemble du système.
• Réutilisabilité :
62
Les composants du modèle MVC sont souvent réutilisables. Par exemple, le modèle (qui
contient les règles métier et les interactions avec la base de données) peut être utilisé dans
d'autres applications. Cela réduit la duplication du code et améliore l’efficacité du
développement.
• Modularité :
• Performance et sécurité :
En répartissant les responsabilités entre différents composants, le modèle MVC peut optimiser
la gestion des ressources et de la sécurité. Par exemple, le modèle peut s’assurer que les accès
aux données sont correctement sécurisés, tandis que le contrôleur peut gérer les autorisations et
les authentifications.
II. Outils
Pour atteindre les objectifs que nous nous sommes fixés dans la réalisation de notre solution,
nous avons utilisé plusieurs outils, parmi lesquels :
1. Outil de modélisation
1.1 Power AMC
Power AMC est un outil de modélisation de données et de conception de bases de données. Il
est largement utilisé par les professionnels de l'informatique pour concevoir, modéliser et
documenter des bases de données, ainsi que pour définir des architectures d'entreprise
complètes. Power AMC offre diverses fonctionnalités avancées, telles que la création de
diagrammes entité-relation (ER), la génération automatique de schémas de bases de données,
la gestion des versions et la collaboration en équipe. En permettant une modélisation visuelle
intuitive, Power AMC aide les entreprises à concevoir des bases de données performantes tout
en alignant leurs systèmes d'information sur leurs objectifs stratégiques.
63
Figure 19: Logo PowerAMC
2. Outils de développement
2.1 Visual Studio Code
Visual Studio Code : est un éditeur de code extensible développé par Microsoft (première
version le 14 novembre 2015) pour Windows, Linux et macOS. Il supporte les langages comme
C, C++, Go, CSS, JavaScript, TypeScript, C#, PHP, Python, Java, et [Link]. Les
fonctionnalités incluent la prise en charge du débogage, la mise en évidence de la syntaxe, la
complétion intelligente du code, les snippets, la refactorisation du code et Git intégrer.
2.2 Apache
Le serveur Apache, développé par l’Apache Software Foundation, est l’un des serveurs web les
plus populaires au monde grâce à sa fiabilité, sa flexibilité, et son caractère open-source. Il
64
permet de livrer des pages web aux utilisateurs et prend en charge plusieurs langages comme
PHP, Python ou Perl.
2.3 MySQL
MySQL est un système de gestion de bases de données relationnelles open-source, largement
utilisé pour stocker et gérer les données des applications web. Développé à l'origine par MySQL
AB, il est maintenant maintenu par Oracle Corporation et supporte le langage SQL pour la
gestion des données. MySQL est apprécié pour sa rapidité, sa fiabilité, et sa simplicité, en
particulier dans des environnements comme la stack WAMP (Windows, Apache, MySQL,
PHP). Il offre des fonctionnalités puissantes telles que la gestion des transactions, le support
des clés étrangères, et la réplication pour la haute disponibilité. Bien qu’il puisse être limité
pour les bases très complexes, MySQL reste un choix populaire pour des projets allant des petits
sites web aux grandes applications professionnelles grâce à sa robustesse et sa large
compatibilité.
2.4 Postman
Postman est un outil complet pour l'exploration, le développement et la documentation des API.
Postman permet d'envoyer des requêtes HTTP à une API (comme GET, POST, PUT, DELETE)
et de voir les réponses en retour. Cela permet de tester le fonctionnement de l'API avant de
l'intégrer dans une application. Il permet de créer des collections de requêtes et les organiser en
65
ensembles de tests. Il Permet de définir des environnements, ce qui facilite le passage entre
différents environnements (comme le développement, la production, etc.) sans avoir à modifier
manuellement les URL ou les paramètres, il permet de générer automatiquement une
documentation des API.
2.5 Git
Git est un système de gestion de versions décentralisé, largement utilisé par les développeurs
pour suivre et gérer les modifications apportées aux projets de développement, qu'il s'agisse de
code source ou de tout autre type de fichiers. Créé par Linus Torvalds en 2005, Git permet aux
équipes de collaborer efficacement sur des projets en parallèle, en créant des branches, en
fusionnant des modifications, et en conservant un historique détaillé de chaque changement. Il
est devenu l’un des outils essentiels pour le développement logiciel moderne, permettant de
gérer les versions du code de manière flexible et sécurisée.
2.6 Bitbucket
Bitbucket est une plateforme de gestion de projets de développement logiciel basée sur Git. Elle
offre des fonctionnalités de contrôle de version, de collaboration et d'intégration continue, ce
qui en fait un outil puissant pour les équipes de développement.
66
Figure 25: Logo Bitbucket
3. Langage de programmation
Un langage de programmation est un ensemble de règles et de conventions permettant de
rédiger des instructions, appelées code source, qui sont ensuite interprétées ou compilées par
un ordinateur afin d'exécuter des tâches ou opérations précises.
3.1 PHP
PHP (Hypertext Preprocessor) est un langage de programmation open source, largement utilisé
pour générer des pages web dynamiques côté serveur. Bien qu'il soit principalement employé
pour l'interaction avec les serveurs web, PHP peut aussi être exécuté en local comme tout autre
langage interprété, ce qui en fait un outil polyvalent pour le développement d'applications web
et de scripts.
4. Framework
Un framework est un ensemble de bibliothèques, d'outils et de conventions qui fournit une
structure préétablie pour le développement d'applications logicielles. Il permet de faciliter et
d'accélérer le processus de développement en offrant des solutions réutilisables pour des tâches
courantes, telles que la gestion des bases de données, la manipulation des interfaces utilisateurs,
ou encore la gestion des requêtes HTTP. En fournissant une architecture de base, un framework
aide les développeurs à se concentrer sur les fonctionnalités spécifiques de leur application, tout
en respectant une organisation standardisée du code.
67
4.1 Symfony
Symfony est un framework PHP open source, largement utilisé pour le développement
d'applications web et d'API. Il suit le modèle MVC (Modèle-Vue-Contrôleur) et est conçu pour
faciliter la création de projets complexes en fournissant une structure solide et modulable.
Symfony est également composé de nombreux composants PHP réutilisables, qui peuvent être
intégrés individuellement dans d'autres projets ou frameworks, offrant ainsi une grande
flexibilité et une large interopérabilité avec d'autres solutions.
4.2 Bootstrap
Bootstrap est un framework front-end populaire qui facilite la création de designs modernes et
réactifs pour des sites et des applications web. Il comprend un ensemble d'outils intégrés pour
le graphisme, les animations et les interactions dans le navigateur. Bootstrap fournit une
bibliothèque de composants HTML et CSS, tels que des formulaires, des boutons, des barres
de navigation et d'autres éléments interactifs, ainsi que des extensions JavaScript optionnelles
pour enrichir l'expérience utilisateur. Grâce à sa grille flexible et à ses classes utilitaires,
Bootstrap permet de concevoir des interfaces utilisateur de manière rapide et efficace, tout en
garantissant une compatibilité entre différents navigateurs et appareils.
68
Figure 28: Logo Bootstrap
69
• Formation et sensibilisation : Former régulièrement le personnel aux bonnes pratiques
de sécurité, aux menaces courantes (comme les attaques par phishing) et aux
comportements à adopter pour réduire les risques.
• Conformité réglementaire : Veiller à ce que l'organisation respecte les lois et
régulations en matière de sécurité des données.
Ce processus complique l’accès pour les attaquants, même s'ils parviennent à obtenir le mot de
passe de l'utilisateur. Le 2FA est essentiel pour protéger les comptes d'utilisateurs, car il réduit
considérablement le risque d'intrusions.
70
2.5 Gestion des rôles et autorisations
La gestion des rôles et autorisations (RBAC, Role-Based Access Control) est essentielle pour
une application SaaS, surtout lorsqu’elle manipule des données sensibles. Elle permet de définir
différents niveaux d’accès et de droits pour les utilisateurs selon leur rôle (par exemple,
administrateur, comptable, utilisateur standard). Grâce à ce contrôle d'accès, chaque utilisateur
ne peut accéder qu'aux fonctionnalités et données nécessaires à ses tâches, limitant ainsi les
risques de fuites de données ou d’actions non autorisées.
Conclusion
Dans cette partie, nous avons exploré l'architecture de notre application. Nous avons également
présenté les outils de développement choisis pour leur efficacité dans la réalisation de notre
projet. Enfin, nous avons mis en avant les mesures de sécurité adoptées pour protéger les
données et assurer la fiabilité de l'application.
71
CHAPITRE Ⅲ : PRESENTATION DE QUELQUES INTERFACES
Les interfaces permettent à un utilisateur d’interagir avec l’application pour réaliser diverses
opérations. Elles facilitent l’utilisation et la prise en main de l’application, rendant l'expérience
utilisateur plus intuitive et efficace. Dans cette partie, nous allons présenter quelques-unes des
interfaces que nous avons développées.
72
Figure 30: Etape2(Création de compte)
3. L’interface de connexion
La page d'authentification permet à l'utilisateur de se connecter au système après la création de
son compte. L'utilisateur saisit ses identifiants de connexion, à savoir son adresse e-mail et son
mot de passe, pour accéder à la plateforme.
73
Figure 32: Interface de connexion
74
imputation », qui ouvre le formulaire de création d'une imputation.
75
6. Interface d’opérations récurrentes
Cette interface permet de configurer les opérations récurrentes. Elle offre un historique complet
des opérations récurrentes configurées et donne des détails sur chaque opération en cliquant sur
« Voir plus ».
76
Figure 38: Interface de gestion des clients
77
Figure 40: Historique de factures éditées
78
Figure 42: Facture en mode impression
Conclusion
Dans cette section, nous avons exploré diverses interfaces permettant à l'utilisateur d'effectuer
des actions spécifiques en toute simplicité. Qu'il s'agisse de la création de compte, de la
connexion, de l'enregistrement des imputations, des opérations récurrentes, ou encore de l'ajout
des clients, des articles et de l'édition des factures, toutes ces interfaces sont conçues pour être
simples et intuitives.
79
CONCLUSION GENERALE
Ce mémoire a été motivé par le besoin croissant des TPE et PME nigériennes de bénéficier
d’outils de gestion fiscale et comptable adaptés à leurs réalités et contraintes spécifiques.
Confrontées à des ressources limitées et à des difficultés de conformité fiscale, ces entreprises
n’ont souvent pas la possibilité de recruter un comptable à plein temps, ce qui compromet leur
performance et leur pérennité. Face à l’insuffisance des solutions existantes, souvent génériques
et inadaptées, ce travail visait à concevoir une solution logicielle innovante et accessible.
Le projet a abouti à la création d’une application web de type SaaS, qui permet aux TPE et
PME d’automatiser et de simplifier leurs opérations comptables et fiscales. Cette solution a été
pensée pour intégrer les particularités du cadre fiscal nigérien tout en offrant une interface
intuitive, répondant ainsi aux besoins d’utilisateurs peu familiarisés avec les technologies
numériques. De plus, la solution intègre des fonctionnalités de sécurité avancées pour garantir
la confidentialité des données des entreprises, élément crucial pour renforcer la confiance des
utilisateurs.
Ce mémoire constitue donc non seulement un aboutissement académique, mais aussi une
contribution significative au renforcement des capacités numériques des entreprises
nigériennes.
Conscients qu’un projet de développement logiciel n’est jamais complètement achevé, nous
prêterons une attention particulière aux retours des utilisateurs finaux et améliorons de manière
continue la solution, afin qu’elle puisse répondre à tout moment aux besoins de ses derniers.
80
BIBLIOGRAPHIE
➢ Conception et réalisation d’un système de suivi des transactions dans un réseau d’agent
partagé
81
WEBOGRAPHIE
82