0% ont trouvé ce document utile (0 vote)
194 vues97 pages

Mémoire

Le document présente un mémoire de fin de cycle pour l'obtention d'un master professionnel en génie logiciel, axé sur la mise en place d'une solution SaaS de gestion comptable et fiscale pour les TPE et PME locales. Il inclut des remerciements, des définitions de concepts clés, une analyse méthodologique, ainsi qu'une conception détaillée du système proposé. Le mémoire souligne l'importance de l'architecture logicielle et des outils utilisés dans le développement de la solution.

Transféré par

issa16iaia
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
194 vues97 pages

Mémoire

Le document présente un mémoire de fin de cycle pour l'obtention d'un master professionnel en génie logiciel, axé sur la mise en place d'une solution SaaS de gestion comptable et fiscale pour les TPE et PME locales. Il inclut des remerciements, des définitions de concepts clés, une analyse méthodologique, ainsi qu'une conception détaillée du système proposé. Le mémoire souligne l'importance de l'architecture logicielle et des outils utilisés dans le développement de la solution.

Transféré par

issa16iaia
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Conception et réalisation d’un système de suivi des transactions dans un réseau d’agent partagé

REPUBLIQUE DU NIGER
Fraternité-Travail-Progrès

Ministère de la Communication, des Postes et de l’Economie Numérique


Numérique
École Supérieure des Communications Électroniques et de la Poste

Établissement public à caractère scientifique, culturel et technique


Créé par décret N° 2023-226/PRN/MP/NTI du 02 Mars 2023

MÉMOIRE DE FIN DE CYCLE POUR L’OBTENTION D’UN MASTER


PROFESSIONNEL EN GENIE LOGICIEL

THEME :

Mise en place d’une solution SaaS de gestion comptable et


fiscale pour les TPE et PME locales

PRESENTE PAR : ENCADRE PAR :


Mr. Dalatou Malam Mamane Mr. Nouredine Mounahi
Abdoul Razak Directeur Général de SHAAWA MEDIA
-
SERVICES, Ingénieur Informatique

Promotion : 2021-2023

ALLAKARBO SANDI Hassane P romotion 2020 - 2023


DEDICACES

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.

À vous, papa et maman, je vous suis éternellement reconnaissant.

i
REMERCIEMENTS

J’exprime toute ma reconnaissance et ma gratitude à mon maître de stage et encadrant, M.


Nouredine Mounahi, pour l’encadrement dont il m’a gratifié ainsi que l’attention et les
conseils précieux qu’il m’a prodigués tout au long de la réalisation de ce projet.

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.

Je tiens aussi à exprimer mon amitié et ma reconnaissance aux membres de l’équipe de


SHAAWA MEDIA SERVICES, pour leur soutien constant, leurs encouragements et leurs
conseils tout au long de la réalisation de ce mémoire. Leur appui m’a été une source de
motivation précieuse.

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.

Qu’Allah récompense chacun pour son engagement et sa générosité.

ii
SIGLES ET ABREVIATIONS

API: Application Programming Interface ou « Interface de Programmation d'Application »;

ASP: Application Server Provider;

AXIAL: Analyse et Conception de Système d’Information Assistées par Logiciels;

CSS: Cascading Style Sheets ou Feuilles de Style en Cascade ;

CRM: Customer Relationship Management;

DGI : Direction Générale des Impôts

ESCEP: Ecole Supérieure des Communications Electroniques et de la Poste;

HTML: Hypertext Markup Language;

HTTP: Hypertext Transfer Protocol;

IOT: Internet of Things;

JSON: JavaScript Object Notation;

MERISE: Méthode d'Etude et de Réalisation Informatique pour les Systèmes d'Entreprise;

MVC: Model Vue Controller ;

ONG: Organisation Non Gouvernementale;

PHP: HyperText Preprocessor;

PME: Petite et Moyenne Entreprise;

REST: Representational state transfer;

RH: Resource Humaine;

SAAS: Software As A Service;

SADT: Structured Analysis and Design Technique;

SOAP: Service Object Access Point;

SMTP: Simple Mail Transfer Protocol;

SSL: Secure Sockets Layer;

iii
TCP: Transmission Control Protocol;

TLS: Transport Layer Security;

TPE: Très Petite Entreprise;

UI: User Interface;

UML: Unified Modeling Language;

XML: Extensible Markup Language;

XP: Experience Point;

W3C: World Wide Web Consortium;

2FA: Authentification à deux facteurs;

iv
LISTE DES TABLEAUX

Tableau 1: Les acteurs du système ........................................................................................... 36


Tableau 2: Description textuelle Créer Compte ...................................................................... 40
Tableau 3: Description textuelle S'authentifier ....................................................................... 41
Tableau 4 : Description textuelle Mot de passe oublié ............................................................ 42
Tableau 5: Changer mot de passe ............................................................................................ 44

v
LISTE DES FIGURES

Figure 1 : Logo Shaawa media services .................................................................................... 9


Figure 2 : Organigramme Shaawa Media Services ................................................................. 10
Figure 3 : Diagramme UML .................................................................................................... 25
Figure 4: logo sysML ............................................................................................................... 27
Figure 5 : Principe de fonctionnement de SCRUM ................................................................. 30
Figure 6: Application SaaS ...................................................................................................... 33
Figure 7: Diagramme de Cas d'utilisation du Système............................................................ 38
Figure 8: Cas d'utilisation gérer imputation ........................................................................... 38
Figure 9: Cas d'utilisation gérer facture ................................................................................. 39
Figure 10: Cas d'utilisation Gérer utilisateurs ........................................................................ 40
Figure 11: Diagramme de séquence Créer Compte ................................................................ 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 .................................................. 48
Figure 15: Diagramme de classe ............................................................................................. 49
Figure 16: Diagramme de déploiement ................................................................................... 50
Figure 17: Fonctionnement d'une API REST ........................................................................... 59
Figure 18: Architecture MVC .................................................................................................. 62
Figure 19: Logo PowerAMC.................................................................................................... 64
Figure 20: Logo Visual Studio Code........................................................................................ 64
Figure 21: Logo Apache .......................................................................................................... 65
Figure 22: Logo MySQL .......................................................................................................... 65
Figure 23: Logo Postman ........................................................................................................ 66
Figure 24: Logo Git ................................................................................................................. 66
Figure 25: Logo Bitbucket ....................................................................................................... 67
Figure 26: Logo PHP ............................................................................................................... 67
Figure 27: Logo Symfony ......................................................................................................... 68
Figure 28: Logo Bootstrap ....................................................................................................... 69
Figure 29: Etape1(Création de compte) .................................................................................. 72
Figure 30: Etape2(Création de compte) .................................................................................. 73
Figure 31: Etape3(Création de compte) .................................................................................. 73
Figure 32: Interface de connexion ........................................................................................... 74

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

TABLE DES MATIERES

Dédicaces .................................................................................................................................... i

Remerciements ........................................................................................................................... ii

Sigles et abréviations ................................................................................................................. iii

