Académique Documents
Professionnel Documents
Culture Documents
Université de Jendouba
Par
Angham Jbeli
Le
Le
Dédicaces
Je dédie ce mémoire à ma mère qui ne cesse de m’assister sur le plan moral, matériel et
surtout affectif. Pour cela, je lui souhaite une longue et heureuse vie pleine de joie et de
succès, avec mon cher père qui, lui aussi, était, toujours, à mes côtés, dans les moments
difficiles...
Votre cher fils Angham qui vous chérit tant.
Jbeli Angham
i
Remerciements
Je souhaite rendre hommage à tous ceux qui ont contribué à la réalisation de ce travail.
Je tiens, avant tout, à adresser mes plus vifs remerciements à Madame Houda ZOUARI
OUNAIES, mon encadrante à l’Ecole Nationale d’ingénieurs de Carthage, pour l’encadrement
sérieux dont elle a fait preuve ainsi qu’à nos enseignants de l’Enicarthage à qui je dois ma
formation.
Je tiens à exprimer ma gratitude à M. Tawfik ZAMMEL, mon tuteur, pour m’avoir intégré
rapidement au sein de l’entreprise et m’ avoir accordé toute sa confiance ; pour le temps qu’il
m’ a consacré tout au long de cette période, sachant répondre à toutes mes interrogations sans
oublier sa participation au cheminement de ce rapport.
Monsieur Mehdi CHAOUACHI,mon ancien encadrant, pour la qualité de son suivi incessant,
pour son accueil et pour sa confiance qu’il m’a accordé.
Enfin, j’ adresse mes remerciements aux membres du jury pour m’ avoir honoré en acceptant
d’évaluer ce travail.
Sans oublier tous ceux qui ont participé de prés ou de loin à l’accomplissement de ce projet.
ii
Table des matières
iii
2.8.1 Diagramme de cas d’utlilisation raffiné « Consulter utilisateur » . . . . . . . . . 25
2.9 Diagramme de cas d’utlilisation raffiné «consulter les frais» . . . . . . . . . . . . . . . 27
2.9.1 Diagramme de cas d’utlilisation raffiné «consulter les réservations» . . . . . . . 28
3 Conception 31
3.1 diagramme de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2 Les diagrammes de séquences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 Définition et composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2 Diagramme de séquence s’authentifier . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.3 Diagramme de classe de conception S’authentifier . . . . . . . . . . . . . . . . . 35
3.2.4 Diagrammes de séquence inscription . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.5 Diagramme de classe de conception inscription . . . . . . . . . . . . . . . . . . 37
3.2.6 Diagrammes de séquence «gérer réservation» . . . . . . . . . . . . . . . . . . . 37
3.2.7 diagramme de séquence consulter historique . . . . . . . . . . . . . . . . . . . . 41
3.2.8 Diagramme de séquence «éditer les données personnelles» . . . . . . . . . . . . 41
3.2.9 Diagrammes de séquence «gérer véhicule» . . . . . . . . . . . . . . . . . . . . . 42
3.2.10 Diagramme de séquence «Consulter clients» . . . . . . . . . . . . . . . . . . . . 44
3.2.11 Diagramme de séquence «Consulter les frais» . . . . . . . . . . . . . . . . . . . 44
3.2.12 Diagramme de séquence «Consulter réservations» . . . . . . . . . . . . . . . . . 45
4 Réalisation 46
4.1 Architecture de développement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2 Environnement de développement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.1 Environnement matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.2 Environment logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.3 Langages de développement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.2.4 Langage de modélisation et outil de conception . . . . . . . . . . . . . . . . . . 51
4.3 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.3.1 Interface d’authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.3.2 Interface d’inscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.3.3 Les interfaces du client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.3.4 Interface d’inscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.3.5 les interfaces de ladministrateur . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.3.6 Liste des réservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
iv
Conclusion générale 62
v
Table des figures
vi
3.9 Diagramme de classe de conception «Gérer réservation» . . . . . . . . . . . . . . . . . 40
3.10 diagramme de séquence consulter historique . . . . . . . . . . . . . . . . . . . . . . . . 41
3.11 Diagramme de séquence «éditer les données personnelles» . . . . . . . . . . . . . . . . 42
3.12 Diagramme de séquence «modifier véhicule» . . . . . . . . . . . . . . . . . . . . . . . . 43
3.13 Diagramme de classe de conception «Gérer véhicule» . . . . . . . . . . . . . . . . . . . 44
3.14 Diagramme de séquence «Consulter les frais» . . . . . . . . . . . . . . . . . . . . . . . 45
4.1 MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2 Logo Flutter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.3 Logo Firebase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.4 Logo Dart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.5 Logo Json . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.6 Logo Yaml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.7 Logo UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.8 Logo UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.9 Interface d’authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.10 Interface d’inscription 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.11 Interface d’inscription 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.12 Interface page d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.13 Interface de selection date et heure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.14 Interface de selection date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.15 Interface de temp de début . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.16 Interface de temp de fin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.17 Interface du plan du parking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.18 Interface de paiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.19 Interface des réservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.20 ticket de réservation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.21 Interface de liste des réservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.22 Interface de liste des réservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.23 Interface de liste des réservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.24 Interface de liste des réservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.25 Interface de liste des réservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.26 Interface de liste des réservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
vii
Liste des tableaux
viii
Liste des abréviations
— BI = Business Intelligence
— JS = JavaScript
ix
Introduction générale
1
Chapitre 1
Plan
1 Identification des acteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Introduction
Dans ce premier chapitre, nous mettrons l’accent sur le cadre du projet. De ce fait, nous
commencerons par présenter l’entreprise d’accueil Bee coders et notre client Thor system. Par la suite,
nous détaillerons le sujet du projet, en présentant la problématique et une description de l’existant.
Enfin, la dernière partie sera consacrée à la méthodologie adoptée pour la réalisation de ce projet.
Beecoders est une entreprise qui est fondée sur les services numériques spécialisée dans le
développement web et mobile(Android et IOS), le design web, le consulting IT et les formations à
distance. La flexibilité est l’atout majeur de Beecoders dont elle assure le développemnt des projets des
clients dans les meilleurs conditions et elle offre des modules de formations de qualité qui s’alignent sur
les nouvelles exigences du marché d’emploi en IT. En plus elle offre pour leurs clients un consulting IT
pour garantir l’optimisation de leurs stratégie IT.
3
Chapitre 1. contexte général du projet
L’étude de l’existant est une étape primordiale pour la mise en route de tout projet, elle
représente le cœur de la phase d’analyse d’un projet et qui permet de définir le contexte de fonctionnement
et de dégager les différents insuffisances et imperfections dans le système actuel afin de les corriger.
Depuis des années, la circulation à Tunis connaît des embouteillages monstres, notamment
pendant les heures de pointe. Le stationnement constitue aussi un problème épineux. En entrant dans
la capitale, le conducteur ne sait pas où garer sa voiture. Il est contraint de faire plusieurs tours pour
dénicher une place. La mauvaise gestion des espaces de stationnement et les renseignements insuffisants
sur la disponibilité des espaces occasionnent des bouchons de circulation, font perdre du temps précieux
aux automobilistes, entraînent un gaspillage de carburant. Les conducteurs préfèrent de stationner leurs
voitures dans un parking privé pour être assurés qu’il soit en sécurité. C’est bien pour ce faire qu’il
est préférable d’opter pour ce type de parking, plutôt que de garer leurs voiture dans n’importe quel
endroit.
Les conducteurs doivent se présenter tôt pour obtenir leur place de stationnement dans un parking et
parfois il prend plusieurs minutes pour trouver une place à l’intérieur de parking.
En plus, le propriétaire du parking n’a pas une vue claire et précise sur l’occupation du parking en
temps réel et sur le taux de remplissage de leur parking.
4
Chapitre 1. contexte général du projet
Aprés une analyse de l’existant nous avons relever quelques lacunes tels que : -Une mauvaise
gestion des espaces de stationnement. -L’absence d’une méthode pour une réservation et paiement à
distance -Une méthode classique pour collecter et calculer les frais -Le propriétaire de parking n’avait
pas une vue claire et précise sur l’occupation de son parking
Après une étude approfondie de divers problèmes dégagés nous visons à concevoir et développer
une application mobile qui offrir une gestion intelligente et proactive du parking en permettant les
clients du consulter les places du parking en temps réel, planifier et effectuer des réservations par
prendre leurs propres décisions quant au moment et l’endroit où se garer, d’obtenir des tickets, payer
ses réservations en ligne en utilisant son carte de crédit, et de consulter l’historique de ces réservations.
La place de parking est attribuée au client de façon immédiate et celui-ci n’a pas besoin d’attendre
une confirmation. Le système se met à jour en temps réel, empêchant ainsi que deux client ne puissent
réserver la même place. Cette application doit permettre l’administrateur de consulter les frais, la liste
des clients et la liste de tous les réservations effectuées par les clients ce qui permet d’avoir une vue
claire et bien précise sur l’occupation du parking.
Il n’y a aucun travail scientifique élaboré sans méthode, car cette dernière nous montre quel
chemin faut –il prendre pour arriver à atteindre les objectifs que nous nous sommes assignés. Bien
qu’il existe nombreux choix de méthodologies de développement de logiciels, le choix d’une méthode
pour le projet un point vital, qui va nous suivre de début jusqu’à la fin. Après une longue réflexion,
on a fait une comparaison entre une approche classique et adaptative, en pesant les "avantages" et les
"inconvénient". Le choix de la méthodologie doit se faire par rapport à la prédictibilité, plus le projet
est rigide et prévisible c’est le choix d’une approche classique qui impose, plus le projet est flexible et
tend vers l’inconnue, alors dans ce cas c’est l’approche agile qu’il nous faut. Tandis que l’agilité est
de plus en plus utilisée pour les projets digitaux, car elle est plus moderne et adaptative aux besoins
des clients qui évoluent aux cours du projet, le choix de méthodologies ne doit pas dépendre de leur
popularité, mais plutôt choisir la plus adaptée pour coordonner et de maîtriser au mieux l’ensemble
des activités qui mènent à l’atteinte de l’objectif tout en respectant les exigences de qualité, de coûts
et de délais. Les tableaux dans les tableaux 1.1 et 1.2 montre que les deux approches ont leurs points
forts et leurs faiblesses.
5
Chapitre 1. contexte général du projet
Le processus unifié est un processus de développement centré sur des diagrammes de cas
d’utilisation, itératif et incrémental qui utilise un langage de modélisation unifié.
Un processus unifié peut être appliqué à différents systèmes logiciels avec différents niveaux de complexité
technique. Le processus unifié répète un certain nombre de cycles qui se termine par la livraison d’une
version du produit aux clients. Le processus unifié s’organise en quatre phases :
création, élaboration, construction et transition. Chacune d’entre elles se subdivise à leur tour aux cinq
itérations suivantes (figure1.3) :
-Expression des besoins : Elle permet de définir des besoins tels que les besoins fonctionnels
permettant la modélisation des cas d’utilisation et des besoins non fonctionnels obéissant à une liste
d’exigences du système.
-Analyse : Accéder à une compréhension des besoins et des exigences du client. Il s’agit de livrer des
spécifications sous forme de scénarios qui facilitent la compréhension, la préparation, la modification
et la maintenance du futur système.
-Conception : Acquérir une compréhension approfondie des contraintes liées aux langages de programmation.
Elle détermine les principales interfaces et les transcrit à l’aide d’une notation commune. Elle constitue
un point de départ à l’implémentation en décomposant la conception en sous-systèmes.
-Implémentation : C’est le résultat de la conception pour implémenter le système sous formes de
composants qui se transforme en code source. Les objectifs principaux de l’implémentation sont de
planifier les intégrations des composants pour chaque itération.
-Tests : Vérifier des résultats de l’implémentation en testant la construction pour chaque itération, les
implémenter en créant des cas de tests en prenant en compte le résultat de chacun.
6
Chapitre 1. contexte général du projet
Le processus 2TUP (Two Track Unified Process) ou le cycle en Y est un processus unifié qui
dissocie les aspects techniques des aspects fonctionnels. Le processus s’articule, autour de trois branches
essentielles (Figure 1.4).
-Branche fonctionnelle :
Consiste à capturer les besoins et à étudier les spécifications fonctionnelles afin d’obtenir une idée de ce
que nous allons réaliser dans notre système. Au cours de cette phase nous avons fait des recherches sur
l’existant qui nous ont permis d’extraire les besoins fonctionnels et non-fonctionnels de notre système.
-Branche technique : Comporte deux étapes, la première est pour la capture des besoins
techniques tels que le choix des outils et le matériel ainsi que la prise en compte des contraintes
d’intégration avec l’existant. La deuxième consiste à définir les composants nécessaires à la construction
de l’architecture technique. Durant cette phase, nous avons dégagé les pré requis et besoins techniques
associés aux outils avec lesquelles nous allons implémenter notre chaîne.
-Phase de la réalisation :
Regroupe les informations des branches technique et fonctionnelle afin d’aboutir au système final
initialement envisagé. Nous avons fusionné, au cours de cette phase, les deux branches fonctionnelles
techniques afin de mener une conception applicative permettant de livrer une solution adaptée aux
besoins signalés.
7
Chapitre 1. contexte général du projet
Une étude de ces différentes méthodologies révèle qu’elles ont un tronc commun, mais elles se
différencient par leur degré de formalisme, les revues, le rythme du projet, le nombre et la longueur des
itérations et à la taille de projets. Donc, après cette étude comparative, notre choix s’est focalisé une
démarche par activités qui s’inspire du processus unifié puisque sa qualité principale est la simplicité.
ingénieur.
Conclusion
Dans ce chapitre, nous avons commencé par introduire l’entreprise d’accueil Bee coders. Par la
suite, on a présenté notre client Thor system . Après, nous avons présenté le contexte du projet en
précisant la problématique, et la solutions proposée. Enfin, nous avons fixé la méthodologie à suivre
pour l’élaboration du travail en précisant pourquoi nous avons fait ce choix. Nous passerons par la
suite dans le chapitre suivant à l’analyse et spécification des besoins.
8
Chapitre 2
Plan
1 diagramme de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Introduction
L’étape de spécification des besoins constitue la base de départ de ce travail. En outre, l’adéquation
de toute l’application à réaliser, aux besoins des utilisateurs et aux traitements envisagés au niveau de
ses opérateurs assurera sa réussite et son utilité future. Pour assurer ces objectifs, il est essentiel que
nous parvenions à une vue claire des différents besoins pour déterminer les fonctionnalités attendues.
L’administrateur et le client sont les acteurs qui interagissent avec notre projet.
• Administrateur : gére tous le systéme
• client : qui veut satisfaire ses besoins
La spécification des besoins doit décrire le logiciel à développer. On va identifier les fonctionnalités
et les acteurs du système, et présenter les diagrammes de cas d’utilisations suivis de description textuelle
des principaux cas d’utilisation.
Il est primordial de définir les besoins fonctionnels de notre recherche car cela nous permet de
cibler le cadre du système et de prévoir les fonctionnalités qu’il doit remplir. Il faut rappeler que le
but ultime de cette application est de donner la possibilité aux utilisateurs de gérer les activités que
nous définirons plus en détails dans les parties suivantes. Les objectifs de l’application s’atteigne par
le biais d’une interface à laquelle se connectent les utilisateurs.
Le tableau suivant nous décrivant la description des besoins fonctionnels pour le client :
10
Chapitre 2. Analyse et spécification des besoins
Les besoins non fonctionnels Le comportement et la performance que le produit doit avoir.
Quand les besoins fonctionnels expriment les fonctionnalités concrètes du produit, les besoins non
fonctionnels sont des indicateurs de qualité de l’exécution des besoins fonctionnels.
•Ergonomie : L’application doit être facile à utiliser et offre des interfaces confortables à l’utilisateur.
•Fiabilité : La fiabilité se présente lorsque la fonction requise du logiciel est parfaitement accomplie.
•Sécurité : La sécurité se manifeste par le choix des solutions adéquates pour la protection de
l’utilisateur de l’application.
•Le gain du temps : Accès aux différentes tâches effectuées doit se faire en un temps de réponse qui
doit être le plus court possible.
Un prototype est un modéle original qui posséde toutes les qualités techniques et toutes les
caractéristiques de fonctionnement d’un nouveau produit. Dans le domaine de développement applications
11
Chapitre 2. Analyse et spécification des besoins
une technique est apparue intéressant : il s’agit du prototypage.Cette technique consiste à préparer
quelques interfaces graphiques de l’application en utilisant un outil de conception de prototypes afin de
valider le choix du client cela nous permettra d’améliorer et optimiser avant la réalisation pour éviter
de se bloque dans des choix erron´es qu’il lui serait difficile de modifier une fois l’application crée.
Les diagrammes de cas d’utilisation a pour but de donner une vision globale sur les interfaces
de futur application . C’est le premier diagramme UML constitué d’un ensemble d’acteurs qui agit
sur des cas d’utilisation et qui décrit sous la forme d’actions et des réactions, le comportement d’un
systéme du point de vue utilisateur. Un cas d’utilisation représente une unité significative de travail.
Dans un diagramme de cas d’utilisation, les utilisateurs sont appelés acteurs (actors), ils interagissent
avec les cas d’utilisation (use cases) .
Un cas d’utilisation est une unité cohérente représentant une fonctionnalité visible de l’extérieur.Il
réealise un service de bout en bout, avec un d´eclenchement, un déroulement et une fin, pour l’acteur
qui l’initie. Un cas d’utilisation modélise donc un service rendu par l’application, sans imposer le monde
de réalisation de service.
Le diagramme du cas d’utilisation générale décrivent les cas d’utilisations basique pour avoir
une vue globale du fonctionnement de l’application.
12
Chapitre 2. Analyse et spécification des besoins
nous allons assurer par la suite le raffinement des tâches de gestion des ressources et faire
apparaitre plus de fonctionnalités que l’utilisateur peut exploiter.
Le raffinement est une opération nécessaire est fortement significative car elle va permettre de
mieux comprendre avec plus de détails les fonctionnalités de l’application
13
Chapitre 2. Analyse et spécification des besoins
Cas
S’authentifier
d’utilisation
14
Chapitre 2. Analyse et spécification des besoins
Cette partie est dédiée a toutes les fonctionalités assurés par le client.
15
Chapitre 2. Analyse et spécification des besoins
Dans le tableau suivant nous présentons une description textuelle ajouter réservation de la
figure2.4
16
Chapitre 2. Analyse et spécification des besoins
Cas
Ajouter réservation
d’utilisation
Acteurs Client
Scénario(s)
-Pas du solde suffisant
Alternatif
Dans le tableau suivant nous présentons une description textuelle consulter réservation de la
figure3.14
17
Chapitre 2. Analyse et spécification des besoins
Cas
Consulter réservation
d’utilisation
-Client authentifié
Pré-condition
-réservation existant
Scénario(s)
-Pas d’une réservation en cours à afficher
Alternatif
Dans le tableau suivant nous présentons une description textuelle supprimer réservation de la figure3.14
Cas
Supprimer réservation
d’utilisation
Acteurs Client
Scénario(s)
Rien à afficher
Alternatif
18
Chapitre 2. Analyse et spécification des besoins
Dans le tableau suivant nous présentons une description textuelle Consulter données personnels
de la figure 2.5
Cas
Consulter données personnels
d’utilisation
Acteurs client
Scénario(s)
Rien à afficher
Alternatif
Dans le tableau suivant nous présentons une description textuelle modifier données personnelles
de la figure 2.5
19
Chapitre 2. Analyse et spécification des besoins
Cas
Modifier données personnelles
d’utilisation
Acteurs client
Scénario(s)
-Si un champ obligatoire est manquant l’application affiche un message d’erreur
Alternatif
20
Chapitre 2. Analyse et spécification des besoins
Dans le tableau suivant nous présentons une description textuelle Consulter véhicule de la
figure2.11
Cas
Consulter véhicule
d’utilisation
Acteurs client
Scénario(s)
Rien à afficher
Alternatif
Dans le tableau suivant nous présentons une description textuelle modifier véhicule personnelles
de la figure 2.11
21
Chapitre 2. Analyse et spécification des besoins
Cas
Modifier véhicule
d’utilisation
Acteurs client
Scénario(s)
-Si un champ obligatoire est manquant l’application affiche un message d’erreur
Alternatif
22
Chapitre 2. Analyse et spécification des besoins
Dans le tableau suivant nous présentons une description textuelle modifier carte de crédit
personnelles de la figure2.9
Cas
Modifier carte de crédit
d’utilisation
Acteurs client
-Client authentifié
Pré-condition -Carte de crédit existant
Scénario(s)
-Si un champ obligatoire est manquant l’application affiche un message d’erreur
Alternatif
23
Chapitre 2. Analyse et spécification des besoins
Dans le tableau suivant nous présentons une description textuelle Consulter carte de crédit de
la figure2.9
Cas
Consulter carte de crédit
d’utilisation
Acteurs client
-Client authentifié
Pré-condition -Carte de crédit existant
Scénario(s)
Rien à afficher
Alternatif
24
Chapitre 2. Analyse et spécification des besoins
Dans le tableau suivant nous présentons une description textuelle consulter l’historique des
réservations de la figure2.11
Cas
Consulter historique
d’utilisation
Acteurs client
Scénario(s)
-Pas des réservations à afficher
Alternatif
25
Chapitre 2. Analyse et spécification des besoins
Cas
Consulter clients
d’utilisation
-Administrateur authentifié
Acteurs
-Clients existants
Scénario(s)
-Pas des réservations à afficher
Alternatif
26
Chapitre 2. Analyse et spécification des besoins
Dans le tableau suivant nous présentons une description textuelle consulter les frais de la
figure2.15
27
Chapitre 2. Analyse et spécification des besoins
Cas
Consulter les frais
d’utilisation
Scénario(s)
Rien à afficher
Alternatif
28
Chapitre 2. Analyse et spécification des besoins
Cas
Consulter réservations
d’utilisation
Scénario(s)
Rien à afficher
Alternatif
29
Chapitre 2. Analyse et spécification des besoins
Conclusion
Dans ce chapitre, on a énuméré les besoins fonctionnels et les besoins Non fonctionnels de ce
projet. De plus, on a élaboré les différents diagrammes de cas d’utilisation ainsi que leurs descriptions
textuelles. Dans le chapitre suivant, nous allons procéder la modélisation de ces fonctionnalités par une
étude conceptuelle afin de mieux comprendre le développement de cette application.
30
Chapitre 3
Conception
Plan
1 Architecture de développement . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2 Environnement de développement . . . . . . . . . . . . . . . . . . . . . . . . 48
3 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Chapitre 3. Conception
Introduction
Le diagramme de classe fait une description détaillée de l’ensemble des classes d’un système en
montrant la structure interne, en identifiant les propriétés de chaque classe. Les différentes associations
entre les classes y sont également représentées
32
Chapitre 3. Conception
33
Chapitre 3. Conception
34
Chapitre 3. Conception
35
Chapitre 3. Conception
36
Chapitre 3. Conception
Acteurs :client.
Après l’authentifié le client peut ajouter une réservation en cliquant sur le bouton «nouvelle réservation»
puis l’application affiche une interface pour sélectionner la date et l’intervalle du temps de la réservation.
Le client clique sur le bouton « entrée » puis l’application affiche un calendrier alors le client doit
sélectionner la date de la réservation puis l’application affiche une horloge pour sélectionner le temps
d’entrer dans le parking, puis l’application retourne une interface qui affiche les données sélectionnée,
le client clique sur le bouton «fin réservation » alors l’application affiche une deuxième horloge pour
sélectionner le temps de la fin de réservation. Puis l’application affiche l’interface qui contient tous les
informations. Le client clique sur le bouton «choisir place», l’application affiche le plan du parking dans
le moment sélectionné Le client clique sure une place vide puis le client clique sur le bouton «réserver»
pour afficher tous les données de la réservation (date, l’intervalle du temps, nom du client, nom de la
place, prix . . .), finalement le client clique sur le bouton «payer» pour payer son réservation. Si le solde
37
Chapitre 3. Conception
38
Chapitre 3. Conception
Acteurs :client.
Si le client déjà ajouté une ou plusieurs réservations, il peut le consulter comme illustre le diagramme
de séquence suivant :
Acteurs :client.
Si le client déjà ajouté une réservation, il peut la supprimer comme illustre le diagramme de séquence
suivant :
39
Chapitre 3. Conception
40
Chapitre 3. Conception
Acteurs :client.
Après l’authentification le client peut consulter l’historique de ses réservations comme l’illustre le
diagramme de séquence suivant :
Acteurs :client.
41
Chapitre 3. Conception
Après l’authentifié le client peut modifier son véhicule qu’il est saisi lors de l’inscription
42
Chapitre 3. Conception
43
Chapitre 3. Conception
Acteurs :Administrateur.
Acteurs :Administrateur.
44
Chapitre 3. Conception
Acteurs :Administrateur.
Conclusion
La phase conceptuelle est une étape fondamentale pour la réalisation de n’importe quel projet.
Elle permet de faciliter le systéme d’information et réaliser l’implémentation de la base de données et
le traitement.Dans ce chapitre nous avons présenté les diagrammes de séquences et les diagrammes
de classes de notre application.Le chapitre suivantest consacré à la phase de réalisation de notre
application
45
Chapitre 4
Réalisation
Chapitre 4. Réalisation
Introduction
Une manipulation souple et aisée reste toujours parmi les critéres les plus décisifs pour le
succés de tout projet. C’est pourquoi le choix des outils de programmation doit être bien étudié.Dans
ce chapitre nous présentons en premier temps l’architecture et l’environnement de développement
utilisés.Dans un second temps nous illustrons la réalisation de notre travail par des imprimes écran des
interfaces les plus importantes de notre application.
Afin de bien concevoir notre application et bien organiser notre code, nous avons opté pour
l’architecture MVC. Le MVC signifie Model-View-Controller est un modèle architectural qui sépare
une application en trois composants logiques principaux : modèle, vue et le contrôleur. Chacun de ces
composants est construit pour gérer des aspects de développement spécifiques du notre application.
-Modèle :
Le modèle contient les données manipulées par le programme. Il assure la gestion de ces données et
garantit leur intégrité. Dans le cas typique d’une base de données, c’est le modèle qui la contient.
Le modèle offre des méthodes pour mettre à jour ces données (insertion suppression, changement de
valeur). Il offre aussi des méthodes pour récupérer ses données. Dans le cas de données importantes,
le modèle peut autoriser plusieurs vues partielles des données.
-Vue :
La vue fait l’interface avec l’utilisateur. Elle permet d’afficher les données qu’elle a récupérées auprès
du modèle et de recevoir tous les actions de l’utilisateur. Ses différents événements sont envoyés au
contrôleur. La vue peut aussi donner plusieurs vues, partielles ou non, des mêmes données.
47
Chapitre 4. Réalisation
-Contrôleur :
Le contrôleur est chargé de la synchronisation du modèle et de la vue. Il reçoit tous les événements de
l’utilisateur et enclenche les actions à effectuer. Si une action nécessite un changement des données, le
contrôleur demande la modification des données au modèle et ensuite avertit la vue que les données
ont changé pour que celle-ci se mette à jour. Certains événements de l’utilisateur ne concerne pas les
données mais la vue. Dans ce cas, le contrôleur demande à la vue de se modifier.
Nous présentons dans cette section l’environnement matériel mis à la disposition du présent
projet , ainsi que l’environnement logiciel utilisé pour le développement et la mise en place de notre
application.
Entité Description
Modèle : HP
Processeur : Intel® Core™ i5 CPU
Pc portable RAM : 8G
Disque dur : 465 Go
Système d’exploitation : Windows 10
Dans ce qui suit nous présentons l’environnement logiciel utilisé pour mener à terme ce sujet
Flutter
Flutter est un Framework de développement d’applications multiplateforme utilisant la langage Dart
, il est utilisé pour développer des applications Android , IOS , Windows , Mac, Linux, Fuchsia et
web à partir d’une seule base de code ce qui permet de simplifier et réduire le temps et le cout de
développement . La stratégie de Flutter « Tout est un widget » intègre de manière systématique
la programmation orientée objet jusque dans l’interface utilisateur : l’interface d’un programme se
compose de différents widgets pouvant être imbriqués les uns dans les autres.Il offre un accès à des
bibliothèques complètes d’éléments d’IU préconçus , une implémentation facile de flux de données
48
Chapitre 4. Réalisation
pour la mise à jour continue des utilisateurs et une compilation extrement rapide grâce à la propriété
rechargement à chaud (« Hot Reload ») pour que l’application se recharge automatiquement quand le
code est modifié de manière presque instantané.
Firebase
Firebase est une plateforme de développement d’applications mobiles de Google dotée de puissantes
fonctionnalités pour le développement, la manipulation et l’amélioration des applications. Firebase
est fondamentalement un ensemble d’outils sur lesquels les développeurs peuvent compter, créant des
applications et les développant en fonction de la demande.
Firebase vise à résoudre trois problèmes principaux pour les développeurs :
• Créer une application, rapidement
• Publiez et supervisez une application en toute confiance
• Faire participer les utilisateurs
Les développeurs qui s’appuient sur cette plateforme ont accès à des services qu’ils devraient développer
eux-mêmes, et cela leur permet de se concentrer sur la fourniture d’expériences d’applications robustes.
Parmi les caractéristiques les plus remarquables de la plateforme Google Firebase, citons les bases de
données, l’authentification, les messages « push », l’analyse, le stockage de fichiers, et bien plus encore.
Comme les services sont hébergés dans le cloud, les développeurs peuvent effectuer une mise à l’échelle
à la demande sans aucun problème. Firebase est actuellement l’une des principales plateformes de
développement d’applications sur lesquelles s’appuient les développeurs du monde entier.
49
Chapitre 4. Réalisation
Dart
Dart est un langage de programmation web développé par Google. Son but initial est de remplacer
JavaScript pour devenir la nouvelle langue du développement web, néanmoins la priorité actuelle des
développeurs est que le code Dart puisse être converti en code JavaScript compatible avec tous les
navigateurs modernes, ainsi que sur le développement d’application multi-plateforme. Dart peut aussi
être utilisé pour la programmation côté serveur, ainsi que le développement d’applications mobiles (via
l’API Flutter).
JSON
JSON est un format de données textuelles dérivé de la notation des objets du langage JavaScript. Il
permet de représenter de l’information structurée comme le permet XML par exemple. Dans notre
projet il nous a servi lors de l’échange de données entre notre back et le front de notre application
facilitant ainsi une communication fluide entre les deux parties.
YAML
YAML est un langage sous format de représentation de données par sérialisation Unicode. Il reprend des
concepts d’autres langages comme XML. Son objet est de représenter des informations plus élaborées
que le simple CSV en gardant cependant une lisibilité presque comparable, et bien plus grande en tout
cas que du XML.
50
Chapitre 4. Réalisation
Le langage UML ( Unified Model Language ) est un langage de modélisation graphique base de
pictogrammes Conçu pour fournir une méthode normalisée pour spécifier,visualise,modifier et construire
la conception d’un systéme.Il est couramment utilisé en développement logiciel et en conception orienté
objet. UML est essentiellement un support de communication, qui facilite la représentation et la
compréhension de solution objet.Sa notion graphique permet d’exprimer visuellement une solution
object,ce qui facilite la compraison et l’évaluation des solutions.L’aspect de sa notion, limite l’ambiguité
et les incompréhensions. Une façon d’UML mettre en oeuvre est considérer vues qui peuvent se
superposer pour collaborer à la définition du systéme.
4.2.4.2 astah
Astah est un outil de modélisation UML créé par la compagnie japonaise ChangeVision. Il
fonctionne avec l’environnement d’exécution Java. Le nom vient de l’acronyme Java and UML developers’
environment. Astah est un logiciel propriétaire qui était distribué gratuitement en version "community".
51
Chapitre 4. Réalisation
4.3 Réalisation
Lors de l’ouverture de notre système, la première page que nous rencontrons est la page
d’authentification présentée dans la figure?? L’utilisateur doit d’abord saisir son email et son mot
de passe puis en appuyant sur le bouton "Se connecter", il sera redirigé vers l’interface home
52
Chapitre 4. Réalisation
53
Chapitre 4. Réalisation
après cliquer sur le bouton "début réservation" l’application affichera un calendrier pour choisir
la date de réservation
54
Chapitre 4. Réalisation
55
Chapitre 4. Réalisation
Après avoir sélectionné la date et l’heure de début et de fin l’application affichera le plan du
parking dans l’intervalle de temps sélectionné par le client , les places disponibles affichés sous forme
des rectangles verts comme l’illustre le figure suivant , le client choisir l’étage et clique sur la place où
il veut garer
La dernière étape est payer son réservation , le prix est affiché comme l’illustre le figure4.26
56
Chapitre 4. Réalisation
57
Chapitre 4. Réalisation
58
Chapitre 4. Réalisation
59
Chapitre 4. Réalisation
60
Chapitre 4. Réalisation
Conclusion
Tout au long de notre chapitre , nous avons atteint la fin d’´etude du projet.Dans ce dernier
chapitre , nous avons ‘a la fois d´ecrit les environnements matriels , logiciels, et les langages utilis´ees
sur lesquels nous avons construit notre application.Ensuite ,nous avons illustr´e les fonctionnalit´es
importantantes de l’application en fournissant quelques interfaces graphiques.Au pr´esent , nous passons
‘a la conclusion g´en´erale et les perspective de notre projet.
61
Conclusion générale
62
Conclusion générale
63