Vous êtes sur la page 1sur 79

2021 / 2022

SPÉCIALITÉ : ERP-BI

Développement d’un système décisionnel


pour la plateforme Workpoint

Réalisé par: GARA HELLAL Mohamed Talel

Encadrant ESPRIT: Mme IBNELFEKIH Οumeima

Encadrant Entreprise: Mme HASNAOUI Amira


Encadrant Académique
Madame IBNELFEKIH Oumeima

Encadrant de l’entreprise
Madame Hasnaoui Amira
Dédicace

A ma très chère mère

Une maman unique et extraordinaire, une source inépuisable de tendresse et de bonne


humeur, merci de m’avoir toujours soutenue et encouragée. Merci d’avoir toujours cru en
moi, ta présence à mes côtés a toujours été une source de force.

A mon très cher père

Aucune dédicace ne saurait exprimer l’amour, le respect et l’attachement que j’ai pour toi.
Rien au monde ne pourra compenser les sacrifices que tu as faits n’épargnant ni santé ni
efforts pour mon éducation, mes études et mon bien-être. J’espère que tu es fier de moi et
J'espère ne jamais te décevoir, ni trahir ta confiance et tes sacrifices.

A mon très cher frère

Pour ton amour, tendresse et encouragements, je ne saurai traduire sur du papier l'affection
que j'ai pour toi. Merci d’avoir toujours été à mes côtés cher bilel, je t’aime beaucoup
Remerciements

Au terme de ce travail, j’ai l’immense plaisir d’exprimer mes sincères gratitude envers tous
ceux qui ont contribué à son aboutissement.

En premier lieu, je voudrais bien remercier Madame Amira Hasnaoui, mon encadrante durant
ce stage et la fondatrice de la startup X-point, pour m’avoir donné l’opportunité de réaliser mon
stage de fin d’études avec eux, pour ces précieux conseils et pour le support moral qu’elle m’a
donné tout le long de mon stage.

Je remercie aussi tous les membres du jury pour leur bienveillance d’avoir acceptée d’évaluer
ce travail.

Mes vifs remerciements s’adressent à Madame Oumeima IbnElfekih, mon encadrante


académique pour ses directives, ses explications, ses constructives critiques et ses précieux
conseils tout au long de la période du stage et jusqu’à l’aboutissement de ce projet.

Je remercie tous les membres de ma famille, qui ont été toujours là pour m’offrir l’aide et le
support nécessaire pour devenir ce que je suis maintenant, plus précisément, un remerciement
très spécial à ma chère tante Afef et son mari Lotfi qui m’ont accueillie durant ces 5 ans chez
eux, qui m’ont offert toutes les conditions agréables pour réussir. Je voudrais bien remercier
mes cousins Jacem, seif et Jihen pour le support et l’amour continue qui m’ont fourni.

Je souhaite également remercier chaque personne qui a contribuée de près ou de loin à la


réalisation de ce travail.
Table des matières
Chapitre1 : Organisme d’accueil et Cadre du projet ......................................................................................... 3

Introduction ........................................................................................................................................................ 3

1. Présentation de l’organisme d’accueil ...................................................................................................... 3

2. Cadre général ............................................................................................................................................ 3


2.1. Contexte du projet .......................................................................................................................... 4
2.2. Etude de l’existant ........................................................................................................................... 4
2.3. Problématique ................................................................................................................................. 4
2.4. Solution proposée ........................................................................................................................... 5

3. Les besoins fonctionnels............................................................................................................................ 5

4. Les besoins non fonctionnels..................................................................................................................... 5

5. Méthodologie............................................................................................................................................ 6
5.1. Les méthodes agiles ........................................................................................................................ 6
5.2. Choix de la méthodologie adopté : ................................................................................................. 6
5.3. Les intervenants de SCRUM ............................................................................................................ 8

6. L'approches SCRUM appliquée à un projet BI ........................................................................................... 8


6.1. L’approche BOTTOM UP (Ralph Kimball) ........................................................................................ 9
6.2. L’approche TOP DOWN (BILL INMON) ............................................................................................ 9
6.3. Choix adopté ................................................................................................................................. 10

Conclusion ........................................................................................................................................................ 10

Sprint 0 : Planification du projet ..................................................................................................................... 11

Introduction ...................................................................................................................................................... 11

1. Identification des acteurs ........................................................................................................................ 11

2. Product Backlog ...................................................................................................................................... 11

3. Planification des sprints .......................................................................................................................... 12

4. Diagramme de cas d’utilisation .............................................................................................................. 12

Conclusion ........................................................................................................................................................ 13

Sprint 1 : Compréhension métier, donnée et chargement des données ......................................................... 14

Introduction ...................................................................................................................................................... 14

1. Sprint Backlog ......................................................................................................................................... 14


2. Compréhension métier ............................................................................................................................ 14

3. Compréhension des données .................................................................................................................. 14


3.1 Base de données ................................................................................................................................ 14

4. Diagramme de classe .............................................................................................................................. 19

5. Extraction des données ........................................................................................................................... 19


5.1. Technologies ................................................................................................................................. 20

Conclusion ........................................................................................................................................................ 20

Sprint 2 : Implémentation de l’entrepôt de donnée ....................................................................................... 21

Introduction ...................................................................................................................................................... 21

1. Sprint Backlog ......................................................................................................................................... 21

2. Modèles Datawarehouse ........................................................................................................................ 21


2.1. Modèle En étoile ........................................................................................................................... 21
2.2. Modèle flocon ............................................................................................................................... 22
2.3. Modèle Constellation .................................................................................................................... 22

3. Technologies ........................................................................................................................................... 23
3.1. Talend open studio ........................................................................................................................ 23
3.2. Pentaho Data intégration .............................................................................................................. 23
3.3. PostgreSQl ..................................................................................................................................... 24
3.4. Oracle Database ............................................................................................................................ 24

4. Comparaison entre les outils d’ETL ......................................................................................................... 25


4.1. Choix adopté ................................................................................................................................. 25

5. Implémentation de l’entrepôt de données .............................................................................................. 25


5.1. Implémentation des dimensions. .................................................................................................. 26
5.2. Implémentation de la table de faits .............................................................................................. 33

6. Modèle Datawarehouse.......................................................................................................................... 35

Conclusion ........................................................................................................................................................ 35

Sprint 3 : Implémentation des tableaux de bords ........................................................................................... 36

Introduction ...................................................................................................................................................... 36

1. Sprint Backlog ......................................................................................................................................... 36

2. Technologies ........................................................................................................................................... 36
2.1. Tableau .......................................................................................................................................... 36
2.2. QlikView ........................................................................................................................................ 37
2.3. Microsoft Power Bi ........................................................................................................................ 37

3. Les composants Power Bi ........................................................................................................................ 37

4. Colonnes et mesures calculés.................................................................................................................. 39


4.1. KPI’S ............................................................................................................................................... 39
4.2. Colonnes calculées ........................................................................................................................ 40

5. Implémentation ...................................................................................................................................... 43
5.1. Tableau de bord Parking ............................................................................................................... 43
5.2. Tableau de bord des floors ............................................................................................................ 44

Conclusion ........................................................................................................................................................ 46

Sprint 4 : Analyse prédictive ........................................................................................................................... 47

Introduction ...................................................................................................................................................... 47

1. Sprint Backlog ......................................................................................................................................... 47

2. Technologies ........................................................................................................................................... 47
2.1. Python ........................................................................................................................................... 47
2.2. Jupyter notebook .......................................................................................................................... 47
2.3. Anaconda ...................................................................................................................................... 48

3. Méthodologie.......................................................................................................................................... 48

4. Machine learning .................................................................................................................................... 49


4.1. Apprentissage supervisé ............................................................................................................... 49
4.2. Apprentissage non supervisé ........................................................................................................ 50

5. Objectif.................................................................................................................................................... 50
5.1. Compréhension des données ........................................................................................................ 50
5.2. Préparation des données .............................................................................................................. 52

6. Modeling ................................................................................................................................................. 54

Conclusion générale et perspectives .............................................................................................................. 57


Liste des figures
Figure 1: Présentation schématique du processus du développement agile basé sur Scrum ................................ 7

Figure 2 : Kimball Model ......................................................................................................................................... 9

Figure 3 : Inmon Model ......................................................................................................................................... 10

Figure 4 : Diagramme cas d'utilisation .................................................................................................................. 12

Figure 5 : Logo MongoDB Atlas ............................................................................................................................. 15

Figure 6 : Desk Collections .................................................................................................................................... 15

Figure 7 : Zone Collections ................................................................................................................................... 16

Figure 8 : Floor Collection ..................................................................................................................................... 16

Figure 9 : User Collection ...................................................................................................................................... 17

Figure 10 : Histoire Collection ............................................................................................................................... 18

Figure 11 : Diagramme de classe .......................................................................................................................... 19

Figure 12 : interface MongoDB Compass .............................................................................................................. 20

Figure 13 : Logo Talend ........................................................................................................................................ 23