Liste des tableaux ....................................................................................................................... v

Liste des figures ........................................................................................................................ vi

Table des matieres .................................................................................................................... vii

Introduction Générale ................................................................................................................. 1

Chapitre Ⅰ : Cadre theorique ....................................................................................................... 4

Problématique.................................................................................................................. 4

Les objectifs de recherche ............................................................................................... 5

2.1 Objectif général ........................................................................................................... 5

2.2 Les objectifs spécifiques .............................................................................................. 5

Les hypothèses de recherche ........................................................................................... 5

3.1 L’hypothèse principale ................................................................................................ 5

3.2 Les hypothèses secondaires ......................................................................................... 5

4. La pertinence du sujet ......................................................................................................... 6

Conclusion .............................................................................................................................. 6

vii
Chapitre Ⅱ : Cadre Methodologique .......................................................................................... 7

1. Cadre d’étude .................................................................................................................. 7

2. Délimitation du champ d’étude ....................................................................................... 7

3. Techniques d’investigation ............................................................................................. 7

4. Difficultés rencontrées .................................................................................................... 8

Conclusion .............................................................................................................................. 8

Chapitre Ⅰ : Cadre Organisationnel............................................................................................. 9

.................................................................................................................................................... 9

1. Présentation de la structure d’Accueil ............................................................................. 9

2. Mission ............................................................................................................................ 9

3. Activités .......................................................................................................................... 9

4. Organigrammes ............................................................................................................. 10

5. Localisation ................................................................................................................... 11

Conclusion ............................................................................................................................ 11

Chapitre Ⅱ : Cadre conceptuel.................................................................................................. 12

1. Définition des concepts métiers .................................................................................... 12

1.1 Comptabilité : ............................................................................................................ 12

1.2 Fiscalité ...................................................................................................................... 12

1.3 Impôt .......................................................................................................................... 12

1.4 TPE ............................................................................................................................ 12

1.5 PME ........................................................................................................................... 13

1.6 Déclaration fiscale ..................................................................................................... 13

1.7 Facture ....................................................................................................................... 13

1.8 Facture certifiée ......................................................................................................... 13

2. Définition des concepts informatiques .......................................................................... 14

2.1 Conception ................................................................................................................. 14

viii
2.2 Système informatique ................................................................................................ 14

2.3 Logiciel informatique ................................................................................................ 14

2.4 Application ................................................................................................................ 14

2.5 Application Web ........................................................................................................ 15

2.6 Application Mobile .................................................................................................... 15

2.7 Application Desktop .................................................................................................. 16

2.8 Serveur informatique ................................................................................................. 16

2.9 Le cloud ..................................................................................................................... 16

1.1 Fournisseur cloud ...................................................................................................... 17

1.2 Base de données......................................................................................................... 17

1.3 Système de gestion de base de données..................................................................... 17

Conclusion ............................................................................................................................ 17

Chapitre Ⅲ : analyse et methode de conception ...................................................................... 18

I. Analyse de l’existant ..................................................................................................... 18

1. Etude de l’existant ......................................................................................................... 18

2. Critique de l’existant ..................................................................................................... 18

3. Solution proposée .......................................................................................................... 19

II. Analyse des besoins ................................................................................................... 20

1. Besoins fonctionnels ..................................................................................................... 20

2. Besoins non fonctionnels .............................................................................................. 21

III. Les différentes méthodes de conception .................................................................... 22

1. Méthodes cartésiennes................................................................................................... 23

2. Méthodes systémiques................................................................................................... 23

3. Méthodes orientés objets ............................................................................................... 23

4. Méthodes agiles ............................................................................................................. 23

5. Méthodes formelles ....................................................................................................... 24

IV. Quelques langages de modélisation ........................................................................... 24

ix
1. UML .............................................................................................................................. 24

2. SysML ........................................................................................................................... 26

V. Choix de méthode à utiliser ....................................................................................... 27

1. Critères de choix............................................................................................................ 27

2. Le choix ......................................................................................................................... 28

VI. Présentation de Scrum Agile ..................................................................................... 28

1. Qu’est-ce que Scrum ..................................................................................................... 28

2. L’équipe SCRUM ......................................................................................................... 28

3. Le principe de fonctionnement ...................................................................................... 29

Conclusion ............................................................................................................................ 30

Chapitre Ⅳ : Le SaaS............................................................................................................... 31

1. Qu’est-ce que le SaaS ? ................................................................................................. 31

2. L’historique du SaaS ..................................................................................................... 31

3. Les avantages du SaaS pour une entreprise .................................................................. 32

4. Comprendre le cloud ..................................................................................................... 33

5. Différence entre le Cloud et le SaaS ............................................................................. 34

6. Cloud et SaaS : quels outils sont les plus en vogue selon la catégorie ? ....................... 35

Chapitre Ⅳ : Conception ......................................................................................................... 36

1. Diagramme de cas d’utilisation ..................................................................................... 36

1.1 Identification des acteurs ........................................................................................... 36

1.2 Les Diagrammes de Cas d’utilisations ........................................................................... 37

1.3 Conception détaillée ....................................................................................................... 40

2. Diagramme de séquence................................................................................................ 44

3. Diagramme de classe ..................................................................................................... 48

4. Diagramme de déploiement .......................................................................................... 50

1. Conclusion ................................................................................................................. 51

Chapitre Ⅰ : les API ................................................................................................................... 53

x
1. Qu’est-ce qu’une API ? ................................................................................................. 53

2. A quoi sert une API ? .................................................................................................... 53

3. Les différents types d’API............................................................................................. 53

3.1 Les API publiques : ................................................................................................... 53

3.2 Les API Privées ......................................................................................................... 54

3.3 Les API partenaires ................................................................................................... 54

3.4 Les API composites ........................................................................................................ 55

4. L’API REST et l’API SOAP ......................................................................................... 55

4.1 L’API REST ................................................................................................................... 55

4.2 L’API SOAP ................................................................................................................... 56

5. L’API REST ou l’API SOAP : laquelle choisir ? ......................................................... 57

6. Le protocole http ........................................................................................................... 57

6.1 Http dans le contexte d’une API REST .......................................................................... 58

6.2 Les statuts de réponse http dans une API .................................................................. 58

Conclusion ............................................................................................................................ 59

Chapitre Ⅱ : Architecture logicielle, outils et politique de securite ......................................... 60

I. Architecture logicielle ................................................................................................... 60

1. Définition ...................................................................................................................... 60

2. L’importance de l’architecture logicielle ...................................................................... 60

3. Choix d’architecture pour notre solution ...................................................................... 61

3.1 Présentation du model MVC ..................................................................................... 61

3.2 Les avantages du modèle MVC : ............................................................................... 62

II. Outils ......................................................................................................................... 63

1. Outil de modélisation .................................................................................................... 63

1.1 Power AMC ............................................................................................................... 63

2. Outils de développement ............................................................................................... 64

2.1 Visual Studio Code .................................................................................................... 64

