Académique Documents
Professionnel Documents
Culture Documents
Master Profissionnel
Spécialité : Sécurité des Systèmes Informatiques Communicants et embarqués
Par
Brahim BAHAIDA
Master Profissionnel
Spécialité : Sécurité des Systèmes Informatiques Communicants et embarqués
Par
Brahim BAHAIDA
Signature et cachet
J’autorise l’étudiant à faire le dépôt de son rapport de stage en vue d’une soutenance.
Signature
Dédicaces
Je dédie ce travail à :
À la personne que je ne peux pas vivre sans elle, la personne qui m’a prodigué sa vie. son
soutien, son amour, son temps. à la raison de ma vie, ma mère Khady.
À mon cher père Mohamed, à mes chères sœurs Mariem, Mina, Tbeira et Cherifa et à
toute ma chère famille.
À tous mes ami(e)s, en hommage à tous les instants que nous avons vécus ensemble.
À tous les personnes qui m’ont donné un coup de pouce, de près ou de loin.
Brahim BAHAIDA
ii
Remerciements
pour leur courtoisie et leur soutien ainsi que pour leur hospitalité. Finalement,
je profite de cette occasion pour remercier les membres du jury dans l’espoir
Brahim BAHAIDA
iii
Table des matières
Introduction générale 1
iv
3 Initialisation du projet 36
3.1 Initialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2 Architecture de la solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2.1 Architecture logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2.2 Architecture logicielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3 Conception détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3.1 Diagramme de packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3.2 Diagramme de déploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.4 Environnements de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.4.1 Environnement matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.4.2 Environnement technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.5 Installation et configuration de l’environnement de travail . . . . . . . . . . . . . . 44
v
4.3.4 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.3.5 Test et validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.3.6 Problèmes rencontrés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.4 Sprint 4 : Effectuer des contrôles complexes de qualité . . . . . . . . . . . . . . . . . 69
4.4.1 Backlog du sprint 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.4.2 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.4.3 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.4.4 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.4.5 Test et validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.4.6 Problèmes rencontrés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
vi
5.3.5 Test et validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.3.6 Problèmes rencontrés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.4 Sprint 8 : Visualisation des graphes d’amélioration . . . . . . . . . . . . . . . . . . . 98
5.4.1 Backlog du sprint 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.4.2 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.4.3 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.4.4 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.4.5 Test et validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.4.6 Problèmes rencontrés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Bibliographie 105
vii
Table des figures
viii
Table des figures
ix
5.12 Diagramme de classe «Couche de présentation - Sprint 6» . . . . . . . . . . . . . . . 89
5.13 Page d’affichage des résultats des contrôles . . . . . . . . . . . . . . . . . . . . . . . . 90
5.14 Interface d’ajout d’un nouvel utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.15 Interface de modification les informations d’un utilisateur . . . . . . . . . . . . . . . 93
5.16 Interface de consultation de la liste des utilisateurs . . . . . . . . . . . . . . . . . . . 93
5.17 Diagramme de séquence «Ajouter un nouvel utilisateur» . . . . . . . . . . . . . . . . 94
5.18 Diagramme de séquence «Modifier les informations d’un utilisateur» . . . . . . . . . 94
5.19 Diagramme de séquence «Supprimer un utilisateur» . . . . . . . . . . . . . . . . . . 95
5.20 Diagramme de séquence «Consulter la liste des utilisateurs» . . . . . . . . . . . . . . 95
5.21 Page d’ajout d’un nouvel utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.22 Page de consultation de la liste des utilisateurs . . . . . . . . . . . . . . . . . . . . . 97
5.23 Page de modification des informations d’un utilisateur . . . . . . . . . . . . . . . . . 97
5.24 Page de supprission d’un utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.25 Interface de consultation des graphes visualisant l’état de qualité des données . . . . 99
5.26 Diagramme de séquence «Visualisation du Line-Graph» . . . . . . . . . . . . . . . . 100
5.27 Diagramme de séquence «Visualisation du Bar-Graph» . . . . . . . . . . . . . . . . . 100
5.28 Diagramme de classe «Couche logique métier - Sprint 8» . . . . . . . . . . . . . . . . 101
5.29 Diagramme de classe «Couche de présentation - Sprint 8» . . . . . . . . . . . . . . . 102
5.30 Page de consultation des graphes visualisant l’état de qualité des données . . . . . . 103
x
Liste des tableaux
xi
Liste des abréviations
— BI = Business Intelligence
— DQ = Data Quality
— EF = Exigence Fonctionnelle
xii
Introduction générale
Travaillant depuis des années avec des données provenant d’institutions financières, Vneuron
a découvert que les données de plusieurs de ces entreprises sont de piètre qualité, même après avoir
utilisé certains outils de qualité des données, ce qui pourrait mener à de mauvaises décisions.
Vneuron nous a accordé donc sa confiance pour mettre en place une solution qui résout les
problèmes de ces entreprises en combinant l’expérience de Vneuron et les capacités des nouvelles
technologies telles que la Machine Learning et NLP.
L’objectif de ce projet est de concevoir et de développer une plateforme de gestion et d’amélioration
de la qualité des données qui permettra aux institutions financières d’améliorer leur conformité
réglementaire.
Ce rapport présentera les différentes phases de la réalisation de ce projet et se répartira en
cinq chapitres :
— chapitre 1 : sera un chapitre introductif dans lequel nous décrirons brièvement l’entreprise.
Ensuite, nous présenterons les grandes lignes du projet et la solution proposée.
— chapitres 4 et 5 : seront dédiés aux deux releases de notre application où nous nous
intéresserons à la réalisation de sprints, chacun composé de quatre parties qui sont l’analyse,
la conception, la réalisation et le test.
Finalement, nous clôturerons ce rapport par une conclusion générale dans laquelle nous
évaluerons les résultats obtenus et décrirons les perspectives possibles pour ce projet.
1
Chapitre 1
Plan
1 Présentation de l’organisme d’accueil . . . . . . . . . . . . . . . . . . . . 3
2 Présentation du Projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 Méthode de développement . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Chapitre 1. Présentation Générale du Projet
Introduction
Nous présenterons dans le premier chapitre le travail dans son contexte général. Il se compose
de trois parties. La première vise à présenter l’organisation d’accueil Vneuron, la deuxième à présenter
la problématique et la solution proposée et la dernière partie à expliquer le choix méthodologique.
IP-Tech est une société offshore qui a été fondée par Mohamed Ouederni et Feteh Belhaj
Ali, deux anciens élèves de l’Ecole Polytechnique de Tunisie, à la fin de 2007, après s’être "aguerris"
pendant une dizaine d’années sur le marché parisien. Cette startup est spécialisée dans le développement
des solutions IT. Elle compte déjà une trentaine d’ingénieurs, d’expériences et de compétences
différentes[1].
Afin de rassembler sous une même entité l’ensemble des services et solutions indispensables à
la gestion scientifique et la transformation digitale, IPTECH et AYD, deux entreprises actives depuis
10 ans, comptant une centaine de collaborateurs et leader dans leur secteur en Tunisie, en Afrique
du Nord et Subsaharienne se fondent sous une même ombrelle, Vneuron.
Vneuron a développé son approche innovante, le SPARK THINKING basé sur l’écoute active,
l’expertise et la maitrise des nouvelles technologies de pointes comme l’intelligence artificielle et
l’apprentissage automatique. Vneuron développe et implémente ses technologies adéquates les SPARK
SOLUTIONS, pour éditer à la perfection des réponses plus qu’adaptées dans les métiers du Banking,
Finance, Assurance, Santé, Grande distribution, Industrie et Gouvernance.
Vneuron est aussi une GREAT PLACE TO WORK, l’entreprise est génératrice d’emplois et accorde
une attention particulière au bien-être de l’ensemble de ses collaborateurs. [2]
Ce projet s’inscrit dans le cadre de notre projet de fin d’études à l’Institut Supérieur d’Informatique,
dans le but d’obtenir un master professionnel en Sécurité des Systèmes Informatiques Communicants
et Embarqués. L’application demandée est intitulée "Data Quality Management Platform". Elle a
pour objectif de concevoir et de développer une plate-forme de gestion et d’amélioration de la qualité
des données. Cette application est destinée aux institutions financières pour améliorer leur conformité
réglementaire.
3
Chapitre 1. Présentation Générale du Projet
1.2.1 Problématique
Afin de maintenir une bonne relation avec les clients et de réaliser des profits, les organisations
doivent assurer un niveau élevé de la qualité de leurs données.
Les données sont-elles complètes ? Sont-elles collectées à temps ? Sont-elles correctes ? Ce sont
des questions qui doivent être posées lors de l’analyse des données. La mauvaise qualité des données
peut prendre de nombreuses formes : non seulement des chiffres incorrects, mais aussi un manque
d’exhaustivité ou des données trop anciennes (pour une utilisation utile).
La qualité des données peut être décrite comme un problème multidisciplinaire concernant,
par exemple, des sujets en informatique, le contrôle de la qualité, la recherche sur les facteurs humains
et les statistiques. Mais, ce sont surtout les institutions financières qui souffrent actuellement parce
que la mauvaise qualité des données a des conséquences importantes pour une entreprise, comme
une mauvaise prise de décision ou le fait de ne pas avoir profité des opportunités du marché [3].
Les mauvaises données font perdre du temps, augmentent les coûts, affaiblissent la prise de décision,
irritent les clients et rendent plus difficile l’exécution de toute stratégie de données. En effet, les
données ont un problème de crédibilité.
Les causes principales des problèmes de qualité des données sont les suivantes [4] :
• Saisie des données par les employés : Rien d’étonnant que la cause principale soit l’erreur
humaine. Au fur et à mesure que les distractions augmentent et que l’attention diminue, il est
très peu probable que les données soient saisies de façon plus précise.
• Entrées mixtes par plusieurs utilisateurs : Les instructions sur la façon dont les données
doivent être entrées sont sujettes à interprétation, de sorte que des personnes différentes
remplissent parfois un champ de façon incorrecte sans même s’en rendre compte.
• Modifications des systèmes sources : Comme les organisations font, de plus en plus,
appel à des tiers pour gérer les applications développées en interne, cette connaissance associée
de la sémantique de l’application n’est pas communiquée à la tierce partie. Lorsque des tiers
apportent des modifications au fonctionnement d’une application, ils peuvent, par inadvertance,
nuire à l’intégrité des données qu’elle utilise.
• Erreurs de système : Les systèmes traditionnels étaient moins susceptibles de corrompre les
4
Chapitre 1. Présentation Générale du Projet
données car ils étaient plus simples. Au fur et à mesure que les applications deviennent de plus
en plus complexes et sont distribuées sur un plus grand nombre d’ordinateurs, les corruptions
de données sont devenues plus fréquentes et plus difficiles à isoler et à réparer.
Une seule erreur d’entrée de données peut entraîner une corrélation modérée à zéro et un
résultat significatif d’un TEST-T peut être insignifiant [5]. Une étude récente de Gartner a révélé
que pour les entreprises, la mauvaise qualité des données se traduit par une perte moyenne d’environ
15 millions de dollars [3]. Et une autre étude réalisée par IBM en 2016 a estimé qu’aux États-Unis,
les coûts annuels totaux résultant de la mauvaise qualité des données dépassent les 3 milliards de
dollars américains [3]. Selon une étude de Harvard Business Review, seulement 3% des données des
entreprises satisfont aux normes de qualité de base [6].
Considérant l’importance d’atteindre et de maintenir un niveau élevé de qualité des données,
car la mauvaise qualité des données influence les processus décisionnels au sein d’une organisation et
peut entraîner un risque de non-conformité, il n’est pas surprenant que le domaine de la gestion de
la qualité des données comporte plusieurs outils et méthodes pour évaluer et améliorer cette dernière
[3].
Notre travail se concentrera sur l’amélioration de la qualité des données par l’utilisation
des nouvelles capacités technologiques telles que la Machine Learning pour vérifier si les données
correspondent réellement aux intentions de l’entreprise. Ce travail n’inclura pas l’automatisation
de l’amélioration de la qualité des données, mais il sera utile pour identifier les données de qualité
douteuse et alerter les propriétaires de données afin qu’ils puissent facilement les traiter
Comme mentionné ci-dessus, il existe une variété d’outils disponibles pour évaluer et améliorer
la qualité des données. Dans cette section, nous analyserons les meilleurs et les plus célèbres outils
qui existent sur le marché et pour faire une étude raisonnable de tous les outils, nous énumérerons
pour chacun d’entre eux ses points forts et ses limites.
• Informatica : Informatica propose une série de produits d’intégration de données dans le cadre
de sa plate-forme Informatica Intelligent Data Platform. Ces produits sont : PowerCenter,
PowerExchange, Data Replication, B2B Data Transformation, B2B Data Exchange, Data
Integration Hub, Data Services, Integration Cloud Services, Cloud Integration Hub, Big Data
5
Chapitre 1. Présentation Générale du Projet
Management, Big Data Integration Hub, Big Data Streaming, Enterprise Data Lake, Edge Data
Streaming, Enterprise Data Catalog and Operational Insights. La base de clients d’Informatica
pour cet ensemble de produits est estimée à plus de 9 000 organisations [7].
Informatica Data Quality (IDQ) a été l’un des leaders sur le marché des outils de qualité de
données (DQ). IDQ a 2 variantes [8] :
— Informatica analyst est un outil Web qui peut être utilisé par les analystes et les
développeurs pour analyser, profiler, nettoyer, standardiser les données et les scorescards
dans une entreprise.
— Informatica developer est un outil client permettant aux développeurs de créer des
mappings pour implémenter des transformations/services de qualité des données. Cet
outil offre un éditeur où les objets peuvent être construits avec un large éventail de
transformations de qualité de données telles que Parser, normalisateur, validateur d’adresses,
match-merge, etc.
— Informatica continue à mettre en œuvre une stratégie produit forte qui répond bien aux
exigences du marché en matière de gestion des données.
— Informatica propose des services d’appariement, de standardisation, " address doctor "
et de gestion des fichiers d’anomalies.
— la validation du point de livraison d’IDQ est très puissante et de nombreux outils concurrentiels
n’offrent pas ce service.
— les clients ont de la difficulté pour aligner les cas d’utilisation avec les offres de produits.
— l’outil est un outil de profiling complètement déconnecté du flux ETL, donc pas de
traitement en temps réel.
6
Chapitre 1. Présentation Générale du Projet
— l’outil de planification intégré a de nombreuses contraintes telles que la gestion des scripts
Unix/VB, etc. La plupart des entreprises utilisent pour cela des outils tiers.
• Oracle : Enterprise Data Quality (EDQ) est la solution complète d’Oracle pour la gouvernance
et la gestion de la qualité des données. Il fait partie de la gamme de produits Oracle Fusion
Middleware [10].
Oracle propose les produits d’intégration de données suivants : Oracle Data Integration Platform
Cloud, Oracle GoldenGate (OGG), Oracle GoldenGate Cloud, Oracle Data Integrator (ODI),
Oracle Big Data SQL et Oracle Service Bus. Gartner estime à plus de 11 000 le nombre de
clients d’Oracle pour cet ensemble de produits [7].
— règles et ordre assez flexible et facile à régler pour obtenir exactement les données dont
nous avons besoin.
— les "problèmes" de qualité des données sont résolus rapidement et facilement et les tâches
sont contrôlées dans Oracle Data Integrator (ODI) de manière transparente.
— l’installation initiale est difficile et les fonctions de maintenance sont compliquées par un
manque de personnel qualifié sur le marché.
7
Chapitre 1. Présentation Générale du Projet
— problèmes d’instabilité
• SAP : SAP Data Quality Management, microservices permet aux développeurs d’intégrer des
services de nettoyage et d’enrichissement des données dans n’importe quel processus métier ou
application à des services basés sur HTTPS/JSON fonctionnant sur SAP Cloud Platform. Les
développeurs peuvent simplement intégrer ces services dans leurs propres applications pour
fournir des capacités de nettoyage et de validation d’adresses, de géocodage et de géocodage
inverse .
SAP propose les produits d’intégration de données suivants : SAP Data Services, SAP Replication
Server, SAP Landscape Transformation Replication Server, SAP Remote Data Sync, SAP Data
Hub, SAP HANA, SAP Cloud Platform, SAP Cloud Platform Integration et SAP Streaming
Analytics. SAP HANA a SAP Data Integration et SAP Smart Data Access pour la fédération
des données. La base de clients de SAP pour cet ensemble de produits est estimée à plus de
50 000 organisations [7].
— fonctionne facilement dans plus d’un département, ce qui le rend plus rentable.
— l’interface utilisateur pourrait nécessiter un peu de travail pour rendre le système plus
convivial et finalement plus efficace à utiliser.
8
Chapitre 1. Présentation Générale du Projet
— ne permet pas l’hébergement de données multiples et la mise en miroir des données pour
la sécurité des données.
• SAS : La solution SAS Data Quality prend en charge diverses opérations liées à la qualité des
données. Les opérations de qualité des données utilisent des règles prédéfinies qui s’appliquent
au contexte spécifique des données (comme les noms ou les adresses postales). Parmi les
exemples d’opérations de qualité des données, mentionnons le cadrage, l’analyse, fuzzy matching
et la normalisation [12].
SAS propose les produits d’intégration de données suivants : SAS Data Management, SAS
Data Integration Server, SAS Federation Server, SAS/ACCESS, SAS Data Loader for Hadoop
et SAS Event Stream Processing. La clientèle de SAS pour cet ensemble de produits est estimée
à 14 000 organisations [7].
Limites [7]
• Talend :
Talend offre une solution complète de qualité des données (Talend Data Quality), incluant
9
Chapitre 1. Présentation Générale du Projet
— différents types d’analyse de profiling de données. Talend DQ dispose d’un grand nombre
de rapports d’analyse qui peuvent être utilisés dans le profiling.
— défaut de workflows faciles à créer pour des tâches qui peuvent être répétées.
— Support de connecteur
— la courbe d’apprentissage est très raide pour tous les produits Talend, y compris DQ.
Les produits de qualité des données fournis par les entreprises susmentionnées offrent des
fonctionnalités de base pour la déduplication des données, les exigences de formatage standard (tels
que les numéros de téléphone et les adresses) et la validation des adresses.
Face aux différents problèmes que nous avons évoqués précédemment, ce projet de plate-forme
de gestion de la qualité des données doit répondre à plusieurs objectifs, qui sont :
10
Chapitre 1. Présentation Générale du Projet
• optimiser autant que possible les temps d’accès et de traitement des données.
La solution que nous avons proposée consiste à créer une plate-forme Web de gestion de la
qualité des données qui sera, ensuite, hébergée dans le réseau local d’une institution financière. Cette
plate-forme traitera de manière périodique -selon la configuration- la vérification de la qualité des
données, respecte-t-elle le format et at-elle du sens en utilisant les capacités des nouvelles technologies
telles que la Machine learning et NLP, ainsi que la gestion des rôles utilisateurs, et nous permet aussi
de consulter des statistiques concernant les vérifications et améliorations dans la qualité des données
Les figures 1.6 et 1.7 illustrent respectivement le diagrammes de contexte et le diagrammes
de niveau 1 de la technique DFD (Data Flow Diagrams) que nous utiliserons pour illustrer les
fonctionnalités de la plate-forme.
11
Chapitre 1. Présentation Générale du Projet
"Quelle méthodologie de développement devrions-nous utiliser ?" Cette question est très
fréquente au début des projets les plus récents. Et c’est aussi un sujet qui suscite beaucoup de
discussions.
La méthodologie de développement n’est pas un style de gestion de projet ou une approche
technique spécifique, il s’agit d’une manière générale d’organiser le travail de développement logiciel.
Les modèles de développement traditionnels nécessitent généralement beaucoup de temps et
d’efforts pour diverses procédures de développement, comme l’analyse des besoins, la planification
de la conception, le développement de prototypes et de produits, les tests, et les tests d’acceptation
par le client final.
Dans le but d’éviter ce genre de situations critiques, nous adoptons la méthodologie agile
pour la gestion de notre projet.
12
Chapitre 1. Présentation Générale du Projet
aux développeurs et de rendre leur travail plus orienté client. Au lieu d’un processus de conception
séquentielle, la méthodologie Agile suit une approche incrémentale. Habituellement, les spécialistes
appellent Agile une approche innovante.
Le développement guidé par les tests (" Test-Driven Development ", TDD) est une pratique
de développement qui utilise des tests unitaires pour spécifier, concevoir et vérifier le code que
nous sommes en train d’écrire. Avant d’implémenter une fonctionnalité, les développeurs écrivent
un test unitaire défaillant qui démontre comment cette fonctionnalité devrait fonctionner. En même
temps, cet échec prouve également que l’implémentation actuelle ne supporte pas encore la nouvelle
fonctionnalité. Ce n’est qu’ensuite que les développeurs écrivent le code de l’application. Une fois le
test unitaire réussi, les développeurs savent que la fonctionnalité a été implémentée avec succès. À
ce stade, ils peuvent revoir leur code pour mettre de l’ordre et perfectionner le design. Les règles, ou
étapes, que nous devrions suivre lors de la réalisation avec le TDD sont simples à lire et à comprendre,
même si elles ne sont généralement pas aussi faciles à appliquer. Elles le sont :
1. Écrire un test sur une seule unité pour vérifier que certains critères sont respectés.
La figure 1.8 représente les étapes de développement guidé par les tests.
13
Chapitre 1. Présentation Générale du Projet
14
Chapitre 1. Présentation Générale du Projet
Conclusion
Au cours de ce chapitre, nous avons présenté l’organisation d’accueil Vneuron et ses principales
activités. De plus, nous avons pu établir le contexte général du projet et expliquer le choix de la
méthodologie de développement. Une analyse et spécification des besoins fera l’objet du prochain
chapitre.
15
Chapitre 2
Plan
1 Les roles Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4 Backlog de produit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Introduction
Ce chapitre est consacré à la phase d’analyse des besoins du projet. Nous présenterons,
d’abord, l’équipe SCRUM et les principaux acteurs de la plate-forme. Ensuite, nous présenterons le
backlog de produits et la planification du sprint. Nous identifierons, ensuite, les exigences fonctionnelles
et non fonctionnelles de la plate-forme. Enfin, nous clôturerons le chapitre en modélisant le diagramme
du cas d’utilisation global du projet et en le raffinant par une description textuelle des cas d’utilisation
les plus importants
Une équipe Scrum est un ensemble d’individus travaillant ensemble pour fournir les incréments
de produits demandés et engagés. L’équipe Scrum est composée du Product Owner, de l’équipe de
développement et du Scrum Master. Le modèle d’équipe de Scrum est conçu pour optimiser la
flexibilité, la créativité et la productivité.
Pour bénéficier des artefacts de Scrum afin de mieux organiser le projet, nous adapterons
l’équipe Scrum à notre situation. Et pour cela, nous identifierons les membres de notre équipe
Scrum et leur rôle :
Cette plate-forme sera réalisée non pas pour un usage public via Internet mais au sein du
réseau d’un client et pour cela elle aura trois types d’utilisateurs.
• Manager : il est chargé d’ajouter et d’éditer les configurations des bases de données et des
paramètres, il peut générer le rapport de qualité des données.
• Simple-user : il est un simple utilisateur qui peut accéder aux fonctionnalités de la plateforme
mais il ne peut pas ajouter ni modifier les configurations.
• Super-user : Il est chargé d’ajouter de nouveaux utilisateurs et de modifier leurs rôles, mais
il n’aura pas accès aux autres fonctionnalités de la plateforme pour respecter au mieux le
principe du SoD.
17
Chapitre 2. Analyse et spécification des besoins
Cette section sert à identifier les besoins fonctionnels et non fonctionnels de la plate-forme
afin d’enrichir la connaissance du client et ses attentes et d’améliorer la qualité de la plate-forme et
de ses services.
Les besoins fonctionnels servent à présenter les actions que doit effectuer le Système en réponse
à une demande présentée par un utilisateur. La figure 2.1 illustre le diagramme de navigation proposé.
A ce niveau, nous devons spécifier nos exigences en langage naturel, en utilisant les fiches
GABARIT-VOLERE [15].
18
Chapitre 2. Analyse et spécification des besoins
Exigences dépendantes :
Acteur : Super-user
19
Chapitre 2. Analyse et spécification des besoins
Description : le système doit permettre au Super-user de modifier les rôles des utilisateurs
Acteur : Super-user
Acteur : Super-user
20
Chapitre 2. Analyse et spécification des besoins
Acteur : Super-user
Acteur : Manager
21
Chapitre 2. Analyse et spécification des besoins
Acteur : Manager
Description : le système doit permettre au Manager de consulter la liste des bases de donnees
Acteur : Manager
22
Chapitre 2. Analyse et spécification des besoins
Acteur : Manager
Acteur : Manager
23
Chapitre 2. Analyse et spécification des besoins
Description : le système doit permettre au Manager d’ajouter des contrôles de qualité. Ces
contrôles peuvent être simples, complexes, génériques ou basés sur la ML
Acteur : Manager
Description : le système doit permettre au Manger de modifier les configurations des jobs
Acteur : Manager
24
Chapitre 2. Analyse et spécification des besoins
Acteur : Manager
Description : le système doit permettre au Manager de recevoir des notifications sur les
jobs
Acteur : Manager
25
Chapitre 2. Analyse et spécification des besoins
Description : le système doit permettre au Manager de consulter les resultats de l’execution d’un job
Acteur : Manager
Acteur : Manager
26
Chapitre 2. Analyse et spécification des besoins
Les besions non fonctionnelles présentent des exigences internes pour le système et qui sont
invisibles vis-à-vis de nos clients.
• Responsive design : pour rendre la plateforme conviviale, la plate-forme doit respecter les
points suivants :
— Paramétrage HTML
— Type flexible
— Images flexibles
• Sécurité : pour être conforme aux principes de sécurité, la plate-forme doit être protégée
contre les 10 principales vulnérabilités Web publiées par l’OWASP. Et pour cela, nous allons
utiliser une approche automatisée pour vérifier le code afin de détecter toute vulnérabilité juste
27
Chapitre 2. Analyse et spécification des besoins
après que le code ait été poussé vers les repos github, en utilisant un service cloud pour la
vérification.
Le Backlog de produits correspond à une liste priorisée des besoins et des exigences des clients.
Les éléments du carnet de commandes du produit, également appelés témoignages d’utilisateurs, sont
formulés en une ou deux phrases décrivant clairement et précisément les fonctionnalités souhaitées
par le client, généralement écrites sous la forme suivante En tant que X, je veux Y, afin que je puisse
Z. Le backlog de produits présenté dans le tableau 2.1 comprend les champs suivants :
• User Story : c’est une phrase décrivant la fonctionnalité désirée par le client.
• Priorité : nous utilisons la technique MoSCoW pour nous aider à comprendre et à gérer les
priorités. Les lettres signifient :
• Story point : est l’effort requis pour créer une récit d’utilisateur. la technique utilisée est celle
de la suite de Leonardo Fibonacci.
#2 Ajouter une base de En tant que Manager, je peux ajouter les Must 21
données configurations de connexion des bases de
données
28
Chapitre 2. Analyse et spécification des besoins
#4 Sélectioner une colonne En tant que Manager, je peux choisir des Must 8
colonnes pour y appliquer un contrôle de
qualité.
#12 Afficher les resultats de En tant que Manager, je peux consulter les Must 8
contrôles de qualité résultats de l’exécution d’un job.
29
Chapitre 2. Analyse et spécification des besoins
Nous commençons par présenter les fonctionnalités de notre application à l’aide d’un diagramme
de package et d’un diagramme de cas d’utilisation global puis nous détaillons les cas d’utilisation les
plus prioritaires.
Nous constatons souvent que les besoins très différents des acteurs et le nombre de fonctionnalités
que le futur système nécessitera sont très souvent complexes. Pour rendre cela plus clair et plus
facile pour nous, nous pouvons diviser le futur système en parties séparées, selon les "familles" de
fonctionnalités et de telle manière qu’elles puissent être analysées séparément. Chacune de ces parties
correspond à un domaine fonctionnel ou à un package.
La figure 2.2 représente le diagramme de packages de la solution
30
Chapitre 2. Analyse et spécification des besoins
Le diagramme de cas d’utilisation décrit comment les acteurs vont utiliser la plate-forme,
c’est la réponse à la question suivante : QUI devrait pouvoir faire quoi ?
La figure 2.3 regroupe les exigences de la plate-forme à l’aide du diagramme de cas d’utilisation
du langage UML,
31
Chapitre 2. Analyse et spécification des besoins
Dans cette section, nous allons raffiner les cas d’utilisation les plus importants en utilisant
soit une description textuelle, soit un diagramme d’activité.
Le tableau 2.2 illustre la description textuelle du cas d’utilisation « Ajouter la planification
des jobs »
SOMMAIRE D’IDENTIFICATION
Titre : Ajouter la planification des jobs
Acteur : Manager
DESCRIPTION D’ENCHAÎNEMENT
Scénario nominal
32
Chapitre 2. Analyse et spécification des besoins
Scénario alternatif
Tableau 2.2: Description textuelle du cas d’utilisation « Ajouter la planification des jobs »
Le tableau 2.3 illustre la description textuelle du cas d’utilisation « Ajouter une nouvelle base
de données »
SOMMAIRE D’IDENTIFICATION
Titre : Ajouter la configuration de datastores
Acteur : Manager
DESCRIPTION D’ENCHAÎNEMENT
Scénario nominal
33
Chapitre 2. Analyse et spécification des besoins
Scénario alternatif
Tableau 2.3: Description textuelle du cas d’utilisation « Ajouter une nouvelle base de données »
Les "User stories" précédemment dénoncées dans le Backlog du produit sont classées par
ordre de priorité et par des valeurs métiers. L’objectif est de réaliser d’abord ce qui est le plus
profitable. Le travail sera planifié en fonction des sprints que nous avons dénoncés et chacun dure
deux semaines. Après une première réunion avec l’équipe, 8 sprints et deux releases ont été décidés.
Dans le tableau 2.4, nous présentons la planification des sprints.
34
Chapitre 2. Analyse et spécification des besoins
Conclusion
Ce chapitre nous a permis d’établir une délimitation précise du projet et d’avoir une vision
plus claire du sujet. Nous avons décrit les besoins fonctionnels et non fonctionnels, les acteurs et le
Backlog produit. Cela nous a permis, par la suite, de planifier et d’organiser le temps consacré au
projet en identifiant les sprints. Ensuite, nous avons décrit les cas d’utilisation nécessaires et leurs
descriptions textuelles. Dans le chapitre suivant, nous commencerons la phase d’initialisation du
projet.
35
Chapitre 3
Initialisation du projet
Plan
1 Initialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2 Architecture de la solution . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3 Conception détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4 Environnements de travail . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Introduction
3.1 Initialisation
Etant donné que nous allons travailler avec une solution complexe dans le domaine du Batch
Processing et du Machine Learning, nous avons consacré la première période à nous documenter.
Ensuite, nous avons suivi une formation d’introduction avant de démarrer le projet pour être en
mesure d’utiliser les bons outils pour exploiter ces technologies.
Ces formations se déroulent autour de :
• Batch Processing,
• Machine Learning,
Pour avoir une bonne vue d’ensemble de l’architecture de la solution, nous devons présenter
son architecture logique et logicielle.
Au stade de l’architecture logique, nous nous concentrons sur le système en tant que boîte
blanche et définissons comment le système fonctionnera de manière à répondre aux attentes.
L’architecture que nous avons adaptée pour la réalisation de notre solution est l’architecture
N-tiers. Elle est composée de 3 couches principales suivant les bons principes de conception.
Ces couches sont comme suit :
• Couche logique métier : qui correspond à la mise en œuvre de l’ensemble des règles métier
et de la logique applicative.
37
Chapitre 3. Initialisation du projet
• Couche d’accès aux données : qui correspond aux données qui sont destinées à être
conservées sur la durée, voire de manière définitive.
• Front-end : afin de s’assurer que l’utilisateur a l’expérience la plus efficace possible, nous
avons choisi l’Angular 7 comme cadre frontal avec un tas d’autres outils pour améliorer
l’application côté client comme Ngrx l’implémentation du pattern Redux avec Angular, le
fameux Framework CSS Bootstrap 4 pour améliorer l’interface utilisateur.
38
Chapitre 3. Initialisation du projet
— Batch : sa responsabilité est de lire les données du client, puis d’utiliser la couche
logique métier pour traiter les données avec un contrôleur qualité, et enfin de transmettre
le résultat du contrôle qualité à la couche DAO.
— Metier : sa responsabilité est de fournir les services nécessaires pour assurer la logique
métier de l’application.
— Web : a responsabilité est de fournir des services Web pour communiquer avec le
front-end via HTTP et JSON.
Dans cette section, nous aborderons la partie conception au cours de laquelle nous illustrerons
notre conception avec la présentation du diagramme de packages et du diagramme de déploiement.
39
Chapitre 3. Initialisation du projet
• Web : contient les classes qui gèrent la couche web ces classes sont les points d’entrée de la
plate-forme, ce package contient deux autres packages qui sont :
— Controllers : contient des classes qui sont chargées de répondre à l’application côté client
par un protocole HTTP en utilisant les services Restful.
— DTO : contient des classes avec le format requis par l’application côté client et pour se
protéger contre la fuite d’information.
• Security : contient les classes qui gèrent la couche de sécurité basée sur Spring Security, ce
package contient une autre package qui est :
• Services : contient les classes qui gèrent la couche métier de la plate-forme, ce package contient
une autre package qui est :
— Checkers : contient les classes qui implémentent les contrôles de qualité en utilisant le
design pattern strategy.
• Batch : contient les classes qui se chargeront du traitement batch, ce package contient trois
autres packages qui sont :
— Items : contient les classes héritées des classes de Spring Batch Core pour la lecture, le
traitement et l’écriture des données.
— Configurations : contient les classes qui configurent les beans nécessaires au traitement
batch et à la planification des jobs.
— Listeners : contient les classes impliquées dans le cycle de vie de l’exécution des jobs.
• Configurations : contient les classes qui configurent les beans nécessaires au fonctionnement
de la plate-forme.
• Datasources : contient des classes qui gèrent les types de sources de données des clients afin
de charger le bon pilote JDBC en utilisant le design pattern abstract factory.
• Repositories : contient les interfaces des repositories JPA qui gèrent l’accès aux bases de
données
40
Chapitre 3. Initialisation du projet
41
Chapitre 3. Initialisation du projet
• Processeur : Intel(R) Core(TM) i7-6500U CPU @2.50GHz, 2592 MHz, 2 cœurs, 4 processeurs
logiques,
• Système : 64 bits.
Cette section présente les différents outils et langages de développement que nous avons
utilisés pour réaliser notre application.
Ci-dessous se trouvent les différents outils que nous avons utilisés pour développer l’application :
• Visual Paradigm : est un outil UML supportant UML 2, SysML et BPMN du Object
Management Group (OMG).
• IntelliJ IDEA Ultimate : fournit une bonne interface utilisateur conviviale et intuitive.
Facile à utiliser et à coder et il a un compilateur très rapide. Utilisable pour Java, Kotlin,
Groovy, Scala.
• Postman : est un bon outil pour tester les API, en envoyant la requête au serveur web et en
récupérant la réponse. Ceci est utilisé comme un outil principal dans les plus grandes sociétés
de test de logiciels.
42
Chapitre 3. Initialisation du projet
• Maven : est un outil de gestion de projet logiciel pour Java maintenu par l’Apache Software
Foundation.
• Git : est un système de contrôle de version distribué permettant de suivre les changements
dans le code source pendant le développement du logiciel.
• Travis CI : est un service d’intégration continue hébergé utilisé pour construire et tester des
projets logiciels hébergés chez GitHub.
• Codacy : est un outil automatisé d’examen du code qui permet aux développeurs d’améliorer
la qualité du code et de surveiller la dette technique. Codacy automatise les révisions de code
et surveille la qualité du code à chaque requête de validation et d’extraction. Il rend compte
de l’impact de chaque demande de commit ou de pull dans les nouvelles questions concernant
le style de code, les meilleures pratiques, la sécurité et bien d’autres.
• Taiga.io : est un système de gestion de projet gratuit et open-source pour les startups, les
développeurs Agile et les designers. Taiga est une application de gestion de projet qui peut gérer
des projets simples et complexes pour des startups, des développeurs de logiciels et d’autres
équipes cibles. Il permet aussi de suivre l’avancement d’un projet.
• snyk.io : est une solution de sécurité qui aide les entreprises à utiliser l’open source et à
rester sécurisées. Snyk est la seule solution qui trouve et corrige de manière transparente et
proactive les vulnérabilités et les violations de licence dans les dépendances open source et les
images Docker.
Ci-dessous, les choix techniques concernant les langages de développement sont imposés par
le Product Owner dès le début du projet, et qui sont :
• Java : est un langage de programmation dans la tradition du C et du C++. Java diffère des
autres langages de programmation de plusieurs façons importantes comme son indépendance
par rapport à la plate-forme, son orientation objet inhérente et le fait qu’il est accompagné
d’une bibliothèque de classes qui fournissent les fonctions utilitaires les plus utilisées.
43
Chapitre 3. Initialisation du projet
utilisées par n’importe quelle application Java, mais il existe des extensions pour construire
des applications web sur la plate-forme Java EE (Enterprise Edition). Bien que le framework
n’impose aucun modèle de programmation spécifique, il est devenu populaire dans la communauté
Java en tant que complément, voire en remplacement du modèle Enterprise JavaBeans (EJB).
• OpenNLP : est une toolkit basée sur la machine learning pour le traitement des textes en
langage naturel. Il prend en charge les tâches NLP les plus courantes, telles que la détection
de la langue, la tokenisation, la segmentation des phrases, le marquage partiel de la parole,
l’extraction des entités nommées, l’extraction des blocs, l’analyse et la résolution de coreference.
Ces tâches sont habituellement nécessaires pour créer des services de traitement de texte plus
avancés.
• Angular 7 : est un framework d’application web open-source basé sur TypeScript, dirigé par
l’équipe Angular de Google et par une communauté de particuliers et d’entreprises. Angular
est une réécriture complète de la même équipe qui a construit AngularJS.
Pour être en mesure de débuter la réalisation du projet, nous avons téléchargé et installé les
logiciels suivants :
• JDK 1.8,
• Postman,
• PostgreSQL,
• Mysql 8.
Afin d’assurer une vue d’ensemble complète de l’avancement du projet tout en assurant une
intégration continue, l’automatisation de la vérification de la qualité du code et l’automatisation de
la détection des vulnérabilités du code. Nous avons configuré notre projet pour utiliser les projets
en ligne open-source suivants :
• Travis CI,
44
Chapitre 3. Initialisation du projet
• Codacy,
• Snyk.
Conclusion
Dans ce chapitre, nous avons décrit l’architecture physique et logique de notre solution,
l’environnement de travail et la conception des quelques diagrammes.
Le chapitre suivant sera une illustration de la réalisation du premier release et nous entamerons par
la conception de ses différents sprints.
45
Chapitre 4
Plan
1 Sprint 1 : Configuration des bases de données . . . . . . . . . . . . . . . 47
Introduction
Ce chapitre fait l’objet d’une présentation du premier release du projet, soit la réalisation du
module de mise en œuvre de vérifications classiques de la qualité des données. Il est composé de 4
sprints, à savoir le sprint 1, 2, 3 et 4. L’étude de chaque sprint comprend l’analyse, la conception, la
réalisation et les tests fonctionnels ainsi que les problèmes rencontrés.
Ce sprint a pour but de développer la première partie de notre projet qui permettra au client
d’ajouter de nouvelles configurations de bases de données.
Le Backlog du sprint contient une liste des tâches identifiées par l’équipe Scrum qui doivent
être accomplies avant la fin du sprint. Le tableau 4.1 représente le Backlog du sprint 1.
47
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
4.1.2 Analyse
Afin de concrétiser rapidement les exigences et les attentes du client, nous avons élaboré des
maquettes. Cela nous a permis d’avoir une idée plus précise de l’ergonomie du module, une bonne
compréhension du processus et, avant tout, une amélioration dans le processus de conception.
Les figures 4.1 et 4.2 représentent respectivement l’interface permettant à l’utilisateur de
s’authentifier à l’application et l’interface permettant à l’utilisateur d’ajouter une nouvelle configuration
de base de données.
48
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
4.1.3 Conception
Cette partie est consacrée à la conception du sprint, désignant les composants de chaque
couche comme les packages et les classes. La conception vise à nous permettre de vérifier les prévisions
et de réajuster les récits des utilisateurs en cas d’erreurs.
Le diagramme de séquence est un diagramme d’interaction qui détaille comment les opérations
sont exécutées, quels messages sont envoyés et quand. Les diagrammes de séquence sont organisés
en fonction du temps. Le temps passe au fur et à mesure que nous descendons la page. Les objets
impliqués dans l’opération sont répertoriés de gauche à droite en fonction du moment où ils participent
à la séquence de messages [17].
Les figures 4.3 et 4.4 illustrent respectivement le diagramme de séquence pour se connecter
à l’application et le diagramme de séquence pour ajouter une nouvelle base de données.
49
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
50
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
Dans cette section, nous allons présenter la structure statique de l’application via un diagramme
de classes pour chaque couche. Afin de clarifier le diagramme de classes et de le rendre plus lisible,
nous avons procédé à une schématisation simplifiée des interfaces, des classes métier et des entités.
Les figures 4.5, 4.6 et 4.7 illustrent respectivement le diagramme de classe de la couche d’accès
aux données, le diagramme de classe de la couche logique métier et le diagramme de classe de la
couche de présentation.
51
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
52
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
4.1.4 Réalisation
Afin de montrer les résultats de ce sprint, nous allons vous présenter quelques captures
d’écran.
Les figures 4.8, 4.9, 4.10 et 4.11 représentent respectivement la page permettant à l’utilisateur
de s’authentifier à l’application, la page d’affichage des paramètres des jobs, la page permettant
d’ajouter une nouvelle base de données et la page d’affichage de la liste des bases de données.
53
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
54
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
Le test d’un produit logiciel est un processus qui vise à assurer le bon fonctionnement
du système par une comparaison des comportements attendus et des résultats obtenus[18]. C’est
pourquoi nous utilisons la méthode TDD pour assurer une couverture de code maximale pour les tests
unitaires et d’intégration. De plus, pour plus de précision, nous avons validé toutes les fonctionnalités
avec le Product Owner avant la fin de chaque Sprint. Le tableau 4.2 représente les tests fonctionnels
du sprint 1.
55
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
Ce sprint vise à développer la partie de notre projet qui permettra au client de choisir les
tables et les colonnes dont la qualité est à vérifier.
Le Backlog du sprint contient une liste des tâches identifiées par l’équipe Scrum qui doivent
être accomplies avant la fin du sprint. Le tableau 4.3 représente le Backlog du sprint 2.
56
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
4.2.2 Analyse
Après avoir étudié les différentes tâches du sprint 2, nous avons établi une maquette pour
la valider avec le Product Owner. La figure 4.12 représente l’interface permettant à l’utilisateur
d’ajouter un nouveau job.
4.2.3 Conception
Étant donné que les diagrammes de classes du sprint précédent n’ont pas changé, nous ne
présenterons que les diagrammes de séquence pour ce sprint. Les figures 4.13 et 4.14 illustrent
respectivement le diagramme de séquence pour le chargement des tables et le diagramme de séquence
pour le chargement des colonnes.
57
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
58
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
4.2.4 Réalisation
Afin de montrer les résultats de ce sprint, nous présenterons quelques captures d’écran.
La figure 4.15 représente la page permettant à l’utilisateur de choisir les tables et colonnes pour
configurer un job.
59
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
Pour ce sprint, les problèmes que nous avons rencontrés, notamment le fait que nous lisons
des données à partir de structures de bases de données inconnues et variables, ainsi que l’état du
front-end est instable à cause des nombreuses interactions des utilisateurs. Par conséquent, pour
résoudre ce problème, nous allons utiliser pour la gestion des états NgRX l’implémentation dans
Angular du pattern Redux. La figure 4.16 représente l’architecture de NgRX.
Ce sprint a pour but de développer la partie de notre projet qui mettra en place un simple
contrôle de qualité pour la vérification de la base de données clients.
Le Backlog du sprint contient une liste des tâches identifiées par l’équipe Scrum qui doivent
être accomplies avant la fin du sprint. Le tableau 4.5 représente le Backlog du sprint 3.
60
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
4.3.2 Analyse
Après avoir étudié les différentes tâches du sprint 3, nous avons établi une maquette pour
la valider avec le Product Owner. La figure 4.17 représente l’interface permettant à l’utilisateur de
planifier le programme d’exécution des jobs.
61
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
4.3.3 Conception
Pour ce sprint, nous présenterons les diagrammes de séquences et les diagrammes de classes.
Nous décrirons mieux cette interaction en présentant les diagrammes de séquences ci-dessous
pour les cas d’utilisation «Sélectioner le contrôle de qualité NOTNULL» et «Planifier le programme
d’exécution des jobs». Les figures 4.18, 4.20 et 4.19 représentent respectivement les diagrammes de
sequences de l’execution d’un controle de quality, de planification du programme d’exécution des
jobs et d’instantiation des contrôleurs de qualité.
62
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
63
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
64
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
Pour ce sprint, afin de produire des diagrammes plus lisibles, nous ne montrerons que les
classes qui ont été ajoutées ou modifiées et nous colorerons les nouvelles classes ou méthodes de la
même manière que les sprints précédents et les classes qui ne les ont pas modifiées nous les colorerons
en gris Les figures 4.21, 4.22 et 4.23 illustrent respectivement le diagramme de classe de la couche
d’accès aux données, le diagramme de classe de la couche logique métier et le diagramme de classe
de la couche de présentation.
65
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
66
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
4.3.4 Réalisation
Afin de montrer les résultats de ce sprint, nous présenterons quelques captures d’écran. La
figure 4.19 représente la page de planification le programme d’exécution des jobs.
Test d’ajout Cliquer sur le bouton Ajouter Conserver les configurations Conforme
de plusieurs une configuartion précédentes et ajouter une
configurations nouvelle configuration.
67
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
Pour ce sprint, les problèmes que nous avons rencontrés, en particulier le fait que les jobs
doivent être exécutés sur des plannings spécifiques, pour résoudre ce problème nous avons utilisé
Quartz pour gérer l’exécution avec les expressions Cron.
Quartz est un framework open source de planification de tâches entièrement écrit en Java et
conçu pour être utilisé dans les applications Java SE et Java EE. Il offre une grande flexibilité sans
sacrifier la simplicité[19]. La figure 4.25 représente l’architecture de Quartz.
68
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
Ce sprint vise à développer la partie de notre projet qui mettra en place des contrôleurs de
qualité plus complexes pour vérifier la base de données clients.
Le Backlog du sprint contient une liste des tâches identifiées par l’équipe Scrum qui doivent
être accomplies avant la fin du sprint. Le tableau 4.7 représente le Backlog du sprint 4.
69
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
4.4.2 Analyse
Pour ce sprint, nous garderons la maquette du dernier sprint, car rien ne changera dans la
partie front et tout le travail sera fait dans la partie back end.
4.4.3 Conception
Pour ce sprint, nous présenterons les diagrammes de séquences et les diagrammes de classes.
Nous décrirons mieux cette interaction en présentant les diagrammes de séquences ci-dessous
pour les cas d’utilisation «Sélectioner le contrôle de qualité EMAIL», «Sélectioner le contrôle de
qualité AGE» et «Sélectioner le contrôle de qualité INTERVAL».
70
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
71
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
72
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
73
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
Pour ce sprint, afin de produire des diagrammes plus lisibles, nous ne montrerons que les
classes qui ont été ajoutées ou modifiées et nous colorerons les nouvelles classes ou méthodes de la
même manière que les sprints précédents et les classes qui ne les ont pas modifiées nous les colorerons
en gris La figure 4.29 illustre le diagramme de classe de la couche logique métier.
4.4.4 Réalisation
Afin de montrer les résultats de ce sprint, nous présenterons quelques captures d’écran. Les
figures 4.19 et 4.31 représentent respectivement la page d’ajouter des multiples configurations et la
page d’affichage des configurations.
74
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
75
Chapitre 4. Mise en œuvre du release 1 Vérifications classiques de la qualité des données
Pour ce sprint, nous n’avons pas rencontré de problèmes notables à mentionner en raison
de l’utilisation du design pattern Strategie, l’ajout de nouvelles classes de contrôles est devenu plus
facile et plus rapide.
Conclusion
76
Chapitre 5
Plan
1 Sprint 5 : Effectuer des contrôles génériques et basés sur NLP de qualité 78
Introduction
Ce chapitre fait l’objet d’une présentation du deuxième release du projet, soit la réalisation
du module de vérifications de la qualité des données basée sur la NLP. Il est composé de 4 sprints, à
savoir le sprint 5, 6, 7 et 8. L’étude de chaque sprint comprend l’analyse, la conception, la réalisation
et les tests fonctionnels ainsi que les problèmes rencontrés.
de qualité
n
Y
P(cn1 ) = P(ck |ck−1
k−N+1 ) (5.1)
k=0
N-gram est utilisé principalement pour prédire les mots d’une phrase, mais dans notre
situation en raison de la similitude entre les noms à travers les caractères utilisés pour la construction
des noms dans chaque culture ou zone géographique, nous allons utiliser le N-Gram pour prédire
la probabilité des caractères suivants. Cette probabilité sera calculée par l’utilisation d’un modèle
linguistique entraîné puis enregistré dans l’application sous la forme d’un bean.
78
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
Le Backlog du sprint contient une liste des tâches identifiées par l’équipe Scrum qui doivent
être accomplies avant la fin du sprint. Le tableau 5.1 représente le Backlog du sprint 5.
5.1.2 Analyse
Pour ce sprint, nous garderons la maquette du dernier sprint, car rien ne changera dans la
partie front et tout le travail sera fait dans la partie back end.
5.1.3 Conception
Pour ce sprint, nous présenterons les diagrammes de séquences et les diagrammes de classes.
Nous décrirons mieux cette interaction en présentant les diagrammes de séquences ci-dessous
pour les cas d’utilisation «Sélectioner le contrôle de qualité PATTERN» et «Sélectioner le contrôle
de qualité NAME».
79
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
81
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
Pour ce sprint, afin de produire des diagrammes plus lisibles, nous ne montrerons que les
classes qui ont été ajoutées ou modifiées et nous colorerons les nouvelles classes ou méthodes de la
même manière que les sprints précédents et les classes qui ne les ont pas modifiées nous les colorerons
en gris La figure 5.3 illustre le diagramme de classe de la couche logique métier.
5.1.4 Réalisation
Afin de montrer les résultats de ce sprint, nous présenterons quelques captures d’écran. La
figure 5.4 représentent respectivement la page d’ajouter des multiples configurations et la page
d’affichage des configurations.
82
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
83
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
Pour ce sprint, les problèmes que nous avons rencontrés, en particulier le fait que nous devons
choisir entre une variété de techniques NLP et la nécessité de les étudier attentivement pour faire
le bon choix était si frustrant. mais pour gagner du temps, nous avons choisi la technique N-grams
combinée avec le calcul de fréquence de terme pour prédire la probabilité d’un nom donné.
Le Backlog du sprint contient une liste des tâches identifiées par l’équipe Scrum qui doivent
être accomplies avant la fin du sprint. Le tableau 5.3 représente le Backlog du sprint 6.
84
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
5.2.2 Analyse
Après avoir étudié les différentes tâches du sprint 6, nous avons établi une maquette pour la
valider avec le Product Owner. La figure 5.5 représente l’interface permettant à l’utilisateur d’ajouter
un nouveau job.
5.2.3 Conception
Pour ce sprint, nous présenterons les diagrammes de séquences et les diagrammes de classes.
Nous décrirons mieux cette interaction en présentant les diagrammes de séquences ci-dessous
pour la cas d’utilisation «Afficher les resultats de contrôles de qualité». Les figures 5.6, 5.7, 5.8 et 5.9
représentent respectivement les diagrammes de sequences de chargement des jobs, de chargement
des configurations, de chargement des contrôles et d’affichage des résultats.
85
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
86
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
87
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
Pour ce sprint, afin de produire des diagrammes plus lisibles, nous ne montrerons que les
classes qui ont été ajoutées ou modifiées et nous colorerons les nouvelles classes ou méthodes de la
même manière que les sprints précédents et les classes qui ne les ont pas modifiées nous les colorerons
en gris Les figures 5.10, 5.11 et 5.12 illustrent respectivement le diagramme de classe de la couche
d’accès aux données, le diagramme de classe de la couche logique métier et le diagramme de classe
de la couche de présentation.
88
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
89
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
5.2.4 Réalisation
Afin de montrer les résultats de ce sprint, nous présenterons quelques captures d’écran. La
figure 5.13 représentent la page d’affichage des résultats des contrôles.
Test de Sélectionner une date Charger tous les jobs dans une Conforme
chargement liste
des jobs
90
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
Le Backlog du sprint contient une liste des tâches identifiées par l’équipe Scrum qui doivent
être accomplies avant la fin du sprint. Le tableau 5.5 représente le Backlog du sprint 7.
91
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
5.3.2 Analyse
Après avoir étudié les différentes tâches du sprint 7, nous avons établi une maquette pour la
valider avec le Product Owner. Les figures 5.14, 5.15 et 5.16 représentent respectivement l’interface
permettant au super-user d’ajouter un nouvel utilisateur, l’interface permettant au super-user de
modifier les informations d’un utilisateur et l’interface permettant au super-user de consulter la liste
des utilisateurs.
92
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
5.3.3 Conception
Étant donné que les diagrammes de classes du sprint précédent n’ont pas changé, nous ne
présenterons que les diagrammes de séquence pour ce sprint. Les figures 5.17, 5.18, 5.19 et 5.20
illustrent respectivement le diagramme de séquence d’ajouter un nouvel utilisateur, le diagramme
de séquence de modifier les informations d’un utilisateur, le diagramme de séquence de supprimer
un utilisateur et le diagramme de séquence de consulter la liste des utilisateurs.
93
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
94
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
95
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
5.3.4 Réalisation
Afin de montrer les résultats de ce sprint, nous présenterons quelques captures d’écran. Les
figures 5.21, 5.23, 5.24 et 5.22 représentent respectivement la page d’ajout d’un nouvel utilisateur,
la page de consultation de la liste des utilisateurs, la page de modification des informations d’un
utilisateur et la page de supprission d’un utilisateur.
96
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
97
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
Pour ce sprint, les problèmes que nous avons rencontrés, en particulier le fait que ces pages ne
doivent être accessibles qu’aux super-utilisateurs,98afin d’atteindre cet objectif, nous avons utilisé le
contrôle d’accès par rôle (RBAC) en combinant les capacités de Spring Security et Angular Guards
Services.
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
5.4.2 Analyse
Après avoir étudié les différentes tâches du sprint 8, nous avons établi une maquette pour
la valider avec le Product Owner. La figure 5.25 représente l’interface permettant à l’utilisateur de
consulter les graphes visualisant l’état de qualité des données.
Figure 5.25: Interface de consultation des graphes visualisant l’état de qualité des données
5.4.3 Conception
Pour ce sprint, nous présenterons les diagrammes de séquences et les diagrammes de classes.
Nous décrirons mieux cette interaction en présentant les diagrammes de séquences ci-dessous
pour la cas d’utilisation «Consulter les graphes visualisant l’état de qualité des données». Les figures
99
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
100
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
Pour ce sprint, afin de produire des diagrammes plus lisibles, nous ne montrerons que les
classes qui ont été ajoutées ou modifiées et nous colorerons les nouvelles classes ou méthodes de la
même manière que les sprints précédents et les classes qui ne les ont pas modifiées nous les colorerons
en gris Les figures 5.28 et 5.29 illustrent respectivement le diagramme de classe de la couche logique
métier et le diagramme de classe de la couche de présentation.
101
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
5.4.4 Réalisation
Afin de montrer les résultats de ce sprint, nous présenterons quelques captures d’écran. La
figure 5.30 représentent la page de consultation des graphes visualisant l’état de qualité des données.
102
Chapitre 5. Mise en oeuvre du release 2 Vérifications de la qualité des données basée sur la NLP
Figure 5.30: Page de consultation des graphes visualisant l’état de qualité des données
Conclusion
103
Dans ce release, nous avons conçu et mis en place des contrôles qualité basés sur la technique
NLP et permettant à l’utilisateur de consulter l’état de qualité des données via un tableau de bord
Conclusion générale
104
Bibliographie
[1] Leaders. (). IP-Tech, élue meilleure startup par Microsoft Tunisie. [Accès le 18-Juin-2019],
Leaders, adresse : https://www.leaders.com.tn/article/2141-ip-tech-elue-meilleure-
startup-par-microsoft-tunisie.
[3] C. C. et Stefan Rass, « An Overview of Data Quality Frameworks », IEEE Access, [Accès
le 23-Mars-2019].
[4] P. Bhanot. (27 octobre 2016). Top 5 Causes of poor data quality. [Accès le 20-Mars-2019],
Blazent, adresse : https://www.blazent.com/top-5-causes-poor-data-quality/.
[5] K. A. B. et Larry A. Pace, « Preventing human error : The impact of data entry methods on
data accuracy and statistical results », Computers in Human Behavior, [Accès le 20-Mars-2019].
[6] D. S. Tadhg Nagle Thomas C. Redman. (). Only 3% of Companies’ Data Meets Basic
Quality Standards. [Accès le 24-Mars-2019], Harvard Business Review, adresse : https : / /
www.blazent.com/top-5-causes-poor-data-quality/.
[7] E. Z. Mark Beyer Eric Thoo. (). Magic Quadrant for Data Integration Tools. [Accès le
23-Mars-2019], Gartner, adresse : https://www.gartner.com/doc/reprints?id=1-50UZP37&
ct=180524&st=sb&mkt_tok=eyJpIjoiWWpnNU9USXlOakl6TnpSaiIsInQiOiIyN1JSODJFMCtZcHZlcWlTdUt3RE
3D.
[8] A. Qian. (). Informatica Data Quality – A Peek Inside – Part 1. [Accès le 20-Mars-2019],
Perficient, adresse : https : / / blogs . perficient . com / 2017 / 02 / 05 / informatica - data -
quality-a-peek-inside-part-1/.
[9] R. du Trust Radius. (). Informatica Data Quality Reviews. [Accès le 13-Mars-2019], Trust
Radius, adresse : https://www.trustradius.com/products/informatica-data-quality/
reviews.
[10] N. R. (). DATA QUALITY WITH EDQ – PART 1 : DATA PROFILING. [Accès le 25-Mars-2019],
Clear Peaks, adresse : https : / / www . clearpeaks . com / data - quality - series - data -
profiling/.
105
Bibliographie
[11] R. du Trust Radius. (). Oracle Data Quality Reviews. [Accès le 23-Mars-2019], Trust Radius,
adresse : https://www.trustradius.com/products/oracle- enterprise- data- quality/
reviews.
[12] H. Fadlallah. (). An introduction to Data Quality. [Accès le 25-Mars-2019], Medium, adresse :
https://medium.com/@hadi.fadlullah/an-introduction-to-data-quality-951cc6fe0274.
[13] A. B. SALEM, « Qualité contextuelle des données : Détection et nettoyage guidés par la
sémantique des données », [Accès le 10-Avril-2019], thèse de doct., Université Paris 13.
[14] R. du Trust Radius. (). Talend Data Integration Reviews. [Accès le 10-Avril-2019], Trust
Radius, adresse : https://www.trustradius.com/products/talend- data- integration/
reviews.
[15] H. Tudor. (). Plan de cahier des charges et spécification des exigences non fonctionnelles
avec Volere. [Accès le 16-Janvier-2019], adresse : http://www.volere.co.uk/pdf%20files/
template_fr.pdf.
[16] A. Ernst. (). MySQL 8.0 : Steaming Into Production ? [Accès le 29-Mai-2019], Medium,
adresse : https : / / medium . com / @ernstae / mysql - 8 - 0 - steaming - into - production -
b4b06db11263.
[17] Creately. (). The Ultimate Guide to Sequence Diagrams. [Accès le 30-Mars-2019], Medium,
adresse : https://medium.com/thousand-words-by-creately/the-ultimate-guide-to-
sequence-diagrams-a78e0e516886.
[18] A. Bachuk. (). Understanding software testing. [Accès le 02-Avril-2019], Medium, adresse :
https://medium.com/@netxm/how-to-get-started-with-software-testing-9fa1ce4f2a64.
[19] Baeldung. (). Introduction to Quartz. [Accès le 15-Juin-2019], Baeldung, adresse : https:
//www.baeldung.com/quartz.
[20] A. Geitgey. (). Natural Language Processing is Fun ! [Accès le 30-Avril-2019], Medium,
adresse : https : / / medium . com / @ageitgey / natural - language - processing - is - fun -
9a0bff37854e.
[21] P. Kumar. (). An Introduction to N-grams : What Are They and Why Do We Need Them ?
[Accès le 30-Avril-2019], XRDS, adresse : https://blog.xrds.acm.org/2017/10/introduction-
n-grams-need/.
106
PÌl
Rw§ ...An¡ Tyr` TlA Plm Rw§ ...An¡ Tyr` TlA Plm Rw§ ...An¡ Tyr` TlA Plm Rw§
Rw§ ...rWF rK` ¤d ¨ wk§ ºAr ...An¡ Tyr` TlA Plm Rw§ ...An¡ Tyr` TlA Plm
ºAr ...An¡ Tyr` TlA Plm Rw§ ...rWF rK` ¤d ¨ wk§ ºAr ...An¡ Tyr` TlA Plm
Rw§ ...rWF rK` ¤d ¨ wk§ ºAr ...An¡ Tyr` TlA Plm Rw§ ...rWF rK` ¤d ¨ wk§
ºAr ...An¡ Tyr` TlA Plm Rw§ ...rWF rK` ¤d ¨ wk§ ºAr ...An¡ Tyr` TlA Plm
nkm§ ...rWF rK` ¤d ¨ wk§ ºAr ...An¡ Tyr` TlA Plm Rw§ ...rWF rK` ¤d ¨ wk§
...An¡ Tyr` TlA Plm Rw§ Exemple ici A Plm XF¤ ¨ Tyny ¯ ¤r Aml tk
Aml Hm E¤A d ºAr : y Af Aml
Résumé
Mettez le resumé en français ici... Mettez le resumé en français ici... Mettez le resumé en français
ici... Mettez le resumé en français ici... Merci de ne pas dépasser les dix lignes. Mettez le resumé
en français ici, merci de ne pas dépasser les dix lignes. Mettez le resumé en français ici, merci de
ne pas dépasser les dix lignes. Mettez le resumé en français ici, merci de ne pas dépasser les dix
lignes. Mettez le resumé en français ici, merci de ne pas dépasser les dix lignes. Mettez le resumé
en français ici, merci de ne pas dépasser les dix lignes. Mettez le resumé en français ici, merci de
ne pas dépasser les dix lignes. Mettez le resumé en français ici, merci de ne pas dépasser les dix
lignes. Mettez le resumé en français ici, merci de ne pas dépasser les dix lignes.
Abstract
Put the English abstract here, put the English abstract here, put the English abstract here, put
the English abstract here, put the English abstract here, put the English abstract here... Please
don’t exceed ten lines, Please don’t exceed ten lines, Please don’t exceed ten lines, Please don’t
exceed ten lines. Put the English abstract here, please don’t exceed ten lines. Put the English
abstract here, please don’t exceed ten lines. Put the English abstract here, please don’t exceed
ten lines. Put the English abstract here, please don’t exceed ten lines. Put the English abstract
here, please don’t exceed ten lines. Put the English abstract here, please don’t exceed ten lines.
Put the English abstract here, please don’t exceed ten lines. Put the English abstract here,
please don’t exceed ten lines.
isi@isim.rnu.tn : ¨¤rtk¯ d§rb 71 706 698 : HAf 71 706 164 : Ah TA§C 2080 ¨¤CAb A§r w h 2
2, Abou Raihane Bayrouni 2080 l’Ariana Tél : 71 706 164 Fax : 71 706 698 Email : isi@isim.rnu.tn