Figure 14 : Logo Pentaho ...................................................................................................................................... 24

Figure 15 : Logo PostgreSQL .................................................................................................................................. 24

Figure 16 : Logo Oracle ......................................................................................................................................... 24

Figure 17 : Connexions avec base source ............................................................................................................. 26

Figure 18 : Configuration Base de données source ............................................................................................... 27

Figure 19 : Connexion base de données destination ............................................................................................ 28

Figure 20 : Configuration base de données destination ....................................................................................... 28

Figure 21 : Mapping Dim_Desk ............................................................................................................................. 29

Figure 22 : Job Desk .............................................................................................................................................. 29

Figure 23 : Configuration Dim_Desk ..................................................................................................................... 30

Figure 24 : Job Dim_Zone ...................................................................................................................................... 30

Figure 25 : Mapping Dim_Zone ............................................................................................................................. 31

Figure 26 : Job Dim_Floor ..................................................................................................................................... 31

Figure 27 : Job dim_User ....................................................................................................................................... 32


Figure 28 : job dim_Grade..................................................................................................................................... 32

Figure 29 : implémentation Dim_Date .................................................................................................................. 33

Figure 30 : Editer mapping .................................................................................................................................... 34

Figure 31 : Job fact_table ...................................................................................................................................... 34

Figure 32 : Modèle datawarehouse ...................................................................................................................... 35

Figure 33 : Logo Power BI...................................................................................................................................... 39

Figure 34 : Dashbord Parking ................................................................................................................................ 43

Figure 35 : Tableau de bord floor 1 ....................................................................................................................... 44

Figure 36 : Tableau de bord floor 2 ....................................................................................................................... 45

Figure 37 : tableau de bord par type..................................................................................................................... 46

Figure 38 : Logo python......................................................................................................................................... 47

Figure 39 : Logo jupyter ........................................................................................................................................ 48

Figure 40 : Logo Anaconda .................................................................................................................................... 48

Figure 41 : Méthodologie Crisp-Dm ...................................................................................................................... 49

Figure 42 : Suppression des variables ................................................................................................................... 52

Figure 43 : Conversion du variable total charges .................................................................................................. 52

Figure 44 : Matrice de corrélation ........................................................................................................................ 53

Figure 45 : Implementation du KNN ..................................................................................................................... 55

Figure 46 : Matrice de confusion .......................................................................................................................... 56


Acronymes et abréviations

BI : Business intelligence.

KPI : Key performance indicator.

ETL : Extract Transform Load.

DWH : Datawarehouse.

SQL : Structured Query Language.

NoSQL: Not Only Structured Query Language.

DIM : Dimension.

FACT : Table de fait.

OLAP : Online Analytical Processing

DAX : Data Analysis Expression.

KNN : K-Nearest Neighbour

JSON : JavaScript Object Notation

XML : Extensible Markup Language


INTRODUCTION GENERALE

De nos jours, le monde entier connait une révolution technologique considérable dans les
différentes secteurs grâce à l’informatique qui est toujours en évolution. Certes, on connait que
la plus grande richesse d’une entreprise est son information qui est une clé primaire de leur
réussite, mais la faite de trouver les informations sous de nombreuse données, déstructurés et
hétérogènes, les responsables des organisations trouvent des difficultés au niveau de la prise de
décision à travers ces données, qui peuvent être représentés sous de nombreuses forme.

L’informatique décisionnelle, dite aussi Business Intelligence est destiné pour cette optique.
Elle prend une place importante dans les systèmes d’information depuis son apparition. La BI
permet aussi une sélection des informations opérationnelles pertinentes pour chaque entreprise.
Celles-ci sont ensuite normalisées pour alimenter un entrepôt de données.

A partir de ce concept est née la notion de modélisation dimensionnelle. Elle est fondamentale
pour répondre aux exigences de rapidité et pour faciliter l’analyse. La BI permet aussi de rendre
les données d’un entrepôt cohérentes, intelligibles, lisible et faciles à accéder. L’informatique
décisionnelle doit produire des indicateurs et des rapports à l’attention des analystes.

Dans ce cadre, l’équipe de la startup X-point a décidé de mettre en place un système décisionnel
pour leur plateforme nommé Workpoint afin de permettre au admin de mieux analyser et mieux
suivre l’occupation de son espace de travail et l’activité de ses employés.

Nous avons abordé durant ce rapport le travail que nous avons réalisé au sein de X-point qui
s’articulera sur les six chapitres suivants :

Le premier chapitre intitulé « Organisme d’accueil et cadre du projet » est réservé à l’étude
générale du projet, il présentera l’entreprise d’accueil

Le deuxième chapitre intitulé « Planification du projet » présente le sprint 0, il consiste à


spécifier les fonctionnalités du projet et la planification des Sprints

Le troisième chapitre intitulé « Compréhension métier, donnée et chargement des données »


présente le sprint 1, durant lequel on va explorer les données de l’entreprise, les comprendre et
ensuite charger que les données qu’on aurait besoin.

1
Le quatrième chapitre intitulé « Implémentation de l’entrepôt de donnée » présente le sprint
2, il consiste à implémenter notre Datawarehouse.

Le cinquième chapitre intitulé « Implémentation des tableaux de bords » présente le sprint


3, durant lequel on va implémenter les différents tableaux de bords affins d’atteindre nos
objectifs.

Le sixième chapitre intitulé « Analyse prédictive » présente le sprint 4, durant lequel on va


implémenter un model prédictif

2
Chapitre1 : Organisme d’accueil et Cadre du projet

Introduction

Dans ce premier chapitre intitulé Cadre Général, nous nous intéressons à introduire l’organisme
d’accueil X-point, au cadre et au contexte du projet.

Ensuite, nous exposons la problématique, l’étude de l’existant, la solution proposée pour ce


projet, puis la méthodologie de travail choisie.

1. Présentation de l’organisme d’accueil

X-Point est une startup tunisienne labellisée, qui a été fondée en 2021 qui développe des
solutions facilitant les interactions de l’employé avec son environnement de travail. Son activité
principale est la création et l’exploitation de plateformes innovante.

« Workpoint » est une plateforme qui a été développée dans cette optique. En effet, l’objectif
du projet « WorkPoint » est de proposer une solution technologique complète qui accompagne
les employés et facilite leur quotidien à travers l’exposition de plusieurs services offerts par leur
structure professionnelle, à consommer n’importe où et n’importe quand, permettant ainsi une
meilleure planification, une amélioration de la productivité, une automatisation des flux et
traitement, et une gouvernance optimale des ressources de l’entreprise avec une vue 360° de
l’employé. Les flux sont automatisés et tracés, les règles et politiques internes exposées et
respectées, l’expérience est digitalisée et les données sont consolidées et bien exploitées.

2. Cadre général

Dans cette partie, nous introduisons le cadre général du projet, ensuite nous aborderons l’étude
de l’existant et sa critique puis la problématique et nous concluons par la solution proposée.

3
2.1. Contexte du projet

Afin d’atteindre l’objectif d’une vue 360°, et d’une meilleure gouvernance la startup « X-
point » cherche à améliorer la plateforme « Workpoint », en introduisant un module décisionnel
afin d’aider ses clients à mieux gérer leur espace de travail, superviser le comportement de ces
employés et faciliter la prise des décisions.

2.2. Etude de l’existant

L’étude de l’existant est une étape importante dans chaque projet et précisément dans les projets
BI, elle est formée à évaluer le système que nous voulons entrainer des solutions pour indiquer
les insuffisances et les défaillances que nous devons atténuer.

Notre plateforme offre aux employés différentes fonctionnalités tel que la recherche des
disponibilités des ressources, ils peuvent consulter les ressources accessibles sur les étages afin
d’effectuer la réservation d’un bureau ou de place parking et Après avoir passé une réservation
les employés peuvent confirmer la réservation en faisant l’opération de Checkin ou bien ils
peuvent annuler la réservation. Ils peuvent consulter l’historique des opérations et les
réservations en cours.

Et puisque la startup « X-point » est récemment fondée, elle ne peut pas implémenter une
plateforme complète qui englobe toutes les fonctionnalités en courte durée donc elle n’a pas
encore vraiment implémenté un système décisionnel pour sa plateforme. Donc dans notre
projet, nous avons développé une idée innovante afin de répondre aux besoins des clients et
rendre la plateforme complète et pour mieux se projeter dans le futur.

2.3. Problématique

De côté employé la plateforme « Workpoint » a vraiment facilité leur quotidien, en lui


permettant de réserver son espace de travail d’avance, de choisir le mode de travail qu’il veut
que ce soit de travailler à partir de sa maison ou sur site. Mais d’une vue 360 °, et du coté admin
l’application n’a pas encore répondu à tous les objectifs à cause de l’absence d’un système
décisionnelle dans la plateforme, le suivi de comportement des employés et les espaces de
travail est difficile et le Grand volume de donné non structuré qui rend le suivi des employés
difficile pour notre admin de la plateforme.

4
2.4. Solution proposée