xi
2.2 Apache ....................................................................................................................... 64

2.3 MySQL ...................................................................................................................... 65

2.4 Postman ..................................................................................................................... 65

2.5 Git .............................................................................................................................. 66

2.6 Bitbucket .................................................................................................................... 66

3. Langage de programmation ........................................................................................... 67

3.1 PHP ............................................................................................................................ 67

4. Framework .................................................................................................................... 67

4.1 Symfony..................................................................................................................... 68

4.2 Bootstrap .................................................................................................................... 68

III. Politique de sécurité................................................................................................... 69

1. Les composants clés d’une politique de sécurité .......................................................... 69

2. Quelques éléments de sécurités mis en place pour notre Solution ................................ 70

2.1 L’authentification à deux facteurs ............................................................................. 70

2.2 Le chiffrement des données ....................................................................................... 70

2.3 Hachage de mot de passe ........................................................................................... 70

2.4 Protection CSRF (Cross-Site Request Forgery) ........................................................ 70

2.5 Gestion des rôles et autorisations .............................................................................. 71

Conclusion ............................................................................................................................ 71

Chapitre Ⅲ : présentation de quelques interfaces .................................................................... 72

2. L’interface de création de compte ................................................................................. 72

3. L’interface de connexion ............................................................................................... 73

4. Interface profil utilisateur .............................................................................................. 74

5. L’interface des imputations ........................................................................................... 74

6. Interface d’opérations récurrentes ................................................................................. 76

7. Interface de gestion des clients .................................................................................. 76

1. Interface de gestion des articles .................................................................................... 77

xii
2. Interface d’édition de factures ....................................................................................... 77

Conclusion ............................................................................................................................ 79

Conclusion générale ................................................................................................................. 80

Bibliographie ............................................................................................................................ 81

Webographie ............................................................................................................................ 82

xiii
INTRODUCTION GENERALE

Dans un monde en constante évolution, où les nouvelles technologies redéfinissent les


modèles économiques et les pratiques de gestion, il est devenu indispensable pour les
entreprises d’adopter des outils digitaux pour rester compétitives. Les très petites et moyennes
entreprises (TPE et PME) nigériennes, qui constituent une part essentielle de l’économie locale,
font face à des défis particuliers en matière de gestion fiscale et comptable. En raison de
ressources limitées, ces entreprises n'ont souvent pas les moyens de recruter un comptable à
temps plein, ce qui entraîne des erreurs de calculs, des retards dans les déclarations fiscales et
parfois des pénalités. Les solutions de gestion disponibles sur le marché, majoritairement
génériques et conçues sans tenir compte des réalités fiscales du Niger, ne répondent pas toujours
aux besoins de ces structures.

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.

Pour répondre à ces objectifs, ce projet de mémoire se décompose en trois parties


principales :

• Cadre théorique et méthodologique : cette première partie, structurée en deux


chapitres, aborde les concepts théoriques et les approches méthodologiques nécessaires
à la compréhension et à la mise en œuvre du projet.
• Cadre organisationnel et conceptuel : la deuxième partie, composée de cinq chapitres,
commence par une présentation de la structure d'accueil du projet et définit certains
concepts essentiels pour une meilleure compréhension. Cette partie examine également
les outils d’analyse et de conception utilisés, le système de gestion comptable actuel
ainsi que ses lacunes, et présente le concept de SaaS appliqué dans ce contexte. Enfin,
divers diagrammes UML illustrent l’organisation et les interactions au sein de
l’application.
• Réalisation : la dernière partie, subdivisée en trois chapitres, est consacrée à la phase
de développement. Elle détaille l’architecture logicielle de la solution, la notion d’API

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.

2.2 Les objectifs spécifiques


La solution permettra de :

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

Les hypothèses de recherche


3.1 L’hypothèse principale
Nous partons de l’hypothèse que : La mise en place d'une solution SaaS de gestion comptable
et fiscale, spécifiquement adaptée aux besoins des TPE et PME nigériennes, améliorera
significativement leur conformité fiscale, leur gestion financière et leur compétitivité sur le
marché local.

3.2 Les hypothèses secondaires


Comme hypothèses secondaires, nous avons :

1. La conception des interfaces utilisateurs intuitives adaptées aux utilisateurs favoriseront


une adoption rapide et efficace de la solution par les TPE et PME, même parmi celles
ayant peu de familiarité avec les technologies numériques,
2. La solution réduira de manière significative les erreurs comptables, les retards de
déclaration, et les pénalités encourues par ces dernières.

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.

2. Délimitation du champ d’étude


Pour mener à bien notre projet, et comme tout travail scientifique, nous avons jugé utile de
délimiter notre travail dans l’espace et dans le temps.

➢ 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.

1. Présentation de la structure d’Accueil


Créé le 24 Mai 2021, SHAAWA MEDIA SERVICES est une agence digitale spécialisée dans
la création et la mise en œuvre des stratégies digitales innovantes sur mesure pour les entreprises
clientes et le développement des solutions innovantes. SHAAWA MEDIA SERVICES travaille
avec des institutions gouvernementales pour améliorer des services de l’état. Il fournit aux
entreprises et aux ONG des solutions sur mesure pour booster leur visibilité et optimiser leurs
processus et il accompagne les professionnels à travers des solutions SAAS pour améliorer
leurs productivités.

Figure 1 : Logo Shaawa media services

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é

Figure 2 : Organigramme Shaawa Media Services

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 :

− TEL (+227): 70 28 56 55;


− WhatsApp: 91 13 88 51;
− Email: contact@[Link];
− Site web: [Link]

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. Définition des concepts métiers


1.1 Comptabilité :
La comptabilité est une technique qui permet d’enregistrer dans des comptes les flux de
l’entreprise afin de déterminer le résultat de l’exercice (bénéfices ou pertes) et de présenter la
situation patrimoniale de l’entreprise. Les motifs pour lesquels on tient une comptabilité sont
doubles :

➢ Sur le plan économique : la comptabilité doit renseigner si l’activité de l’entreprise a été


ou non rentable.
➢ Sur le plan juridique : toutes les entreprises y compris les artisans sont tenus d’avoir des
livres comptables et de présenter un état des actifs et des passifs. De ce fait, la
comptabilité est un moyen de preuve en cas de litige avec les fournisseurs, les clients,
l’Etat, le personnel, les organismes sociaux… La finalité de la comptabilité est de
présenter le compte de bilan et de résultat. Elle est ainsi un moyen de contrôle de
l’entreprise et un outil d’aide à la décision puisqu’elle permet par exemple de décider
quand investir, emprunter, embaucher…

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.6 Déclaration fiscale


Une déclaration fiscale est un document officiel que les individus, entreprises ou organisations
doivent remplir et soumettre aux autorités fiscales pour informer celles-ci de leurs revenus,
dépenses, et autres informations pertinentes liées à leurs obligations fiscales. La déclaration
fiscale permet aux autorités fiscales de déterminer le montant d'impôt dû par le contribuable.

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.

