Académique Documents
Professionnel Documents
Culture Documents
UNIVERSITE DE JENDOUBA
DEPARTEMENT D’INFORMATIQUE
TITRE
Conception et réalisation d’une application
de facturation d’eau
Réalisé par : Ilhem Kahlaoui
A toute ma Famille…
Avec le progrès scientifique dans plusieurs et divers domaines, les solutions apportées par les
technologies de l’informatique et de la communication s’avèrent de plus en plus
incontournables et urgentes. De même, l’informatique est une discipline à la mode, très variée
et très riche, elle est devenue indispensable dans tous les domaines étant donné ses avantages
majeurs.
Les outils informatiques sont plus en plus appliqués dans la plupart des domaines de la vie
professionnelle et privée. Elle occupe bien évidemment une grande place dans la plupart des
domaines de gestion agricole.
C’est dans ce contexte s’intègre notre projet de fin d’études, qui a pour objectif la mise en
place d’une solution permettant de facturer l’eau dans le Commissariat Régional au
Développement Agricole Jendouba.
1
Chapitre1 : présentation de projet
Introduction
Dans ce chapitre, nous allons définir le cadre du projet en déterminant tout d’abord la
problématique. Ensuite, on va la critiquer et proposer les solutions apportées à ces problèmes.
L’analyse et le critique de l’existant nous ont permis de cerner nos objectifs afin de
développer un système de qualité dans le futur. Par la suite, nous expliquons le choix de la
méthode de conception la plus adéquate à notre projet.
1.1.2 Organigramme
La figure 2 illustre l’organigramme général du CRDA qui comporte cinq divisions. Chaque
division comprend des arrondissements tels que chaque arrondissement contient ses propres
activités.
2
Direction générale
du CRDA
Division de la Division de Division du Division des études Division des Unité diverse
vulgarisation et de l’hydraulique et de reboisement et de et du affaires relèvent du CRDA
la production l’équipement rural la protection des développement administratives et
agricole sols agricole financières
Unité céréale
Figure 2 : Organigramme de L’Organisme
3
1.1.4 Les divisions de CRDA :
Division vulgarisation et promotion à la production agricole
1.2.2 Problématique
L’étude de l’existant a permis de dégager un certain nombre de problème qu’on présentera ci-
dessous :
1.2.3 Solution
Après une étude minutieuse et attentive, on s’est trouvé dans l’obligation de chercher une
solution pour surmonter la perte des données et les différents points critiques qui s’appuient
sur une base de données en créant une application client-serveur.
4
Réalisation
Test
Mise en production
Parmi ces méthodes de projet on a : modèle en cascade, Le modèle en v.
Fonctionnement de SCRUM :
La figure 3 met en œuvre tous les éléments afin de montrer le déroulement de travail au sein
de SCRUM.
6
spécifications fonctionnelles, établis la liste des priorités de ce qu’il faut développer et
assure la validation.
L’équipe de développement : C’est l’équipe qui définit les « users stories», il dirigé
dans un but commun à la réalisation de sprint et assure la livraison d’un incrément à la
fin de chaque sprint.
7
✓ Produire le maximum du travail dans la durée la plus courte.
✓ Augmenter de la productivité.
Conclusion
Dans ce premier chapitre, nous avons présenté l’organisme d’accueil au sein du quel nous
avons passé notre stage. Ensuite, nous avons étudié le système actuel et le marché pour
dégager les limites des solutions existantes et proposer une solution plus adéquate. Dans le
chapitre suivant, nous entamerons l’étude des besoins fonctionnels et non fonctionnels.
8
Chapitre 2 : analyse et spécification des besoins
Introduction
Dans ce chapitre nous présentons les besoins des utilisateurs à travers une spécification des
besoins fonctionnels et non fonctionnels afin d’aboutir à une application performante et
satisfaisante .Ensuite, nous identifiions les acteurs de notre application.
Enfin, nous détaillons le travail par la méthodologie choisie dans le chapitre précédent.
Authentification
Valider paiement
Agent comptable
Authentification
Régisseur Paiement
Authentification
Utilisateur Local Gérer de borne
Authentification
Gérer du client
Utilisateur central Facturation
Suivi consommation
Tableau 1 : Identification des acteurs
9
1.2 Spécification des besoins
Dans cette partie on va présenter les besoins fonctionnels et non fonctionnels de notre
application.
Espace administrateur
S’authentifier avec un login et mot de passe pour garantir la sécurité de ses données.
S’authentifier avec un login et mot de passe pour garantir la sécurité de ses données.
Facturation.
Suivi consommation.
S’authentifier avec un login et mot de passe pour garantir la sécurité de ses données.
S’authentifier avec un login et mot de passe pour garantir la sécurité de ses données.
Valider paiement.
Espace régisseur
S’authentifier avec un login et mot de passe pour garantir la sécurité de ses données.
Paiement.
10
1.2.2 Besoins non fonctionnels
Les besoins non fonctionnels présentent les exigences internes pour le système et primordiales
pour atteindre notre objectif. Parmi ces besoins on cite :
Ergonomie : L’interface de l’application doit être simple et utilisable pour les utilisateurs
pour qu’ils puissent l’exploiter.
Fiabilité : l’application doit assurer l’échange des données et n’en perdre aucun détail.
11
Figure 6 : Diagramme de cas d'utilisation général
Dans cette partie, on a noté la détermination par le diagramme de cas d’utilisation qui
permettra de concevoir le système de vue d’un utilisateur et les rapports entre le système et
l’environnement.
Pour montrer les interactions fonctionnelles entre les acteurs et le système à l’étude on a :
Acteur : C’est un rôle joué par un utilisateur humain ou un autre système qui interagit
directement avec le système étudié. Un acteur participe à au moins un cas
d’utilisation.
Cas d’utilisation (use case) : C’est un ensemble de séquences d’actions réalisées par
le système produisant un résultat observable intéressant pour un acteur particulier.
Collections des scénarios reliés par un objectif utilisateurs communs.
Association : utilisé dans ce type de diagramme pour relier les acteurs et les cas
d’utilisation par une relation qui signifie simplement « participer à ».
12
Inclusion : le cas d’utilisation de base en incorpore explicitement un autre, de façon
obligatoire, à un endroit spécifié dans ses enchaînements.
Extension : le cas d’utilisation de base en incorpore implicitement un autre, de façon
optionnelle, à un endroit spécifié indirectement dans celui qui précède à l’extension.
Généralisation : les cas d’utilisation descendants héritent de la description de leur
parent commun. Chacun d’entre eux peut néanmoins comprendre des relations
spécifiques supplémentaires avec d’autres acteurs ou cas d’utilisations.
13
5 Gérer borne 5.4 En tant que utilisateur local, je veux consulter Forte
une borne
6 Gérer client 6.1 En tant que utilisateur central, je veux ajouter un Forte
client
6 Gérer client 6.2 En tant que utilisateur central, je veux consulter Forte
un client
6 Gérer client 6.3 En tant que utilisateur central, je veux modifier Forte
un client
6 Gérer client 6.4 En tant que utilisateur central, je veux supprimer Forte
un client
7 Facturation 7.1 En tant que utilisateur central, je veux préparer Forte
une facture
8 Suivi 8.1 En tant que utilisateur central, je veux Suivi Forte
consommation consommation
Tableau 2 : Backlog de produit
Dans cette partie, on a noté la détermination par le Backlog de produit qui permettra de
recueillir les attentes du marchés, des clients, à écrire les user stories qui correspondent et
travailler avec le client à les prioriser.
14
Relrase1 Relrase2
Gérer utilisateur
15
l'utilisateur.
Cette figure représente l’architecture logicielle :
D’où l’architecture de mon application est à 3 niveaux (architecture 3-tiers), elle est partagée
entre :
16
1.7 Environnement de travail
Bootstrap :
Bootstrap est une collection d'outils utiles à la création du design (graphisme,
animation et interactions avec la page dans le navigateur, etc.) de sites et d'applications
web. C'est un ensemble qui contient des codes HTML et CSS, des formulaires,
boutons, outils de navigation et autres éléments interactifs, ainsi que des extensions
JavaScript en option.[2]
17
Figure 12 : Logo de l’outil Bootstrap
Word :
Word est le logiciel phare de la suite Bureautique Microsoft Office. C'est l'un des logiciels les
plus utilisés dans le monde et permet de rédiger des lettres, CV, rapports et tous types de
documents texte.
Node.JS :
18
Mongo DB :
Est un système de gestion de base de données orienté documents. Il est écrit en C++.fait partie
de la mouvance No SQL. [4]
TeamGantt :
Conclusion
Dans ce chapitre nous avons préparé notre plan de travail. Nous avons identifié les besoins
fonctionnels et non fonctionnels de notre application ainsi les rôles des utilisateurs, et par la
suite nous avons préparé le Backlog de produit ainsi que le plan des releases de notre projet
.le chapitre suivant expliquera la suite de la démarche SCRUM par la présentation de sprint 1.
19
Chapitre 3 : Étude et réalisation du Sprint 1
Introduction
Dans ce chapitre, nous détaillerons le premier sprint en spécifiant ses besoins à travers le
Backlog, la conception et la réalisation pour aboutir à un incrément potentiellement livrable
qui assure l’authentification, gestion des clients, gestion des utilisateurs, gestion des bornes.
20
4 Gérer 4.1 En tant que utilisateur central, je Forte
veux ajouter un client
Client
4 Gérer client 4.2 En tant que utilisateur central, je Forte
veux modifier un client
21
Figure 19 : Diagramme raffiné du cas d’utilisation « s’authentifier »
Titre Authentification
Administrateur, Agent comptable,
Acteur Régisseur, Utilisateur Local, Utilisateur
central
Chacun de ses acteurs doit avoir un login et
Pré-condition
un mot de passe
Post-condition Acteur authentifié.
Scenario nominal
1. L’acteur doit se connecter au système.
2. Le système affiche la page d’authentification.
3. L’acteur remplit les champs (login, mot de passe).
4. Le système vérifie les informations insérées par l’acteur
5. Le système affiche la page d’accueil de l’application.
6. Le système enregistre l’événement.
Scénario alternatif
Si le login et mot de passe sont erronés alors le système affiche un message d’erreur
Message d’erreur si les informations sont incorrectes.
Tableau 5 : Description de cas d’utilisation « s’authentifier »
22
Figure 20 : Diagramme raffiné du cas d’utilisation « gérer utilisateur »
23
L’administrateur est sur la page de gestion
des utilisateurs.
Post-condition Utilisateur consulté
Scénario nominal
1. L’administrateur demande l’interface d’ajout d’un utilisateur.
2. Le système lui affiche l’interface
3. L’administrateur consulte le formulaire
4. L’administrateur valide la consultation
5. Le système vérifie les données
6. Le système enregistre l’événement.
Scénario alternatif
Au cours de l’étape 4, si les champs obligatoires non valides et/ou vides, le système affiche
un message d’erreur.
Tableau 7 : Description de cas d’utilisation « consulter utilisateur »
24
Au cours de l’étape 6, si les champs obligatoires non valides et/ou vides, le système affiche
un message d’erreur.
Tableau 8 : Description de cas d’utilisation « modifier utilisateur »
25
Figure 21 : Diagramme raffiné du cas d’utilisation «gérer client »
26
L’acteur est sur la page de gestion des clients.
Post-condition Client est supprimé.
Scénario nominal
1. L’acteur sélectionne le client
2. L’administrateur demande de supprimer de client.
3. Le système demande la confirmation de la suppression
4. L’administrateur confirme
5. Le système supprime le client et le redirige sur la page de gestion des clients.
6. Le système enregistre l’événement.
Scénario alternatif
27
Acteur utilisateur central
Pré-condition L’acteur doit être authentifié
Post-condition Client consulté
Scenario nominal
1. L’acteur demande l’interface de consulter d’un client.
2. Le système lui affiche l’interface
3. L’acteur consulté le formulaire
4. L’acteur valide la consultation
5. Le système enregistre l’événement.
Scenario alternatif
Au cours de l’étape 4, si les champs obligatoires non valides et/ou vides, le système affiche
un message d’erreur.
Tableau 13 : Description de cas d’utilisation «consulter client »
28
1. L’acteur demande l’interface d’ajout d’une borne.
2. Le système lui affiche l’interface
3. L’acteur remplit le formulaire
4. L’acteur valide l’ajout
5. Le système ajoute la borne.
6. Le système enregistre l’événement.
Scenario alternatif
Au cours de l’étape 4, si les champs obligatoires non valides et/ou vides, le système affiche
un message d’erreur.
Tableau 14 : Description de cas d’utilisation « Ajouter borne »
29
Acteur Utilisateur local
L’acteur doit être authentifié
Pré-condition
L’acteur est sur la page de gestion des bornes.
Post-condition Borne est modifié.
Scenario nominal
1. L’acteur sélectionne la borne
2. L’administrateur demande l’interface de modifier d’une borne.
3. Le système affiche les données de cette borne.
4. L’acteur effectue la modification puis valider.
5. Le système vérifie les données et enregistre les modifications.
6. Le système enregistre l’événement.
Scénario alternatif
Au cours de l’étape 4, si les champs obligatoires non valides et/ou vides, le système affiche un
message d’erreur.
Tableau 16 : Description de cas d’utilisation « modifier borne»
30
Au cours de l’étape 3, si l’acteur ne confirme pas alors le système annule l’opération.
Message asynchrone : il n’attend pas de réponse et ne bloque pas l’émetteur qui ne sait pas si
le message arrivera à destination
Message synchrone : L’émetteur reste alors bloqué le temps que dure l’invocation de
l’opération.
Message de création et destruction : La création d’un objet est matérialisée par une flèche
qui pointe sur le sommet d’une ligne de vie et la destruction d’un objet est matérialisée par un
choix qui marque la fin de la ligne de vie.
31
1.4.4 Diagramme de séquence authentification
32
1.4.6 Diagramme de séquence « ajouter borne »
33
1.4.7 Diagramme de séquence « modifier borne »
34
1.4.8 Diagramme de séquence « supprimer borne »
35
1.4.10 Diagramme de séquence « ajouter client »
36
1.4.11 Diagramme de séquence « modifier client »
37
1.4.13 Diagramme de classe d’analyse « gérer utilisateur »
38
1.4.15 Diagramme de séquence « consulter utilisateur »
39
1.4.17 Diagramme de séquence « supprimer utilisateur »
40
Figure 38 : capture de base de données
Cette interface permet à l’utilisateur d’accéder à l’application après une validation de son
login et son password.
Cette interface permet à l’utilisateur local d’ajouter borne à l’application après un remplissage
de formulaire.
41
Figure 40 : Interface ajouter borne
Conclusion
Au cours de ce chapitre, nous avons présenté le premier sprint. Pour ce faire, nous
avons passé par l’analyse, la conception et la réalisation. Dans le chapitre suivant,
nous entamons le deuxième sprint.
42
Chapitre 4 : Étude et réalisation du Sprint 2
Introduction
Dans ce chapitre, nous détaillerons le deuxième sprint en spécifiant ses besoins à travers le
Backlog, la conception et la réalisation pour aboutir à un incrément potentiellement livrable
qui assure la facturation, paiement et valider paiement.
43
Diagramme raffiné du cas d’utilisation «paiement »
Titre Paiement
Acteur Régisseur, agent comptable
L’acteur doit être authentifié.
Pré-condition
L’acteur est sur la page de gestion des clients.
Post-condition Montant payer
Scenario nominal
1. L’acteur sélectionne le client
2. L’acteur demande l’interface pour payer
3. Le système lui affiche l’interface
4. L’acteur remplit le formulaire
5. L’acteur valide l’ajout.
6. Le système vérifie les données et enregistre les données.
7. Le système enregistre l’événement.
Scénario alternatif
Au cours de l’étape 4, si l’acteur ne confirme pas alors le système annule l’opération.
Tableau 19 : Description de cas d’utilisation « paiement»
44
Acteur Agent comptable
Scénario alternatif
Au cours de l’étape 3, si les champs obligatoires non valides et/ou vides, le système affiche un
message d’erreur.
Titre Facturation
Acteur Utilisateur central
45
Post-condition Facture ajouté.
Scenario nominal
Scénario alternatif
Au cours de l’étape 3, si les champs obligatoires non valides et/ou vides, le système affiche un
message d’erreur.
46
1.4.2 Diagramme de séquence «paiement»
47
1.4.4 Diagramme de séquence «valider paiement»
48
1.4.6 Diagramme de séquence «facturation»
49
Figure 50 : capture de bade de données
50
Figure 51 : Interface facturation
Cette interface permet à l’agent comptable de valider le paiement d’une facture payé.
Conclusion
Au cours de ce chapitre, nous avons présenté le deuxième sprint. Pour ce faire, nous avons
passé par l’analyse, la conception et la réalisation. Dans le chapitre suivant, nous entamons le
troisième sprint.
51
Chapitre 5 : Etude et réalisation de sprint 3
Introduction
Dans ce chapitre, nous détaillerons le troisième sprint en spécifiant ses besoins à travers le
Backlog, la conception et la réalisation pour aboutir à un incrément potentiellement livrable
qui assure suivi consommation.
52
1. L’acteur sélectionne le client.
2. L’acteur demande l’interface de consommation
3. Le système lui affiche l’interface
4. Le système lui affiche les données de la consommation
5. L’acteur remplit le formulaire.
6. L’acteur valide l’ajout
7. Le système enregistre l’événement.
Scénario alternatif
Au cours de l’étape 3, si les champs obligatoires non valides et/ou vides, le système affiche un
message d’erreur.
53
1.4.2 Diagramme de séquence « suivi consommation »
54
1.6 Diagramme de classe global
Le diagramme de classe est une représentation statique des éléments qui composent un
système et de leurs relations. D’autre part le diagramme de classe est une description de la
base des données. Ce diagramme est caractérisée par :
Une classe : Elle est représentée par un rectangle séparé en trois parties :
Une association : C’est une relation entre deux classes, qui décrit un ensemble de liens entre
instances. Elle est représente par un simple trait. Une association est bidirectionnelle.
Multiplicité : le nombre d’objet (minimum, maximum) qui peuvent participer à une relation
avec un autre objet dans le cadre d’une association. Multiplicités fréquentes :
0..1 = optionnel
= exactement 1
0..*=* quelconque
1..*= au moins 1
Conclusion
Au cours de ce chapitre, nous avons présenté le troisième sprint. Pour ce faire, nous avons
passé par l’analyse, la conception et la réalisation.
55
Conclusion générale
C’est dans ce contexte s’intègre notre projet de fin d’études, qui a pour objectif la mise en
place une application de facturation d’eau.
Le présent rapport détaille toutes les étapes par lesquelles nous sommes passés pour arriver au
résultat attendu. Nous avons commencé par comprendre le contexte général du projet et
identifié les différentes exigences du futur système. Nous avons préparé, par la suite, un
Backlog produit en respectant les priorités des besoins. Malgré les contraintes de temps et les
difficultés techniques qui se résument principalement dans la compréhension du sujet et
surtout la tâche d’exécution des processus, nous avons réussi à réaliser la totalité de
l’application.
Outre, ce projet nous a permis d’approfondir nos connaissances dans les bonnes pratiques de
la gestion de projet vu que nous avons eu l’opportunité d’organiser son déroulement dès le
début et l’utilisation des technologie moderne Angular js , node js et base de données Mongo
DB pour la réalisation de l’application.
Finalement, vu l’accomplissement de projet, nous souhaitons très fortement qu’il soit le fruit
du progrès, de l’évolution et qu’il reste à la hauteur, nous souhaitons par ailleurs la
satisfaction des membres de jury.
56
Bibliographie
[1] https://www.commentcamarche.net/telecharger/bureautique/23283-visual-
paradigm/
[2] https://getbootstrap.com/
[3]https://fr.search.yahoo.com/search?fr=mcafee&type=E211FR885G0&p=node+js/
[4] https://www.mongodb.com/fr-fr
57