Afin de rendre la plateforme performante et complète de tous les côtés, ou elle répond aux
besoins du client, nous avons implémenter une solution décisionnelle qui permet à l’admin de
la plateforme de suivre l’occupation des espaces de travail, le parking et le comportement de
ces employés et leur degré d’adhésion à l’utilisation de la plateforme.

Notre solution ne s’arrête pas ici, elle offre aussi au client la possibilité de viser le futur en
faisant des prédictions concernant le comportement des clients selon un historique bien précis

Pour ce faire , notre solution consiste tout d’abord à comprendre les besoins métiers et les
données afin d’extraire que les données nécessaire pour implémenter notre datawarehouse en
se basant sur la table de fait Fact_History et d’autre différentes dimensions puis nous allons
analyser les données afin d’implémenter des tableaux de bord convenable et précis qui
répondent aux besoin du client , puis l’analyse prédictif tout en se basant sur des données
historisé.

3. Les besoins fonctionnels

Dite aussi les besoins métier, les besoins fonctionnels sont les différentes fonctionnalités
réaliser par le système pour répondre à un problème existant. Voici les différents besoins
fonctionnels pour notre projet :

• Collecte des donnés à partir de la base de données source


• Implémentation des jobs avec le logiciel d’intégration de donné Talend
• Modélisation du Datawarehouse dans une nouvelle base de données destination
• Extraire les différentes KPI nécessaire pour l’analyse.
• Visualisation des tableaux de bord
• Prédiction du comportement des employés

4. Les besoins non fonctionnels

Les besoins non fonctionnels sont des critères permettent d’améliorer la qualité du produit. Ils
représentent aussi les exigences implicites auxquels le système doit répondre afin d’assurer une
meilleure qualité du produit.

5
Les critères à respecter dans notre solution sont :

• Performance : le chargement de résultat doit être rapide et assure la qualité de


l’information.
• Sécurité : notre solution doit répondre aux normes de sécurité nécessaires.
• Ergonomie : La solution doit présenter une interface compréhensible et facile à utiliser.
• Exactitude : les données et les calculs doivent être correcte
• Disponibilité : Les données doivent être toujours disponibles.

5. Méthodologie

La réalisation du projet dans les délais de livraison est surement l’objectif principal de chaque
équipe qui développe des logiciels. L’un des problèmes les plus courants rencontrés lors de la
création de logiciels est la faiblesse des spécifications et les changements soudains des
exigences qui peuvent se passer. Cela a un impact non seulement sur l’équipe de
développement, mais cela a également un impact sur le temps nécessaire à la mise en œuvre du
projet qui peut entrainer des délais de livraison. Pour éviter ces situations critiques, nous
adoptons une approche agile dans la gestion de nos projets.

5.1. Les méthodes agiles

Les problématiques qu’on a mentionnées précédemment ont encouragé les informaticiens à


réinventer des méthodes de gestion de projet et de conception en introduisant ce qu’on appelle
les méthodes agiles. C’est une approche incrémentale et itérative, menée dans un esprit
collaboratif. Elle peut générer un produit de bonne qualité tout en prenant en compte l’évolution
des besoins des clients. En suivant cette approche, le logiciel est conçu dans son ensemble et
peut être construit étape par étape.

5.2. Choix de la méthodologie adopté :

Afin de mieux satisfaire les attentes de son client, X-point a choisi d’aborder le projet selon une
approche agile qui permet une certaine flexibilité afin de s’adapter aux éventuels changements.
Le projet sera donc géré par le Framework SCRUM.

6
La méthodologie SCRUM est la plus utilisée des méthodes Agile dans le monde. Elle définit
un cadre de travail qui permet de réaliser des projets complexe. En effet cette méthode peut être
utilisée dans tout type de projet d’une manière simple.

Ainsi, le choix de la méthodologie SCRUM était pour les raisons suivantes :

➢ Méthodologie efficace et simple


➢ Elle est Orientée projet
➢ Elle est développée et testée pour des « sprint »
➢ Elle accepte les changements
➢ Elle permet de garder un rythme durable
➢ Elle vise à chercher la qualité de la conception et l’excellence technique
➢ Elle est caractérisée par laisser l’équipe de s’auto-organiser
➢ SCRUM favorise la communication, l’orientation et l’Energie dans les équipes.

Voici une figure qui représente le cycle de vie de la méthodologie Scrum :

Figure 1: Présentation schématique du processus du développement agile basé sur Scrum

SCRUM est basé sur les étapes spécifiques suivantes, comme indiqué dans le schéma ci-
dessus :

7
- User Stories : c’est une explication générale d’une fonctionnalité logicielle écrite du point de
vue de l’utilisateur.

-Backlog du sprint : c’est une liste de tâches qui sont convenues par l’équipe de mêlée et qui
doivent être réalisées dans une période de temps appelée sprint. Il dure environ 2 à 4 semaines.

-Backlog produit : C’est liste qui contient plusieurs taches à réaliser.

-Scrum quotidien : c’est une réunion quotidienne qui dure 15 minutes chaque jour au cours de
laquelle l’équipe discute de ce qu’ils ont fait hier et ce qu’ils vont faire aujourd’hui.

5.3. Les intervenants de SCRUM

La méthodologie SCRUM définit trois types d’intervenants :

• Product Owner : c’est le propriétaire du produit, il définit les caractéristiques finales du


produit souhaité.
• SCRUM master : c’est le maitre SCRUM, il est responsable d’éliminer les obstacles
éventuels qui empêchent le bon déroulement des sprints. Il a pour but la supervision de
l’avancement du projet et d’assurer la communication, la motivation et la productivité
au sein de l’équipe.
• SCRUM Team : c’est l’équipe de SCRUM, elle recouvre l’ensemble des personnes en
charge du produit.

6. L'approches SCRUM appliquée à un projet BI

La réalisation d’un projet informatique est une opération complexe qui nécessite des ressources
importantes en termes de finances, de temps et de personnel. De plus, une mauvaise étude peut
aboutir à un résultat non conforme à la demande.

Il s'agit deux approches différentes pour une conception des entrepôts des données qui sont les
plus utilisés de deux pionniers des data Warehouse Bill Inmon et Ralph Kimball.

Elles sont présentées comme suit :

• L’approche TOP DOWN

• L’approche BOTTOM UP

8
6.1. L’approche BOTTOM UP (Ralph Kimball)

L'approche de Kimball pour concevoir une maison d'entrepôt de données a été présentée par
Ralph Kimball. Cette approche commence par la découverte des processus métier. Ces
informations sont analysées et bien documentées. Le logiciel Extract Transform Load (ETL)
collecte toutes les données de plusieurs sources de données appelées magasins de données et
les charge dans une zone commune appelée staging Area. Celui-ci est ensuite converti en cube
OLAP [1].

L’architecture de la maison Kimball Datawarehouse est illustrée ci-dessous :

Figure 2 : Kimball Model

6.2. L’approche TOP DOWN (BILL INMON)

Approche Inmon de conception d’une maison Datawarehouse a été introduite par Bill Inmon.
Cette approche commence par le modèle de données d’entreprise. Ce modèle reconnaît les
domaines clés et prend également en charge le client, le produit et le fournisseur. Dans cette
approche la création d'une data Warehouse est une étape primordiale selon Imnon, afin d'assurer
l'intégrité et la cohérence des données au sein d'une entreprise, puis à partir de cet entrepôt de
données, qui est la source unique, on fait la création des divers Datamart [1].

L’architecture de la maison Inmon Datawarehouse est illustrée ci-dessous :

9
Figure 3 : Inmon Model

6.3. Choix adopté

Après avoir définit les deux principales approches de conception du data Warehouse, on trouve
que l'approche BOTTOM UP est le plus adaptée à notre projet. On va commencer par créer des
Datamart afin d'obtenir des résultats sans l'attente de la conception d'un référentiel centralisé
(Datawarehouse).

Conclusion

Dans ce premier chapitre, on a présenté l’organisme d’accueil et on a placé notre projet dans
son contexte en faisant l’étude de l’existant, la problématique et la solution proposé qu’on va
la réaliser en respectant les concepts de la méthodologie SCRUM et l’approche Bottom Up pour
l’implémentation du datawarehouse. Ce qui va nous mener au chapitre suivant intitulé Sprint 0

10
Sprint 0 : Planification du projet

Introduction

Dans ce deuxième chapitre intitulé sprint 0 consiste à définir les différents acteurs du système
et leur privilège. Après on va faire le backlog du produit et on va faire la planification du
processus des sprint en fonction des besoins fonctionnel et non fonctionnel.

1. Identification des acteurs

Un acteur est une entité qui n’appartient pas au système. Il peut être une personne ou un autre
système informatique qui utilise les services offerts par les interfaces de l’application.

Notre Système contient un seul utilisateur qui est l’admin, Il le CEO de l’entreprise.

Cet acteur a un accès illimité aux différents tableaux de bord, comme il peut modifier ces
tableaux de bord et choisir parmi les membres de son équipe ceux qui peuvent accéder aux
visualisations.

2. Product Backlog