1.8 Facture certifiée


Une facture certifiée est un document officiel qui atteste qu'une facture a été vérifiée et
approuvée par une autorité compétente ou un organisme accrédité. La certification de la facture
garantit son authenticité, sa conformité aux réglementations fiscales et son exactitude en termes
de montants et de détails.

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.2 Système informatique


Un système informatique est un ensemble coordonné de composants matériels (hardware) et de
logiciels (software) qui travaillent ensemble pour accomplir des tâches de traitement de
l'information. Ces systèmes sont conçus pour traiter, stocker, communiquer et manipuler des
données et des informations de manière efficace.

➢ Matériel (Hardware) : Cette composante comprend les équipements physiques, tels


que les ordinateurs, les serveurs, les périphériques (claviers, souris, imprimantes, etc.),
les composants électroniques (processeurs, mémoire, disques durs, etc.) ;
➢ Logiciel (Software) : Le logiciel englobe les programmes, les systèmes d'exploitation,
les applications et les données qui sont utilisées pour exécuter des tâches spécifiques
sur le matériel.

2.3 Logiciel informatique


Un logiciel informatique, souvent simplement appelé "logiciel", est un ensemble de
programmes, d'instructions et de données qui permettent à un ordinateur de fonctionner et
d'accomplir des tâches spécifiques. On distingue plusieurs types de logiciel :

➢ Logiciels d'application : qui sont les logiciels de bureautique, de créativité et de jeux


….
➢ Les logiciels système : comme les pilotes de périphériques, les utilitaires système…
➢ Les logiciels embarqués : qui sont intégrés dans des appareils électroniques tels que les
téléphones mobiles, les appareils ménagers, etc….

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 :

➢ Les applications mobiles ;


➢ Les application desktop, de bureau ;
➢ Les applications web.

2.5 Application Web


C’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. De la même manière que les sites
web, une application web est généralement installée sur un serveur et se manipule en actionnant
des widgets à l’aide d’un navigateur web, via un réseau informatique (Internet, intranet, réseau
local, etc..). Il existe deux (02) types d’application web :

➢ 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.

2.6 Application Mobile


Une application mobile, est un type de logiciel d’application conçu pour fonctionner sur un
appareil mobile, tel qu’un smartphone ou une tablette informatique. Les applications mobiles
servent souvent à fournir aux utilisateurs des services similaires à ceux auxquels ils accèdent
sur un ordinateur. Il existe plusieurs types d’applications mobiles qui sont :

➢ 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.7 Application Desktop


Une application de bureau (desktop en anglais) est un logiciel applicatif qui affiche son interface
graphique dans un environnement de bureau, il est hébergé et exécuté par l’ordinateur de
l’usager. Cette technologie est apparue avec les premiers environnements de bureau en 1970

2.8 Serveur informatique


Un serveur informatique est un ordinateur ou un système informatique spécialisé conçu pour
fournir des services, des ressources ou des fonctionnalités à d'autres ordinateurs, appelés clients,
au sein d'un réseau informatique.

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.

1.2 Base de données


Une base de données est un ensemble structuré et organisé de données qui représente un
système d'informations sélectionnées de telle sorte qu'elles puissent être consultées par des
utilisateurs ou par des programmes. Dans une entreprise, la base de données contient l'ensemble
des données concernant les clients, les fournisseurs, les employés, les références des produits
fabriqués… et permet d'établir des relations entre ces différentes entités.

1.3 Système de gestion de base de données


Désigne un logiciel informatique permettant le stockage, la consultation, la mise à jour, la
structuration ou encore le partage d'informations dans une base de données. Il garantit en outre
la confidentialité et la pérennité de ces données.

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 :

• Gestion des entreprises


Notre solution permettra d'enregistrer plusieurs entreprises et de gérer les informations
clés relatives à chacune d’elles. Cela inclut les coordonnées, les données fiscales et
comptables, ainsi que les paramètres spécifiques à chaque entreprise.
• Gestion des articles et services
Les entreprises auront la possibilité de créer et d’enregistrer leurs articles ou services
dans un catalogue, facilitant ainsi la gestion de leur inventaire, des prix, et des
informations liées à la vente de produits ou de prestations.
• Gestion des clients
La solution intègre un module dédié à la gestion des clients, permettant aux entreprises
d’ajouter, de suivre et de gérer efficacement leurs clients. Ce module facilitera la
facturation, la gestion des transactions et le suivi des paiements.
• Gestion des imputations (flux financiers)
Ce module permet aux entreprises de suivre leurs flux financiers, c’est-à-dire de gérer
les entrées (revenus) et les sorties (dépenses). Il permettra de garder un œil sur la santé
financière de l’entreprise, avec des rapports détaillés sur les flux de trésorerie.
• Gestion de la facturation
Les entreprises pourront générer, éditer et certifier des factures directement depuis la
plateforme. Cela inclut la création de factures détaillées et conformes, le suivi des
paiements et l’historique de facturation, tout en assurant une traçabilité complète des
opérations.
• Gestion des déclarations fiscales
Cette fonctionnalité permettra de générer automatiquement les fiches déclaratives
fiscales. Elle sera conçue pour se conformer aux réglementations fiscales du Niger,
facilitant ainsi la déclaration des impôts et réduisant les risques d’erreurs ou de retard.

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.

2. Besoins non fonctionnels


Les besoins non fonctionnels sont essentiels pour garantir la performance, la sécurité, et la
qualité globale de la solution.

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.

III. Les différentes méthodes de conception


Une méthode de conception en ingénierie logicielle est un ensemble de principes, de règles,
et de pratiques organisées pour guider la création de l'architecture et du design d'un système
logiciel. Elle vise à définir comment les différentes composantes du logiciel vont interagir et se
comporter pour répondre aux exigences fonctionnelles et non fonctionnelles identifiées lors de
la phase d'analyse. Une bonne méthode de conception permet de s'assurer que le système soit
robuste, évolutif, performant et facile à maintenir.

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.

3. Méthodes orientés objets


Ces méthodes consistent à créer une représentation informatique des éléments du monde réel
sans se soucier de l'implémentation, ce qui signifie les concevoir indépendamment d'un langage
de programmation. Il s'agit donc de déterminer les objets présents, d'isoler leurs données et de
définir les fonctions qui les utilisent. Pour cela des méthodes ont été mises au point. Entre 1970
et 1990, de nombreux analystes ont mis au point des approches orientées objets, si bien qu'en
1994, il existait plus de 50 méthodes objets. Toutefois seules trois (3) méthodes ont
véritablement émergé :

• La méthode OMT de Rumbaugh ;


• La méthode BOOCH'93 de Booch ;
• La méthode OOSE de Jacobson.

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.

IV. Quelques langages de modélisation


1. UML
UML (Unified Modeling Language) est un langage de modélisation graphique et textuel destiné
à comprendre et à définir des besoins, spécifier et documenter les systèmes, concevoir des
solutions et communiquer des points de vue. L’UML est un langage graphique de modélisation
des données et des traitements, fondé sur des concepts orientés objets. UML 1.4 définit neufs
(9) diagrammes qui sont répartis en 3 groupes de diagrammes ainsi définis :

