Rapport - MoncarFinal
Rapport - MoncarFinal
Rapport - MoncarFinal
l’Innovation
(M.E.S.R.S.I.)
------------------
Secrétariat Général
------------------
Université Nazi BONI (U.N.B.)
------------------
Ecole Supérieure d’Informatique (E.S.I.)
Licence
Cycle des Ingénieurs deen Informatique
Travaux Informatiques (C.I.T.I.)
Option : Ingénierie des Systèmes d’Information (ISI)
Option : Système d’Information (S.I.)
RAPPORT DE FIN DE CYCLE
A nos familles.
II
REMERCIEMENTS
A travers ces lignes, nous exprimons nos sincères remerciements d’abord à l’équipe pédagogique
de l’ESI pour la formation qu’elle nous a donnée, et à AvePLUS pour l’opportunité de stage qu’elle
nous a offerte.
Nous adressons tout particulièrement nos sincères remerciements à l’endroit des personnes
suivantes :
- M. Lassane OUEDRAOGO, le Directeur Général de AvePLUS ;
- M. Alban W OUEDRAOGO, Ingénieur informaticien à AvePLUS, notre maître de stage ;
- Dr Borlli Michel Jonas SOME, Enseignant-chercheur à l’ESI, le superviseur de ce travail ;
- M. Armand S YAO directeur exécutif de AvePLUS et M. Victorien Zidabou BAMBARA
développeur web et d’API à AvePLUS, nos personnes ressources ;
- Toute l’équipe de AvePLUS/KeoLID pour sa brillante collaboration ;
- Nos amis pour leurs soutiens ;
- Nos familles pour tout ce qu’elles sont pour nous.
Pour finir, nous témoignons de notre gratitude à tous ceux qui, d’une manière ou d’une autre, ont
contribué à notre formation ou à la réussite de ce travail.
III
LISTE DES SIGLES ET ACRONYMES
BD Base de données
CU Cas d’Utilisation
IV
RESUME
La question de « la gestion et de la réservation des tickets de bus » demeure un défi à relever dans
nos différentes sociétés de transport. Cette gestion implique une bonne organisation du temps et
une meilleure stratégie concernant les réservations de trajets.
Cependant, l’organisation actuelle de la gestion et de la réservation de tickets de bus rencontre des
contraintes en termes de savoir-faire, de matériel et de temps. Dans le contexte local, la quasi-
absence de logiciel métier, la redondance des réservations, l’absence de base de données constituent
les principaux points de dysfonctionnement de cette organisation.
Dans le but de pallier à ces difficultés précédemment énoncées afin de gagner en temps, faciliter le
travail des sociétés de transport et parvenir à de meilleurs résultats, il s’avère nécessaire de mettre
en place une plateforme de gestion et de réservation des tickets de bus dont nous avons baptisé
« MonCar ».
Pour la mise en place de cette plateforme, le processus de développement scrum et le langage de
modélisation UML ont été retenu pour la conception tandis que la réalisation de l’application a été
possible grâce au Framework CodeIgniter et MySQL comme système de gestion de base de
données.
V
ABSTRACT
The question of “Management and reservation of bus ticket” is a challenge to increase in our
transport companies. This Management carry away of good organization of time and the best
solution concerning the routes reservations.
However, the actual organization of the management and the reservation of bus ticket meet many
constraints of knows-how, materials and time. Actually, in our local context, the lack of software
in this domain, the redundancy of reservation, the lack of database can a set of main malfunctions
of this organization.
To avoid these difficulties, in the aims to win time, facilitate the work of transport companies and
achieve better results, it is necessary to set up a platform for managing and booking bus tickets
which we named “MonCar”.
For the implementation of this platform, the scrum development process and the UML modeling
language were retained for the design while the realization of the application was made possible
thanks to CodeIgniter framework and MySQL as a basic management system of data.
VI
AVANT-PROPOS
L’Université Nazi BONI (UNB) a été créée le 19 septembre 1995 sous le nom de Centre
Universitaire Polytechnique de Bobo-Dioulasso (CUPB). En mai 1997 elle changea de nom et
devint Université Polytechnique de Bobo-Dioulasso (UPB) et le 8 mai 2017, l’UPB devient
l’Université Nazi BONI (UNB). L’Université Nazi BONI comprend, d’une part, quatre instituts :
- l’Institut du Développement Rural (IDR) ;
- l’Institut Supérieur des Sciences de la Santé (INSSA) ;
- l’Institut Universitaire de Technologie (IUT) ;
- l’Institut des Médias (IM).
D’autre part, une école et trois unités de formation et de recherche (UFR) :
- l’Ecole Supérieure d’Informatique (ESI) ;
- l’Unité de Formation et de Recherche en Sciences Juridiques, Politiques, Économique et
de Gestion (UFR/SJPEG) ;
- l’Unité de Formation et de Recherche en Sciences et Techniques (UFR/ST) ;
- l’Unité de Formation et de Recherche en Lettre et Sciences Humaines (UFR/LSH).
Outre ses établissements, l’UNB compte un centre universitaire, le Centre Universitaire
Polytechnique de Gaoua (CUPG).
Toutes ces structures œuvrent à donner aux étudiants des compétences dans des domaines de
formation pointus. Pour ce qui est de l’Ecole Supérieure d’Informatique, elle forme des diplômés
de niveau bac+3 et bac+5 qui répondent aux besoins du milieu professionnel. Au niveau bac+3
elle prépare de nos jours d’une part à la licence en Ingénierie des Réseaux et Systèmes (IRS), et
d’autre part en Ingénierie des Systèmes d’Information (ISI), des filières qui dans le temps
s’appelaient respectivement Réseaux et Maintenance Informatiques (REMI) et Analyse-
programmation (AP). Au niveau bac+5 elle propose également deux formations : un master en
Réseaux et Systèmes (RS) et un master en Systèmes d’Information (SI).
Pour l’obtention du diplôme de licence d'informatique, l’étudiant doit valider d’abord ses cinq
premiers semestres, puis effectuer dans le cadre du sixième semestre un stage d’au moins trois mois.
Durant ce stage en entreprise, l’occasion est donnée à l’étudiant de découvrir un nouveau monde
et de confronter ses connaissances théoriques à la pratique. A la suite de ce séjour en entreprise, il
rédige un rapport de fin de stage faisant l’objet d’une soutenance et dans lequel ses réalisations sont
présentées. C’est ce qui justifie que nous ayons été reçues à l’entreprise AvePLUS pour la période
du 16 août 2017 au 15 décembre 2017, plus précisément au centre d’incubation KeoLID.
VII
LISTE DES FIGURES
VIII
LISTE DES TABLEAUX
IX
Table des matières
DEDICACE ............................................................................................................................................... II
REMERCIEMENTS ............................................................................................................................ III
LISTE DES SIGLES ET ACRONYMES ....................................................................................... IV
RESUME .................................................................................................................................................... V
ABSTRACT .............................................................................................................................................. VI
AVANT-PROPOS ................................................................................................................................. VII
LISTE DES TABLEAUX .................................................................................................................... IX
INTRODUCTION GENERALE ........................................................................................................ 1
CHAPITRE I : PRÉSENTATION DU CONTEXTE DE STAGE.......................................... 2
1.1 Introduction ...................................................................................................................................... 2
1.2 Structure de formation ................................................................................................................... 2
1.3 Structure d’accueil .......................................................................................................................... 2
1.4 Présentation du projet.................................................................................................................... 3
1.4.1 Problématique ........................................................................................................................... 3
1.4.2 Objectifs du projet ................................................................................................................... 4
1.4.3 Résultats attendus ................................................................................................................... 4
1.4.4 Gestion du projet ..................................................................................................................... 4
1.5 Conclusion ........................................................................................................................................ 5
CHAPITRE II : DEMARCHE ET MOYENS DE REALISATION........................................ 6
2.1 Introduction ...................................................................................................................................... 6
2.2 Exigences fonctionnelles et techniques ................................................................................... 6
2.3 Méthode de résolution du problème ......................................................................................... 6
2.3.1 Langage de modélisation UML .......................................................................................... 6
2.3.2 Méthode de résolution ........................................................................................................... 7
2.4 Méthode d’estimation des coûts .............................................................................................. 10
2.5 Conclusion ...................................................................................................................................... 10
CHAPITRE III : DOMAINE D'ETUDE ....................................................................................... 11
3.1 Introduction .................................................................................................................................... 11
3.2 Etude de l’existant ........................................................................................................................ 11
3.2.1 Ressources et organisation du travail .............................................................................. 11
3.2.2 Analyse critique de l'existant ............................................................................................. 11
3.3 Délimitation et analyse du domaine ....................................................................................... 12
3.3.1 Identification des concepts clés ........................................................................................ 12
3.3.2 Dictionnaire de données ..................................................................................................... 13
3.3.3 Diagramme de classe de domaine ................................................................................... 14
X
3.3.4 Diagramme d’états transition ............................................................................................ 15
3.4 Conclusion ...................................................................................................................................... 16
CHAPITRE IV : PHASE INITIAL DE SPRINT OU ITERATION 0 ................................. 18
4 .1 Introduction ................................................................................................................................... 18
4.2 Backlog du produit ....................................................................................................................... 18
4.3 Évaluation des coûts du projet ................................................................................................. 20
4.4 Planification des releases............................................................................................................ 21
4.5 Identification de l’équipe scrum .............................................................................................. 21
4.6 Diagramme de cas d’utilisation initial ................................................................................... 22
4.7 Technologies et outils de développement ............................................................................. 22
4.7.1 Outils technologiques prérequis ....................................................................................... 22
4.7.2 Architecture de l’application .............................................................................................. 24
4.8 Conclusion ...................................................................................................................................... 25
CHAPITRE V : DEVELOPPEMENT DE L’APPLICATION................................................ 26
5.1 Introduction .................................................................................................................................... 26
5.2 Sprint 1 : Gestions des utilisateurs ........................................................................................... 26
5.2.1 Sprint planning ou planification du sprint ..................................................................... 26
5.2.2 Spécification fonctionnelle ................................................................................................. 27
5.2.3 Conception .............................................................................................................................. 29
5.2.4 Test ............................................................................................................................................ 32
5.3 Sprint 2 : Administration............................................................................................................. 34
5.3.1 Sprint planning ou planification du sprint ..................................................................... 34
5.3.2 Spécification fonctionnelle ................................................................................................. 35
5.3.3 Conception .............................................................................................................................. 37
5.3.4 Test ............................................................................................................................................ 39
5.4 Sprint 3 : Gestions des réservations ......................................................................................... 40
5.4.1 Sprint planning ou planification du sprint ..................................................................... 40
5.4.2 Spécification fonctionnelle ................................................................................................. 41
5.4.3 Conception .............................................................................................................................. 43
5.4.4 Test ............................................................................................................................................ 45
5.5 Conclusion ...................................................................................................................................... 47
CHAPITRE VI : CODAGE ET DEPLOIEMENT ..................................................................... 48
6.1 Introduction .................................................................................................................................... 48
6.2 Codage ............................................................................................................................................. 48
6.2.1 Diagramme de package ....................................................................................................... 48
6.2.2 Diagramme de classe global de l’application ............................................................... 49
XI
6.2.3 Diagramme de séquence d’application .......................................................................... 49
6.2.4 Schéma physique des données .......................................................................................... 54
6.3 Déploiement ................................................................................................................................... 54
6.4 Conclusion ...................................................................................................................................... 55
CHAPITRE VII : REALISATION ET BILAN ............................................................................ 57
7.1 Introduction .................................................................................................................................... 57
7.2 Modules développés..................................................................................................................... 57
7.3 Enchainements des écrans ........................................................................................................ 57
7.4 Analyses des écarts ....................................................................................................................... 61
7.5 Procédures transitoires ................................................................................................................ 62
7.6 Politique de sécurité .................................................................................................................... 62
7.6.1 Politique de gestion des connexions distantes aux serveurs .................................... 63
7.6.2 Gestion des mots de passe et connexion à l’application............................................ 63
7.6.3 Protection contre les virus .................................................................................................. 63
7.7 Conclusion ...................................................................................................................................... 64
CONCLUSION GENERALE ............................................................................................................ 65
LISTE DES REFERENCES BIBLIOGRAPHIQUES ............................................................... 66
ANNEXE I : CODEIGNITER .......................................................................................................... 67
ANNEXE II : COMPARAISON ENTRE L’APPROCHE CLASSIQUE ET
L’APPROCHE AGILE .......................................................................................................................... 68
ANNEXE III : CONTEXTE D’UTILISATION DE QUELQUES METHODES
AGILES ...................................................................................................................................................... 69
XII
INTRODUCTION GENERALE
De nos jours l’automatisation des traitements de données constitue un enjeu stratégique pour les
entreprises. Elle se présente parfois comme une nécessité car la gestion au sein de l’entreprise est
de plus en plus économique, facilitée, fiable et maîtrisée. L’informatique est devenue ainsi un outil
incontournable à toute entreprise qui se veut compétitive sur le marché.
Consciente de cette réalité, AvePLUS, un centre d’entrepreneuriat numérique, a décidé de mettre
en place un système de gestion informatisée des sociétés de transport routière. KeoLID, un
incubateur de projet informatique de AvePLUS est la structure en charge de ce projet, au sein
duquel nous avons effectué notre stage. Il a opté ainsi de nous mettre sur le projet dont le thème
s’intitule : « La Mise en place d’une plateforme de gestion et de réservation des tickets de
bus ».
La numérisation de ce secteur permet une meilleure connaissance et une bonne gestion des
réservations de tickets de bus, grâce à cette innovation, il est possible de mieux optimiser le temps
lors des réservations des tickets de bus et de mieux fidéliser la clientèle. Ce projet vise à mettre en
place une solution de réservation des trajets de voyage en ligne prenant en comptes différentes
compagnies de transport afin de réduire les contraintes liées aux réservations physiques que
rencontrent les clients dans ces services de transport. Ainsi pour atteindre cet objectif, la solution
qui sera issue de ce projet devra être une plateforme web de réservation. La plateforme sera
déployée dans un domaine en environnement Linux afin de permettre à tous les utilisateurs de
pouvoir y accéder via une URL.
Le présent rapport est constitué de sept (07) chapitres. Le premier chapitre présente les structures
de formation et d’accueil en stage. Le deuxième chapitre expose la démarche et les moyens de
résolution retenus. Le troisième chapitre correspond à l’analyse et à la délimitation du domaine. Le
quatrième chapitre correspond au sprint 0 de la méthode scrum ou encore la phase de préparation
où nous détaillerons les technologies que nous allons manipuler tout au long de notre projet. Le
cinquième chapitre abordera les étapes de développement de l’application (la conception). Pour ce
qui est du sixième chapitre, il sera dédié à la partie déploiement et codage de notre application. Le
septième et dernier chapitre présente nos réalisations avec un bilan à l’appui.
1
CHAPITRE I : PRÉSENTATION DU CONTEXTE DE STAGE
1.1 Introduction
La conduite d’un projet dans une structure sur un thème donné requière une très bonne
connaissance de la structure ainsi qu’une excellente maitrise du thème d’étude. Pour ce faire, nous
présentons d’abord l'organisation administrative de notre école et son dispositif pédagogique.
Ensuite il sera question pour nous de présenter notre structure d’accueil AvePLUS, son historique
et ses domaines d’intervention. Enfin, nous évoquerons la problématique et les résultats attendus
de notre étude pour finir par une proposition de solution aux problèmes posés.
L’ESI a été créée en 1990 à Ouagadougou, il a été déplacée à Bobo-Dioulasso en 1995 à la faveur
de la création du Centre Universitaire Polytechnique de Bobo-Dioulasso (CUPB) qui est devenu
en 1997 Université Polytechnique de Bobo-Dioulasso (UPB) rebaptisée Université Nazi BONI
(UNB) le 8 mai 2017. L’ESI est sur le campus de Nasso et suit partiellement le système Licence
Master Doctorat (LMD). En effet, l’ancien Cycle des Ingénieurs de Travaux Informatiques (CITI),
d’une durée de trois ans, est devenu une licence d’informatique. La licence offre deux spécialités :
Ingénierie des réseaux et systèmes (anciennement « Réseaux et maintenance informatiques, REMI
») et Ingénierie des systèmes d’information (anciennement « Analyse et programmation, AP »). A
la tête de l’ESI il y a un directeur assisté d'un directeur adjoint. Le corps professoral de
l’établissement est constitué d’enseignants qualifiés nationaux et internationaux.
Initiative du Groupe AvePLUS, KeoLID est un projet innovant et ambitieux qui a été lancé
officiellement le 09 Février 2017. Ce centre qui bénéficie du soutien de plusieurs institutions
publiques dans le domaine du numérique entend contribuer activement à l’émergence d’une réelle
économie numérique au Burkina Faso par la formation, la créativité et l’innovation. Pour ce faire,
il s’articule autour de trois axes que sont :
- Le centre de Formation KeoLID (Training Center) pour créer une expertise locale dans
le domaine du numérique afin de répondre à l’épineux problème de déficit en compétences
spécialisées dans les nouveaux métiers du numérique ;
2
- Le centre d’Incubation (Incubator) pour accompagner les porteurs de projets novateurs
et les aider à transformer leurs idées en startup viables, performantes, créatrices d’emplois
et de richesses ;
- Le laboratoire KeoLID qui est un centre d’expertise et de solutions technologiques dédié à
la réalisation de projets innovants en collaboration avec des partenaires publics et privés.
Dans le souci de bâtir un écosystème d’innovation pour transformer notre pays. KeoLID s’est fixé
les missions suivantes :
- Réduire la disparité entre les compétences offertes par le système éducatif et ceux exigés
par le marché du travail ;
- Répondre aux exigences du marché de l’emploi dont le niveau est de plus en plus élevé ;
- Contribuer à faciliter l’intégration du Burkina Faso et les pays ouest Africain dans le
processus de globalisation à travers la création et le transfert de compétences ;
- Créer de la richesse et une compétitivité globale à travers l’utilisation de l’outil informatique
pour un développement durable ;
- Réussir à mieux combiner enseignement supérieur et expérience professionnelle.
Directeur
Général
Responsable
Responsable Responsable
Administratif
Commercial Technique
et Financier
Dévéloppeurs
Sécrétaire
Informatiques
1.4.1 Problématique
Les sociétés de transports, routières en particulier, rencontrent des difficultés dans la gestion et la
réservation des tickets de bus. Ces difficultés sont particulièrement dues au mode de gestion
actuelle de ces sociétés, essentiellement basé sur la gestion manuelle et l'utilisation d’outils
classiques et non adaptés à une gestion efficace. Nos sociétés de transports jusqu’à présent non pas
3
de système de réservations et de paiements en ligne. Afin de pallier à toutes ces insuffisances,
KeoLID dans son ambition de bâtir un écosystème d’innovation pour transformer notre pays, a
initié le présent projet dont le thème est intitulé « La Mise en place d’une plateforme de gestion
et de réservation des tickets de bus ». C’est la réalisation d’une plateforme web permettant aux
sociétés de transports d’avoir une gestion efficace et rapide des réservations de tickets de bus qui
est attendue.
L’objectif général du projet est de réaliser une solution logicielle capable de faciliter la gestion et la
réservation des tickets de bus dans toute structure de transport routière. Les objectifs spécifiques
du projet sont :
- La pérennisation de l’information ;
- La facilitation des réservations des tickets de bus ;
- La digitalisation de la gestion et la réservation des tickets de bus ;
- La facilitation du suivi des réservations ;
- La réduction du temps des réservations.
Pour mener à bien ce projet, un planning prévisionnel de réalisation a été élaboré. Le planning
prévisionnel donne les tâches à effectuer assorties de leurs durées de réalisation. Il a été établi dès
le lancement du projet.
4
Figure 2 : Planning prévisionnel
1.5 Conclusion
5
CHAPITRE II : DEMARCHE ET MOYENS DE REALISATION
2.1 Introduction
La phase de la démarche et des moyens de résolution permet d’identifier exactement ce que le futur
système devra réaliser en termes de métier. Ainsi pour réduire le risque d’échec du projet, il est
important de bien choisir la démarche à suivre et la méthode à appliquer. Dans cette partie nous
mettrons en évidences les exigences fonctionnelles et techniques puis annoncerons la méthode
retenue pour la résolution du problème.
Compte tenu des besoins exprimés par les utilisateurs du système c’est-à-dire les compagnies de
transport et les passagers, les opérations que le système proposé devra permettre d’effectuer sont :
- La possibilité de consulter les différents trajets ;
- La possibilité de créer un compte utilisateur ;
- La possibilité de gérer les trajets ;
- La possibilité de gérer des réservations dans un trajet ;
- La possibilité de gérer des compagnies de transport ;
- La possibilité d’effectuer un paiement d’une réservation par mobile money ;
- La possibilité de générer un ticket de réservation.
Le système mise en place pour la gestion et la réservation des tickets de bus, est destiné à être
utilisés par toute société de transport routière. C’est une application web ayant une structure 3-tiers
implémentant le modèle MVC (Model View Controller).
6
2.3.2 Méthode de résolution
Pour mener à bien la tâche qui nous a été confiée, nous avons opté pour une méthode
d'organisation efficace, permettant la satisfaction du client et son implication tout au long du
processus de réalisation du projet : il s'agit de Scrum.
Scrum est défini par ses créateurs comme, un « Framework », un cadre de travail permettant de
livrer un maximum de valeur métier en un temps minimal, de livrer rapidement un logiciel de qualité
dans lequel le client définit les priorités, dans lequel l’équipe s’auto organise pour livrer à chaque
itération un produit fonctionnel. Notre choix de la méthode scrum est motivé par les raisons
suivantes :
- Elle permet de gérer les quatre paramètres nécessaires à l’analyse d’un plan de livraison : le
coût, le délai, les fonctionnalités livrés et la qualité ;
- Les données pour une éventuelle validation sont disponibles.
Les trois piliers de la méthode Scrum sont les suivants :
- La transparence : les aspects importants du processus doivent être visibles à tous. C’est
pour cela que Scrum insiste sur le fait de créer un langage commun entre les membres de
l’équipe et le management, ce qui permettra une compréhension commune du projet.
- L’inspection : un bilan régulier sur les résultats produits est réalisé afin de détecter les
écarts indésirables. Il est important que ces inspections soient faites par un inspecteur bien
formé et cela de manière adaptée car cela pourrait nuire à l’avancement du projet.
- L’adaptation : lorsqu’un écart est constaté pendant l’inspection, le processus devra être
adapté grâce à des actions visant à améliorer la situation.
La méthodologie scrum propose les intervenants suivants :
- Le Product Owner (le client ou son représentant) ;
- La Team (les développeurs) ;
- Le Scrum Master (facilitateur ou animateur) ;
- Des intervenants extérieurs (Stakeholders).
La méthodologie scrum propose les activités suivantes :
- Planification d’itération « Sprint Planning » : une réunion de pré-sprint organisée par le
scrum master en 2-temps :
o 1ère Phase : Clients, utilisateurs, management, « Product Owner » et « Scrum Team
» établissent le « Sprint Backlog » (liste priorisée des « stories ») ;
7
o 2ième Phase : Le « scrum master » et la « Scrum Team » organise le déroulement
du Sprint avec un « TimeBox » égale à deux (2) heures par semaine de Sprint.
- Revue d’itération « Sprint Review » : réunion informelle, l'équipe présente au client ce qui
a été développé pendant les 30 jours précédents via une démonstration puis une décision
de « release » ou non avec un « TimeBox » de 1 heure par semaine de Sprint ;
- Mêlée quotidienne : c’est une réunion de partage des connaissances, un temps pour faire
un point sur l'avancement dont le « TimeBox » est de 15 à 20 minutes et donne au
management une certaine visibilité sur la progression du projet, le contrôle continu et
empirique via trois questions quotidiennes : qu'est ce qui a été fait pendant la journée ? Que
reste-il à faire ? Quels sont les obstacles qui gênent l'avancement du projet ?
- Sprint rétrospective : réunion ayant lieu après le « Sprint Review » et avant le « Sprint
planning meeting », le but est d’inspecter la manière dont s'est déroulée le Sprint précédent
quant aux personnes, relations, processus et outils utilisés, identifier et ordonner les
éléments majeurs qui se sont déroulés ainsi que les améliorations potentielles, créer un plan
pour implémenter des améliorations quant à la manière de travailler de l'équipe scrum. Le
« TimeBox » est de trois heures pour quatre semaines de Sprint.
8
la définition approximative de la date de livraison, la définition des fonctionnalités à livrer,
la formation de l'équipe de développement et l'analyse du risque et des coûts ;
- La phase de Sprints (itérations +/- 30 jours) : elle aboutit à la phase où le développement
est, à proprement parlé, réalisé (analyse, conception, implémentation de chaque élément),
les Sprints sont guidés par une liste de tâches provenant du Product Backlog formant le «
Sprint Backlog » ;
- La phase de clôture : c’est la phase de préparation du produit pour une livraison
(intégration, tests systèmes, documentation utilisateur, préparation des supports de
formation, préparation des supports marketing, etc.)
D’après le choix de la méthode de résolution de notre projet, les personnes impliquées de façon
directe ou indirecte dans ce projet peuvent être répartis comme suit :
- Le Product Owner : Ce dernier définit les spécifications fonctionnelles et communique la
vision globale du produit à l’équipe. Il établit la priorité des fonctionnalités à développer ou
à corriger et valide les fonctionnalités développées. Il se doit de jouer le rôle client final, se
mettre à sa place et donc de prioriser ses besoins. Celui qui tient ce rôle est celui qui a le
plus de responsabilités et d’autorité. Le responsable (produit) est en effet celui qui est en
première ligne lorsque quelque chose se passe mal ; ce qui nécessite de trouver le juste
équilibre entre autorité – responsabilité et engagement. Dans notre projet ce rôle est destiné
à M. Lassane OUEDRAOGO (Directeur général de AvePLUS).
- Le Scrum Master : Ce dernier agit en tant que facilitateur entre le responsable produit et
l’équipe. Son rôle principal est d’éliminer tous les obstacles qui peuvent empêcher l’équipe
d’atteindre les objectifs fixés pour chaque sprint de travail. Il s’assure que les principes et
les valeurs Scrum sont respectés. Il facilite la communication au sein de l’équipe et cherche
à améliorer la productivité et le savoir-faire de son équipe. Le Scrum Master conseille aussi
le responsable produit sur la façon de maximiser le « Return On Investment » général de
l’équipe. Dans ce projet, ce rôle est réservé à M. Alban W OUEDRAOGO (Ingénieur
informaticien à AvePLUS).
- La Team Member : C’est le groupe qui a pour mission d’exécuter le projet. Cela veut dire
qu’il est chargé d’étudier, de concevoir, de réaliser et de déployer l’application. Dans ce
projet, ce groupe est composé de M. José Arthur OUEDRAOGO et M. Josué
OUEDRAOGO.
9
- Les Stakeholders : Ce sont les intervenants extérieurs « les personnes ressources » ayant
participé à la réalisation du projet. Dans notre contexte, ce rôle est celui de Dr Borlli Michel
Jonas SOME (Enseignant chercheur à l’ESI).
Etant donné que nous sommes dans une méthodologie agile, nous avons opté d’estimer les coûts
de réalisation de notre projet avec un processus adapté : il s’agit du planning poker.
Le processus de planification Poker se déroule comme suit :
- Étape 1 : le modérateur lit la description de la fonctionnalité / User Story que l’équipe doit
estimer. Le « Product Owner » peut fournir des clarifications sur la fonctionnalité. Chaque
expert est doté d’un jeu de cartes ;
- Étape 2 : chaque membre de l’équipe scrum choisit une carte dans son jeu qui correspond
à son estimation initiale de l’effort de développement. Chaque membre pose sa carte à
l’envers sur la table pour ne pas influencer les autres ;
- Étape 3 : quand toutes les évaluations sont sur la table, les cartes sont retournées ;
- Étape 4 : s’il y a une palette très large entre les estimations, les experts qui ont suggéré les
plus fortes et plus basses évaluations fournissent le raisonnement qui les a amenés à ces
valeurs.
Une fois que la discussion sur la palette d’estimations a été menée, les étapes 2 à 4 sont répétées
jusqu’à ce qu’un consensus soit atteint. Dans notre projet, les coûts seront estimés dans la partie
4.3.
2.5 Conclusion
Après avoir abordé le thème d’étude qui nous a été attribué, nous avons adopté le processus de
développement Scrum et le langage de modélisation UML comme outils d’analyse et de conception
pour ce projet. Cependant, comment y arriver si l’on n’a pas une bonne appréhension du domaine
d’étude ? Le chapitre suivant sera consacré au domaine d’étude.
10
CHAPITRE III : DOMAINE D'ETUDE
3.1 Introduction
Ce chapitre a pour objectif de présenter l’existant et d’analyser le domaine pour une meilleure
compréhension. Pour ce faire, nous allons dans un premier temps étudier l’existant et procéder à
la délimitation et à l’analyse du domaine.
Les ressources matérielles et logicielles disponibles dans une compagnie de transport classique tel
que la compagnie de transport TSR (Transport Sana Rasmané) et la compagnie RAKIETA, d’après
nos investigations peuvent être étayé ainsi :
- Pour ce qui est de l’existant matériel, on y retrouve le plus souvent des postes de travail,
des imprimantes, un téléphone fixe ou mobile, des clés USB, des registres de réservations
et des tickets de réservation.
- Du point de vue de l’existant logiciel, il est essentiellement constitué de la suite bureautique
Microsoft Office. On y rencontre parfois, des systèmes de paiement des tickets de bus par
orange money dans quelques compagnies de transport.
L’analyse critique de l’existant est une appréciation du fonctionnement du système en place. Par
cette analyse, nous faisons ressortir les forces et les faiblesses du système actuel (le système de
départ). Cependant les outils utilisés actuellement sont les logiciels Word et Excel de Microsoft
Corporation et les documents papier, ce qui n’est pas adapté. L’analyse a permis de révéler les
limites de ces outils utilisés qui sont entre autres :
- La redondance des réservations ;
- L’absence d’automatisation dans la gestion des réservations ;
- Le mauvais suivi des réservations ;
- Le traitement très fastidieux pour uniquement une ou deux passagers ;
Toutes ses limites entrainent des conséquences sur l’activité des sociétés de transport telles que : la
lenteur et la non précision dans l’exécution des tâches, la difficulté dans la gestion et la réservation
des tickets de bus et l’impossibilité d’user des informations sauvegardées à des fins évolutives.
11
3.3 Délimitation et analyse du domaine
Dans cette partie, nous repérons les concepts clés du système qui serviront d’une part à élaborer le
dictionnaire de données et d’autre part à représenter le diagramme des classes puis les diagrammes
d’états-transitions.
Elle va consister à débuter la modélisation orientée objet en répertoriant les classes principales du
futur modèle statique d’analyse. Les concepts clés du domaine d’étude sont présentés dans le
tableau ci-dessous :
12
3.3.2 Dictionnaire de données
Le dictionnaire de données permet d’avoir une meilleure compréhension des concepts à travers la
description de leurs attributs. Pour un souci d’avoir un document succinct nous avons choisi de
présenter le dictionnaire de données de quelques concepts jugés les plus pertinents du domaine.
13
Create_by chaine de caractère Représente l’agent / l’administrateur qui a créé le
bus.
Le diagramme de classe exprime de manière générale la structure statique d’un système en termes
de classes et en termes de relations entre ces classes.
14
3.3.4 Diagramme d’états transition
15
3.4 Conclusion
16
Agent
Inscri t 0..*
- agent_i d
- usernam e
- fi rst_nam e
- l ast_nam e
- com pagny_nam e
- addresse
- em ai l
1..1 - phone_num ber
- ci ty
Enregi stre - country
Com pagny 0..* 1..1 Adm i n
- profi l e_pi cture
- com pagny_i d 1..1 - adm i n_i d - status
0..* Cree
- com pagny_nam e - usernam e - create_by
- com pagny_num ber - password
Cancel l ati on - profi l e_pi cture
- com pagny_m ai l 1..1 1..1 Adm i ni stre
- status - cancel l ati on_i d - status
... - adverti sem ent_status - user_type
...
- cancel _ti m e 1..1
- percentage 1..1
- fl at Cree
Di spose - type
0..*
... Enregi stre
1..1
1..1 Prom o_detai l s
Bus_type - prom o_i d
1..1 Correspond 1..*
- code
- bustype_i d
1..* - type
- bus_type
- am ount Setti ng
- status Correspond
... Bus Affecte - expi re_date
1..* - setti ng_i d
1..* - status
- bus_i d 1..* - ti tl e
- create_by
- bus_nam e ... - l ogo
1..* Affecte
Am eni ti es 1..1 - bus_reg_no - fl avi con
Route - sm tp_usernam e
- am eni ti es_i d - m ax_seats 1..1
Se retrouve
- am eni ti es - board_poi nt 1..* 1..* - route_i d - sm tp_host
1..*
- status - board_ti m e Donne l i eu - board_poi nt - sm tp_password
... - drop_poi nt 0..* - board_ti m e - sender_i d
1..1 Booki ng_detai l s
- drop_ti m e - drop_poi nt - sm s_usernam e
Bus_gal l ery 1..* - booki ng_i d
- status - drop_ti m e - sm s_password
- busgal l ery_i d Possede - am ount
- bus_status 1..1 - fare - paym ent_opti on
- i m age - paym ent_status 1..1
... - status - paypal
- create_by 1..* 1..1 - paym ent_opti on
Conti ent - create_by - paypal i d
... - prom o_code ... - app_key
Donne l i eu - booki ng_date 1..*
Seat_l ayout 1..1
est affecte - status Conti ent
1..1
- seatl ayout_i d 0..* Board_poi nts 1..*
- totel _seat 0..*
- boardpoi nt_i d
- l ayout Rati ng Drop_poi nts
- l ayout_type Concerne - pi ckup_poi nt
- rati ng_i d - pi ckup_ti m e - droppoi nt_i d
- l ast_seat - bus_qual i ty Effectue
- l andm ark - stoppi ng_poi nt
- no_sl eeper - punctual i ty - addresse - drop_ti m e
...
- staff_behavi our - status - l andm ark
1..1 1..* ...
- average - addresse
- com m ents User - status
Custom er_detai l s
0..* ...
- user_i d - custom er_i d
Effectue - usernam e - custom er_nam e
1..1 - password - age
- nam e - m obi l e
- dob - em ai l
- i m age - gender
- gender - order_i d
- m ob - seat_no
- reset_key
...
17
CHAPITRE IV : PHASE INITIAL DE SPRINT OU ITERATION 0
4 .1 Introduction
Le sprint 0, l’itération 0 ou l’exploration est un élément important pour mettre les bonnes bases
d’un nouveau projet et pour permettre à une nouvelle équipe de se former et d’apprendre à travailler
ensemble.
Le Backlog produit est utilisé pour planifier la release et aussi à chaque sprint, lors de la réunion de
planification du sprint pour décider du sous-ensemble qui sera réalisé. Ses éléments sont classés
par ordre de priorité ce qui permet de définir l’ordre de réalisation.
18
Annuler une 8 2 2 En tant que client, je veux
réservation pouvoir Annuler une
réservation
Changer de mot de 9 1 3 En tant que client, je veux
passe pouvoir changer mon mot de
passe
Editer un compte 10 2 3 En tant que client, je veux
pouvoir éditer mon compte
afin de le mettre à jours
S’authentifier en tant 11 1 4 En tant qu’administrateur ou
qu’administrateur ou agent d’une compagnie, je veux
agent pouvoir me connecter sur la
plateforme afin de faire des
mises à jour
Enregistrer un bus 12 1 4 En tant qu’administrateur ou
agent d’une compagnie, je veux
pouvoir enregistrer un bus afin
de faire des mises à jour
Supprimer un bus 13 1 4 En tant qu’administrateur ou
agent d’une compagnie, je veux
pouvoir supprimer un bus afin
de faire des mises à jour
Ajouter un trajet 14 1 4 En tant qu’administrateur ou
agent d’une compagnie, je veux
pouvoir ajouter un trajet afin de
faire des mises à jour
Consulter les 15 2 5 En tant qu’administrateur ou
réservations agent d’une compagnie, je veux
pouvoir consulter les
réservations afin de vérifier une
réservation donnée.
Consulter les 16 2 5 En tant qu’administrateur ou
annulations de agent d’une compagnie, je veux
réservations pouvoir consulter les
annulations de réservations afin
de vérifier une annulation
donnée.
Générer la 17 2 5 En tant qu’administrateur ou
disposition des agent d’une compagnie, je veux
chaises d’un bus pouvoir générer la disposition
des chaises d’un bus.
Consulter les 18 2 5 En tant qu’administrateur ou
commentaires des agent d’une compagnie, je veux
clients pouvoir Consulter les notes et
les commentaires effectués par
un client.
Configurer le 19 2 5 En tant qu’administrateur, je
paramètre initial du veux pouvoir Configurer les
site paramètres du site.
19
Pour chaque user story on identifie le rang, l’estimation, l'importance et la description.
- Rang : Pour les user stories ayant la même priorité, un rang est assigné pour indiquer l'ordre
dans lequel l'équipe doit les implémenter.
- Estimation : Elle sert à estimer l’effort nécessaire à une équipe pour implémenter une
fonctionnalité. Elle prend en compte l’effort pour le développement.
- Priorité : Le Product Owner classe les user story par ordre de priorité dans le Backlog
product en travaillant avec le client pour savoir ce qui est important pour lui.
- Description : Elle permet de décrire les user stories. Généralement, pour rendre ce nom
explicite, une bonne façon de procéder est d'utiliser le Template suivant : « En tant que X,
je veux Y, afin de... ».
Dans cette partie, nous allons estimer les différents coûts liés à la réaliser de ce projet à travers le
planning poker précédemment énoncé dans la partie 2.4. Nous avons travaillé à temps plein 280
heures soit 8 heures par jour. De plus, la rémunération d’un développeur junior maitrisant le
Framework CodeIgniter est de 32 €/heure, environ 20800 FCFA/heure selon les salaires des
développeurs web en 2017. Les tableaux 6, 7 et 8 donnent une estimation des coûts du
développement, de formation et enfin de réalisation du projet.
AvePLUS dispose d’agents technico-commerciaux qui doivent être formés au préalable afin de
commercialiser le futur système.
20
Tableau 8 : Coût total de réalisation
Désignation Prix
Coût de développement 5 824 000 FCFA
Coût de formation des formateurs 200 000 FCFA
Coût total 6 024 000 FCFA
La planification des sprints est une étape importante dans Scrum. Le planning du travail et
l'identification du Backlog des sprints sont les buts de cette réunion. Durant ce meeting, la durée
de chaque sprint est décidée selon la complexité du contexte et la taille de l'équipe. La planification
de Sprint répond aux questions suivantes :
- Qu’est-ce qui peut être terminé au cours de ce sprint ?
- Comment sera effectué le travail choisi ?
Et donc, une succession de Releases est le produit de cette réunion pour organiser le travail de
l'équipe. Un Release est une série de sprints qui se termine quand les incréments successifs
constituent un produit présentant suffisamment de valeurs à ses utilisateurs. Dans notre cas, nous
avons décidé de découper notre projet en trois Releases.
Le tableau ci-dessous, donne un aperçu de notre équipe de travail ainsi que le rôle de chaque
équipier selon les rôles définis par scrum
21
4.6 Diagramme de cas d’utilisation initial
Il est question ici de présenter les différents besoins fonctionnels de notre application en utilisant
le digramme de cas d'utilisation d'UML.
Creer un compte
<<include>>
Enregistrer un trajet
<<include>>
<<include>> <<include>>
<<include>>
Faire une reservation S'authentifier
<<include>> <<include>>
Enregistrer un agent
Client
Administrateur
Annuler une reservation
<<include>>
Dans cette partie nous allons présenter les outils à utiliser pour la réalisation du système.
22
4.7.1.1 Langage de programmation et Framework applicatif
Dans le cadre de notre projet, plusieurs langages ont été envisagés pour sa mise en œuvre. Parmi
eux, PHP, JAVA EE et ASP.net. Grâce à une étude comparative, notre choix s’est porté sur PHP
dans sa version 7 parue le 12 Novembre 2015. En effet, PHP est un langage qui s'adapte très
rapidement aux technologies émergentes. Il est de plus en plus utilisé dans des développements
web dynamiques professionnels et open source. Aussi, ce langage dispose d’une documentation
détaillée et d’une grande communauté de développeurs actifs qui rendent disponibles de milliers
de librairies. De par sa facilité, PHP accélère le temps de développement tout en optimisant le code
en permettant sa réutilisation, en toute sécurité à travers ses Framework comme CodeIgniter que
nous utiliserons d’ailleurs dans ce projet.
CodeIgniter est Framework PHP open source, robuste et particulièrement très léger. Il dispose
d’une large communauté de développeurs et il très apprécier par les professionnels. Les principales
caractéristiques de CodeIgniter :
- Une compatibilité totale avec PHP 7 ;
- Simplicité de prise en main ;
- Une intégration de l’architecture MVC qui est une bonne pratique de programmation
recommandant le découpage du code en au moins trois parties que sont le Modèle, la Vue
et le Contrôleur ;
- Une disponibilité de nombreuses librairies ;
- Une souplesse et une évolution constante ;
- Une compatibilité avec la quasi-totalité des systèmes de gestion de base de données.
Le système de gestion de base de données (SGBD) est un logiciel qui permet le stockage, la
consultation, la mise à jour, la structuration ou encore le partage d'informations dans une base de
données. Nous utilisons comme système de gestion de base de données, MySQL Server version
5.7. Ce SGBD est distribué sous double licence GPL (pour la licence que nous avons choisie) et
propriétaire. Il fait partie des logiciels de gestion de base de données les plus utilisés au monde,
autant par le grand public (applications web principalement) que par des professionnels. Toutes
ces raisons ont motivé notre choix.
23
- PowerAMC
C’est un outil de modélisation permettant de représenter les concepts et les différents diagrammes
de notre système. Avec ces diagrammes, on a une compréhension claire du futur système à mettre
en place.
- Sublime Text
Pour le développement de l’application, nous avons utilisé Sublime Text qui est l’un des meilleurs
éditeurs de texte du moment. Sublime Text est léger, rapide, fluide, facile à personnaliser et offre
une possibilité d’automatiser les tâches répétitives à travers des snippets.
Pour la mise en place de notre application, nous avons utilisé entre-autres les librairies suivantes :
- JQuery : C’est une bibliothèque (Framework) JavaScript libre qui porte sur l'interaction
entre JavaScript et HTML, et qui a pour but de simplifier des commandes communes de
JavaScript.
- Angular js : C’est un Framework JavaScript. La principale caractéristique de ce Framework
est qu'un grand nombre d’actions sont effectuées sur le serveur tel que le rendu du moteur
de template, la récupération des données, leur (pré) validation et la navigation dans une
application, sont désormais déportés côté client. Le serveur se limite à traiter, vérifier,
valider et envoyer les données aux clients dans un format générique (JSON, XML, etc.)
Cela permet d’avoir une charge sur les serveurs nettement moins importants et une fluidité
de navigation chez le client.
- AJAX : Ajax (acronyme de Asynchronous Javascript and XML) est une manière de
construire des applications web et des sites web dynamiques basés sur diverses technologies
web ajoutées aux navigateurs dans les années 1990. JavaScript et DOM (Document Object
Model) sont utilisés pour modifier l'information présentée dans le navigateur par
programmation.
24
Le système peut se subdiviser en trois parties à savoir les données, la présentation et le traitement.
Suivant cette logique, notre système obéit aux principes d’une architecture implémentant le modèle
MVC (Modèle – Vue – Contrôleur). Son principal intérêt réside dans la séparation des données
(modèle), de l’affichage (vue) et des actions (contrôleur). La vue correspond à ce qui va être affiché
à l’écran de l’utilisateur. C’est à partir d’elle que l’utilisateur va interagir avec le système. Le modèle
correspond aux données stockées la plupart du temps dans une base de données. Le contrôleur
utilise les données pour les envoyer à la vue. Son rôle est de récupérer les informations, de les traiter
en fonction des paramètres demandés par la vue (par l’utilisateur, exemple : lister les trajets), puis
de renvoyer à la vue les données afin qu’elles soient affichées.
4.8 Conclusion
Tout au long de ce chapitre, nous avons présenté le Sprint 0 qui, est en fait une phase de préparation
pendant laquelle nous avons construit notre backlog du produit en se basant sur les besoins
fonctionnels et non fonctionnels. En plus, nous avons découpé notre projet en des releases qui
formeront le chapitre suivant. Finalement, nous avons défini les technologies et les environnements
de développement ainsi que l’architecture globale de l’application.
25
CHAPITRE V : DEVELOPPEMENT DE L’APPLICATION
5.1 Introduction
Dans ce chapitre, nous allons traiter les histoires utilisateurs (c’est-à-dire les cas d’utilisation) de nos
sprints considérés en même temps comme des releases pour produire un ensemble d'incréments
potentiellement livrable. Avant de se lancer dans le premier sprint, l'équipe doit définir le but de ce
dernier qui doit être défini en terme métier et non pas terme technique pour qu'il soit
compréhensible par les membres en dehors de l’équipe. Il s’agit de répondre à une question
fondamentale « Pourquoi faisons-nous ce sprint ?».
Au début de chaque sprint, on définit un objectif et on lui associe une liste de fonctionnalités qui
constitueront le Backlog de ce sprint. Au cours d'un sprint, l'objectif et la composition de l'équipe
ne peuvent être modifiés. Ci-dessous la définition de l'objectif et des développeurs de ce sprint.
- Objectif : Un visiteur du site peut créer un compte client. L’administrateur est capable de
créer un compte agent. L’administrateur, les agents et les clients peuvent modifier leurs
comptes ou leurs profiles.
- Développeurs : Team.
Une fois que nous avons défini le but de notre sprint, il est temps de décider quelles histoires de
notre Backlog du produit inclure dans le Backlog du sprint. Le tableau suivant résume donc le
Backlog du premier sprint.
26
Modifier un profile En tant qu’agent ou client, je veux modifier mon 1
profile afin de faire des mises à jours.
Créer un compte client En tant visiteur, je peux créer un compte client 1
afin d’accéder aux services de réservation.
Créer un compte agent En tant qu’administrateur, je peux créer un 1
compte agent pour chaque compagnie.
Dans cette partie, nous procéderons par un diagramme de cas d'utilisation du sprint puis une
description textuelle de ses histoires utilisateurs.
La politique mise en place pour la gestion des utilisateurs de l’application répertorie quatre (04)
types d’utilisateur à savoir L’administrateur, les agents, les clients et les visiteurs. La figure ci-
dessous illustre le diagramme des cas d’utilisation global de ce sprint.
Vi si teur Agent
Modi fi er son profi l e
S'authenti fi er
<<i ncl ude>>
Admi ni strateur
A titre d'exemple, nous détaillons les cas d'utilisation « S’authentifier » et « Créer un compte client
», les autres cas d'utilisation généralisés suivent le même principe. Après avoir chargé la page
d’accueil, le visiteur de l'application MonCar pourra créer un compte client.
27
5.2.2.2 Description textuelle
Ci-dessous la description textuelle des différents cas d'utilisation généralisés du cas d’utilisation «
Créer un compte client ».
Post condition : L’acteur est maintenant connecté et dispose des fonctionnalités du système
selon son profil.
28
7- Le système envoie un code d’identification sur le numéro de l’acteur
8- L’acteur renseigne le code reçu puis envoie
9- Le système vérifie (SA2)
10- Le système connecte l’acteur
Scenario alternatif :
SA1 : L’acteur saisit des données incorrectes : l’enchaînement commence au point 5 du scénario
nominal
11- Le système notifie à l’acteur l’invalidité des données saisies
12- L’enchaînement continue au point 3 du scénario nominal
SA2 : L’acteur saisit un code incorrect : l’enchaînement commence au point 10 du scénario
nominal
13- Le système notifie à l’acteur l’invalidité du code saisie
14- L’enchaînement continue au point 8 du scénario nominal
Post condition : L’acteur est maintenant connecté et dispose des fonctionnalités du système
5.2.3 Conception
La conception est la deuxième étape dans un sprint. Elle se traduit par un diagramme de classes et
un diagramme de séquences.
o Diagramme de classes
29
Ag e n t
0 ..*
In scri t - a g e n t_ i d
Ad m i n - u se rn a m e
1 ..1
- adm i n_i d - fi rst_ n a m e
- u se rn a m e - l a st_ n a m e
- p a sswo rd - co m p a g n y_ n a m e
- p ro fi l e _ p i ctu re - a d d re sse
- em ai l
+ ch a n g e _ p a ss ()
- co u n try
+ p ro fi l e _ vi e w ()
... - p ro fi l e _ p i ctu re
+ vi e w_ a g e n t ()
+ a d d _ a g e n t ()
Use r
+ e d i t_ a g e n t ()
- u se r_ i d + d e l e te _ a g e n t ()
- u se rn a m e
- p a sswo rd
- nam e
- re se t_ ke y
+ si g n u p ()
+ l o g i n ()
+ re se t_ p a ss ()
+ fo rg o t_ p a ss ()
o Diagramme de séquences
Ce diagramme décrit le scénario du cas d’utilisation « S’authentifier ». Dans un premier lieu,
l’utilisateur MonCar remplit le formulaire d’authentification. Ensuite le système vérifie s’il s’agit
bien d’un abonné ou non à travers le web service « Login ».
30
S'authentifier
MonCar
Administrateur/Agent/Client
Demande a se connecter
Connexion ()
Ce diagramme décrit le scénario du cas d’utilisation « Créer un compte client ». Dans un premier
temps, le visiteur de la plateforme MonCar remplit le formulaire d’inscription. Ensuite le système
vérifie les données saisies et enregistre un nouveau client.
31
Créer un com pte cl i ent
M onCar
Vi si teur
Dem ander a créer un com pte cl i ent
5.2.4 Test
L'approche Agile met le test au cœur des projets. Pour Scrum et les méthodes agiles en général, le
test ne se fait pas après la fin du développement. Au contraire, le test est une phase intégrée dès le
début du premier sprint jusqu'à la livraison du produit final. Nous illustrons à ce niveau par des
captures d’écran la réalisation de ce sprint.
32
Figure 13 : Interface d'inscription
33
5.3 Sprint 2 : Administration
Au début de chaque sprint, on définit un objectif et on lui associe une liste de fonctionnalités qui
constitueront le Backlog du sprint. Au cours d'un sprint, l'objectif et la composition de l'équipe ne
peuvent être modifiés. Ci-dessous la définition de l'objectif et des développeurs de ce sprint.
- Objectif : L’administrateur ou les agents sont capables de s’authentifier, des mettre à jours les
données de la plateforme à savoir les compagnies, les bus, les trajets et les paramètres par
défaut.
- Développeurs : Team.
Une fois nous avons défini le but de notre sprint, il est temps de décider quelles histoires de notre
Backlog du produit inclure dans le Backlog du sprint. Le tableau 5 résume donc le Backlog de ce
sprint.
34
5.3.2 Spécification fonctionnelle
Dans cette partie, nous procéderons par un diagramme de cas d'utilisation du sprint puis une
description textuelle de ses histoires utilisateurs.
Afin d'accéder aux différentes fonctionnalités offertes par l'application MonCar, l’administrateur
ou l’agent doit s'authentifier en saisissant son login et son mot de passe. Il a également la possibilité
de modifier son mot de passe afin de personnaliser ses paramètres d'authentification.
Adm i ni strateur
A titre d'exemple, nous détaillons le cas d'utilisation « Enregistrer un agent » et les autres cas
d'utilisation généralisés suivent le même principe. Une fois authentifié, l'administrateur de
l'application MonCar pourra gérer les agents. La gestion inclut l'opération d'ajout, de modification
des données de son profil et de suppression.
35
5.3.2.2 Description textuelle
Ci-dessous la description textuelle des différents cas d'utilisation généralisés « Enregistrer une
compagnie » et « Enregistrer un bus ».
36
SA1 : L’acteur saisit des données incorrectes : l’enchaînement commence au point 5 du scénario
nominal
7- Le système notifie à l’acteur l’invalidité des données saisies
8- L’enchaînement continue au point 3 du scénario nominal
Post condition : Le bus est maintenant enregistrer dans le système
5.3.3 Conception
- Pour ce sprint, le diagramme de classes des cas d’utilisation « Enregistrer une compagnie »
et « Enregistrer un bus » peuvent se traduire par les différentes classes participantes à la
réalisation de ce dernier.
Agent
0..*
Inscri t - agent_i d
- usernam e
- fi rst_nam e
- l ast_nam e
- com pagny_nam e
- addresse
- em ai l
1..1 - country
- profi l e_pi cture
Enregi stre Adm i n + vi ew_agent ()
Com pagny 0..* 1..1
+ add_agent ()
- com pagny_i d - adm i n_i d
0..* Cree + edi t_agent ()
- com pagny_nam e 1..1 - usernam e
1..1 + del ete_agent ()
- com pagny_num ber - password
- com pagny_m ai l Cancel l ati on - profi l e_pi cture Adm i ni stre
- status - cancel l ati on_i d : i nt + change_pass () 1..1
+ vi ew_com pagny () - adverti sem ent_status : i nt + profi l e_vi ew ()
+ vi ew_cancel l ati on () ...
+ add_com pagny () Di spose
+ edi t_com pagny () + add_cancel l ati on () 1..1 1..1
+ del ete_com pagny () + edi t_cancel l ati on ()
+ del ete_cancel l ati on () 0..*
... Enregi stre
Prom o_detai l s
Bus_type - prom o_i d
1..1 - code 1..*
- bustype_i d
1..* - expi re_date___
- bus_type
- status Correspond + vi ew_prom o () Setti ng
... Bus + add_prom o () - setti ng_i d
1..*
- bus_i d + edi t_prom o () - ti tl e
1..*
+ del ete_prom o () - l ogo
- bus_nam e
Am eni ti es - board_poi nt - fl avi con
1..1 Route
- am eni ti es_i d - board_ti m e - sm tp_usernam e
Se retrouve
1..*
- am eni ti es - drop_ti m e - route_i d - sm tp_host
- status - bus_status - board_poi nt - sm tp_password
... + vi ew_bus () - board_ti m e - sender_i d
- fare - sm s_usernam e
Bus_gal l ery + add_bus ()
Possede - sm s_password
+ bus_acti ve () + vi ew_route ()
- busgal l ery_i d : i nt 1..* - paym ent_opti on
1..1 + edi t_bus () 1..1 + add_route () 1..1
- i m age : i nt - paypal
- create_by : i nt + del ete_bus () + edi t_route ()
Conti ent + del ete_route () - paypal i d
...
... - app_key
1..* 1..*
Seat_l ayout Conti ent
1..1 est affecte
- seatl ayout_i d Board_poi nts 1..*
- totel _seat - boardpoi nt_i d
- l ayout - pi ckup_poi nt Drop_poi nts
- l ayout_type
- pi ckup_ti m e - droppoi nt_i d
- l ast_seat - l andm ark - stoppi ng_poi nt
- no_sl eeper - addresse
... - drop_ti m e
- status - l andm ark
...
- addresse
- status
...
- Pour ce Sprint, nous allons présenter le diagramme de séquence pour les cas d’utilisation
« Enregistrer une compagnie » et « Enregistrer un bus ».
37
Enregi strer une compagni e
MonCar
Admi n / Agent
Demander à enregi strer une compagni e
MonCar
Admi n / Agent
Demander à enregi strer un bus
38
5.3.4 Test
Nous illustrons à ce niveau les captures d’écran réalisés au niveau de ce sprint. Après
l’authentification, le client se trouve capable de bénéficier des différents services offerts.
- La figure 22 illustre l’interface du menu principal (qui inclut uniquement les services dédiés
aux administrateurs).
- La figure 23 illustre l’interface d’ajout d’un bus.
- La figure 24 illustre l’interface de la liste des bus.
39
Figure 23 : Interface de la liste des bus
Au début de chaque sprint, on définit un objectif et on lui associe une liste de fonctionnalités qui
constitueront le Backlog du sprint. Au cours d'un sprint, l'objectif et la composition de l'équipe ne
peuvent être modifiés. Ci-dessous la définition de l'objectif et des développeurs de ce sprint.
- Objectif : Le visiteur peut consulter les offres de voyages. Le client peut de s’authentifier, faire
une réservation, consulter ses réservations et annuler une réservation.
- Développeurs : Team.
Le planning de ce sprint est représenté ici par le Backlog du sprint qui est issue du Backlog global.
40
5.4.2 Spécification fonctionnelle
Dans cette partie, nous procéderons par un diagramme de cas d'utilisation du sprint puis une
description textuelle de ses histoires utilisateurs.
Afin d'accéder aux différentes fonctionnalités offertes par l'application MonCar, le client doit
s'authentifier en saisissant un numéro de téléphone ou un email et un mot de passe qu’il a eu à
saisir lors de son inscription. Il a également la possibilité de modifier son mot de passe afin de
personnaliser ses paramètres d'authentification.
Vi si teur
S'authenti fi er
Cl i ent
A titre d'exemple, nous détaillons le cas d'utilisation « Faire une réservation », « Annuler une
réservation » et les autres cas d'utilisation généralisés suivent le même principe.
41
Tableau 18 : Description textuelle du CU: « Faire une réservation »
Cas d’utilisation (CU) : Faire une réservation
Objectif : permettre au client de faire une Acteur : Client
réservation.
Version : 1.0
Pré condition : Se connecter et consulter les offres de voyages
Scénario nominal :
1- L’acteur choisie une offre de voyages et sélectionne une chaise disponible
2- Le système envoie le formulaire de réservation
3- L’acteur renseigne les champs obligatoires puis les envoie
4- Le système vérifie (SA1)
5- Le système charge le site de payement
6- L’acteur effectue le payement
7- Le système vérifie le payement(SA2)
8- Le système envoie la page de payement réussie
Scenario alternatif :
SA1 : L’acteur saisit des données incorrectes : l’enchaînement commence au point 3 du scénario
nominal
9- Le système notifie à l’acteur l’invalidité des données saisies
10- L’enchaînement continue au point 3 du scénario nominal
SA2 : Le payement n’a pas abouti : l’enchaînement commence au point 8 du scénario nominal
11- Le système envoie la page d’échec payement
Post condition : La réservation est enregistrée dans le système
42
SA1 : L’acteur saisit des données incorrectes : l’enchaînement commence au point 3 du scénario
nominal
7- Le système notifie à l’acteur l’invalidité des données saisies
8- L’enchaînement continue au point 3 du scénario nominal
Post condition : L’annulation de la réservation est enregistrée dans le système
5.4.3 Conception
La conception est la deuxième étape dans un sprint. Elle se traduit par un diagramme de classes et
un diagramme de séquences.
- La figure ci-dessous illustre le diagramme de classes des cas d’utilisation « Faire une
réservation » et « Annuler une réservation ».
Figure 25 : Diagramme de classe des CU : « Faire une réservation » et « Annuler une réservation »
- Pour ce Sprint, nous allons présenter le diagramme de séquence pour les cas d’utilisation
« Faire une réservation » et « Annuler une réservation ».
43
Figure 26 : Diagramme de séquence du CU : « Faire une réservation »
44
Figure 27 : Diagramme de séquence du CU : « Annuler une réservation »
5.4.4 Test
Nous illustrons à ce niveau les captures d’écran réalisés dans ce sprint. Après s’être authentifié, le
client MonCar se trouve capable de bénéficier des différents services offerts par la plateforme.
45
Figure 28 : Interface de consultation de trajets
46
Figure 31 : Interface d'annulation
5.5 Conclusion
Le résultat d’un release est un produit livrable au client contrairement au résultat d’un sprint qui est
un produit potentiellement livrable. Dans ce chapitre, nous avons réussi à produire des incréments
ayant suffisamment de valeur pour notre client. Dans le chapitre qui suit, notre effort sera consacré
au déploiement de notre application finale.
47
CHAPITRE VI : CODAGE ET DEPLOIEMENT
6.1 Introduction
Dans ce chapitre, nous donnerons un aperçu sur le travail accompli au niveau de l’implémentation
des modules définis dans les chapitres précédents. Plus précisément, nous allons présenter les
diagrammes de package, de déploiement et de séquence d’application, ainsi qu’un diagramme de
classes global de toute l’application suivi du schéma de la base de données.
6.2 Codage
Les travaux menés dans cette étape se résument tout simplement dans l’implémentation et la
réalisation des cas d’utilisations analysés lors des étapes précédentes. Pour notre cas, le codage se
traduit par un diagramme de package, un diagramme de classes global de toute l’application, un
diagramme de séquence d’application et un schéma de la base de données.
48
6.2.2 Diagramme de classe global de l’application
49
S'authentifier
MonCar BD
Utilisateur
Verification
Renvoie du formulaire
Saisir et valider
Connexion reussie
50
Figure 34 : Diagramme de séquence d'application du CU : « Enregistrer un trajet »
51
Figure 35 : Diagramme de séquence d'application du CU : « Faire une réservation »
52
Agent
Inscri t 0..*
- agent_i d
- usernam e
- fi rst_nam e
- l ast_nam e
- com pagny_nam e
- addresse
- em ai l
1..1 - country
- profi l e_pi cture
Enregi stre Adm i n + vi ew_agent ()
Com pagny 0..* 1..1
+ add_agent ()
- com pagny_i d - adm i n_i d
0..* Cree + edi t_agent ()
1..1 - usernam e
- com pagny_nam e + del ete_agent ()
1..1 - password
- com pagny_num ber
Cancel l ati on - profi l e_pi cture
- com pagny_m ai l Adm i ni stre
1..1
- status - cancel l ati on_i d : i nt + change_pass ()
- adverti sem ent_status : i nt + profi l e_vi ew ()
+ vi ew_com pagny ()
...
+ add_com pagny () Di spose + vi ew_cancel l ati on () 1..1
+ edi t_com pagny () + add_cancel l ati on () 1..1
Cree
+ del ete_com pagny () + edi t_cancel l ati on ()
+ del ete_cancel l ati on () 0..*
... Enregi stre
1..1
1..1 Prom o_detai l s
Bus_type - prom o_i d
1..1 Correspond - code 1..*
- bustype_i d
1..* - expi re_date___
- bus_type
- status Correspond + vi ew_prom o () Setti ng
... Bus Affecte + add_prom o ()
1..* - setti ng_i d
1..* + edi t_prom o () - ti tl e
- bus_i d 1..*
+ del ete_prom o () - l ogo
- bus_nam e Affecte
Am eni ti es 1..* - board_poi nt - fl avi con
1..1
1..* 1..* Route - sm tp_usernam e
- am eni ti es_i d - board_ti m e 1..* 1..1
Se retrouve
- am eni ti es - drop_ti m e - route_i d - sm tp_host
- status - bus_status Booki ng_detai l s 0..* Donne l i eu - board_poi nt - sm tp_password
... - board_ti m e - sender_i d
+ vi ew_bus () - booki ngdetai l s_i d
- fare - sm s_usernam e
Bus_gal l ery + add_bus () - paym ent_status
Possede - sm s_password
1..* + bus_acti ve () - paym ent_opti on + vi ew_route ()
- busgal l ery_i d : i nt - paym ent_opti on
1..1 + edi t_bus () 1..1 + add_route () 1..1
- i m age : i nt - prom o_code
+ edi t_route () - paypal
- create_by : i nt + del ete_bus () - booki ng_date
Conti ent + del ete_route () - paypal i d
...
1..1 + vi ew_booki ng () ... - app_key
1..* Donne l i eu 1..1 1..*
Seat_l ayout + vi ew_bookpopup ()
est affecte Conti ent
1..1
- seatl ayout_i d 0..* 0..* Board_poi nts 1..*
- totel _seat
- boardpoi nt_i d
- l ayout Rati ng Drop_poi nts
- l ayout_type Concerne - pi ckup_poi nt
- rati ng_i d - pi ckup_ti m e - droppoi nt_i d
- l ast_seat - bus_qual i ty Effectue
- l andm ark - stoppi ng_poi nt
- no_sl eeper - punctual i ty - addresse
... - drop_ti m e
- staff_behavi our - status - l andm ark
1..1 1..* ...
- average - addresse
- com m ents User - status
Custom er_detai l s
0..* ...
- user_i d - custom er_i d
Effectue - usernam e - custom er_nam e
1..1 - password - age
- nam e - m obi l e
- reset_key - em ai l
+ si gnup () - gender
+ l ogi n () + vi ew_custom er ()
+ reset_pass ()
+ forgot_pass ()
53
6.2.4 Schéma physique des données
Le schéma physique des données est une représentation graphique des relations des différents
concepts du système. Le modèle physique de données est le résultat de la transformation du
diagramme des classes UML. Le modèle physique de données est directement exploitable par le
SGBD. La Figure 8 ci-dessous illustre le modèle physique de donnée de notre application.
6.3 Déploiement
Dans notre projet, le déploiement se traduit par un diagramme de déploiement qui permet de
représenter la répartition géographique des composants matériels de notre système sous forme de
nœuds.
Le diagramme de déploiement est une vue statique qui sert à représenter l'utilisation de
l'infrastructure physique par le système et la manière dont les composants du système sont répartis
ainsi que leurs relations entre eux. Il est couramment utilisé pour décrire l’architecture technique
générale d’un système. La figure suivante représente le diagramme de déploiement de notre
solution.
54
6.4 Conclusion
Dans ce chapitre, nous avons essayé de donner une meilleure visibilité du projet sur le plan
technique, à travers la mise en place d’un schéma de la base de données et de présenter le
diagramme de déploiement de l’application globale. Le prochain chapitre évoquera la politique de
sécurité et présentera quelques écrans de l’application ainsi réalisée.
55
board_poi nts drop_poi nts
56
CHAPITRE VII : REALISATION ET BILAN
7.1 Introduction
Dans ce chapitre, nous présenterons les modules développés, de l’enchainement des écrans de
notre système et nous justifierons les écarts constatés après une comparaison du planning réel et
prévisionnel. Au terme de ce chapitre, les politiques et moyens de sécurité liées à l’application et
d’ordre général seront présentés.
Pour la mise en place de notre solution, nous avons pu réaliser en grande partie les modules
englobant les fonctionnalités qui nous ont été demandés. Les modules développés sont entre autre :
- Gestion des réservations : ce module rassemble toute les fonctionnalités liées à une
réservation (la création d’une nouvelle réservation, la suppression d’une réservation, la
modification d’une réservation, lister ses réservations) ;
- Gestion des utilisateurs : ce module regroupe toutes les fonctionnalités permettant l’ajout,
la modification, la suppression d’un utilisateur ;
- Gestion des trajets : ce module permet l’enregistrement d’un nouveau trajet ainsi que sa
gestion ;
- Gestion des bus : ce module permet l’enregistrement d’un nouveau bus ainsi que sa gestion;
- Paramétrage des comptes : ce module permet aux utilisateurs de la plateforme de
personnaliser leurs comptes.
Ici seront présentées quelques interfaces de notre système développé pendant le stage.
Pour accéder à la plateforme MonCar, le visiteur entre l’URL dans le navigateur web, il devra
obtenir la page d’accueil qui lui offrira la possibilité de se connecter ou de s’inscrire en tant que
client sur ladite plateforme. Une fois l’authentification ou l’inscription réussie, l’utilisateur accède
à son environnement de travail.
57
Figure 39 : Ecran d'accueil
Cet écran permet à l’utilisateur connecté de consulter les différents trajets de voyages sur la
plateforme.
L’écran suivant permet à l’utilisateur connecté de choisir le nombre place pour une réservation de
trajet.
58
Figure 41 : Ecran de Choix de la place
59
Figure 43 : Ecran de réservation réussie
60
Figure 45 : Interface d'ajout d'un trajet
Nous constatons que le planning prévisionnel n’a pas été suivi. Nous donnons les raisons qui ont
prévalues :
- L’étude et la compréhension du domaine a pris plus de temps que prévu, l’équipe de
développement n’étant pas en contact direct avec les principaux acteurs, nous avons dû
nous inspirer des analyses menées par nos agents technico-commerciaux.
- Il y a aussi la prise en main du Framework CodeIgniter. En effet, même si cette plateforme
est construite sur le langage PHP, elle y ajoute un grand nombre d’outils remplissant tout
un tas de fonctionnalités que nous avons pris le temps de comprendre.
- Le temps prévu pour la modélisation a connu un grand dépassement du fait des
modifications opérées tout au long du processus.
61
7.5 Procédures transitoires
Les procédures transitoires constituent un ensemble de tâches à exécuter pour passer du système
d'information actuel au système futur. Ces tâches correspondent à la mise en place du nouveau
système et son fonctionnement pendant une période donnée. Le futur système devra alors être
soumis à une série de tests afin de s'assurer de son adéquation avec les besoins exprimés par les
utilisateurs. Les éventuelles défaillances décelées au cours de ces tests seront progressivement
corrigées jusqu'à l'obtention d'une application relativement stable.
Par ailleurs, une formation des utilisateurs est prévue afin que ceux-ci puissent prendre pleinement
possession des différentes fonctionnalités du futur système. La formation va donc permettre non
seulement à ces utilisateurs de se familiariser avec le logiciel mais aussi de constater les éventuelles
erreurs et insuffisances de ce dernier. Cela permettra la révision et la correction des imperfections
par l'équipe des développeurs. L'application sera mise en service pour une période transitoire de
trois (03) mois au cours de laquelle elle fonctionnera en parallèle avec le système actuel pour
s'assurer qu'il répond entièrement aux besoins spécifiés. Au cas où les essais sont concluants le
basculement définitif vers le futur système pourra se faire aisément en concertation avec les
compagnies de transport.
La sécurité est une stratégie préventive qui s'inscrit dans une approche d'intelligence économique.
Elle ne permet pas de gagner de l'argent, mais évite d'en perdre. L'objectif de la sécurité des
systèmes d'information est de garantir, qu'aucun préjudice ne puisse mettre en péril la pérennité de
l'entreprise. La politique de sécurité a pour but de minimiser les risques de panne, d'éviter que la
base de données soit dans un état d'incohérence, d'éviter les accès non autorisés à la base et d'éviter
la présence de programmes indésirables dans le réseau. Il s'agit donc de prendre toutes les
dispositions utiles afin de réduire au minimum les effets néfastes des pannes matérielles ou
logicielles.
62
7.6.1 Politique de gestion des connexions distantes aux serveurs
Le scenario choisit pour accéder à l’application MonCar impose une connexion internet. Ce qui
pose un problème de sécurité sur les données échangées entre les machines clientes et le nouveau
système hébergé sur le serveur distant.
Pour cela, nous proposons lors de la configuration du serveur, d’intégrer le serveur web Apache-
HTTP afin de protéger les transferts de données par une connexion sécurisée : HTTPS (avec S
pour secured, soit « sécurisé ») est la variante de HTTP basée sur les protocoles SSL. Il permet au
visiteur de vérifier l'identité du site auquel il accède grâce à un certificat d'authentification. Il permet
également de chiffrer la communication. Il est utilisé pour les transactions sécurisées sur Internet.
Ce protocole est inclus dans pratiquement tous les navigateurs.
Cela assurera trois choses :
- Confidentialité des données : Il est ardu d'espionner les informations échangées ;
La politique de gestion de mots de passe est à la fois technique et organisationnelle. Elle vise à
réduire les risques pour le système d'information liés à l'emploi du mécanisme d’authentification
par le couple nom d’utilisateur/mot de passe.
Dans ce projet, des dispositions sont prises :
- Les mots de passe utilisés pour se connecter au système seront chiffrés par l’algorithme SHA1;
- La longueur minimum pour les mots de passe est de 6 caractères.
Un virus informatique est un logiciel malveillant conçu pour se propager à d'autres ordinateurs en
s'insérant dans des programmes légitimes appelés « hôtes ». Il a pour but de perturber l'ordinateur
infecté. Il peut se répandre à travers tout moyen d'échange de données numériques comme les
réseaux informatiques et de périphériques (USB, CD etc…). Pour assurer la protection contre les
virus, des antivirus efficaces sont installés sur les postes des différents administrateurs et agents.
63
7.7 Conclusion
Dans ce chapitre nous avons exposé les différents éléments concernant la réalisation de la
plateforme. Ensuite, nous avons expliqués les écarts constatés au niveau du planning prévisionnel.
Enfin des politiques et moyens de sécurité dans le but de rendre l’application plus pérenne et fiable
ont été présentées.
64
CONCLUSION GENERALE
Dans le cadre de notre stage de fin du cycle en licence d’Ingénierie des Systèmes d’Information
(ISI), nous avons été accueillis à KeoLID d’où nous avons effectué un stage d’une durée de quatre
(04) mois. Il nous a été soumis comme thème d’étude : « La Mise en place d’une plateforme de
gestion et de réservation des tickets de bus ». Il était question pour nous de digitaliser la gestion et
la réservation des tickets de bus tout en résolvant les contraintes de temps rencontrées lors des
réservations, de suivi, de stockage et les problèmes de paiements des réservations.
Afin de mener à bien ce projet, nous avons utilisé plusieurs technologies et outils. En ce qui
concerne la méthode de résolution, elle est basée essentiellement sur le processus de
développement Scrum et le langage de modélisation UML pour l’analyse du domaine, la
spécification du système et la conception de la solution. Pour ce qui est du développement, nous
avons utilisé entre autres la plateforme PHP 7, le Framework CodeIgniter en sa version 3.0.3, Ajax,
Angular js et JQuery. Le système de gestion de base de données est MySQL 5.7.
En rappel, les résultats attendus étaient :
- La consultation des différents trajets proposés par différentes compagnies de transports ;
- La gestion des utilisateurs ;
- La gestion des réservations de tickets de bus par compagnie de transport ;
- La gestion des compagnies de transports ;
- La gestion des trajets ;
- La gestion des paiements de tickets réservés en ligne par mobile money.
A l’issue de ce stage nous avons pu produire un cahier de charges fonctionnelles et techniques du
projet, modéliser puis réaliser une plateforme web pour la gestion et la réservation des tickets de
bus.
Ce projet a été pour nous une opportunité de mise en pratique de l’ensemble des connaissances
apprises tout au long du cycle. Nous nous sommes initiés à un nouvel environnement de
développement qui est le Framework CodeIgniter. A travers les formations, nos connaissances sur
le fonctionnement des compagnies de transport et de la gestion d’entreprise ont été enrichie.
En perspective, nous pensons que la conception d’une plateforme mobile permettra aux potentiels
clients d’en bénéficier d’avantage des services offerts par MonCar. Aussi il sera intéressant de
réaliser un système qui interagira entre les systèmes de gestion des compagnies de transport et notre
application.
65
LISTE DES REFERENCES BIBLIOGRAPHIQUES
[1] Jean Engels, « PHP5 cours et exercices », 2ème édition, Eyrolles, 2005,623 pages.
[2] PASCAL ROQUES, « UML2 par la pratique : Étude de cas et exercices corrigés » 6ème édition,
Eyrolles, 2008,380 pages.
[3] M. BAMBARA Victorien Zidabou, « Mise en place d’un portail web intégré institutionnel pour
l’Association pour le Renforcement des Capacités des Diplômés de l’École Supérieure
d’Informatique (ARCDESI) », Mémoire de fin de cycle CICI, ESI 2016-2017.
[4] M. CABORE Kévin Aziz& M. ZIDA Moussa, « Mise en place d’une bibliothèque numérique à
l’ESI », Rapport de fin d’année CICI, ESI 2015-2016.
[5] M. ILLY Poulmanogo, « Réalisation d’un logiciel de Comptabilité générale avec suivi analytique
et budgétaire selon le SYSCOHADA », Rapport de fin de cycle CITI, ESI 2013-2014.
[6] M. LANKOUANDE Laurent, « Système de gestion informatisée d’un tiers lieu dédié à
l’entrepreneuriat numérique : cas de BeoogoLab », Rapport de fin de cycle CITI, ESI 2015-2016.
[7] « Documentation officielle de CodeIgniter »
http://www.codeigniter.com/, consulté régulièrement depuis le 11 septembre 2017.
[8] « Documentation officielle de PHP »
http://www.php.net/, consulté régulièrement depuis le 11 septembre 2017.
[9] « Méthodes classiques VS méthodes agiles »
http://www.access-dev.com/access-dev/la-gestion-de-projet-methodes-classiques-vs-methodes-
agiles/ , consulté le 20 octobre 2017.
[10] « La méthode agile scrum »
http://www.supinfo.com/articles/single/3633-gestion-projet-agile-avec-scrum/, consulté le 24
octobre 2017.
http://www.supinfo.com/articles/single/6107-presentation-methode-agile-scrum/, consulté le
24 octobre 2017.
[11] « La méthode d’estimation des coûts : Le planning poker »
https://www.unow.fr/blog/le-coin-des-experts/estimations-planning-poker/, consulté le 7
novembre 2017.
[12] « La rémunération salariale des développeurs web en 2016-2017 »
https://www.journaldunet.com/web-tech/developpeur/1186121-les-salaires-des-developpeurs-
digitaux-par-profils-en-2016/, consulté le 22 novembre 2017.
66
ANNEXE I : CODEIGNITER
67
ANNEXE II : COMPARAISON ENTRE L’APPROCHE CLASSIQUE ET
L’APPROCHE AGILE
68
ANNEXE III : CONTEXTE D’UTILISATION DE QUELQUES METHODES
AGILES
69