Le Product Backlog est une étape indispensable dans la méthodologie SCRUM, il appartient au
Product Owner, il englobe toutes les fonctionnalités qui vont être mis en œuvre durant la
planification du sprint. Il contient ces éléments :

• Id : c’est l’identifiant unique de la fonctionnalité


• Fonctionnalité : un service contient plusieurs user stories
• Id UserStory : il représente un identifiant unique pour UserStory
• Story : elle représente une fonctionnalité qui doit être achever
• Priorité : Elle représente l’importance de chaque histoire
• Estimation : elle représente la durée qu’elle peut prendre une tache, elle représenté en
jours

11
Afin de mieux réaliser notre projet et afin d’assurer son meilleur avancement nous avons
commencé par la planification des sprints.

Vous pouvez voir le backlog de produit dans l’annexe 1.

3. Planification des sprints

La planification des sprints est une étape indispensable dans la méthodologie scrum, elle nous
permet d’identifier les différents sprints, les user stories et la durée estimée pour chaque sprint.

Vous pouvez consultez la planification des sprints dans l’annexe 2.

4. Diagramme de cas d’utilisation

Voici le diagramme de cas d’utilisation du notre système :

Système d’aide à la décision

Examiner les tableaux de bords

Exécuter les jobs Talend

Figure 4 : Diagramme cas d'utilisation

12
Conclusion

Dans ce deuxième chapitre, nous avons identifié les acteurs de notre application ainsi que le
Product Backlog, le diagramme de cas d’utilisation ainsi que la planification des différents
sprints qu’on a fait durant ce stage. Dans le chapitre suivant, nous allons détailler le premier
sprint la compréhension des données.

13
Sprint 1 : Compréhension métier, donnée et chargement
des données

Introduction

Dans ce chapitre, nous allons explorer les données de la startup afin de les comprendre et
extraire seulement les données nécessaires pour implémenter notre solution décisionnelle.

1. Sprint Backlog

Le sprint backlog, c'est la liste de l'ensemble des éléments à réaliser tout au long du sprint, il
décrit les fonctionnalités à faire durant ce sprint.

Vous pouvez consulter le sprint du backlog dans l’annexe 3.

2. Compréhension métier

La première étape de tout projet est la compréhension métier qui se concentre sur la
compréhension des objectifs et des exigences du projet. Comment réussir sans comprendre le
métier en question. Dans ce cadre, nous avons lancé notre recherche afin de pouvoir découvrir
le secteur de travail de la startup X-point, le type de la base de données qu’elle utilise, le produit
qu’elle présente et le client direct avec la Startup. Donc notre mission était d’implémenter une
solution décisionnelle pour la plateforme.

Ce qui nous a mené à l’étape suivante qui est la compréhension de donné afin de bien réussir
notre projet.

3. Compréhension des données

3.1 Base de données

Afin d’assurer l’analyse et l’organisation rapides des données variées de très grand volume, la
base de données utilisée pour développer la plateforme Workpoint est une base de données

14
NoSQL (Not Only SQL) stocké dans le système de gestion de base données MongoDB. Plus
précisément, dans le cloud de MongoDB appelée MongoDB Atlas.

Voici ci-dessous le logo de MongoDB Atlas :

Figure 5 : Logo MongoDB Atlas

Nous allons commencer notre travail à partir des collections qui se trouvent dans le cloud de
MongoDB, voici quelques extraits des collections que la startup a utilisé afin d’implémenter
leur plateforme :

• Desk Collection

Figure 6 : Desk Collections

La collection Desk contient les attributs suivants :

➢ Id Desk : id unique pour représenter le desk


➢ Liste de réservations : représente les réservations établies sur le Desk
➢ Name : Le nom de la Desk
➢ IsBlocked : De type Boolean pour indiquer si la table est accessible ou pas
➢ Zone : Pour indiquer à quelle zone appartient le desk
15
➢ QRCode : Pour effectuer le Checkin et Checkout opération.

• Zone collection

Figure 7 : Zone Collections

La collection Zone contient les attributs suivants :

➢ Id Zone : id unique pour représenter la zone


➢ Desk : représente la liste des desks dans chaque zone
➢ Name : Le nom de la Zone
➢ floor : Pour indiquer à quelle floor appartient la zone

• floor collection

Figure 8 : Floor Collection

La collection floor contient les attributs suivants :

16
➢ Id floor : id unique pour représenter le desk
➢ Liste des zones : représente la liste des zones dans chaque floor
➢ Name : Le nom de la floor
➢ Building: le building ou il appartient le floor
➢ Floor_num : Pour indiquer le numéro du floor

• User collection

Figure 9 : User Collection

La collection user contient les attributs suivants :

➢ Id user : id unique pour représenter l’employé


➢ Rôle : représente le rôle de l’utilisateur
➢ Réservation : Liste des réservations effectué par l’utilisateur
➢ FirstName : le nom de l’utilisateur
➢ Grade : Pour indiquer le grade de l’utilisateur
➢ ServiceLine : le serviceLine de l’utilisateur
➢ SubServiceLine : le SubserviceLine de l’utilisateur
➢ Group : Pour indiquer le groupe ou il appartient l’utilisateur

17
• Histoire collection

Figure 10 : Histoire Collection

La collection histoires contient l’historique de toutes les transactions faites par les employés
et elle contient les attributs suivants :

➢ Id Histoire : id unique pour représenter l’historique


➢ IsSystemOp : de type Boolean pour indiquer si le système a fait la transaction
automatiquement ou non
➢ Réservation : Liste des réservations effectué par l’utilisateur qui contient :
• Status : pour indiquer le statut de la transaction
• Timeslot : AM ou bien PM
• Desk : le desk réservé
• Reservationdate : pour indiquer la date de la réservation
➢ Transaction Type : le type de transaction (CHECKIN/ CHECKOUT/
RESERVATION/ CANCELLATION/ WFH)
➢ User : Pour indiquer l’utilisateur qui a fait cette transaction
➢ CreatedAt : pour indiquer la date de la création de la réservation
➢ UpdatedAt : pour indiquer la date de la modification de la réservation

La base de données fourni par la startup contient plein d’autre collections.

18
4. Diagramme de classe

Avant le commencement de l’implémentation de la plateforme Workpoint, l’équipe de


développement de la startup ont établi le modèle de diagramme de classe suivant :

Figure 11 : Diagramme de classe

En se basant sur ce diagramme de classe et ces données, on a commencé à extraire les données
nécessaires afin d’établir notre ETL et implémenter notre datawarehouse.

5. Extraction des données

Notre première étape pour commencer la transformation et le chargement de données dans notre
datawarehouse c’est l’extraction de données, donc on a commencé par importer les tables qu’on
aura besoin du MongoDB cloud vers notre machine pour avoir une base de données locale.

19
5.1. Technologies

Comme on a mentionné précédemment, notre base de données est Nosql stocké dans le système
de gestion de base donnée MongoDB, donc on va utiliser MongoDB Compass qui est une
interface graphique de MongoDB qui a été utilisée pour gérer la base des données.

Figure 12 : interface MongoDB Compass

Nous avons créé notre base de données WP_Data puis on a importé les collections nécessaires
pour commencer après le process d’ETL.

Conclusion

Dans ce chapitre, nous avons compris l'activité du projet et nous avons fait l’extraction des
collections nécessaires pour notre projet que nous allons utiliser ensuite dans la conception et
la mise en œuvre de l'entrepôt de données (Sprint 2) qui est l’objective du chapitre suivant.

20
Sprint 2 : Implémentation de l’entrepôt de donnée

Introduction

Dans ce troisième chapitre, notre objectif sera divisé en trois, tout d’abord on va extraire les
données nécessaires puis nous allons prédéfinir le modèle nécessaire du datawarehouse, enfin
stocker notre nouvelle base de données dans une nouvelle base destination qui sera sous forme
multidimensionnel.

1. Sprint Backlog

Vous pouvez consulter le sprint du backlog dans l’annexe 3.

2. Modèles Datawarehouse

Pour implémenter un système décisionnel, il faut organiser les idées, les décrire et les relier
entre elles pour faciliter le travail. C’est ce qu’on appelle la modélisation. Modéliser un système
avant de le construire permet de mieux comprendre son fonctionnement le but est de maîtriser
sa complexité en la transformant en graphisme, et d'établir ainsi une vision globale des données
collectées.

Pour Modéliser une Datawarehouse, il existe trois types de modélisation qu’on peut établir.

2.1. Modèle En étoile

Un schéma en étoile est le modèle le plus simple et le plus couramment utilisé dans la
conception d'un entrepôt de données. Il se compose d'une seule table de faits entourée de
nombreuses tables de dimensions non liées entre eux.

• Avantages

➢ Facilité de navigation : Cela simplifie grandement les requêtes (la table de faits
est liée à chaque table de dimension par une relation unique, une jointure unique)
➢ Efficace : Diminue le temps d’exécution.