• Les diagrammes fonctionnels

Nous avons deux diagrammes dont :

✓ 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.

• Les diagrammes statiques

On a quatre diagrammes :

✓ Diagramme de classes (DCL) : donne une description statique du système, intégrant


une partie relative aux données et une partie relative aux traitements ;
✓ Diagramme d’objets (DOB) : comporte des instances des classes ;
✓ Diagramme de composants (DCP) : décrit les différents constituants logiciels d’un
système ;
✓ Diagramme de déploiement (DDP) : décrit l’architecture technique d’un système, en
présentant les éléments matériels (ordinateurs, périphériques, réseaux, systèmes de

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.

• Les diagrammes dynamiques

Nous avons trois diagrammes :

✓ 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.

Figure 3 : Diagramme UML

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 :

• Diagramme de modules ou paquetages (package diagram) ;


• Diagramme de structure composite (composite structure diagram) ;
• Diagramme global d’interaction (interaction overview) ;
• Diagramme de temps (timing diagram).

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.

Voici quelques caractéristiques et éléments clés de SysML :

➢ Diagrammes spécifiques : SysML propose différents types de diagrammes spécifiques


pour modéliser les différents aspects des systèmes, tels que les diagrammes de blocs,
les diagrammes d'exigences, les diagrammes de séquence, les diagrammes d'activités,
etc.
➢ Modélisation hiérarchique : SysML encourage la modélisation hiérarchique des
systèmes en utilisant des diagrammes de blocs pour représenter les composants et les
sous-systèmes, facilitant ainsi la gestion de la complexité.
➢ Exigences et traçabilité : SysML permet de capturer et de gérer les exigences du
système et de tracer ces exigences tout au long du processus de développement.

26
Figure 4: logo sysML

V. Choix de méthode à utiliser


1. Critères de choix

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 :

➢ Itérative, avec des cycles de développement courts et réguliers ;


➢ Incrémentale, afin d'ajouter progressivement de nouvelles fonctionnalités ;
➢ Axée sur le développement rapide et la livraison de résultats concrets ;
➢ Centrée sur l'utilisateur, pour garantir que les besoins réels des utilisateurs finaux sont
pris en compte ;
➢ Flexible et réactive aux changements, permettant d'adapter le projet en fonction des
retours et des évolutions des besoins.

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.

VI. Présentation de Scrum Agile


1. Qu’est-ce que Scrum
Scrum est un Framework (cadre de travail) agile la plus utilisée. A l'instar d'autres méthodes
agiles, Scrum est une démarche de gestion de projet qui fait du client (ou utilisateur) le principal
pilote de l'équipe en charge des développements. SCRUM représente actuellement la
méthodologie Agile la plus répandue et est spécifiquement conçue pour la gestion de projets. Il
s'agit d'un cadre de gestion qui vise à améliorer de manière notable l'efficacité des équipes de
développement. Cette préférence pour SCRUM découle de sa réputation bien établie en tant
que méthode qui favorise la collaboration, la transparence et l'adaptation aux changements. La
valeur de SCRUM L'application réussie de Scrum dépend de la capacité des personnes à mieux
vivre ces cinq valeurs qui sont :

➢ Engagement ;
➢ Focus ;
➢ Ouverture ;
➢ Respect ;
➢ Courage ;

Le cadre Scrum consiste en :

• 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 :

➢ Le Scrum Master : Il a la responsabilité principale de diriger et aider l’équipe à appliquer


Scrum et à l’adapter au contexte. Il a une grande influence sur la façon de travailler, sur
le processus ;

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.

Figure 5 : Principe de fonctionnement de SCRUM

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

1. Qu’est-ce que le SaaS ?

Le SaaS (Software as a Service ou « logiciel en tant que service ») est un modèle de


distribution d'applications où les logiciels sont hébergés par un fournisseur et accessibles via
Internet. Contrairement aux solutions « on-premise » installées localement, le SaaS ne nécessite
pas d'infrastructure interne. L'entreprise cliente paie un abonnement pour utiliser l'application,
tandis que les données sont stockées dans le cloud et maintenues par le prestataire. Ce modèle
permet de réduire les coûts d'infrastructure et de maintenance, d'accéder rapidement à des mises
à jour, et de bénéficier d’une grande flexibilité avec une simple connexion Internet.

2. L’historique du SaaS

L'historique du SaaS (Software as a Service) remonte aux débuts de l'informatique en réseau,


mais son évolution moderne a pris forme à la fin des années 1990 et au début des années 2000.
Voici un aperçu de son développement :

1. Années 1960-1970 : Précurseurs avec le modèle de « Time-sharing »


L'idée de partager des ressources informatiques remonte aux années 1960 avec le
time-sharing, où plusieurs utilisateurs pouvaient accéder à un mainframe central. Ce
modèle permettait déjà une utilisation à distance de logiciels via des terminaux
connectés à des ordinateurs centraux.
2. Années 1990 : Apparition des ASP (Application Service Providers)
Le SaaS prend ses racines dans les Application Service Providers (ASP), des
entreprises qui proposaient des services logiciels à distance aux clients. Cependant, les
ASP avaient des limitations, notamment en termes de personnalisation et d'efficacité.
À cette époque, les logiciels étaient encore majoritairement vendus sous licence pour
une installation locale.
3. Fin des années 1990 : Naissance du SaaS moderne
Avec l'essor d'Internet, le SaaS a pris sa forme moderne. Des entreprises comme
Salesforce (fondée en 1999) ont révolutionné le marché en offrant un accès en ligne à
des logiciels, en particulier pour la gestion de la relation client (CRM). Salesforce est
souvent citée comme l’un des pionniers du SaaS moderne, prouvant que des solutions

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.

3. Les avantages du SaaS pour une entreprise

Voici quelques avantages clés du SaaS pour une entreprise :

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.

Figure 6: Application SaaS

4. Comprendre le cloud

Le Cloud, ou nuage, est un système informatique basé sur la connexion Internet et


permet aux utilisateurs de stocker, de gérer et de traiter des données en ligne plutôt que
de les stocker sur leur propre ordinateur ou serveur. On parle alors de décentralisation
de la donnée sur un lieu tiers plutôt qu’un stockage en dur.

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.

Le Cloud peut être utilisé pour une variété de tâches :

33
• Le stockage de fichiers

• La gestion de bases de données

• L’hébergement de sites Web

• L’exécution de calculs complexes

• Et bien plus encore.

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.

Pour résumer, le Cloud constitue une opportunité économique intéressante selon la


quantité de données à traiter et héberger.

5. Différence entre le Cloud et le SaaS


Le Cloud et le SaaS sont deux concepts étroitement liés, mais ils présentent des différences
significatives sur le plan de l'infrastructure.

Le Cloud se réfère à l'infrastructure informatique sous-jacente qui permet aux


entreprises de stocker et de gérer des données en ligne. Les fournisseurs de services
Cloud proposent une infrastructure sur laquelle les entreprises peuvent stocker et gérer
des données pour qu'elles soient facilement accessibles, évolutives et redondantes.

En revanche, le SaaS se concentre sur la fourniture d'applications logicielles à travers


une infrastructure Cloud. Les applications SaaS sont elles-mêmes hébergées dans le
Cloud, ce qui signifie que les entreprises n'ont pas besoin de gérer l'infrastructure sous-
jacente pour utiliser l'application.

Puisqu’elles fonctionnent majoritairement selon un système d’abonnement, les


applications SaaS sont la responsabilité de leurs éditeurs.

Ce système d’abonnement et de structuration Cloud permet de profiter de la


maintenance, de la mise à jour et de la sécurité de l'application. Le tout, automatisé et
peaufiné de façon régulière.

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 :

• Amazon Web Services (AWS)

• Microsoft Azure

• Google Cloud Platform

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.

1. Diagramme de cas d’utilisation


Le diagramme de cas d'utilisation (DCU) est une représentation visuelle qui décrit les
fonctionnalités requises par les utilisateurs d'un système. Ces diagrammes comprennent des cas
d'utilisation, des acteurs et leurs interactions, et ils offrent une perspective statique sur les
différentes façons dont le système sera utilisé. Ils jouent un rôle essentiel dans l'organisation et
la modélisation des comportements d'un système. Les cas d'utilisation fournissent une
représentation des actions et réactions qui décrivent ce que fait le système du point de vue de
l'utilisateur ou de l'acteur. Ils permettent de recenser l'ensemble des fonctionnalités d'un système
en examinant les besoins fonctionnels de chaque acteur, en décrivant comment le système réagit
à leurs actions, et en définissant ainsi le comportement global du système.

1.1 Identification des acteurs


Un acteur représente un rôle joué par une personne qui interagit avec le système. Dans notre
cas, nous avons les acteurs suivants :

Tableau 1: Les acteurs du système

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

Figure 8: Cas d'utilisation gérer imputation

38
Figure 9: Cas d'utilisation gérer facture

39
Figure 10: Cas d'utilisation Gérer utilisateurs

1.3 Conception détaillée


Le diagramme de cas d'utilisation fournit une vue générale des principales fonctionnalités d'un
système du point de vue des acteurs, sans entrer dans les détails des interactions et des scénarios
spécifiques. Afin de mieux comprendre les exigences, nous rédigerons des descriptions
textuelles pour certains cas d'utilisation, ce qui nous permettra de détailler précisément les
interactions et les scénarios associés.

Tableau 2: Description textuelle Créer Compte

Titre Créer compte


Acteurs Gestionnaire
Description Ce cas d’utilisation permet à l’utilisateur de créer un compte pour pouvoir
accéder à l’application

40
Scenario nominal :

1. L’utilisateur clique sur le bouton « Créer compte » de la page de login


2. Le système envoie à l’utilisateur le formulaire de création de compte
3. L’utilisateur saisie son adresse mail et un mot de passe de son choix
4. Le système lui demande de confirmer à nouveau le mot de passe précédemment
saisi
5. L’utilisateur confirme le mot de passe
6. Le système fait une vérification du mot passe
7. Le système effectue la création du compte
8. Le système envoie les identifiants de connexion par mail à l’utilisateur
Scenario alternatif :

3.a L’utilisateur décide d’annuler la création du compte


Scenario d’exception :

5.b Mot de passe saisi incorrect (retour à l’étape 4)


7.b La création du compte n’a pas été effectuée au niveau de la base de données (le
système récapitule les erreurs)

Post condition :

7.a Le compte est enregistré dans la base de données

Tableau 3: Description textuelle S'authentifier

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

Tableau 4 : Description textuelle Mot de passe oublié

Titre Mot de passe oublié


Acteurs Gestionnaire
Description Ce cas d’utilisation permet à l’utilisateur d’avoir un nouveau mot passe
en cas d’oubli de l’ancien mot de passe
Scénario nominal :
1. L’utilisateur clique sur le bouton mot de passe oublié du login
2. Le système demande à l’utilisateur de saisir son adresse mail
3. L’utilisateur saisit son adresse mail
4. Le système fait une vérification de l’adresse mail
5. Le système lui génère un nouveau mot de passe et lui envoie le nouveau mot
de passe par mail
6. L’utilisateur saisit le nouveau mot pour se connecter

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

Titre Changer mot de passe


Acteurs Gestionnaire
Description Ce cas d’utilisation permet à l’utilisateur de changer de mot de passe
après avoir géré l’option « mot de passe oublié »
Scénario nominal :
1. L’utilisateur clique sur le bouton profil
2. Le système lui affiche son profil
3. L’utilisateur clique sur le bouton « Changer mot de passe »
4. Le système lui affiche un champ lui demandant de saisir son mot de passe
actuel
5. L’utilisateur tape son mot de passe actuel
6. Le système fait une vérification
7. Le système demande à l’utilisateur de saisir son nouveau mot de passe
8. L’utilisateur saisit son nouveau mot de passe
9. Le système demande à l’utilisateur de confirmer le mot de passe
10. L’utilisateur confirme le nouveau mot de passe
11. Le système fait une vérification
[Link] système met à jour le mot de passe
Scénario alternatif :
1.a L’utilisateur décide de quitter la page
Scénario d’exception :
6.b Le mot de passe actuel est incorrect (retour à l’étape 4)
11. b Mot de passe de confirmation incorrect (retour à l’étape 9)
12.b Le système ne met pas à jour le mot de passe(le système récapitule les erreurs)
Précondition :
L’utilisateur doit s’authentifier

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.

Figure 11: Diagramme de séquence Créer Compte

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.

Pour notre solution, le diagramme de classe correspondant est :

Figure 15: Diagramme de classe

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.

Dans un diagramme de déploiement, les principaux éléments sont :

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.

Figure 16: Diagramme de déploiement

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)

