Académique Documents
Professionnel Documents
Culture Documents
Ingénieur d’État
Génie Informatique
Promotion 2020 - 2021
Soutenu le :
XX Juillet 2021
Membres de jury :
Avant-propos
Ce mémoire est le résultat d’un stage de fin d’études de 4 mois effectué au sein
de la société STG Maroc, et qui rentre dans le cadre de l’obtention du diplôme Ingénieur
d’État Génie Informatique option Systèmes d’informations et Aide à la Décision par
l’École Nationale des Sciences Appliquées (ENSA) de Tétouan. Le projet était réalisé
en binôme. Ce stage était encadré par M. Zakaria BOUANANI directeur technique
chez STG Maroc, et M. Oussama EL HAJJAMY Enseignant à l’ENSA de Tétouan.
L’idée de ce mémoire est venue du constat que les clients de la grande
distribution de STG Maroc ont des difficultés dans le contrôle et la surveillance
journalière des tournées, la chose qui les impose à consulter d’autres fournisseurs pour
résoudre ce problème.
Ce rapport de stage a pour objectif de mettre en relief les différentes étapes de
notre mission qui ont consisté à la conception et le développement d’un module de
gestion des tournées logistiques et son intégration dans une plateforme de gestion de
flotte.
Certes, des difficultés n’ont pas manqué. Elles concernent le suivi des
différents tests de certaines fonctionnalités comme notre travail était séparément de
l’équipe du développement.
L’apport de ce projet a été d’une importance appréciable quant à
l’enrichissement de nos connaissances techniques, à l’apprentissage de nouvelles
technologies ainsi qu’à l’intégration dans le monde professionnelle.
Dédicaces
Louange à Dieu tout puissant, qui nous a permis de voir ce jour tant attendu.
Avec l’expression de mes reconnaissances et ma profonde affection,
Je dédie ce travail
À mes très chers parents Mohamed & Latifa
Aucun mot et aucune dédicace ne serait capable d’exprimer mes sincères remerciements,
mes gratitudes, mon éternel amour et mon respect envers vos sacrifices, vos soutiens et
vos encouragements que vous me fournissez toujours pour mon bien être ; vous qui
donnez généreusement et faites toujours l’impossible pour mon éducation et ma
formation sans attente.
Qu’Allah, le très haut, vous accorde de la santé, du bonheur et de la longue vie.
À ma chère sœur Asmae et mon cher frère Yassin
À tous les moments de notre enfance ensemble, à vos enthousiasmes et vos sourires,
merci d’être part de ma vie. Vous apportez tout le bonheur et la joie à notre famille, je
vous aime et je vous souhaite tout bonheur, réussite et prospérité.
À ma belle tante Souad
Jamais de ma vie je serais capable de vous rendre pareille de ce que vous m’avez fait et
donné. J’apprécie toujours ta présence à mes côtés.
À mon binôme Chaimae
Qui, sans elle, ce travail n’a pas pu voir le jour. Vous êtes toujours ma source de joie et
d’encouragement. Je te dis merci pour avoir le courage et la patience d’achever ce travail
et le mener jusqu’au bout.
À toute ma famille,
À mes chères amies Hajar et Aya,
À mes chers professeurs et collègues de la filière génie informatique,
À tous ceux qui m’aiment,
À tous ceux que j’aime,
Je vous dis MERCI.
FITIAN Chaimae
Louange à Dieu tout puissant, qui nous a permis de voir ce jour tant attendu.
EL KHNISSI Chaimae
Remerciements
Ce mémoire n’aurait pas pu voir le jour si Dieu, le tout puissant, nous n’a pas
donné la force et la patience pour terminer ce travail et dépasser les obstacles
rencontrés.
Tout d’abord, nous tenons à remercier M. Hakim BOULAASSAL, directeur
recherche et développement, de nous avoir acceptées pour effectuer notre projet de fin
d’études au sein de la société STG Maroc, ainsi que M. Zakaria BOUANANI,
directeur technique et qui est aussi notre encadrant professionnelle, pour son
encadrement et orientation technique, ses conseils et son temps précieux qu’il a sacrifié
pour nous assister tout au long du déroulement de notre stage.
Nous remercions sincèrement notre encadrant pédagogique, M. Oussama EL
HAJJAMY, pour sa disponibilité, son soutien, sa qualité d’écoute et ses discussions
intéressantes qui nous ont aidées à s’engager totalement dans notre projet.
Nos vifs remerciements aux membres du jury qui ont agréé d’évaluer et être les
rapporteurs de ce modeste travail.
Et nous profitons de l’occasion pour exprimer nos profondes gratitudes à tout
le corps professoral et administratif de l’ENSA de Tétouan, et surtout nos chers
professeurs du département génie informatique, aux membres de nos familles pour leurs
soutiens et à toute personne qui a contribué de près ou de loin dans le bon
accomplissement de ce travail.
Résumé
Dans le cadre de notre projet de fin d’études à l’École Nationale des Sciences
Appliquées (ENSA) de Tétouan, et afin d’obtenir le diplôme Ingénieur d’État Génie
Informatique option Systèmes d’informations et Aide à la Décision, nous avons
effectué notre stage de fin d’études de quatre mois au sein de la société STG Maroc.
Notre mission était de mettre en œuvre une solution de gestion de tournées en
faveur des clients de grande distribution comme le transport personnel et public pour
faciliter la gestion et la planification des tournées.
Dans un premier temps, nous avons commencé par l’analyse de l’outil
existant, ensuite la spécification des exigences fonctionnels et non fonctionnels de
l’application, après nous avons passé à l’étape de conception afin de réaliser les
différents diagrammes en utilisant la méthode de modélisation UML, et nous avons
fini par la réalisation de notre application. Ce travail a été conduit selon la
méthodologie SCRUM.
L’étude technique est basée principalement sur deux parties : Frontend et
Backend. C’est une combinaison des deux framework Laravel et Angular, avec
l’addition de certaines technologies comme Bootstrap, JavaScript...
Au cours de ce projet, nous avons pu atteindre la solution actuelle, tout en
prenant en considération l’importance de chaque étape de notre travail.
Mots clés: Gestion des tournées, feuilles de route, Laravel, Angular, STG Maroc.
Abstract
As part of our project of end of studies at the National School of Applied
Sciences (ENSA) of Tetouan, and in order to obtain the State Engineer diploma in
Computer Engineering option Information Systems and Decision Support, we did our
four-month end-of-study internship at STG Maroc.
Our mission was to implement a route management solution for large
distribution customers such as personal and public transport to facilitate the
management and planning of routes.
First, we started with the analysis of the existing tool, then the specification
of the functional and non-functional requirements of the application, then we moved
on to the design stage in order to produce the different diagrams using the UML
modeling method, and we ended up building our application. This work was carried
out according to the SCRUM methodology.
The technical study is based mainly on two parts: Frontend and Backend. It is
a combination of the two frameworks Laravel and Angular, with the addition of
certain technologies like Bootstrap, JavaScript...
During this project, we were able to achieve the current solution, while taking
into consideration the importance of each step of our work.
passage ............................................................................................................................ 50
Figure 27 - Diagramme de séquences (niveau conception) : Supprimer un point de
passage ............................................................................................................................ 51
Figure 28 - Diagramme de séquences (niveau conception) : Filtrer un modèle ............. 51
Figure 29 - Diagramme de séquences (niveau conception) : Filtrer les points de passage
........................................................................................................................................ 52
Figure 30 - Diagramme de séquences (niveau conception) : Exporter les points de
passage sous format CSV ............................................................................................... 52
Figure 31 - Diagramme de séquences (niveau conception) : Consulter une feuille de
route ................................................................................................................................ 53
Figure 32 - Diagramme de séquences (niveau conception) : Ajouter une feuille de route
........................................................................................................................................ 54
Figure 33 - Diagramme de séquences (niveau conception) : Modifier une feuille de
route ................................................................................................................................ 54
Figure 34 - Diagramme de séquences (niveau conception) : Supprimer une feuille de
route ................................................................................................................................ 55
Figure 35 - Diagramme de séquences (niveau conception) : Exporter la liste des feuilles
de route sous format CSV ............................................................................................... 55
Figure 36 - Diagramme de séquences (niveau conception) : Filtrer une feuille de route 56
Figure 37 - Diagramme de séquences (niveau conception) : Ajouter une récurrence .... 56
Figure 38 - Diagramme de séquences (niveau conception) : Modifier une récurrence .. 57
Figure 39 - Diagramme de séquences (niveau conception) : Supprimer une récurrence 57
Figure 40 - Diagramme de séquences (niveau conception) : Arrêter une récurrence ..... 58
Figure 41 - Diagramme de séquences (niveau conception) : Filtrer une récurrence ...... 58
Figure 42 - Logo d'Angular ............................................................................................ 62
Figure 43 - Logo de Laravel ........................................................................................... 63
Figure 44 - Logo de GitHub ........................................................................................... 63
Figure 45 - Logo de BitBucket ....................................................................................... 64
Figure 46 -Logo de Postman ........................................................................................... 64
Figure 47 - Logo de Bootstrap ........................................................................................ 65
Figure 48 - Interface d'authentification........................................................................... 71
Figure 49 - Connexion échouée ...................................................................................... 71
Figure 50 - Interface d'accueil ........................................................................................ 72
Acronyme Désignation
API Application Programming Interface
CLI Command Line Interface
CSS Cascading Style Sheets
HTML HyperText Markup Langage
HTTP HyperText Transfer Protocol
MIT l'Institut de technologie du Massachusetts
MVC Model-View-Controller
MVVM Model -View – View Model
PHP HyperText Preprocessor
REST Representational State Transfer
RMA Royale Marocaine d’Assurance
STG Secure Technologies Group
TCI Technology Capital Invest
TI Texas Instruments
Introduction .............................................................................................................................. 4
Conclusion ............................................................................................................................. 20
Introduction ............................................................................................................................ 22
Introduction ............................................................................................................................ 41
Conclusion ................................................................................................................................ 59
Introduction ............................................................................................................................... 61
Conclusion ................................................................................................................................ 79
Références ................................................................................................................................ 81
Webographie ............................................................................................................................ 81
Introduction générale
De nos jours, l’évolution rapide du GPS et des nouvelles technologies a facilité
l’intégration de la géolocalisation au Maroc. Cette dernière est considérée comme un
facteur essentiel dans l’implémentation des logiciels de gestion de flotte.
En particulier, le secteur qui exige un besoin de gestion de flotte est celui du
transport et de la logistique. Maitriser donc son parc de véhicules revient à maintenir
une analyse régulière du comportement de chaque voiture pour une meilleure
amélioration de qualité de service et optimisation des coûts.
Une solution de géolocalisation et de gestion de flotte consiste à placer des
boîtiers de télématique embarquée à bord de véhicules afin de collecter des données
relatives au véhicule et au conducteur. Ces boîtiers ont apporté de plusieurs avantages
aux entreprises marocaines, notamment le suivi en temps réel des véhicules et leurs
historiques détaillés, la gestion et la réduction de la consommation de carburant, la
diminution du risque d’accident et l’amélioration de la productivité du parc logistique.
Cependant, certaines entreprises trouvent des difficultés dans la gestion
journalière du grand nombre des véhicules pour des raisons comme :
L’organisation des tournées qui dure pour un longtemps ;
La non-satisfaction des clients de l’entreprise envers l’irrespect des
horaires de livraison des commandes ;
L’utilisation des véhicules d’une façon non optimale ;
Le manque d’une vision claire sur les coûts des missions de transport.
C’est pour cela, notre organisme d’accueil STG a décidé d’inclure cette
solution dans la plateforme de gestion de flotte STG Fleet [1] vu la grande demande de
ses clients, d’où le thème de notre projet de fin d’études : « Développement d’un
module de gestion de tournées logistiques et son intégration dans une plateforme de
gestion de flotte ».
Cette application va permettre au client de planifier ses tournées d’une manière
ordonnancée pour éviter toute intersection entre eux et suivre leurs états. Aussi, elle va
aider le client à créer des trajets de points de passage et enregistrer le passage de chaque
véhicule par ses points, ainsi, elle va faciliter la récurrence d’un trajet
spécifique.
Le présent mémoire a pour objectif de donner une vision claire sur le
déroulement du projet. Il est structuré en quatre chapitres principaux :
Le premier chapitre est consacré à la présentation de l’organisme d’accueil
STG Maroc [2] ainsi que le cadre général du projet qui va traiter l’étude de l’existant, la
problématique et la solution proposée ainsi que la méthodologie de travail adoptée et la
planification du projet.
Le deuxième chapitre est dédié à l’analyse des besoins fonctionnels et non
fonctionnels de l’application.
Dans le troisième chapitre, nous allons présenter l’étude conceptuelle de notre
solution en modélisant les besoins avec le langage UML.
La réalisation de l’application sera l’objet de notre dernier chapitre ; nous
allons traiter l’environnement de développement ainsi qu’un aperçu sur les différentes
interfaces obtenues de l’application.
Nous finirons notre mémoire par une conclusion générale qui va exposer notre
bilan de travail et quelques perspectives d’avenir.
Introduction
Aujourd’hui, STG Maroc est une société opérant dans le secteur des nouvelles
technologies et spécialisée dans la télématique embarquée, la commercialisation et
l’installation de modules équipés de plusieurs composants de très haute performance en
matière de communication et de localisation.
STG Maroc a établi des partenariats durables avec les sociétés clés du marché
des semi-conducteurs (Intel, TI, STMicroelectronics, Infineon...) afin d’offrir à ses
clients les produits les plus performants et la technologie la plus avancée du marché.
Pour STG Maroc, le plus important facteur de réussite est le capital humain. Ce
dernier propulse le succès vers un seul et unique objectif : faire progresser la mobilité et
la sûreté en les rendant plus efficaces et plus responsables que jamais.
2. Secteur d’activité
2.1. Services de STG Maroc
Gestion des services sur terrain : Avec la solution STG, le client peut
avoir toutes les informations de disponibilité, de proximité et de priorités
afin d’augmenter la productivité du personnel sur terrain et gérer son
intervention par un plan de travail plus optimisé. Ceci englobe des
fonctionnalités comme : élaborer des rapports de gestion de temps de
travail pour éliminer le temps inutile, informer le personnel par des
notifications des tâches sur la navigation embarquée ou par messagerie
pour devenir plus ponctuel sur les objectifs et analyser le comportement
de conduite suite à une plateforme (profil, vitesse, consommation...) ;
Gestion des
Analyse du
Géolocalisation services sur
comportement
et sécurisation terrain
de conduite
Services
Gestion de
Optimisation
flotte et des Solution sur
des coûts
assets mesure
Volet Volet
assurances commercialisation
Volet Volet
transport carburant
Partenaire
mondiale
STG Maroc et ses partenaires collaborent pour proposer des solutions dont
l’objectif est de subventionner l’équipement des flottes. Ces alliances ont permis de
lancer de nouvelles solutions au niveau des assurances, de sécurité, de
La solution STG a fait sa place partout dans le monde ; elle est utilisée dans
près de 55 pays, avec plus de 3 millions de boîtiers installés au monde. Cette solution a
contribué dans la satisfaction des milliers de clients et la collaboration de plus de 1000
employés.
3. Références
Grâce à la qualité des services proposés par STG Maroc, plusieurs entreprises
ont fait confiance à ce dernier, citant parmi eux :
1. Périmètre du projet
Les modules existants dans STG Fleet diffèrent d’un client à un autre selon le
besoin, et parfois, ce besoin n’ai pas toujours présent comme fonctionnalité dans
l’application, la chose qui nécessite le développement de nouveaux modules chaque fois
qu’un client le demande.
Après l’étude que nous avons faite, la solution était donc de développer une
application de gestion des tournées et l’intégrer au sein d’une plateforme de gestion de
flotte.
Cette application permet le contrôle de l’exécution de la tournée. Elle sert à la
création, l’enregistrement d’une liste de points de passage pour un véhicule et la
vérification automatisée de son exécution. Ces points de passage constituent des « check
points » par lesquels un véhicule doit passer dans le courant d’une journée de travail.
Parmi les fonctionnalités back-office de cette application, cette dernière doit
permettre de :
Enregistrer une liste de points de passage sous forme d’une tournée
2. Equipe du projet
Afin de mettre à jour l’application STG Fleet, nous avons intégré une équipe de
développement qui se compose d’un chef de projet, des développeurs Backend et
Frontend et des stagiaires.
Chacun d’entre nous a été chargé d’un module spécifique ; deux stagiaires ont
été chargés de développer le Backend d’une partie du module « Gestion des alarmes »,
une autre stagiaire a traité le module « Gestion des unités », alors que nous étions
chargés de la conception et du développement du module « Gestion des tournées ».
Ce module regroupe les quatre parties suivantes :
Gestion des modèles ;
Gestion des feuilles de route ;
Gestion des points de passage ;
Gestion des récurrences.
3. Méthode de développement
Pour mettre ce projet en œuvre, il était nécessaire de choisir une méthode
convenable de travail. C’est pourquoi la méthode optée par l’équipe du projet était celle
de la gestion de projet agile SCRUM [3].
4. Planification du projet
La planification du projet est sans aucun doute l’une des phases les plus
importantes. Elle consiste à déterminer les différentes tâches, les ordonnancer, estimer
le coût de réalisation de chaque tâche et prévoir les profils et les ressources nécessaires
pour l’évolution du projet. Cela aide à suivre proprement l’avancement du projet durant
son déroulement et respecter le délai prévisionnel de la fin du projet.
Pour notre projet, nous avons opté pour la méthode SCRUM, donc nous avons
découpé notre travail en 7 sprints :
Le premier sprint est un élément important pour partager une vision claire du
nouveau projet à développer, préparer l’environnement de développement, produire une
première version du backlog et définir l’architecture générale du projet.
Le sprint 3 a consisté à une gestion totale d’un deuxième module qui est « les
points de passage » ;
0 Initialisation. 32
6 Intégration du Map. 3
Après avoir terminé notre étude, le calendrier prévisionnel que nous avons
établi est le suivant :
Étude préalable :
4 16/02/2021 19/02/2021
- Réunion avec les développeurs pour se
familiariser avec les fonctionnalités de
l’application STG Fleet.
Sprint 0
Étude détaillée :
Étude technique :
Sprint 0
- Autoformation.
- Conception générale.
1 31/03/2021 31/03/2021
-Validation de la conception.
Sprint 1
Conclusion
À travers ce chapitre, nous avons présenté l’organisme de l’accueil ainsi que le
contexte général de notre projet.
Dans le chapitre qui suit, nous allons entamer la prochaine étape qui consiste à
présenter les démarches de conception et de développement de notre solution.
Chapitre 2 : Spécification
des exigences
Introduction
Pour le faire, nous allons enchaîner une étude des acteurs et identifier les
différents cas d’utilisation et les diagrammes de séquences de notre application à l’aide
de la modélisation UML.
Il s'agit donc de déterminer les fonctionnalités et les acteurs les plus pertinents,
de préciser les risques les plus critiques et d'identifier les cas d'utilisation initiaux.
Gestion du profil ;
Un cas d’utilisation est une technique qui permet d’exprimer les besoins
fonctionnels des utilisateurs d’un système. Il décrit les interactions entre les acteurs du
système et le système lui-même.
Les diagrammes des cas d’utilisation permettent donc de donner une vision
globale sur l’application à développer. Dans un diagramme de cas d’utilisation, les
utilisateurs du système s’appellent des acteurs et les actions s’appellent des cas
d’utilisation.
La figure ci-dessous représente le diagramme de cas d’utilisation majeur de
notre système.
a. Description textuelle
Identification :
Nom du cas : S’authentifier ;
Description : Permettre aux utilisateurs d’accéder à l’application
en utilisant leurs identifiants (Email et mot de passe) ;
Acteur principal : Utilisateur.
Séquencement :
Le cas d’utilisation commence lorsque :
Pré-condition :
L'utilisateur a accédé à l’application.
Scénario nominal :
1. L’utilisateur accède à l’application ;
2. Le système présente un formulaire d’authentification ;
3. L’utilisateur saisit ses identifiants et il valide ;
4. Le système vérifie si les données saisies sont valides ;
5. Le système ouvre une session à l’utilisateur ;
6. Le système redirige l’utilisateur vers son espace.
Scénarios d’erreur :
E1. Identifiants erronés.
- L’enchaînement E1 démarre au point 4 du scénario nominal.
- L’utilisateur tente de s’authentifier en utilisant des identifiants
erronés, et le système lui affiche un message d’erreur.
- Le scénario nominal reprend au point 3.
2.4.2.
b. Description textuelle
Identification :
Nom du cas : Gérer les modèles ;
Description : Permettre de créer un modèle et enregistrer une liste
des points de passage, aussi modifier et supprimer le modèle ainsi
que ses points de passage ;
Acteur principal : Utilisateur.
Séquencement :
Le cas d’utilisation commence lorsque :
Pré-condition :
L'utilisateur s’est authentifié.
L’utilisateur a accédé à l’interface de gestion des modèles.
Scénario nominal :
1. L’utilisateur accède à l’interface de gestion des modèles ;
2. L’utilisateur choisit l’opération souhaitée ;
3. Le système lui affiche l’interface concernée ;
4. L’utilisateur remplit le formulaire nécessaire ;
5. L’utilisateur enregistre les modifications et se redirige vers
l’interface de gestion des modèles.
Scénarios d’erreur :
E1. Champs obligatoires.
- L’enchaînement E1 démarre au point 4 du scénario nominal.
5. L’utilisateur tente d’enregistrer ses modifications sans remplir les
champs concernés, et le système lui affiche un message d’erreur.
- Le scénario nominal reprend au point 4.
b. Description textuelle
Identification :
Nom du cas : Gérer les points de passage ;
Description : Permettre de consulter la liste des points de passage
avec la possibilité de les filtrer et les exporter sous format csv.
Acteur principal : Utilisateur.
Séquencement :
Le cas d’utilisation commence lorsque :
Pré-condition :
L'utilisateur s’est authentifié.
L’utilisateur a accédé à l’interface de gestion des points de passage.
Scénario nominal :
1. L’utilisateur accède à l’interface de gestion des points de passage ;
2. L’utilisateur choisit l’opération souhaitée ;
3. L’utilisateur a effectué l’opération avec succès ;
b. Description textuelle
Identification :
Nom du cas : Gérer les feuilles de route ;
Description : Permettre de créer une feuille de route, consulter son
détail, la modifier, la supprimer et filtrer ou exporter sous format
csv la liste des feuilles de route.
Acteur principal : Utilisateur.
Séquencement :
Le cas d’utilisation commence lorsque :
Pré-condition :
L'utilisateur s’est authentifié.
L’utilisateur a accédé à l’interface de gestion des feuilles de route.
Scénario nominal :
1. L’utilisateur accède à l’interface de gestion des feuilles de route ;
2. L’utilisateur choisit l’opération souhaitée ;
3. Le système lui affiche l’interface concernée ;
4. L’utilisateur remplit le formulaire s’il est nécessaire ;
5. L’utilisateur enregistre les modifications et se redirige vers
l’interface de gestion des feuilles de route.
Scénarios d’erreur :
E1. Champs obligatoires.
- L’enchaînement E1 démarre au point 4 du scénario nominal.
5. L’utilisateur tente d’enregistrer ses modifications sans remplir les
champs concernés, et le système lui affiche un message d’erreur.
- Le scénario nominal reprend au point 4.
b. Description textuelle
Identification :
Nom du cas : Gérer les récurrences ;
Description : Permettre de créer une récurrence, la modifier, la
supprimer, la filtrer et l’arrêter.
Acteur principal : Utilisateur.
Séquencement :
Le cas d’utilisation commence lorsque :
Pré-condition :
L'utilisateur s’est authentifié.
L’utilisateur a accédé à l’interface de gestion des récurrences.
Scénario nominal :
1. L’utilisateur accède à l’interface de gestion des récurrences ;
2. L’utilisateur choisit l’opération souhaitée ;
3. Le système lui affiche l’interface concernée ;
4. L’utilisateur remplit le formulaire s’il est nécessaire ;
5. L’utilisateur enregistre les modifications et se redirige vers
l’interface de gestion des récurrences.
Scénarios d’erreur :
E1. Champs obligatoires.
- L’enchaînement E1 démarre au point 4 du scénario nominal.
5. L’utilisateur tente d’enregistrer ses modifications sans remplir les
champs concernés, et le système lui affiche un message d’erreur.
- Le scénario nominal reprend au point 4.
Conclusion
Chapitre 3 : Conception
Introduction
Pour modéliser l’aspect statique de notre application, nous allons faire recours
au diagramme de classes qui est un diagramme important dans toutes les méthodes
orientées objets. Quant à la modélisation dynamique, elle sera définie par les
diagrammes de séquences.
I. Modélisation statique
1. Diagramme de classes
Les diagrammes de classes sont les diagrammes les plus répandus dans les
systèmes de modélisation orientés objets, car ils fournissent une vue globale d'un
système en présentant ses classes, interfaces et collaborations, et les relations entre elles.
Un diagramme de classes met en œuvre des classes, contenant des attributs et
des opérations, et reliées par des associations ou des généralisations.
Une classe représente la description abstraite du comportement et du type d’un
ensemble d’objets possédant les mêmes caractéristiques. Les éléments de cet ensemble
définissent des instances de classe.
La figure ci-dessous montre le diagramme de classes qui collaborent au
fonctionnement de notre application.
2. Dictionnaire de données
Après l’illustration des différentes classes de notre application, nous allons
établir le dictionnaire de donnée de chaque classe.
Classe véhicule
Tableau 10 - Dictionnaire de données de la classe véhicule
Classe modèle
Tableau 11 - Dictionnaire de données de la classe modèle
Classe historique
Tableau 15 - Dictionnaire de données de la classe historique
Classe récurrence
Tableau 16 - Dictionnaire de données de la classe récurrence
La figure 24 ci-dessus illustre le scénario pour gérer les points de passage d’un
modèle. Les trois figures ci-dessous représentent cette gestion qui consiste à ajouter,
modifier et supprimer un point de passage.
Les figures ci-dessous distinguent les différentes interactions pour filtrer les
points de passage et les exporter sous format CSV.
Figure 29 - Diagramme de séquences (niveau conception) : Exporter les points de passage sous format CSV
Les figures ci-dessous montrent les différentes actions à faire pour consulter,
ajouter, modifier, supprimer, filtrer et exporter les feuilles de route.
Conclusion
À ce propos, nous avons suivi la méthode de conception UML pour illustrer les
interactions de nos acteurs et notre système par un diagramme de classes et des
diagrammes de séquences.
Chapitre 4 : Réalisation
Introduction
L’implémentation est la phase la plus importante après celle de la conception.
Cette phase consiste à choisir les outils de développement nécessaires pour la mise en
place de notre application, ainsi qu’à montrer ses interfaces principales.
I. Environnement de développement
1. Environnement matériel
Pour la réalisation de notre projet, nous disposons de deux ordinateurs
possédant les caractéristiques suivants :
2. Environnement logiciel
Pour mener à terme ce projet, nous avons utilisé l’environnement logiciel
suivant :
Visual Studio Code comme éditeur de code ;
Lucidchart comme logiciel de création de diagrammes et schémas ;
Wampserver v3.2.2.2 comme un environnement serveur ;
Un système d’authentification ;
Un système de migrations pour les bases de données ;
Une gestion des sessions ;
Un système d’envoi de mail.
Le fait que Laravel est un framework très complet et très puissant le rend un choix
compatible au développement de notre application Backend.
3.4.1. GitHub
3.4.2. BitBucket
BitBucket [8] est un simple outil de gestion de versions logicielles basé sur
les systèmes open source de contrôle de révisions Git et Mercurial. Il dispose d’un
espace de gestion de projet, une forte intégration de Trello et Jira, un environnement de
collaboration autour du code source et offre des intégrations et livraisons continues.
C’est un service entièrement gratuit, permettant la création d’un nombre
illimité de dépôts et référentiels privés, accessibles par cinq utilisateurs au maximum.
Pour le fonctionnement privé, il offre des prix convenables aux enseignants et aux
étudiants.
3.4.3. Postman
Postman [9] est l’une des solutions pour interagir avec les API REST et les
tester. Il présente une interface graphique conviviale pour construire et exécuter des
requêtes HTTP, les stocker dans un historique, les organiser en collections et lire ses
résultats.
3.4.4. Bootstrap
Bootstrap [10] est un framework open source qui regroupe plusieurs outils
dédiés à la création du design des sites et des applications web. C’est une combinaison
des codes HTML et CSS ainsi que des extensions JavaScript.
Ce framework facilite la création des sites compatibles avec tous les
navigateurs, tout en disposant d’un système de grille permettant le positionnement des
éléments HTML sur une page web et par conséquence, réduire le temps du
développement du site.
II. Application
1. Calendrier réel
Étude préalable :
4 16/02/2021 19/02/2021
- Réunion avec les développeurs pour
se familiariser avec les fonctionnalités
de l’application STG Fleet.
Sprint 0
Étude détaillée :
Étude technique :
- Autoformation.
- Conception générale.
2 24/03/2021 25/03/2021
-Validation de la conception.
Sprint 1
Sprint 3
2. Architecture globale
L’architecture logicielle consiste à décrire proprement l’organisation et la
structuration d’un système, sa décomposition en sous-systèmes et leurs interactions.
Contrairement aux spécifications de l’analyse fonctionnelle, l’architecture
logicielle répond à la question « comment faire ».
3.1. Authentification
3.2.1.
La création d’une feuille de route dépend des horaires de cette dernière. Par
exemple, si l’utilisateur tente de créer une feuille de route dont le jour de début est le
même jour de création de cette feuille alors que l’heure de début est déjà passée, un
message d’erreur s’affiche.
L’utilisateur peut filtrer la liste des feuilles de route selon le nom des véhicules
ou des modèles.
Cette figure donne l’aperçu de l’interface de gestion des modèles, qui permet à
l’utilisateur de créer, modifier, supprimer, filtrer, et gérer les points de passage d’un
modèle pour l’utiliser par la suite dans la création d’une feuille de route.
La figure 61 ci-dessous présente la liste des points de passage utilisés dans les
feuilles de route. L’utilisateur a la possibilité d’exporter ou filtrer les points de passage selon
les points d’intérêt ou les noms des véhicules, ou bien selon les points de passage planifiés,
réalisés ou non réalisés.
Dans cette interface, l’utilisateur peut créer, modifier, supprimer, filtrer une
récurrence selon les noms des véhicules ou des modèles ainsi qu’arrêter une récurrence
si elle est en cours.
Conclusion
À ce stade, nous arrivons à la fin de notre étude de projet. Ce dernier chapitre a
apporté sur la description des environnements matériels et logiciels ainsi que les outils
de développement avec lesquels nous avons construit notre application. Aussi, nous
avons illustré les principales fonctionnalités de notre application dans quelques
interfaces graphiques.
Par la suite, nous passerons à la conclusion générale de notre projet.
Conclusion générale
Dans notre projet de fin d’études, nous avions l’opportunité de mettre en œuvre
une application de gestion de tournées logistiques pour la société STG Maroc.
Afin de faciliter la planification journalière des tournées pour les clients de
STG, nous avons procédé à une étude de l’existant qui nous a aidés à analyser et
spécifier les différents besoins de l’application. Ensuite, nous avons détaillé notre étude
conceptuelle en utilisant le langage UML. Enfin, la dernière étape était d’identifier
l’environnement de développement et exposer les interfaces de notre application.
De toute façon, l’application de gestion de tournées a aidé à répondre à la
plupart de difficultés rencontrées par les clients de STG, dont l’organisation des
tournées est rendu plus simple et automatisée, la chose qui va donner une vision claire
sur toutes les missions du transport de chaque client.
En général, ce travail nous a permis de mettre en pratique et enrichir nos
connaissances techniques et informatiques acquises durant notre formation à l’ENSA. Il
a consisté non seulement à l’apprentissage et l’utilisation d’un nouveau framework et
suivre de multiples formations, mais aussi à la familiarisation avec la gestion d’un projet
d’une façon organisée et structurée et à l’intégration dans le monde professionnelle.
Cependant, les conditions de travail nous ont posé une certaine difficulté au
début de notre stage comme nous étions séparées de l’équipe de développement, la
chose qui nous a imposé des déplacements fréquents au département technique pour
suivre notre avancement de travail.
En perspectives, l’application peut être améliorée sous différents aspects,
notamment l’amélioration du design, l’implémentation des différents tests, le
développement de l’interface tableau de bord et l’ajout de nouvelles fonctionnalités
comme l’envoi des notifications.