21
• Inconvénients
➢ Toutes les dimensions ne sont pas liées aux mesures.
➢ Chaque dimension est stockée dans une table de dimension distincte qui se
traduit par dénormalisation.

2.2. Modèle flocon

C’est le modèle en étoile avec normalisation des dimensions. Il peut y avoir une dimension
hiérarchies pour diviser les tables de dimensions lorsqu'elles sont trop grandes.

• Avantages
➢ Normalisation des dimensions
➢ Réduction des redondances

• Inconvénients
➢ C’est un modèle un peu plus complexe
➢ La performance est complexe avec de nombreuses jointures souvent coûteuses

2.3. Modèle Constellation

Le modèle en constellation représente plusieurs tables de faits qui sont liées aux dimensions
communes. Ces tables de faits font des relations avec les dimensions ou chaque table de fait a
ces propres dimensions, donc on peut conclure que le modèle on constellation est un ensemble
de modèle en étoile et le modèle en flocon en même temps.

• Avantages
➢ C’est une combinaison du modèle en étoile et modèle flocon, donc on peut
utiliser des requêtes complexe.
➢ Les tables dimensionnelles sont partagées par le nombre de tables de faits
• Inconvénients
➢ Il a de nombreuses jointures entre les tables dimensionnelles et de faits et il est
donc difficile à comprendre.
➢ Difficile à exploiter.

22
➢ Elle utilise plus d’espace de stockage dans la base de données par rapport le
modèle en étoile.

3. Technologies

3.1. Talend open studio

Talend est un logiciel de type ETL développé par la société Talend en 2005 basé sur le langage
java, il permet d’extraire des données d’une source, de modifier ces données, puis de les
recharger vers une destination. La source et la destination des données peuvent être une base de
données, un service web, un fichier csv. Et bien d’autres… grâce aux plusieurs composants et
des technologies qu’il offre ce logiciel [2].

Il y a plusieurs versions différentes de ce logiciel, comme Talend for data intégration, for big
data, for data quality et for ESB …

Figure 13 : Logo Talend

3.2. Pentaho Data intégration

Pentaho est un logiciel de Business Intelligence (BI) qui fournit des fonctionnalités
d’intégration de données, de services OLAP, de reporting, de tableaux de bord d’informations,
d’exploration de données et d’extraction, de transformation, de chargement (ETL).

Il permettant de créer des solutions de Business Intelligence. Bien que plus connu pour son
Business, le logiciel Pentaho est en effet quelques classes Java avec des fonctionnalités
spécifiques. En plus de ces classes Java, on peut créer n’importe quelle solution BI.

23
Figure 14 : Logo Pentaho

3.3. PostgreSQl

PostgreSQL est un système de gestion de base de données relationnelle et objet (SGBDRO)


gratuit et open source. Il est réputé pour sa puissance et sa robustesse, ses fonctions sont
puissantes et avancées, il est aussi performant et riche.

Figure 15 : Logo PostgreSQL

3.4. Oracle Database

Une base de données Oracle est une collection de données traitées comme une unité. Le but
d’une base de données est de stocker et de récupérer des informations connexes. IL est sécurisé
et rapide lors de la récupération des données.

Figure 16 : Logo Oracle

24
4. Comparaison entre les outils d’ETL

Avant de commencer notre partie ETL, on a fait une comparaison entre les outils d’ETL

Vous pouvez voir un tableau comparatif entre l’outil Talend et Pentaho dans l’annexe 5 :

4.1. Choix adopté

Après avoir comparé les deux outils d’ETL on a choisi l’outil Talend Open Studio For big data
car il permet la facilité, réduire le cout, la maintenance et le transfert de connaissance.

Aussi Talend for big data et non pas Talend for data intégration car Talend for big data permet
les connexions avec des base de données Nosql alors que le deuxième type n’a pas ce
connecteur.

Comme Base de données destination, on a choisi d’utiliser le système de gestion de base de


données PostgreSQL pour structurer et implémenter notre modèle de datawarehouse.

5. Implémentation de l’entrepôt de données

Notre entrepôt de donnée est sous la forme d’un modèle en étoile, il contient 7 dimensions et
une table de faits.

Voici la liste Des dimensions :

• Dim_Desk : cette dimension contient la liste des desks qui se trouvent dans chaque
zone.
• Dim_Floor : cette dimension contient la liste des floors qui se trouvent dans chaque
batiments.
• Dim_Grade : cette dimension contient la grade de chaque employé.
• Dim_Slot : cette dimension contient la période du jours, Si la première moitié du jours
(AM), ou bien la deuxième moitié du jours (PM).
• Dim_user : Cette dimension contient la liste des employées qui travaillent dans
l’entreprise .

25
• Dim_Zone : cette dimension contient la liste des zones qui se trouvent dans chaque
floor.
• Dim_Date : cette dimension est parmi les dimensions indispensable dans chaque
modèle de datawarehouse, elle contient l’axe du temps qu’on va, selon lui, analyser nos
besoins.

5.1. Implémentation des dimensions.

Pour ce faire, et comme c’est déjà mentionné, on va utiliser l’outil Talend open studio for big
data pour la partie d’ETL. Donc tout d’abord on a commencé par la création de la connexion
entre ce logiciel et notre base de données source et notre base de données destination aussi afin
d’assurer le bon déroulement d’ETL.

• Base de données source :

Figure 17 : Connexions avec base source

26
Après avoir créé la connexion, on doit établir la configuration de la base de données source.

Figure 18 : Configuration Base de données source

Le type de notre base de données source est MongoDB, donc on a configuré le type, le nom de
la base de données, le port sur laquelle on va se connecter avec cette base et le serveur.

27
• Base de données destination :

Figure 19 : Connexion base de données destination

Figure 20 : Configuration base de données destination

28
Pour faire la connexion et la configuration du base de données destination, on a précisé le nom
de la connexion, le type de la base données PostgreSQL, l’identifiant, le mot de passe, le
serveur, le port et le nom du datawarehouse.

Après avoir terminé la création et les connexions nécessaires, on va commencer


l’implémentation des dimensions et notre table de faits, ou on va extraire les données
nécessaires, les transformer, puis les charger dans la nouvelle base de données.

➢ Dim_Desk :

Voici le job pour la dimension Desk :

Figure 22 : Job Desk

Figure 21 : Mapping Dim_Desk

29
Figure 23 : Configuration Dim_Desk

Pour obtenir la dimension Desk bien implémenté, on a commencé par la création du job, qui est
la représentation graphique d'un ou plusieurs composants reliés entre eux. Il regroupe un
ensemble de tâches et permet d'exécuter des processus de flux de données. Puis on a utilisé le
composant Tmap pour assurer le mapping entre la source et la destination, le composant tlogrow
pour assurer le bon déroulement du transfert des données et puis la configuration de la
dimension comme la montre la figure 22 pour assurer le bon chargement de la dimension dans
la nouvelle base de données.

➢ Dim_Zone :

Voici le job de la dimension zone :

Figure 24 : Job Dim_Zone

30
Figure 25 : Mapping Dim_Zone

➢ Dim_Floor

Voici le job de la dimension floor:

Figure 26 : Job Dim_Floor

31
➢ Dim_User :

Voici le job de dimension user

Figure 27 : Job dim_User

➢ Dim_Grade :

Voici le job de la dimension grade :

Figure 28 : job dim_Grade

➢ Dim_Date :

La dimension Date est une table essentielle du modèle de données qui nous permet d'analyser
plus efficacement les performances sur différentes périodes de temps. Elle doit être inclus dans

32
chaque modèle dimensionnel contenant des dates ou nécessitant une intelligence de date dans
le cadre de l'analyse. Voici le code qui nous a permis d’implémenter la dimension Date :

Figure 29 : implémentation Dim_Date

5.2. Implémentation de la table de faits

Une table de fait représente un ensemble de donnée structurée, elle est la table centrale de
chaque modèle, cette table stocke des informations quantitatives pour l’analyse. La table de fait
est constitué de deux types de colonnes, la colonne des clés étrangères qui permet de créer la
relation avec les tables de dimensions et la colonne pour les mesures contient les données à
analyser.

Dans notre cas il existe la collection Histories, qui stocke l’historique de chaque transaction fait
par chaque employé, donc cette collection, après des transformations bien précis, elle sera notre
table de fait dans notre modèle. Cette collection contient des données non structurées et des
listes, donc notre rôle comme premier lieu sera de rendre les données de cette collection bien
structurée. Puis à partir ces transactions on va créer les mesures et les colonnes nécessaires pour
atteindre nos objectifs d’analyse.

En premier lieu, on a éclaté la liste des réservations afin de rendre les données structurées, on a
édité le mapping dans notre collection d’entrée dans le job Talend comme le montre la figure
30. On a mentionné les entrées tout indiquant le chemin du nœud parent qui est le champ
Réservation.

33
Figure 30 : Editer mapping

Puis le job de la table de fait Fact_Histories :

Figure 31 : Job fact_table

On a utilisé le composant TFilterRow pour éliminer les transaction WFH de la transaction.

34
6. Modèle Datawarehouse