1. Qu’est-ce qu’une API ?


API est un sigle signifiant « Application Programming Interface », qui se traduit par «
Interface de Programmation d’Application ». Il s’agit d’une interface informatique visant à
connecter un logiciel ou une application à d’autres systèmes distincts afin qu’ils puissent
échanger leurs fonctionnalités, leurs services, leurs technologies et leurs données. L’API se
matérialise comme une passerelle d’accès à une fonctionnalité détenue par une entité
indépendante.

Grâce à un langage de programmation universel, elle favorise l’interaction entre utilisateurs et


fournisseurs par l’envoi de requêtes d’accès aux services du fournisseur. Elle facilite la création
et l’intégration de fonctionnalités afin que les développeurs n’aient pas besoin de maîtriser
complètement le programme qu’ils souhaitent exploiter.

Aujourd’hui, l’API permet de partager données et informations à plusieurs utilisateurs et


constitue donc un moyen efficace de développer la collaboration, de favoriser l’innovation
numérique, mais aussi de monétiser ses données pour générer plus de revenus

2. A quoi sert une API ?


L’API est un rouage central indispensable au fonctionnement et au développement du web et
de nombreuses applications. Cette technologie agit en tant qu’intermédiaire entre deux
systèmes informatiques indépendants afin qu’ils puissent échanger et exploiter les
fonctionnalités d’une application et le contenu d’une base de données ou d’un système de
fichiers.