Après avoir implémenter les dimensions et notre table des faits, voici notre modèle du
datawarehouse bien implémenter sous forme du modèle en étoile.

Figure 32 : Modèle datawarehouse

Conclusion

Au cours de ce sprint, nous avons réussi à concevoir et à mettre en œuvre l'entrepôt de données,
L'étape suivante consiste maintenant à créer des mesures pour l’analyse et à générer des
rapports.

35
Sprint 3 : Implémentation des tableaux de bords

Introduction

Après avoir terminé la phase d’intégration des donnés, nous passons à la phase de reporting.
Au cours laquelle nous allons réaliser un tableau de bord interactif qui répond aux besoins des
décideurs et leur facilite la prise de décision.

Ce chapitre sera consacré à la réalisation du troisième sprint dans lequel nous allons mentionner
les indicateurs de performance conduisant à un tableau de bord.

1. Sprint Backlog

Vous pouvez consulter le sprint du backlog dans l’annexe 6.

2. Technologies

Un Business Analyste est souvent amené à créer des présentations visuelles, que ce soit pour
organiser des sessions de travail avec ses contributeurs, piloter ses activités, valider ses livrables
ou encore aider à la prise de décision.

Il existe plusieurs logiciels de visualisation dans le domaine de Business Intelligence qui


peuvent aider un data analyste à implémenter ces visualisations.

2.1. Tableau

Tableau est un puissant outil de visualisation de données il permet de créer des graphiques et
des visualisations efficaces pour faciliter la compréhension des données chiffrées. On peut aussi
créer des graphiques, des tableaux, des cartes et d’autres graphiques en fonction de vos besoins.

36
2.2. QlikView

QlikView offre des fonctionnalités de business intelligence, d’analyse et de reporting


d’entreprise. QlikView est notamment utilisé avec son package frère, Qliksense, qui gère
l’exploration et la découverte des données.

2.3. Microsoft Power Bi

Power BI est un logiciel interactif de visualisation de données développé par Microsoft.

Il est principalement axé sur l'informatique décisionnelle et fait partie de la plate-forme


Microsoft Power Bi. Ce logicielle est une collection de services logiciels, d'applications et de
connecteurs fonctionnels. Ensemble, nous transformons des sources de données indépendantes
en informations cohérent, visuellement immersif et interactif. Les données peuvent être saisies
en lisant directement sur des fichiers structurés tels que des bases de données, des sites Web ou
des feuilles de calcul CSV, XML, JSON.

Pour réaliser nos visualisations et atteindre nos objectifs, on a choisi le dernier logiciel,
PowerBi, car c’est un outil très puissant, il nous offre plusieurs fonctionnalités avancées de plus
il n’est pas cher en termes de licence et l’entreprise a un domaine de ce logiciel [3].

3. Les composants Power Bi

Le logiciel Microsoft Power Bi est composé de trois composants principaux qui sont :

• Power Bi Desktop :

Est une application bureau qui permet aux utilisateurs de se connecter à plusieurs sources de
données, de les transformer ainsi de les visualiser.

Cette application contient plusieurs qui nous permet à transformer nos données comme power
Qwery et de créer des mesures comme le Langages DAX.

• Power Query :

L’éditeur Power Query représente l’interface utilisateur Power Query, Dans laquelle on peut
ajouter ou modifier des requêtes, gérer des d’autres en regroupant ou en ajoutant des

37
descriptions aux étapes de requête, ou visualiser nos requêtes et leur structure avec différentes
vues.

• DAX :

Data Analysis Expressions, est un langage de formules utilisé dans les outils de Business
Intelligence et de visuels, c’est un langage de formule, il contient 250 fonctions prêtes à être
utilisé. Avec DAX on peut mesurer le temps et les périodes :

– Effectuer des mesures par an, semestre, trimestre, mois, semaine, jour classique ou bien fait
(ne mesurer qu’un mois entier quand on compare à un autre mois)

– Comparer : Mesurer la croissance d’un mois(entier) par rapport au mois précédent ou à


l’année précédente

– Mesurer en cumul à date

– Mesurer le temps

– CA, taux de retour, CA en devise, Profit après retour

– Nombre de clients actifs.

Quelque Exemple de fonctions fameux en DAX, COUNT, COUNTX, SUM, SUMX,


CALCULATE, DIVIDE, TOPN.

• Power Bi Service

Est un service SAAS (Software As A Service), il s’agit d’un service cloud en ligne. Il permet
aux utilisateur le partage des tableaux de bords et des rapports et de faire des modifications
simples.

• Power Bi Mobile

Est une application mobile qui donne l’accès aux utilisateurs pour consulter les tableaux de
bords et les rapports via n’importe quel appareil mobile soit smartphone ou tablette.

38
Figure 33 : Logo Power BI

4. Colonnes et mesures calculés

4.1. KPI’S

KPI dans le domaine du Biseness Intelligence, sont appelée aussi les clés de performance, sont
des mesures et des objectifs que l’admin ou bien l’observateur des tableaux de bords veut les
voir inclus dans les tableaux de bords. Voici la liste des kpi’s qu’on va les afficher dans nos
tableaux de bords :

➢ Taux de réservation
➢ Taux d’occupation
➢ Total Checkin
➢ Total Checkout
➢ Total Cancellation
➢ Top 5 places occupées
➢ Top 5 places vides
➢ Différence de reservation Et d’occupation entre PM et AM

Nos tableaux de bords seront basés sur deux axes importants, en premier lieu des tableaux de
bords concernant les espaces de travails (floor, zone et desks) et en deuxième lieu des tableaux
de bords concernant les employés et leur comportement les analyses seront par : User, Grade,
ServiceLine, SubServiceLine, et on a d’autre analyses par rapport l’axe du temps, par mois,
semaine, jours, par semestre et par slot (AM et PM).

39
4.2. Colonnes calculées

Pour réussir et atteindre ces objectifs, il faut ajouter d’autres colonnes calculées dans la table
de faits.

▪ Reserved:

Cette colonne nous permet de vérifier si la table est réservée ou non, on peut la déterminer à
partir la colonnes TransactionType

▪ Occupied :

Cette colonne nous permet de vérifier si la table est réservée et occupée ou non, on peut la
déterminer aussi à partir la colonnes TransactionType

▪ totalReservationFloor:

Cette colonne nous permet de compter le total de réservation d’un floor précis pendant un seul
jour donné et un slot précis, on va la déterminer à partir la colonne calculée Reserved

▪ totalOccupationFloor:

40
Cette colonne nous permet de compter le total d’occupation d’un floor précis pendant un seul
jour donné et un slot précis, on va la déterminer à partir la colonne calculée Occupied

▪ totalReservationZone :

Cette colonne nous permet de compter le total de réservation d’une zone précis pendant un seul
jour donné et un slot précis, on va la déterminer à partir la colonne calculée Reserved

▪ totalOccupationZone :

Cette colonne nous permet de compter le total d’occupation d’un zone précis pendant un seul
jour donné et un slot précis, on va la déterminer à partir la colonne calculée Occupied

▪ TotalDeskFloor:

Cette colonne va nous permettre de calculer le total des desks dans un floor

41
▪ TotalDeskZone:

Cette colonne va nous permettre de calculer le total des desks dans une zone

▪ TauxResFloor :

Cette colonne va nous permettre de calculer le taux de réservation des floors

▪ TauxOccFloor :

Cette colonne va nous permettre de calculer le taux d’occupation des floors

▪ TauxOccZone :

Cette colonne va nous permettre de calculer le taux d’occupation des zones

▪ TauxResZone :

Cette colonne va nous permettre de calculer le taux de réservation des zones

42
▪ NbrePlaceVide :

Cette colonne nous permet de déterminer le nombre des places vides

5. Implémentation

Le tableau de bord est le processus de présentation des données dans des visualisations efficaces
qui décrivent l'ensemble du récit des indicateurs clés de performance, des stratégies d'entreprise
et des processus sous la forme d'un tableau de bord interactif.

5.1. Tableau de bord Parking

Notre client possède deux parkings dans son bâtiment, on va commencer par la présentation du
tableau de bord pour les deux parkings. Dans ce tableau de bord on a mis en place des
visualisations pour le taux d’occupation et taux de réservation des deux parkings, on peut
constater que le parking -1 est plus utilisé que le parking -2, on a mis en place aussi les filtres
des slots et du date, on a mis seulement les mois mars avril et mai parce que le parking est
récemment lancé.

Figure 34 : Dashbord Parking

43
5.2. Tableau de bord des floors

Figure 35 : Tableau de bord floor 1

Pour ce premier tableau de bord, on a mis en place des différentes visualisations pour le taux
d’occupation et taux de réservation.

On peut dégager à partir ce tableau de bord plusieurs interprétation, on remarque que le taux de
réservation est toujours supérieur au taux d’occupation, cela veut dire que plusieurs employés
font la réservation et ils n’assistent pas, ou bien ils oublient de faire le checkin lorsqu’il
assistent. On a aussi la possibilité de filtrer par date par slot et par zone, le tableau à droite
montre la différence d’occupation des zones entre un mois et un autre, avec l’icon de flèche s’il
y a une augmentation ou diminution, et les piecharts qui montrent l’occupation par ServiceLine
et SubServiceLine.