3. Les différents types d’API


3.1 Les API publiques :
Également appelées API externes ou publiques, les API ouvertes présentent des mesures de
sécurité assouplies, permettant aux développeurs et aux utilisateurs externes d'accéder
facilement aux données d'une entreprise.

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.

3.2 Les API Privées


Également connues sous le nom d'API internes, les API privées sont cachées aux parties
externes et utilisées pour améliorer la communication au sein d'une entreprise. Grâce à cette
méthode, les entreprises peuvent simplifier le partage des données entre les différents services
et tous les sites commerciaux.

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.

3.3 Les API partenaires


Situées à mi-chemin entre les API publiques et privées, les API partenaires désignent les API
qui sont partagées avec certains partenaires commerciaux ou stratégiques d'une entreprise. Elles
sont accessibles par l'intermédiaire d'une licence ou de droits d'accès spécifiques.

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é.

3.4 Les API composites


Ce type d'API combine deux ou plusieurs interfaces de programmation de données et de
services afin de créer une séquence d'opérations connexes ou interdépendantes. Les API sont
donc regroupées au sein d'un seul appel d'API. Ainsi, un seul appel est effectué vers le serveur
au lieu de plusieurs, et une seule réponse est transmise. Les API composites peuvent être
utilisées pour traiter les exigences ou les comportements complexes d'un système. Par rapport
aux API individuelles, elles peuvent améliorer la vitesse et les performances d'un logiciel.

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.

4. L’API REST et l’API SOAP


REST et SOAP sont deux méthodes distinctes pour échanger des données en ligne. Elles
définissent toutes deux des manières de concevoir des interfaces de programmation
d'application (API) qui facilitent la communication entre différentes applications web.

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.

4.1 L’API REST


REST est un ensemble de principes architecturaux adapté aux besoins des services web et
applications mobiles légers. La mise en place de ces recommandations est laissée à
l'appréciation 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 :

1. Une architecture client-serveur composée de clients, de serveurs et de ressources


2. Des communications client-serveur stateless, ce qui signifie que le contenu du client
n'est jamais stocké sur le serveur entre les requêtes ; les informations sur l'état de la
session sont stockées sur le client
3. Des données qui peuvent être mises en mémoire cache pour éviter certaines interactions
entre le client et le serveur
4. Une interface uniforme entre les composants qui permet un transfert standardisé des
informations au lieu d'un échange personnalisé en fonction des besoins d'une
application. Roy Fielding, le créateur de REST, décrit ceci comme « la fonction centrale
qui distingue le style architectural REST des autres styles basés sur le réseau ».
5. Un système à couches où des couches hiérarchiques peuvent assurer la médiation dans
les interactions entre le client et le serveur
6. Du code à la demande qui permet au serveur d'étendre la fonctionnalité d'un client en
transférant le code exécutable (recommandation facultative, car elle réduit la visibilité)

4.2 L’API SOAP


SOAP est un protocole standard initialement conçu pour que des applications développées avec
différents langages sur différentes plateformes puissent communiquer. Comme il s'agit d'un
protocole, il impose des règles intégrées qui augmentent la complexité et les coûts, ce qui peut
ralentir le chargement des pages. Cependant, ces standards assurent la conformité et sont ainsi
privilégiés pour certains scénarios d'entreprise. Les standards de conformité intégrés incluent
la sécurité, l'atomicité, la cohérence, l'isolement et la durabilité (ACID), un ensemble de
propriétés qui permet d'assurer des transactions de base de données fiables.

Voici les principales spécifications de services web :

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

5. L’API REST ou l’API SOAP : laquelle choisir ?


De nombreux systèmes d'anciennes générations reposent encore sur le protocole SOAP. REST
est arrivé plus tardivement et est souvent considéré comme une solution plus rapide pour des
scénarios basés sur le web. REST est un ensemble de recommandations qui permet une mise
en œuvre flexible, tandis que SOAP est un protocole avec des exigences spécifiques comme
l'envoi de messages au format XML.

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.

6.1 Http dans le contexte d’une API REST


Les API web les plus répandues sont les API RESTful (Representational State Transfer). Elles
utilisent les méthodes HTTP pour gérer et manipuler les ressources de manière stateless (sans
état). Voici comment les méthodes HTTP s'intègrent dans le cadre d'une API :

• 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.

6.2 Les statuts de réponse http dans une API


Les API utilisent les codes de statut HTTP pour indiquer le résultat d'une requête. Voici les plus
courants dans un contexte d'API :

• 200 OK : La requête a réussi. Utilisé généralement avec GET, PUT, et DELETE.


• 201 Created : La ressource a été créée avec succès. Utilisé avec POST.
• 204 No Content : La requête a réussi, mais il n’y a pas de contenu à renvoyer. Utilisé
souvent avec DELETE.
• 400 Bad Request : La requête est incorrecte ou malformée. Par exemple, des paramètres
manquants ou invalides.
• 401 Unauthorized : L'utilisateur n'est pas authentifié ou les informations
d'authentification sont incorrectes.
• 403 Forbidden : L'utilisateur est authentifié, mais n'a pas les droits nécessaires pour
accéder à la ressource.
• 404 Not Found : La ressource demandée n'existe pas.
• 500 Internal Server Error : Une erreur est survenue sur le serveur.

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.

2. L’importance de l’architecture logicielle


L'architecture est essentielle pour plusieurs raisons :

• Scalabilité : Elle doit permettre d’augmenter les performances ou le volume de données


sans altérer l'efficacité du système.
• Maintenabilité : Elle doit faciliter l’ajout de fonctionnalités, les corrections de bugs, et
garantir que ces modifications ne créent pas de nouveaux problèmes.
• Évolutivité : L'architecture doit permettre des évolutions à long terme, sans refonte
complète.
• Réutilisabilité : Une bonne architecture permet de réutiliser des composants dans
d'autres projets ou parties du système, réduisant ainsi les coûts de développement.

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.

3. Choix d’architecture pour notre solution


En tenant compte des critères essentiels pour le choix d'une architecture et conformément aux
exigences spécifiques de notre projet, nous allons choisir l’architecture MVC (modèle-vue-
contrôleur) pour l’implémentation de notre Solution.

3.1 Présentation du model MVC


Le modèle MVC (Model-View-Controller) est un paradigme très populaire pour organiser les
logiciels, en particulier les applications web. Ce modèle se décompose en trois composants clés
qui jouent chacun un rôle spécifique :

• 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.

Figure 18: Architecture MVC

3.2 Les avantages du modèle MVC :


Le modèle MVC offre une structure claire et modulaire, particulièrement adaptée aux
applications complexes. Son adoption présente plusieurs avantages :

• Séparation des responsabilités :

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.

• Facilité de maintenance et d’évolution :

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é :

Le modèle MVC permet une architecture modulaire, facilitant l'ajout ou le remplacement de


fonctionnalités.

• 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.

Figure 20: Logo Visual Studio Code

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.

Figure 21: Logo Apache

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é.

Figure 22: Logo MySQL

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.

Figure 23: Logo Postman

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.

Figure 24: Logo Git

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.

Figure 26: Logo PHP

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.

Figure 27: Logo Symfony

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

III. Politique de sécurité


Une politique de sécurité est un ensemble de règles, de procédures et de directives mises en
place au sein d'une organisation pour protéger ses actifs informationnels, ses systèmes et ses
utilisateurs contre les menaces potentielles. Elle définit les bonnes pratiques et les
comportements à adopter pour assurer la confidentialité, l'intégrité et la disponibilité des
données, tout en garantissant la conformité aux lois et réglementations en vigueur.

1. Les composants clés d’une politique de sécurité


• Contrôle d'accès : Définir qui a accès à quelles informations et sous quelles conditions,
en utilisant des systèmes d'authentification (comme les mots de passe ou
l'authentification à plusieurs facteurs) et des autorisations spécifiques.
• Gestion des risques : Identifier, évaluer et prioriser les risques pour l'entreprise, et
mettre en place des mesures préventives pour les atténuer.
• Protection des données : Mettre en place des mesures de sécurité pour protéger les
données sensibles contre les accès non autorisés, les fuites ou les pertes, avec des
technologies comme le chiffrement et des sauvegardes régulières.
• Surveillance et détection des incidents : Développer des systèmes pour surveiller en
continu les activités réseau et détecter les incidents ou violations de sécurité en temps
réel.
• Plan de réponse aux incidents : Mettre en place des processus pour réagir rapidement
et efficacement en cas de violation de sécurité, pour minimiser les dommages et
restaurer les opérations normales.

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.

2. Quelques éléments de sécurités mis en place pour notre Solution


2.1 L’authentification à deux facteurs
L'authentification à deux facteurs ajoute une couche de sécurité en exigeant non seulement un
mot de passe, mais également un second facteur d'authentification, comme un code envoyé par
mail.

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.

2.2 Le chiffrement des données


Le chiffrement garantit que les données sont inaccessibles en cas d'interception lors de leur
transit entre le client et le serveur ou lorsqu'elles sont stockées. En utilisant des protocoles de
chiffrement, comme SSL/TLS pour la transmission et des algorithmes modernes pour les
données stockées.

2.3 Hachage de mot de passe


Le hachage de mot de passe est une méthode de protection où les mots de passe sont transformés
en chaînes uniques grâce à des algorithmes de hachage. Cela signifie que même en cas d'accès
non autorisé à la base de données, les mots de passe des utilisateurs ne peuvent pas être
facilement récupérés. Cette pratique est indispensable pour sécuriser les comptes d'utilisateurs.

2.4 Protection CSRF (Cross-Site Request Forgery)


Les jetons CSRF protègent l’application contre les attaques de type Cross-Site Request Forgery,
qui se produisent lorsqu’un utilisateur connecté est incité, à son insu, à effectuer des actions
malveillantes. Les jetons CSRF empêchent ces actions en vérifiant que les requêtes sensibles
proviennent bien de l’utilisateur légitime.

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.

2. L’interface de création de compte


Avant de commencer à utiliser l’application, l’utilisateur doit d’abord créer un compte. Cette
faire interface intuitive permet à l’utilisateur de créer facilement son compte. Elle est constituée
de trois étapes :

Figure 29: Etape1(Création de compte)

72
Figure 30: Etape2(Création de compte)

Figure 31: Etape3(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

4. Interface profil utilisateur


Cette interface permet à d’avoir plus d’informations sur l’utilisateur courant. L’utilisateur peut
modifier ou compléter ses informations et celles de son entreprise.

Figure 33: Interface profil utilisateur

5. L’interface des imputations


Cette interface permet de consulter l'historique complet des entrées et sorties de l'entreprise.
Elle offre également la possibilité d'en créer de nouvelles en cliquant sur le bouton « Nouvelle

74
imputation », qui ouvre le formulaire de création d'une imputation.

Figure 34: Interface imputations

Figure 35: Formulaire de création d'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 ».

Figure 36: Historique opérations récurrentes

Figure 37: Détail d'une opération récurrente

7. Interface de gestion des clients


Cette interface permet à l'entreprise d'enregistrer ses clients.

76
Figure 38: Interface de gestion des clients

1. Interface de gestion des articles


Cette interface permet à l’entreprise d’enregistrer ses produits et services.

Figure 39: Interface de gestion des articles

2. Interface d’édition de factures


Cette interface permet d’avoir l’historique complet des factures éditées par l’entreprise avec le
statut de chacune d’entre elles, de pouvoir aussi en créer, de changer le statut et d’imprimer la
facture.

77
Figure 40: Historique de factures éditées

Figure 41: Détail d'une facture

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é

(Ingénieur Génie Logiciel, ALLAKARBO SANDI Hassane, ESCEP-NIGER 2023) ;

➢ Conception et réalisation d’une application de gestion de projet adaptée à 2isoft

(Master Génie Logiciel, MOHADJI MOHAMED Sy, ESCEP-NIGER 2021) ;

➢ Conception et réalisation d’un terminal de paiement électronique mobile pour les


marchands

(Master Génie Logiciel, ADAMOU HAMIDOU Rahinatou, ESCEP-Niger 2023) ;

➢ Solution d’administration électronique et de télé-service :


Système de paiement en ligne de taxes, droits et redevances, de distribution et suivi de
documents administratifs et de géolocalisation des établissements.

(Ingénieur informatique, ISSAKA SALIFOU Issa, IAI-GABON 20217) ;

➢ Code Général des Impôts du Niger

81
WEBOGRAPHIE

• Quelle architecture logicielle pour son application ? ([Link], consulté le


22/10/24);
• Qu’est-ce que la sécurité d’une application web ? ([Link], consulté le
22/10/24) ;
• La sécurité du SaaS ([Link] ,consulté 26/10/24) ;
• Comment fonctionne la double authentification ? ([Link] , consulté le
26/10/24) ;
• Symfony Security([Link] , consulté le 26/10/24);
• C’est quoi une api Rest([Link] , consulté le 5/11/24) ;
• Scrum([Link] , consulté le 5/11/24) ;
• Merise([Link] , consulté le 5/11/24) ;
• Solution de gestion comptable pour les indépendants([Link], consulté 28/11/24) ;
• Formulaire basé sur deux entités([Link] , consulté le 28/11/24) ;
• Authentification Google avec Symfony([Link] ,
consulté le 28/11/24).

82

Vous aimerez peut-être aussi