44
Figure 36 : Tableau de bord floor 2

Pour le tableau de bord suivant, on a mis le total checkin par jour, la difference entre les taux
d’occupation et de reservation par mois, et une comparaison par floor, on remarque que le floor
6 a le plus grand taux de reservation et le floor 8 a le plus taux d’occupation, par contre le floor
0 et floor 10 on le plus moins taux d’occupation et de reservation, et pour éviter
l’encombrement, l’admin doit encourager les employés à utiliser ces floors aussi, on remarque
aussi que le total de checkin se diminuent du lundi à vendredi.

45
1

Figure 37 : tableau de bord par type

Pour le dernier tableau de bord, on a mis le total checkin et checkout par employé, et on a les
filtres bien précis en fournissant tous les types et les grades des employé, par jours par mois et
par slot aussi.

Conclusion

L’analyse descriptive est essentielle pour chaque projet de business intelligence, il permet aux
décideurs d’avoir une compréhension plus approfondie des données et leur permettre de prendre
des meilleures décisions sur les actions futures dans les entreprises. Ce chapitre a été consacré
à la présentation les différents graphiques des tableaux de bord, et nous a permis de constater
le degré d’adhésion avec l’application, le discipline des employés et la différence entre les taux
de réservations et taux d’occupation. Le chapitre suivant sera consacré pour faire une analyse
prédictive.

46
Sprint 4 : Analyse prédictive

Introduction

Dans ce chapitre, on va introduire la partie data science dans notre projet, ou on va implémenter
un model prédictive pour voir si un opérateur va quitter ou non.

1. Sprint Backlog

Vous pouvez consulter le sprint du backlog dans l’annexe 7.

2. Technologies

2.1. Python

Python est le langage de programmation le plus pertinent pour la science des données. Il est
considéré comme le langage de programmation le plus en vogue pour le traitement de texte et
le traitement numérique. Comparé à R, Python est beaucoup plus rapide et mature dans le
traitement de données qu’elles soient de type textuel ou numérique très volumineuses grâce à
des packages complets tels que Scikit-learn et NLTK [4].

Figure 38 : Logo python

2.2. Jupyter notebook

Jupyter est une application web utilisée pour programmer dans plus de 40 langages de
programmation, dont Python, R ou Scala. Jupyter est une évolution du projet IPython, qui
permet de créer des blocs-notes : programmes contenant à la fois du texte en démarque et du
code en Python, R, etc.

47
Figure 39 : Logo jupyter

2.3. Anaconda

Anaconda est une plateforme de distribution gratuite et open source du langage de


programmation Python. Anaconda possède ses propres outils de gestion, d'installation et de
mise à jour des paquets invoqués avec la commande « conda ». Anaconda offre un moyen facile
de créer différents environnements Python et de passer d'un environnement à l'autre.

Figure 40 : Logo Anaconda

3. Méthodologie

En science des données, il n’existe toujours pas de méthodologie faisant l’unanimité quant à la
gestion d’un projet d’exploration de données. Dans ce contexte, nous choisissons de travailler
selon la méthodologie CRISP-DM. Elle divise le processus de data mining en six étapes, en
expliquant les relations entre ces dernières. L’avantage de cette méthode est qu’elle est
facilement adaptable dans le cas où un projet ne traite pas toutes les étapes, concentrant le travail
sur les phases demandées. La figure suivante illustre les différentes phases de CRISP-DM.

48
Figure 41 : Méthodologie Crisp-Dm

4. Machine learning

De nombreuses approches sont utilisées pour découvrir les propriétés des ensembles de
données. L'apprentissage automatique en fait partie. Dans l'approche ML elle-même,
différentes techniques sont proposées. Ils sont à choisir en fonction de la nature des données et
du type d'étude :

● Méthodes utilisant des techniques de classification et de segmentation

● Méthodes utilisant des principes d'arbre de décision assez proches des techniques de
classification

L'apprentissage automatique se concentre principalement sur la conception d'algorithmes


capables d'apprendre à partir de données historiques et de faire des prédictions en s'appuyant
sur ce qu'ils ont appris, ou d'extraire des connaissances sans avoir besoin d'apprendre à partir
de données historiques. Ainsi, nous distinguons deux types d'apprentissage automatique : les
méthodes d'apprentissage supervisé et les méthodes d'apprentissage non supervisé [5].

4.1. Apprentissage supervisé

L'apprentissage supervisé, est une technique d'apprentissage automatique où l'on cherche à


produire automatiquement des règles à partir d'une base de données d'apprentissage contenant
des "exemples" (généralement des cas déjà traités et validés). De nombreuses tâches peuvent
être réalisées à partir de méthodes d'apprentissage supervisé grâce aux énormes quantités de
données que nous collectons ces dernières années [6].

49
4.2. Apprentissage non supervisé

L'apprentissage non supervisé consiste à diviser un groupe hétérogène de données en sous-


groupes afin que les données considérées comme les plus similaires soient associées au sein
d'un groupe homogène et qu'au contraire les données considérées comme différentes se
retrouvent dans d'autres groupes distincts, l'objectif principal est de permettre une extraction de
connaissances organisées à partir de ces données [6].

5. Objectif

Suite au manque des données suffisante pour prédire le comportement d’un employé s’il va
démissionner oui non, on a cherché une base de données similaire à notre problème afin de
résoudre un problème pareil et avoir une vision approfondie sur le domaine du machine
Learning. Donc on a trouvé des données qui peuvent prédire si un opérateur va quitter ou non
selon des différents services.

5.1. Compréhension des données

Donc on va utiliser une base des données qui contient des informations à propos :

• Clients qui sont partis au cours du mois dernier : Churn


• Services auxquels chaque client s'est inscrit : « phone, multiple lines, internet, online
security, online backup, device protection, tech support, and streaming TV and
movies. »

● Informations sur le compte client : depuis combien de temps il est client : « contract,
payment method, paperless billing, monthly charges, and total charges. »

● Informations démographiques sur les clients : « gender, age range, et s’ils ont des
partenaires ou non ».

Chaque ligne de notre base de données contient un client et les colonnes présentent les
attributs qu’on vient de mentionner. La base de données contient 7043 clients et 21 attributs.

La colonne « churn » est notre variable cible dans la base de données.

On a commencé par visualiser notre variable cible et le pourcentage de « yes » et de « no »

50
La figure montre que 73,46 % des clients sont restés clients tandis que 26,53 % des clients
ont quitté.

Après on a sélectionné les variables qualitatives pour visualiser l’histogramme qui va nous
montrer le nombre des opérateurs qui ont quitté en fonction de chaque variable qualitative
afin de dégager des interprétations claires sur notre base de données ce qui va nous aider
dans la partie de préparation de données.

51
5.2. Préparation des données

Après avoir compris les données et l’importance de chaque attribut, on passe à l’étape de
préparation de données afin d’avoir un bon résultat de notre model.

▪ Supprimer les colonnes inutiles

Au cours de cette étape, nous avons supprimé les colonnes inutiles de "customerID", "gender"
et "PhoneService" qui ne contiennent aucune information utile et n'affectent pas la variable
cible "Churn".

La figure ci-dessous illustre ces étapes :

Figure 42 : Suppression des variables

▪ Transformer le type de total charges

Cette figure montre la conversion « totalesCharges » :

Figure 43 : Conversion du variable total charges

▪ Encoding

Notre base de données contient 4 variables quantitatives et les autres variables sont des variables
qualitatives, donc on doit convertir les variables qualitatives en quantitative afin de pouvoir les
traiter.

Voici la commande qui nous permet de faire la conversion :

52
Après avoir fait la conversion des variables qualitatives, voici les colonnes générer par le
dummy encoding :

▪ Matrice de corrélation

Généralement, une matrice de corrélation est "carrée", avec les mêmes variables affichées dans
les lignes et les colonnes. Elle nous permet d’extraire la corrélation entre les variables.

Figure 44 : Matrice de corrélation

Comme nous montre la figure, ils existent quelques variables qui sont fortement collerez et
qu’on doit les éliminer afin que notre algorithme apprenne beaucoup plus rapide.

▪ Split dataset

53
• En premier lieu on a fait l’extraction de toutes les caractéristiques de notre base de
données et les affecter à une variable que nous avons appelée X qui contient toutes les
variables sauf la variable cible.
• Puis l’extraction de la variable cible dans une autre variable qui s’appelle Y
• Puis on divise notre base donnée en partie train qui prend 80% du base de données et
partie test qui prend les 20% restantes.

▪ Normalisation

Pour faire la normalisation des données on a utilisé le RobustScaller, la normalisation des


données nous permet d’avoir les données entre 0 et 1 qui conservent la même distribution
générale et les mêmes ratios que les données sources.

6. Modeling

Maintenant, et après avoir préparé les données, on passe à la partie modeling ou on va


implémenter notre modèle en utilisant l’algorithme de classification KNN.

KNN est un algorithme de classification comme il peut être aussi utilisé pour résoudre des
problèmes de régression. L’algorithme KNN prend comme Input un ensemble de donnée D, un
nombre entier k, une nouvelle observation K et une fonction de définition distance d.

Il existe plusieurs de fonctions de calcul de distance comme

• La distance Euclidienne
• La distance de Manhattan
• La distance de Minkowski

Le choix de la fonction de distance en fonction des types de données qu’on manipule.

Ainsi pour les données quantitatives (exemple : poids, salaires, taille, montant de panier
électronique etc.…) et du même type : la distance euclidienne est un bon candidat.

La distance de Manhattan est une bonne mesure `à utiliser quand les données ne sont pas du
même type (exemple : Age, sexe, longueur, poids etc.…).

54
Figure 45 : Implémentation du KNN

Pour un premier essai on a reçu un pourcentage de précision est égale à 79% comme test score,
On a essayé de chercher les meilleurs paramètres afin d’améliorer le résultat obtenu. On a créé
un dictionnaire param_grid qui contient deux paramètres ‘n_neighbors’ et ‘metric’, pour chaque
paramètre on a une liste des valeurs qu’on peut utiliser pour générer diffèrent modèle.

Pour avoir un meilleur résultat, on a obtenu comme meilleur paramètre ‘metrics’ = ‘Manhatten’
et ‘n_neighbors’= 6. Voici l’implémentation du nouveau modèle et le nouveau résultat obtenu.

Le résultat obtenu est de 81% comme test score.

Après avoir terminé les étapes précédentes, on a commencé à appliquer notre modèle final à
X_test afin de prédire la variable cible Y.

55
Voici ci-dessous la matrice de confusion qui nous montre les valeurs prédites par notre modèle :

Figure 46 : Matrice de confusion

Conclusion :

Nous avons réussi, à partir de ce chapitre, d’élaborer notre modèle de prédiction pour les
résultats. Et avec ce chapitre, nous arrivons à la fin de notre rapport.

56
Conclusion générale et perspectives
Dans ce prоjet, nоus avоns été amenés à dévelоpper un mоdule décisiоnnel permettant d’assurer
le suivi des espaces de travails et le comportement des employé et leur degré d’adhésion avec
la plateforme en expоsant les différents états analytiques dans des tableaux de bоrd dynamiques.
Rappelоns que nоtre partie cоnsistait à créer un système qui nоus aide à prendre des décisiоns
et la startup X-pоint. Pоur se faire, nоus avоns prоcédé, en premier lieu, à la spécificatiоn des
besоins fоnctiоnnels et nоn fоnctiоnnels de nоtre prоjet ainsi qu'à la mise en évidence des
différentes fоnctiоnnalités à travers les user stоries. Cela nоus a cоnduit à la phase suivante de
cоnceptiоn et de mise en œuvre des différents sprints. En termes de réalisatiоn, nоus avоns
répоndu amplement aux оbjectifs et besоins établis par la startup malgré tоutes les difficultés
rencоntrées tant sur le plan fоnctiоnnel que technique en plus du manque de dоnnées et leur
degré de difficultés. Ce stage nоus a appоrté de nоmbreux avantages sur le plan persоnnel et
prоfessiоnnel car il nоus permettra d'оbtenir le diplôme natiоnal d'ingénieur en infоrmatique et
aussi de dévelоpper les cоnnaissances requises pendant nоtre cursus universitaire et surtоut
d'appliquer les meilleures pratiques d'un ingénieur en infоrmatique. Ensuite, et cоmme
perspectives, nоus pоursuivrоns nоtre travail sur la partie prédictiоn dès que nоus aurоns
suffisamment de dоnnées pоur le faire. Et nоus cоntinuerоns à améliоrer nоs tableaux de bоrd
afin d'оbtenir plus de résultats qui peuvent aider à prendre des décisiоns et pour dernier
perspective c’est de rendre le travail sur le cloud.

57
Bibliographie

[1] https://epargne.ooreka.fr/astuce/voir/598485/top-down-et-bottom-upx

[2] https://www.next-decision.fr/editeurs-bi/etl/talend-open-
studio#:~:text=Talend%20Open%20Studio%20(TOS)%20est,'un%20syst%C3%A8me
%20d'information.

[3] https://fr.wikipedia.org/wiki/Microsoft_Power_BI

[4] http://esoaf.com/services/developpementpython

[5] https://ia-data-analytics.fr/machine-learning/

[6] https://mobiskill.fr/blog/conseils-emploi-tech/apprentissage-supervise-vs-
apprentissage-non-supervise/
Annexe
Annexe 1 : Backlog de produit

Feature-id Estimation
Sprint

Sprint 1 : Compréhension
1 30 jours
métier, donnée et chargement
des données
2
Sprint 2 : Implémentation de
40 jours
l’entrepôt de donnée
3
Sprint 3 : Implémentation des
45 jours
tableaux de bord

4 20 jours
Sprint 4 : Analyse prédictif
Annexe 2 : plannification des sprints

Id Fonctionnalité Id UserStory Story Priorité Estimation

En tant
qu’utilisateur je
dois faire des
1.1 1 5 jours
recherches
nécessaires

En tant
qu’utilisateur je
dois comprendre
le besoin métier
1.2 2 5 jours

Compréhension
métier, donnée
et chargement
des données En tant que
développeur je
dois comprendre
les données
1 1.3 1 10 jours
En tant que
developpeur je
1.4 1 10 jours
dois extraire les
données
nécessaire

En tant que
développeur je
dois choisir un
2.1 2 10 jours
modèle d’entrepôt
de données.

En tant que

Implémentation développeur je
de l’entrepôt de dois implémenter
2
donnée les dimensions
2.2 1 15 jours
2.3 En tant que 2 15 jours
développeur je
dois implémenter
la table des faits

En tant que
développeur je
dois faire les
calculs
3.1 nécessaires avec 2 20 jours
DAX

Implémentation

3 des tableaux de
bord
En tant que
développeur je
dois implémenter
3.2 les tableaux de 1 15 jours

bords
En tant que
développeur je
3.3 3 5 jours
dois vérifier
l’authenticité du
rapport

3.4 En tant que


développeur je 5 jours
dois partager le
2
rapport pour le
rendre visible aux
utilisateurs

En tant que
développeur je
Analyse 4.1 2 5 jours
dois choisir la
prédictive
4
méthodologie
1 15 jours

4.2 En tant que


développeur je
dois implémenter
le modèle choisie

Annexe 3 : sprint 1 backlog

Fonctionnalité Id UserStory Story Priorité Estimation


Id

En tant que
développeur je
1.1 1 5 jours
dois faire des
recherches
nécessaires

En tant que
Compréhension développeur je
métier, donnée dois comprendre le
1
et chargement 1.2 besoin métier 2 5 jours
des données

En tant que
développeur je
1.3 1 10 jours
dois comprendre
les données
En tant que
développeur je
1.4
dois extraire les
1 10 jours
données nécessaire
Annexe 4 : Sprint 2 backlog

Fonctionnalité Id User Story Priorité Estimation


Id
Story

En tant que
développeur je
2.1 dois choisir un 2
10 jours
modèle
d’entrepôt de
Implémentation données.
de l’entrepôt de
donnée

En tant que 15 jours


2.2
développeur je 1
2
dois
implémenter les
dimensions

En tant que 15 jours


développeur je
dois 2
2.3 implémenter la
table des faits
Annexe 5 : Comparaison entre les outils

Paramètre Pentaho Talend

License Open source Open source

Offre une capacité excellente Grace à un développement


pour l’intégration de graphique facile, Talend
données améliore l’efficacité de
Intégration de donnée
l’intégration des données

Nécessite un moteur java Le fichier java peut


indépendante pour s’exécuter indépendamment
s’exécuter sur une machine sur n’importe quelle
Déploiement
distincte machine.

Lecture d’une requête Non Lecture/écriture SGBD

Type complexe de donnée Non Données géographique

Annexe 6 : Sprint 3 backlog

Fonctionnalité Id UserStory Story Priorité Estimation


Id
En tant que
développeur je
dois faire les
3.1 2 20 jours
calculs
nécessaires avec
DAX
En tant que
développeur je
dois
3.2 1 15 jours
implémenter les
tableaux de
Implémentation
bords
des tableaux de En tant que
3
bord développeur je 3 5 jours
dois vérifier
3.3
l’authenticité du
rapport
En tant que
développeur je
dois partager le
3.4 2 5 jours
rapport pour le
rendre visible
aux utilisateurs

Annexe 7 : Sprint 4 backlog

Id Fonctionnalité Id UserStory Story Priorité Estimation

En tant que
développeur je 2 5 jours
dois choisir la
4.1
méthodologie

En tant que
développeur je
4 Analyse dois implémenter
prédictive 4.2 1 15 jours
le modèle choisie

Vous aimerez peut-être aussi