Optimisation IA en Assurance 2023
Optimisation IA en Assurance 2023
Par
images/logos/LOGO BH_LE_auto_x2_light_ai.jpg
Je dédie ce travail
yeux. Pour votre soutien sans faille, votre tendresse infinie et vos
innombrables sacrifices, je vous en suis éternellement reconnaissant. Que Dieu
Votre amour, votre soutien constant et votre présence réconfortante ont été
des piliers dans ma vie.
À ma bien-aimée,
Pour ton amour inconditionnel, ta patience et ton soutien indéfectible. Tu es
Boumhal,
Votre dévouement, votre solidarité sont une véritable source d’inspiration.
camaraderie.
Enfin, un message pour les personnes souffrant en Palestine,
Je sais que ce travail ne peut pas vous aider directement, mais j’espère qu’un
jour, je pourrai réaliser quelque chose qui vous sera vraiment utile. Vous êtes
dans mes pensées et mes prières, et je souhaite de tout mon cœur que la paix
et la justice vous soient accordées bientôt.
ii
Remerciements
C’est avec un grand plaisir que je réserve ces lignes en signe de gratitude et de
reconnaissance à tous ceux qui ont contribué de près ou de loin à l’élaboration
de ce travail.
réalisation de ce projet.
J’adresse aussi mes sincères remerciements à mon encadrante à l’ISG,
de ce stage.
iii
iv
Table des matières
Introduction Générale 1
1 Contextualisation du Projet 3
1.1 Cadre général du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Présentation de l’organisme d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 BH GROUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 BH Assurance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Étude de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 La Fusion client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.2 KYC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.3 Critique de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Solution proposée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Méthodologie de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.1 Étude comparative des méthodologies . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.2 Étude comparative des méthodologies agile . . . . . . . . . . . . . . . . . . . . 11
1.5.3 Méthodologie retenue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Préparation du Projet 15
2.1 Spécification des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.1 Identification des acteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.2 Besoins fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.3 Besoins non fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Analyse globale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.1 Diagramme de cas d’utilisation global . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Backlog du produit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.1 Élaboration Du Backlog Produit . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.2 Répartition du Backlog Produit . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
v
Table des matières
3 Release 1 28
3.1 Backlog de la Release 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2 Analyse globale de la Release 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 Conception globale de la Release 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4 Sprint 1.1 : Gestion des comptes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4.1 Backlog du Sprint 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4.2 Analyse détaillée du Sprint 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.4.3 Conception du Sprint 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.4.4 Réalisation du Sprint 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.5 Sprint 1.2 : Vérification KYC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.5.1 Backlog du Sprint 1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.5.2 Conception du Sprint 1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5.3 Réalisation du Sprint 1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.6 Test et validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4 Release 2 49
4.1 Backlog de la Release 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2 Analyse globale de la Release 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.3 Conception globale de la Release 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.4 Sprint 2.1 : Gestion client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.4.1 Backlog du Sprint 2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.4.2 Analyse détaillée du Sprint 2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.4.3 Conception du Sprint 2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.4.4 Réalisation du Sprint 2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.5 Sprint 2.2 : Gestion de balayage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.5.1 Backlog du Sprint 2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.5.2 Analyse détaillée du Sprint 2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.5.3 Conception du Sprint 2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
vi
4.5.4 Réalisation du Sprint 2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.6 Sprint 2.3 : Identification du classe de risque . . . . . . . . . . . . . . . . . . . . . . . . 65
4.6.1 Backlog du Sprint 2.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.6.2 Analyse détaillée du Sprint 2.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.6.3 Conception du Sprint 2.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.7 Description de l’identification de la classe de risque . . . . . . . . . . . . . . . . . . . . 68
4.7.1 Visualisations et Interprétations . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.7.2 Interprétation des clusters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.7.3 Prédiction d’un nouvel individu à un cluster . . . . . . . . . . . . . . . . . . . . 77
5 Release 3 79
5.1 Backlog de la Release 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2 Analyse globale de la Release 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3 Conception globale de la Release 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.4 Sprint 3.1 : Fusion client automatisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.4.1 Backlog du Sprint 3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.4.2 Analyse détaillée du Sprint 3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.4.3 Conception du Sprint 3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.4.4 Réalisation du Sprint 3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.5 Sprint 3.2 : Dashbording . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.5.1 Backlog du Sprint 3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.5.2 Analyse détaillée du Sprint 3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.5.3 Conception du Sprint 3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.5.4 Réalisation du Sprint 3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.6 Test et validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Netographie 96
vii
Table des figures
viii
Table des figures
ix
5.7 Interface"fusion client automatisée" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.8 Interface"fusion client automatisée" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.9 Interface"fusion client automatisée" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.10 Interface"fusion client automatisée" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.11 Interface"fusion client automatisée" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.12 Interface"fusion client automatisée" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.13 Interface"fusion client automatisée" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.14 Interface"fusion client automatisée" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.15 Diagramme de cas d’utilisation raffiné du Sprint 3.2 "Dashboarding" . . . . . . . . . . 91
5.16 Diagramme de séquence Sprint 3.2 "Dashboarding" . . . . . . . . . . . . . . . . . . . . 92
5.17 Interface"Dashboard" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.18 Interface"Dashboard" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.19 Interface"Dashboard" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
x
Liste des tableaux
xi
5.4 Description textuelle du cas d’utilisation "Fusion fiche client automatisée" . . . . . . . 84
5.5 Backlog du Sprint 3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
xii
Liste des abréviations
— DB = DataBase
— UI = User Interface
— US = User Story
xiii
Introduction Générale
Le secteur de l’assurance est en constante évolution, avec des défis croissants en matière
de gestion des risques et de conformité réglementaire. BH Assurance, une filiale de BH GROUP,
se distingue comme un acteur majeur dans ce domaine en Tunisie. Face à l’importance accrue de
l’efficacité opérationnelle et de la précision des analyses, il est devenu impératif d’adopter des technologies
innovantes comme la Robotic Process Automation (RPA) et le Machine Learning.
C’est dans ce contexte que s’inscrit notre projet de fin d’études, réalisé au sein de BH Assurance,
dans lequel nous sommes amenés à moderniser les processus de gestion des clients et de conformité.
L’objectif principal de ce projet est de développer une solution intégrée qui utilise la RPA pour
automatiser la fusion des fiches clients et le Machine Learning pour évaluer les classes de risque KYC
(Know Your Customer). Cette solution vise à optimiser l’efficacité opérationnelle, réduire les erreurs
humaines et améliorer la satisfaction des clients.
Ce rapport résume notre travail et est organisé en cinq chapitres, détaillant les différentes
étapes du projet :
— Le premier chapitre,"Contextualisation du projet", place le projet dans son contexte en
présentant l’organisme d’accueil, BH Assurance, et le projet qui nous a été confié. Nous analysons
également l’existant en matière de fusion client et de vérification KYC, avant de proposer une solution
innovante et la méthodologie de travail adoptée.
— Le deuxième chapitre,"Préparation du projet", est consacré à la phase de spécification des
besoins. Nous y identifions les acteurs impliqués, ainsi que les besoins fonctionnels et non fonctionnels.
Ce chapitre comprend également une analyse globale du projet, l’élaboration du backlog produit, et
la présentation de la conception architecturale et des choix technologiques retenus.
— Le troisième chapitre,"Release 1", détaille les fonctionnalités implémentées et livrées
dans cette première phase du projet, centrée sur la gestion des comptes et la vérification KYC. Nous
y présentons le backlog, l’analyse détaillée, la conception et la réalisation des sprints correspondants.
— Le quatrième chapitre, "Release 2", se concentre sur le développement du modèle de
machine learning pour identifier le classe de risque des clients. Nous y décrivons le backlog du sprint,
l’analyse des données, la sélection des variables, la conception du modèle, son implémentation, et les
1
Introduction Générale
2
Chapitre 1
Contextualisation du Projet
Introduction
Le but de ce chapitre est de présenter de manière complète le cadre général de mon projet.
Je commence par fournir des informations détaillées sur l’entité d’accueil, "BH Assurance", où j’ai
accompli mon stage de fin d’études. Par la suite, je procède à une analyse approfondie du contexte
actuel, suivie de la proposition d’une solution recommandée, ainsi que de la méthodologie que j’ai
déployée pour atteindre les objectifs fixés au préalable et obtenir les résultats prévus.
Mon stage a été réalisé au sein de BH Assurance. À l’aube de l’évolution technologique accélérée,
BH Assurance se distingue en mariant l’expertise humaine aux innovations numériques. L’entreprise
opte pour l’automatisation des processus, le remplacement de l’outil KYC, et l’intégration du machine
learning pour évaluer les risques clients. Cette approche avant-gardiste vise à redéfinir la sécurité
et l’efficacité opérationnelle, hissant BH Assurance au rang de leader visionnaire dans l’industrie de
l’assurance grâce à une défense avancée contre le blanchiment d’argent, le financement du terrorisme, et
les fraudes. En libérant les collaborateurs des tâches répétitives, cette synergie permet de se concentrer
sur des missions à forte valeur ajoutée, renforçant ainsi la confiance des clients. C’est dans ce cadre
que se déroule mon projet dont l’objetctif est d’améliorer les processus opérationnels et la gestion des
[Link] projet implique le développement de solutions innovantes, notamment l’automatisation de la
fusion des clients pour optimiser la base de données et le développement d’un outil KYC personnalisé,
adapté à des exigences particulières, et doté d’une intégration avancée du machine learning pour
évaluer le risque des clients. L’ensemble du projet vise à moderniser et optimiser la gestion des clients,
renforçant ainsi la capacité de l’entreprise à prendre des décisions éclairées grâce à l’utilisation de
technologies avancées.
3
Chapitre 1. Contextualisation du Projet
1.2.1 BH GROUP
1.2.2 BH Assurance
4
Chapitre 1. Contextualisation du Projet
images/chap1/bh [Link]
Afin d’assurer une satisfaction client constante, BH Assurance poursuit son engagement dans
la transformation numérique tout au long de l’année 2019. Actuellement, elle se prépare à déployer
ses solutions omnicanales, comprenant des sites web et des applications mobiles, pour une intégration
plus étroite dans la vie quotidienne de ses clients. Cette approche vise à maintenir un contact régulier,
à comprendre leurs besoins et à leur proposer des solutions d’assurance personnalisées.
5
Chapitre 1. Contextualisation du Projet
les fiches clients doublons, assurant ainsi l’intégrité et la fiabilité des données clients.
BH Assurance utilise également le logiciel Reis™, une plateforme complète conçue pour prévenir,
détecter et répondre aux risques de non-conformité réglementaire. Cette solution globale intègre
plusieurs composantes essentielles, notamment la connaissance client (Know Your Customer -
KYC),cette fonctionnalité joue un rôle crucial dans la gestion des risques de non-conformité réglementaire
en permettant à l’entreprise de collecter, de vérifier et de mettre à jour les informations relatives à ses
clients de manière rigoureuse et régulière.
Le logiciel GIAS intègre une fonction de fusion des clients pour traiter les doublons dans la
base de données client, optimisant ainsi la gestion des données en identifiant et consolidant les fiches
client doublons.
Lorsque des doublons sont détectés, que ce soit par une intervention manuelle des agents à la
demande ou automatiquement par le système selon des critères prédéfinis, la fonction de fusion entre
en action. Les agents ont ainsi la possibilité de demander au responsable conformité de fusionner le
doublon. Le responsable conformité examine attentivement les fiches clients en double et décide si la
fusion doit être effectuée ou non.
La fusion des clients est un processus méticuleux qui assure la cohérence et l’intégrité des
données client dans la base de données. Les informations provenant de différentes fiches client sont
fusionnées de manière transparente, éliminant ainsi les redondances et les incohérences. Cette approche
permet aux agents de bénéficier d’une vue d’ensemble unifiée de chaque client, facilitant ainsi une
gestion optimale des relations client.
1.3.2 KYC
Le KYC constitue un élément clé dans la lutte contre le blanchiment d’argent et le financement
du terrorisme, ainsi que dans le maintien de la réputation et de la crédibilité de l’entreprise. Avec l’outil
Reis™, BH Assurance peut mener des vérifications approfondies sur l’identité et les antécédents de
ses clients, garantissant qu’ils se conforment aux réglementations en vigueur.
Dans ce cadre, trois points clés se dégagent concernant la plateforme KYC de BH Assurance :
6
Chapitre 1. Contextualisation du Projet
— Fiche KYC et calcul de score de risque :La plateforme KYC de BH Assurance génère des fiches
client détaillées, contenant des informations complètes sur l’identité et les activités du client. De
plus, elle utilise des algorithmes pour calculer un score de risque pour chaque client, basé sur
divers facteurs tels que l’adresse, la profession, le produit, etc.
Une critique importante du processus de fusion des clients dans le logiciel GIAS réside dans
le niveau élevé d’attention nécessaire pour déterminer quelle fiche client est à garder et laquelle est à
remplacer. Cette exigence d’attention peut conduire à des erreurs humaines et à des résultats incorrects
ou incohérents. De plus, ce processus peut être source de fatigue et de monotonicité, surtout lorsqu’il
implique la gestion de plusieurs fiches clients doublons, entraînant ainsi une perte de temps significative.
Cette fatigue potentielle peut impacter la précision et la qualité de la fusion des clients, mettant ainsi
en péril l’intégrité des données client. Dans la base de données de BH Assurance, il existe environ
11000 fiche client en doublon.
La composante KYC du logiciel Reis™ est critiquée pour ses nombreux problèmes de bugs,
compromettant la capacité de l’entreprise à mener des vérifications précises sur ses clients. La vérification
KYC actuelle du logiciel Reis™ retourne plusieurs résultats avec une très faible précision pour la
détection des personnes sanctionnées LAB-FT (Lutte Anti Blanchiement d’Argent et Financement du
Terrorisme).La génération de plusieurs résultats imprécis par l’outil pousse les utilisateurs à devenir de
plus en plus négligents. D’un autre coté, l’existance de plusieurs Bugs implique l’arrêt de l’aplication
a plusieurs reprises, ce qui empêche la continuité de la vérification KYC pour tous les clients.
Le calcul du score de risque dans le logiciel Reis™ est remis en question en raison de la formule
de calcul utilisée et de son manque de sophistication. L’algorithme utilisé pour générer ce score est
très basique, ne prenant pas en compte un large éventail de facteurs pertinents. Par exemple, le score
de risque est principalement basé sur des critères tels que l’adresse, la nationnalité, la profession, etc.
sans tenir compte de nuances plus subtiles telles que les schémas de comportement inhabituels ou
les relations avec des entités à haut risque. Cette approche peut conduire à des évaluations inexactes
du niveau de risque associé à chaque client, ce qui compromet l’efficacité de la gestion des risques
de l’entreprise et ce qui peut exposer l’entreprise à de lourdes sanctions reglementaires nationales et
internationales.
7
Chapitre 1. Contextualisation du Projet
De même, le balayage des clients présente plusieurs problèmes de performance, ce qui entraîne
des retards dans l’identification des profils à risque. Le processus de balayage est souvent interrompu
en raison de lourdeurs techniques ou de limitations de capacité du système, ce qui empêche une
analyse rapide des données client. Cette inefficacité peut augmenter le risque pour l’entreprise en
retardant la détection des activités suspectes ou des clients à haut risque de conformité, permettant
ainsi à ces risques de passer inaperçus pendant une période prolongée. Au niveau national, le manque
d’alternatives en matière de logiciels KYC crée une dépendance à un fournisseur monopole, limitant
les options de l’entreprise. En revanche, sur le marché international, une variété de solutions plus
avancées sont disponibles, bien que leur coût élevé puisse être prohibitif pour BH Assurance. Cette
disparité crée un déséquilibre dans l’accès aux technologies et place les entreprises nationales dans une
position concurrentielle défavorable. BH Assurance est donc confrontée au dilemme de choisir entre
un logiciel KYC limité localement ou des solutions plus avancées mais très coûteuses.
Pour amorcer une révolution dans le processus de fusion des clients, nous projetons d’adopter
une approche avant-gardiste en intégrant la Robotic Process Automation (RPA). La RPA est une
technologie innovante qui permet d’automatiser les tâches répétitives.
Concrètement, en intégrant la RPA dans le processus de fusion des clients, nous envisageons
de mettre en place des robots logiciels capables d’identifier et de fusionner les fiches clients doublons
de manière autonome. Ces robots suivront un flux de travail prédéfini, en identifiant les doublons et
en choisissant quelle fiche est à garder et laquelle est à remplacer, tout comme le feraient les agents
humains, mais de manière plus rapide, continue et précise.
Cette approche vise à optimiser l’efficacité opérationnelle en réduisant les erreurs humaines et
en accélérant le processus de fusion des clients. De plus, elle permettra de décharger les agents de
tâches fastidieuses et répétitives, leur permettant ainsi de se concentrer sur des tâches à plus forte
valeur ajoutée nécessitant leur expertise humaine.
Ainsi,l’intégration de la RPA dans le processus de fusion des clients représente une avancée
significative dans la modernisation des opérations de BH Assurance, lui permettant ainsi de rester à la
pointe de l’innovation technologique tout en améliorant la satisfaction de ses clients et en renforçant
sa compétitivité sur le marché.
Face aux défis croissants en matière de gestion des risques et de conformité réglementaire, BH
Assurance se trouve confrontée à plusieurs problèmes avec la solution KYC existante, et pour répondre
à ces défis, une solution innovante émerge : le développement d’une plateforme KYC personnalisée en
8
Chapitre 1. Contextualisation du Projet
intégrant le Machine Learning. Cette solution sur mesure serait spécifiquement adaptée aux besoins
de BH Assurance, avec des algorithmes d’identification de classe de risque soigneusement étudiés et
des fonctionnalités de balayage programmables. Elle permettrait de minimiser les bugs et d’améliorer
l’efficacité du processus KYC. Cet outil serait capable d’évaluer de manière plus précise le risque associé
à chaque client, en prenant en compte une gamme plus large de facteurs pertinents. La programmation
du balayage permettrait également de lancer automatiquement des analyses selon les besoins, assurant
ainsi une surveillance continue et régulière des profils clients. Un autre aspect crucial à considérer est
l’amélioration de l’algorithme de recherche des personnes sanctionnées dans les listes de sanctions
nationales et internationales. Étant donné que l’efficacité de l’algorithme actuel diminue en termes de
précision, nous envisageons d’adopter un nouvel algorithme axé sur la recherche de similarités parmi
les individus sanctionnés.
La solution proposée comporte aussi une partie Dashboarding qui permettra de suivre en détails
les chiffres des recherches KYC, des vérifications clients, des balayages et la segmentation des risques
des clients.
Afin d’assurer le succès de tout projet, il est impératif d’adopter une approche convenable,
permettant une planification et une mise en œuvre efficaces et rentables. Cependant, dans le domaine
de la Business Intelligence, où la variété des projets défie toute prétention à l’universalité des méthodes
de gestion, la sélection de l’approche appropriée nécessite une délicate pondération de multiples
paramètres, incluant la nature du projet, ses caractéristiques, ses contraintes et ses objectifs. La
gestion de projet joue un rôle crucial en coordonnant les intervenants et les tâches pour garantir
le succès global. Il est donc capital d’examiner minutieusement toutes les options disponibles avant
de trancher. Ainsi, avant d’entamer la réalisation de notre projet, nous entreprendrons un examen
approfondi et une évaluation méticuleuse des méthodes de gestion de projet, afin de déterminer celle
qui conviendra le mieux à une conduite optimale du projet.
Nous procéderons à l’élaboration d’un tableau comparatif exhaustif, mettant en lumière les
divers aspects du cycle de vie, de la planification, de la documentation, de la constitution de l’équipe,
de la qualité, du changement, de la gestion des risques et de la mesure du succès, dans les méthodologies
traditionnelles ("Lourdes") et Agiles. Cette analyse détaillée constituera un outil précieux dans le
processus de sélection de la méthodologie la plus adaptée à notre projet.
9
Chapitre 1. Contextualisation du Projet
en Cascade ou en V, phase
Cycle de vie Itérative et incrémentale
séquentielle
Documentation : produite en
Documentation Réduite au strict nécessaire
quantité importante
Suite à cette étude comparative entre les méthodologies lourdes et les méthodologies agiles dans
le tableau nous avons opté pour le choix des méthodologies agiles. En effet, la méthodologie agile est
une approche itérative, collaborative et incrémentale capable de prendre en compte les besoins initiaux
du client et ceux liés aux évolutions qui offre une grande capacité d’adaptation aux changements et
aux imprévus. Le but principal d’une méthodologie est de livrer une version fonctionnelle du produit
entre les mains du client aussi vite que possible. Parmi les méthodes d’agile les plus renommées, se
10
Chapitre 1. Contextualisation du Projet
distinguent XP (Extreme Programming) et SCRUM. Ces deux méthodologies ont acquis une renommée
incontestable dans le domaine de la gestion de projet Agile, se positionnant comme des références
indiscutables. Chacune apporte sa propre expertise, ses principes uniques et ses pratiques distinctives,
contribuant ainsi à façonner un environnement propice au développement logiciel efficace et adaptable.
— Principes Agile : La méthode Agile se base sur un cycle de développement qui porte le client
au centre. Le client est impliqué dans la réalisation du début à la fin du projet. Grâce à la
méthode agile le demandeur obtient une meilleure visibilité de la gestion des travaux qu’avec
une méthode classique.
images/chap1/[Link]
Dans cette partie, nous commençons par une analyse comparative des méthodologies Agiles
pour bien choisir la méthodologie la plus adaptée parmi celles mentionnées auparavant, Le tableau 1.2
présente une comparaison entre Scrum et XP. On note que la méthodologie XP est adapté aux petits
et moyens projets alors que Scrum peut être adapté aux moyens projets et largement scalable
Critère Scrum XP
11
Chapitre 1. Contextualisation du Projet
1. Livrables rapides
2. Métaphore
3. Conception simple
1. Équipes Scrum 4. Tests
2. Backlog produit 5. Refactoring
Processus de
3. Sprint 6. Programmation en binôme
développement
4. Rétrospective Sprint 7. Propriété collective
8. Intégration continue
9. Client sur site
10. Standards de codage
1. Scrum master
Processus de gestion du 2. Réunion de planification de Jeux de planification
projet Sprints
3. La mêlée quotidienne
Nous avons adopté la méthode SCRUM agile pour la gestion de notre projet. Cette approche
itérative et flexible, largement utilisée et reconnue pour son efficacité, s’appuie sur des cycles de
développement courts appelés "Sprints". Grâce à cette méthodologie, nous produisons rapidement des
résultats tangibles, maximisant ainsi la valeur métier à long terme
• La continuité des itérations dans SCRUM assure un rythme régulier de livraison de fonctionnalités
opérationnelles, permettant au client de suivre étroitement l’avancement du projet et de fournir
un feedback régulier.
• SCRUM favorise une collaboration étroite entre les membres de l’équipe, en encourageant les
échanges réguliers et la communication transparente, créant ainsi un environnement de travail
dynamique et stimulant
• Cette méthodologie combine aspects théoriques et pratiques, offrant une approche réaliste et
pragmatique du développement de logiciels, ce qui en fait un choix idéal pour notre projet.
12
Chapitre 1. Contextualisation du Projet
• Enfin, SCRUM établit des objectifs clairs et réalisables pour chaque période définie, permettant
à l’équipe de rester focalisée sur les priorités du projet et d’atteindre des résultats concrets à
chaque itération. .
La vie d’un projet Scrum est rythmée par un ensemble de réunions clairement définies et
strictement limitées dans le temps :
• Revue de Sprint : Au cours de cette réunion qui a lieu à la fin du sprint, l’équipe de
développement présente les fonctionnalités terminées au cours du sprint et recueille les feedbacks
du Product Owner. C’est également en ce moment que le périmètre des prochains sprints est
anticipé.
• Rétrospective de Sprint : La rétrospective qui a lieu, généralement, après la revue de sprint est
l’occasion d’améliorer la productivité, la qualité, et l’efficacité de projet, d’ajuster les conditions
de travail, à la lueur du "vécu" sur le sprint écoulé.
13
Chapitre 1. Contextualisation du Projet
Pour bien illustrer le cycle de vie de chaque projet scrum, la figure 1.3 représente bien les
différentes étapes évoquées.
images/chap1/[Link]
Conclusion
Ce premier chapitre constitue une étape primordiale pour fixer les notions de bases de notre
projet. Après avoir présenté la société hôte et avoir identifié ses attentes du projet, nous avons
déterminé le contexte général de notre travail ainsi que la méthodologie de projet à suivre. Le chapitre
suivant est consacré à la préparation du projet à réaliser.
14
Chapitre 2
Préparation du Projet
Introduction
Dans ce deuxième chapitre et après avoir établi le cadre global de notre projet, nous entamons
maintenant la première étape de notre méthodologie, baptisée "Sprint 0". Dans cette phase, nous
nous concentrerons sur la planification et la conception de l’architecture de la solutionque nous
[Link] d’abord, nous procéderons à une analyse détaillée des besoins, accompagnée de la
création du diagramme de cas d’utilisation global, du diagramme de classe global et du backlog du
produit. Ensuite, nous répartirons ces besoins en sprints, établissant ainsi un planning prévisionnel.
Enfin, nous finaliserons la spécification de l’architecture pour guider notre développement ultérieur.
Nous allons identifier dans cette partie les acteurs et leurs rôles. Ensuite, nous allons délimiter
les besoins fonctionnels et non fonctionnels.
Avant de plonger dans les détails du projet, il est primordial d’identifier les intervenants clés qui
façonnent chaque aspect de notre solution. Ces acteurs occupent des rôles spécifiques et interagissent
activement avec les diverses composantes du système pour garantir son efficacité et sa pérennité.Ces
acteurs sont les suivants :
• Agent : un agent est un utilisateur du système qui a des privilèges limités. Les agents peuvent
effectuer des tâches opérationnelles telles que la recherche et la consultation des fiches clients, la
création de fiches clients KYC, le téléchargement et le stockage des documents KYC, et d’autres
actions spécifiques à leur rôle au sein de l’organisation.
15
Chapitre 2. Préparation du Projet
Les besoins fonctionnels représentent le comportement du système ainsi que les services offerts
aux différents intervenants. Notre application doit obligatoirement répondre aux fonctionnalités suivantes :
• Vérification KYC : L’agent peut filtrer et valider les correspondances, créer et modifier les
fiches client KYC, ainsi que télécharger et stocker les documents des fiches KYC. L’agent de
conformité peut fusionner les fiches client, accepter ou rejeter les clients, et consulter la matrice
de risque client. L’administrateur peut gérer la configuration du système, y compris les résultats
d’affichage et les règles de filtrage, et avoir accès à l’historique des utilisations du filtrage.
• Gestion balayage : L’utilisateur peut programmer ou lancer un balayge KYC spécifique sur
la liste des clients.
• Fusion client automatisée : L’utilisateur peut lancer un robot pour effectuer la fusion des
fiches clients en doublons.
• Dashboarding : L’utilisateur peut visualiser les clients par région, par spécialité, par note ou
via son historique avec les donneurs de services, etc.
16
Chapitre 2. Préparation du Projet
Les exigences du système ne sont pas nécessaires à son bon fonctionnement, mais qui ont un
impact indirect sur les résultats. Ainsi, ces éléments ne doivent pas être sous-estimés. De cette manière,
notre système doit se conformer aux critères suivants :
• Sécurité : Les données sont protégées pour garantir leur sécurité, avec des mesures telles que
le chiffrement des informations sensibles et la prévention des accès non autorisés.
• Maintenabilité : La facilité avec laquelle le système peut être maintenu et mis à jour afin
d’assurer sa durabilité et son évolutivité.
Dans cette partie, nous structurons les fonctionnalités du système dans un diagramme de cas
d’utilisation global, permettant de donner une vision globale du comportement fonctionnel de notre
système.
Nous utilisons les diagrammes de cas d’utilisation dans le but de donner une vision globale du
comportement d’un système logiciel.
La figure 2.1 illustre le diagramme de cas d’utilisation global.
17
Chapitre 2. Préparation du Projet
images/annexe/[Link]
Dans cette section, nous exposons le backlog du produit ainsi que la répartition de ses releases
et de ses sprints.
18
Chapitre 2. Préparation du Projet
Le backlog produit représente l’élément central de Scrum, rassemblant toutes les fonctionnalités
ou aspects techniques définissant le produit final désiré. Les fonctionnalités spécifiques sont souvent
désignées sous le terme de "user stories". Dans le cadre de notre application, le backlog produit est
présenté dans le tableau 2.1. Cependant, il est pertinent de souligner que :
Estim-
Fonction-
ID User Story Priorité ation
nalités
(Heures)
US1 En tant que utlisateur, je souhaite me connecter Haute 6
Gestion des US2 En tant que utilisateur connecté je souhaite me déconnecter Haute 4
comptes US3 En tant que utilisateur connecté ,je souhaite modifier mon mot de passe Haute 6
US4 En tant que administrateur, je souhaite créer des comptes Haute 12
US5 En tant que administrateur, je souhaite affecter les autorisations (role) Haute 8
US6 En tant que administrateur, je souhaite modifier les utilisateurs Moyenne 6
US7 En tant que utilisateur, je souhaite chercher une personne si blacklisté Haute 16
US8 En tant qu’agent, je souhaite pouvoir valider ou ignorer une correspondance Haute 12
trouvée en examinant les informations supplémentaires sur le client
Vérification US09 En tant qu’agent de conformité, je souhaite accepter ou rejeter client Haute 10
KYC US10 En tant que utilisateur connecté, je souhaite consulter le rapport de filtrage Basse 12
US11 En tant que agent de conformité connecté, je souhaite imprimer le rapport de Basse 4
filtrage
US2 En tant que administrateur , je souhaite ajouter des règles de filtrage Basse 48
US13 En tant que administrateur , je souhaite modifier des règles de filtrage Basse 16
US14 En tant que administrateur , je souhaite activer et désactiver des règles de Haute 8
filtrage
US15 En tant que utilisateur connecté , je souhaite consulter la liste des clients Haute 8
Gestion client US16 En tant que utilisateur connecté , je souhaite rechercher un client Haute 8
US17 En tant que utilisateur connecté , je souhaite exporter une fiche client Haute 8
US18 en tant que utilisateur connecté , je souhaite consulter la fiche client Moyenne 6
US19 En tant qu’agent, je souhaite créer fiche client KYC Haute 10
US20 En tant qu’agent de conformité, je souhaite modifier fiche client KYC Haute 8
US21 En tant qu’agent de conformité, je souhaite visualiser la classe de risque de Haute 6
client
US22 En tant que administrateur , je souhaite planifier les taches de balayage Haute 14
Gestion
(frequence)
balayage
US23 En tant que administrateur , je souhaite lancer le balayage manuellement via Haute 28
l’interface
US24 En tant que administrateur, je souhaite consulter le rapport de balayage Haute 8
US25 En tant que agent de conformité , je souhaite consulter le rapport de balayage Moyenne 6
Identification US26 En tant que utilisateur connecté je souhaite visualiser la classe de risque d’un Haute 56
du score de client
risque
19
Chapitre 2. Préparation du Projet
US27 En tant que administrateur je souhaite visualiser l’analyse de classe de risque Baisse 24
de client
Fusion client US28 En tant que agent de conformité , je souhaite lancer un robot pour effectuer Haute 40
automatisée la fusion des fiches clients en doublons
US29 En tant que utilisateur connecté , je souhaite visualiser les clients par région, Haute 24
Dashboarding par spécialité, par note ou via son historique avec les donneurs de services,
etc.
Après avoir réalisé notre Backlog du produit, nous avons organisé une réunion de planification
avec l’équipe Scrum et nous avons divisé le travail en des releases et ce comme suit :
Pour concevoir notre application,nous avons choisi l’architecture à trois-niveaux (3-tiers) pour
la réalisation de notre [Link] architecture est constituée de trois éléments principaux,
comme le montre la figure ci-dessous :
• Le client : C’est l’utilisateur final qui sollicite des ressources ou des services.
20
Chapitre 2. Préparation du Projet
images/chap2/[Link]
• Flexibilité et adaptabilité : Cette architecture offre une flexibilité exceptionnelle pour l’intégration
de nouvelles technologies, ce qui facilite grandement le processus de développement et d’amélioration
continue de l’application.
• Optimisation des performances : La répartition des tâches entre les différents serveurs dans
cette architecture garantit des performances globales optimales, améliorant ainsi l’expérience
utilisateur et l’efficacité opérationnelle.
21
Chapitre 2. Préparation du Projet
images/chap2/[Link]
L’architecture à trois niveaux, comme illustré dans la figure 2.4, vise à diviser une application en trois
couches logicielles distinctes. Elle permet de modéliser et de présenter cette application comme un
empilement de trois couches, chacune ayant un rôle clairement défini :
• Présentation des données : Cette couche correspond à l’interface utilisateur, incluant l’affichage
des données, leur restitution sur le poste de travail et le dialogue avec l’utilisateur.
• Traitement métier des données : Cette couche implémente l’ensemble des règles de gestion
et de la logique applicative de l’application.
• Accès aux données persistantes : Cette couche gère l’accès et la manipulation des données
qui sont destinées à être conservées sur le long terme, voire de manière permanente, comme dans
une base de données.
22
Chapitre 2. Préparation du Projet
images/chap2/[Link]
• Le poste client : qui se compose d’un navigateur web servant d’outil de communication entre
les utilisateurs de notre système et les autres nœuds. Les utilisateurs lancent leurs demandes
sous forme de requêtes HTTP et reçoivent des réponses HTTP [7] en retour.
— L’interface de la base de données, qui assure la liaison entre notre application et la base de
données.
Pour élaborer l’architecture logique de notre système, nous choisissons l’architecture MVC
(Model-View-Controller) :
ce modèle MVC est un patron de conception largement utilisé dans le développement de sites web. Il
offre une approche bien établie pour séparer clairement les différentes responsabilités d’une application,
notamment l’affichage des informations, les interactions utilisateur et l’accès aux données.[mvc] La
figure 2.6 représente l’architecture MVC
23
Chapitre 2. Préparation du Projet
images/chap2/[Link]
• Modèle (Model) : encapsule la logique métier essentielle. Cette composante est chargée de définir
les classes et les méthodes responsables de la manipulation des données, des calculs et de la
logique métier. En général, les entités et les services sont inclus dans cette section pour gérer les
opérations liées à la base de données.
— Structuration claire : MVC divise l’application en trois parties distinctes - le modèle, la vue et
le contrôleur - rendant ainsi la structure plus facile à comprendre et à gérer.
— Facilité de maintenance : La séparation des différents aspects de l’application facilite les opérations
de maintenance en permettant des modifications sans perturber le reste de l’application.
24
Chapitre 2. Préparation du Projet
— Séparation des responsabilités : Chaque composant de MVC a un rôle bien défini, simplifiant le
développement, le débogage et la répartition des tâches au sein de l’équipe.
Cette partie sert à présenter les différents environnements matériels et logiciels ainsi que les
outils de développements et de contrôle à utiliser afin de bien accomplir notre travail.
Pour la réalisation de notre application, nous avons utilisé un PC portable doté de la configuration
définie dans le tableau 2.2.
Mémoire Vive 32 Go
Leslogiciels utilisés pour la réalisation du projet et qui sont listés dans le tableau 2.3.
25
Chapitre 2. Préparation du Projet
26
Chapitre 2. Préparation du Projet
Conclusion
27
Chapitre 3
Release 1
Introduction
Après avoir structuré les releases dans le chapitre antérieur, nous amorçons désormais la
première release , détaillant les sprints qui y sont associés. Nous plongerons ensuite dans l’analyse
et la conception élaborée pour chaque sprint, en mettant en lumière les interfaces de réalisation.
La première release est composée de deux sprints, Comme indiqué dans le tableau. 3.1
28
Chapitre 3. Release 1
images/chap3/Sprint1/[Link]
Dans cette section, nous allons introduire le diagramme global de classes de la Release 1, illustré
dans la figure 3.2 suivante.
29
Chapitre 3. Release 1
images/chap3/[Link]
30
Chapitre 3. Release 1
Le tableau suivant 3.2 décrit les différents attributs de chaque classe de cette release :
31
Chapitre 3. Release 1
Après avoir mené une analyse et une conception globale de la première release, nous amorçons
le premier sprint. Au cours de celui-ci, nous débuterons en exposant le backlog du sprint, déterminant
ainsi les tâches à entreprendre après notre réunion avec le Product Owner. Ensuite, nous aborderons
les diagrammes de conception, avant de présenter quelques interfaces élaborées lors du sprint 1.1.
Après avoir analysé le backlog du produit et le backlog de la Release 1, nous avons identifié les
tâches que nous allons effectuer tout au long de ce sprint. Toutes les tâches indiquées dans le tableau
3.3 doivent être effectuées à la fin de cette étape. Il est à noter que :
Estim-
ID ID
Fonctionnalité User Story Tâche ation
US Tâche
(heure)
32
Chapitre 3. Release 1
Au cours de cette partie, nous allons d’abord exposer le diagramme de cas d’utilisation raffiné
du sprint 1.1. Par la suite, nous expliquerons en détail la fonctionnalité que nous avons été demandées
de mettre en place tout au long de ce sprint.
Le diagramme de cas d’utilisation raffiné du sprint 1.1 est illustré dans la figure 3.3.
images/chap3/Sprint1/[Link]
33
Chapitre 3. Release 1
À travers le tableau 3.4 nous présentons la description textuelle du cas d’utilisation "S’authentifier".
Nous passons maintenant à la conception de ce sprint. Afin d’accomplir cela, nous exposons
d’une part le diagramme des classes de conception et d’autre part, une perspective dynamique avec le
diagramme des séquences.
Au cours de cette section, nous allons exposer le diagramme de classes de conception du sprint
1.1, tel que illustré dans la figure 3.4.
34
Chapitre 3. Release 1
images/chap3/Sprint1/[Link]
images/chap3/Sprint1/[Link]
35
Chapitre 3. Release 1
Nous allons exposer dans cette section quelques interfaces créées à partir du Sprint 1.1.
images/captures/[Link]
images/captures/[Link]
images/captures/[Link]
images/captures/[Link]
36
Chapitre 3. Release 1
images/captures/[Link]
images/captures/[Link]
Comme dans le sprint précédent et en se basant sur le même principe, nous allons commencer
par présenter le Backlog du sprint. Par la suite, nous allons exposer les diagrammes de conception et
enfin nous allons présenter quelques interfaces réalisées du sprint 1.2.
À la fin du sprint, toutes les tâches mentionnées dans le tableau 3.5 de backlog du sprint 1.2
oivent être livrées au client.
Notons qu’un utilisateur connecté désigne un agent,agent de conformité ou administrateur
.
Estim-
ID ID
Fonctionnalités User Story Tâche ation
US Tâche
(Heures)
7.1 Créer une interface de recherche permettant
En tant que utilisateur, je souhaite à l’utilisateur de saisir un formulaire de
16
US7 vérifier si une personne est blacklisté recherche.
à travers un algorithme de similarité. 7.2 Intégrer la fonctionnalité de recherche avec
Angular pour interagir avec le backend .
7.3 Mettre en place une API Flask pour gérer
Vérification la recherche des personnes ou d’organismes
KYC blacklistés avec la conception de l’algorithme
de similarité.
37
Chapitre 3. Release 1
38
Chapitre 3. Release 1
39
Chapitre 3. Release 1
Soient A et B deux chaînes avec |A| et |B| indiquant leur longueur respectivement. La distance
de Levenshtein D(i, j) entre les i premiers caractères de A et les j premiers caractères de B peut
être calculée récursivement comme suit :
D(i, 0) = i
D(0, j) = j
- Si A[i] = B[j] alors D(i, j) = D(i − 1, j − 1) (aucune modification nécessaire si les caractères
sont identiques) - Sinon, D(i, j) = 1 + min(D(i − 1, j), D(i, j − 1), D(i − 1, j − 1))
La distance de Levenshtein entre A et B est alors donnée par D(|A|, |B|), représentant le nombre
minimum d’opérations nécessaires pour transformer A en B.
c- Similarité date de naissance : Pour les dates de naissance, une approche basée sur la
40
Chapitre 3. Release 1
distance pourrait être moins pertinente, car des différences d’un ou deux jours (ou même quelques
mois ou années) peuvent être sans importance selon le contexte. Nous adoptons une approche
basée sur une comparaison directe du mois de naissance et de l’année de naissance sans prendre
en compte le jour de naissance.
d- Calcul : Pour évaluer la similitude entre des ensembles de données personnelles (nom, prénom,
date de naissance), il est essentiel d’adapter les méthodes. La distance de Levenshtein est efficace
pour les noms et prénoms, tandis qu’une comparaison directe ou un calcul de différence d’âge
convient mieux aux dates de naissance.
images/chap3/Sprint2/[Link]
— Le module de recherche interroge la base de données pour obtenir les listes de conformité et
41
Chapitre 3. Release 1
reçoit une liste de correspondances à vérifier. Cette liste est ensuite transmise à l’algorithme de
similarité, qui entre en boucle pour calculer la distance de Levenshtein pour chaque nom.
— Enfin, le système renvoie les résultats, indiquant s’il y a une correspondance ou non avec les
entrées des listes de conformité.
42
Chapitre 3. Release 1
images/chap3/Sprint2/[Link]
Dans cette partie nous avons présenté une description textuelle de quelques cas d’utilisation.
À travers le tableau 3.6 nous présentons la description textuelle du cas d’utilisation "Chercher
personne si blacklisté".
43
Chapitre 3. Release 1
4- Le système effectue une recherche dans la base de données pour trouver des correspondances de
personnes blacklistés en fonction des données saisies
5- Le système affiche les résultats de la recherche à l’utilisateur
6- L’utilisateur examine les résultats et prend les mesures appropriées selon les politiques de
l’entreprise (validation, rejet, etc.)
Scénario alternatif 1- Les champs obligatoires ne sont pas tous remplis : un message d’erreur s’affiche pour notifier
l’utilisateur
Tableau 3.6 : Description textuelle du cas d’utilisation "Chercher personne ou organisme blacklisté"
Nous abordons maintenant la partie conception de ce sprint. Pour ce faire, nous présentons d’un
côté le diagramme de classes de conception et d’un autre côté, une vue dynamique avec le diagramme
de séquences.
Cette tâche consiste à développer l’algorithme de distance de Levenshtein pour évaluer les scores
de similarité, La Figure 3.14 illustre le diagramme d’activité pour l’implémentation de l’algorithme de
distance de Levenshtein. .
44
Chapitre 3. Release 1
images/chap3/Sprint2/[Link]
Dans cette partie, nous allons présenter le diagramme de classes de conception du sprint 1.2.
comme le montre la figure 3.15
images/chap3/Sprint2/[Link]
45
Chapitre 3. Release 1
La figure 3.19 représente le diagramme de séquences détaillé du cas d’utilisation "modifier régle
de filtrage".
images/chap3/Sprint2/[Link]
Figure 3.16 : Diagramme de séquences détaillé du cas d’utilisation "modifier régle de filtrage"
Dans cette partie, nous allons présenter quelques interfaces réalisées du sprint 1.2
46
Chapitre 3. Release 1
images/captures/verifkyc/[Link]
images/captures/verifkyc/ajouterregle .png
47
Chapitre 3. Release 1
images/captures/gestion client/[Link]
Avant sa livraison, cette version a subi des tests et a été validée. Effectivement, tous les tests
unitaires, fonctionnels et d’intégration de chaque tâche ont été réalisés. Toutefois, la vérification a été
effectuée à travers des réunions mensuelles avec le product owner et le scrum master. Finalement,
chaque tâche mentionnée dans le backlog de la release 1 est livrée au client avec succès.
Conclusion
Ce chapitre a exposé la Release 1 ainsi qu’une analyse approfondie et une conception de chaque
sprint. Par la suite, nous avons abordé la mise en œuvre et la réalisation. Dans le prochain chapitre,
nous abordons la release 2 qui comporte la gestion de client, la gestion de balayage et l’identification
de score de risque basé sur un modéle de machine learning.
48
Chapitre 4
Release 2
Introduction
En suivant le même principe que dans la Release précédente, nous allons débuter en présentant
le Backlog de la Release pour déterminer les tâches que nous allons effectuer après notre réunion avec
le Product Owner. Ensuite, nous allons décrire en détail chaque sprint ainsi que son analyse et sa
conception. Au terme de chaque sprint, nous allons exposer les interfaces de sa mise en œuvre.
Dans cette partie, nous exposerons le diagramme des cas d’usage général pour la Release 2, tel
qu’indiqué dans la figure 4.1.
49
Chapitre 4. Release 2
images/chap4/[Link]
Dans cette partie, nous allons présenter le diagramme de classes global de la Release 2 comme
le montre la figure 4.2.
50
Chapitre 4. Release 2
images/chap4/[Link]
51
Chapitre 4. Release 2
Nous identifierons les tâches de la user story du sprint, estimerons leur durée en heures et
fournirons toutes les tâches énumérées au client à la fin du sprint.
Le tableau 4.3 présente le backlog du sprint, répertoriant toutes les tâches à réaliser. Notons
qu’un utilisateur connecté dans ce sprint spécifiquement désigne un agent ou un agent de conformité.
Estim-
ID ID
Fonctionnalité User Story Tâche ation
US Tâche
(Heures)
En tant que utilisateur 15.1 Créer une interface pour afficher la liste
Gestion
US15 connecté, je souhaite consulter des clients. 8
client
la liste des clients 15.2 Mettre en place une API Flask pour
récupérer la liste des clients depuis la
base de données.
52
Chapitre 4. Release 2
53
Chapitre 4. Release 2
Dans cette section, nous commencerons par présenter le diagramme de cas d’utilisation détaillé
du Sprint 2.2. Ensuite, nous décrirons en détail la fonctionnalité que nous devons développer durant
ce sprint.
54
Chapitre 4. Release 2
images/chap4/[Link]
Dans cette section, nous fournirons une description textuelle de deux cas d’utilisation.
Le tableau 4.4 présente la description du cas d’utilisation "Créer fiche client KYC", tandis que
le tableau 4.5 décrit le cas d’utilisation "Modifier fiche client".
55
Chapitre 4. Release 2
Acteurs Agent
Scénario alternatif 1- Si le client est blacklisté, l’agent est informé de la situation et ne peut pas
procéder à la création de la fiche KYC.
2- Si des champs obligatoires sont manquants ou des informations sont
incorrectes, le système affiche un message d’erreur et demande à l’agent de
corriger les données.
3- Si une erreur survient lors de l’enregistrement (problème technique, conflit
de données, etc.), le système affiche un message d’erreur et informe l’agent de
réessayer ultérieurement.
Tableau 4.4 : Description textuelle du cas d’utilisation "Créer fiche Client KYC"
56
Chapitre 4. Release 2
Scénario alternatif 1- Si des champs obligatoires sont manquants ou des informations sont
incorrectes, le système affiche un message d’erreur et demande à l’agent de
conformité de corriger les données.
2- Si l’agent de conformité décide d’annuler les modifications, il peut
sélectionner une option d’annulation.
3- Si l’agent de conformité sélectionne l’option d’annulation, le système
abandonne les modifications temporaires et restaure la fiche client KYC à
son état précédent.
Nous passons maintenant à la phase de conception de ce sprint. Pour cela, nous présenterons à
la fois le diagramme de classes de conception et une vue dynamique avec des diagrammes de séquences.
Dans cette section, nous présenterons le diagramme de classes de conception du sprint 2.1,
comme illustré dans la figure 4.5.
57
Chapitre 4. Release 2
images/chap4/[Link]
La figure 4.5 illustre le diagramme de séquences détaillé du cas d’utilisation "Consulter la liste
des clients".
images/chap4/[Link]
Figure 4.5 : Diagramme de séquences détaillé du cas d’utilisation "Consulter liste des clients"
58
Chapitre 4. Release 2
La figure 4.6 montre le diagramme de séquences détaillé pour le cas d’utilisation "Consulter
fiche client".
images/chap4/[Link]
Figure 4.6 : Diagramme de séquences détaillé du cas d’utilisation "Consulter fiche client"
Dans cette partie, nous allons présenter quelques interfaces réalisées du sprint 2.1. :
59
Chapitre 4. Release 2
images/captures/gestion client/[Link]
images/captures/gestion client/[Link]
60
Chapitre 4. Release 2
images/captures/gestion client/[Link]
Au début de cette section, nous introduirons le backlog du sprint. Ensuite, nous présenterons
les diagrammes de conception et, enfin, nous montrerons quelques interfaces créées lors du sprint 2.2.
Estim-
ID ID
Fonctionnalité User Story Tâche ation
US Tâche
(Heures)
22.1 Créer une interface pour permettre à
En tant que administrateur, je l’administrateur de planifier les tâches de
Gestion
US22 souhaite planifier les tâches de balayage (fréquence). 14
balayage
balayage (fréquence) 22.2 Mettre en place une API Flask pour gérer la
planification des tâches de balayage.
22.3 Implémenter la logique pour enregistrer les
tâches de balayage planifiées dans la base de
données.
En tant que administrateur, je 23.1 Ajouter un bouton ou une option dans
US23 souhaite lancer le balayage l’interface pour permettre à l’administrateur 28
manuellement via l’interface de lancer manuellement le balayage.
23.2 Mettre en place une API Flask pour déclencher
manuellement le balayage.
23.3 Implémenter la logique pour démarrer le
balayage en fonction des paramètres définis.
En tant que administrateur, je 24.1 Créer une interface pour permettre à
US24 souhaite consulter le rapport de l’administrateur de consulter les rapports 8
balayage de balayage.
61
Chapitre 4. Release 2
Estim-
ID ID
Fonctionnalité User Story Tâche ation
US Tâche
(Jours)
24.2 Mettre en place une API Flask pour récupérer
les rapports de balayage depuis la base de
données.
24.3 Implémenter la logique pour générer et fournir
les rapports de balayage au frontend.
En tant que agent de conformité, je 25.1 Créer une interface pour permettre à l’agent
US25 souhaite consulter le rapport de de conformité de consulter les rapports de 6
balayage balayage.
25.2 Mettre en place une API Flask pour récupérer
les rapports de balayage depuis la base de
données.
25.3 Implémenter la logique pour générer et
fournir les rapports de balayage à l’agent de
conformité.
Dans cette partie, nous présenterons d’abord le diagramme de cas d’utilisation détaillé du
Sprint 2.3. Ensuite, nous expliquerons en détail la fonctionnalité que nous devons développer tout au
long de ce sprint.
62
Chapitre 4. Release 2
images/chap4/Diagrammedecasd’[Link]
Dans cette section, nous fournirons une description textuelle d’un seul cas d’utilisation.
Le tableau 4.7 présente la description textuelle du cas d’utilisation "Planifier les tâches de
balayage (fréquence)".
Tableau 4.7 : Description textuelle du cas d’utilisation "Planifier les tâches de balayage (fréquence)"
Nous passons maintenant à la phase de conception de ce sprint. À cet effet, nous présentons,
d’une part, le diagramme de classes de conception et, d’autre part, une vue dynamique illustrée par
le diagramme de séquences.
63
Chapitre 4. Release 2
Dans cette partie, nous allons présenter le diagramme de classes de conception du sprint 2.3
comme le montre la figure 4.11.
images/chap4/[Link]
La figure 4.12 représente le diagramme de séquences détaillé du cas d’utilisation "Planifier les
tâches de balayage (fréquence)".
images/chap4/[Link]
Figure 4.12 : Diagramme de séquences détaillé du cas d’utilisation "Planifier les tâches de balayage
(fréquence)"
64
Chapitre 4. Release 2
Dans cette partie, nous allons présenter quelques interfaces réalisées du Sprint 2.2.
images/captures/[Link]
Ce sprint est dédié à l’implémentation d’un modèle de machine learning pour évaluer la classe de
risque des clients. La classe de risque KYC, une catégorie assignée au client, est déterminée en analysant
diverses variables liées au client. Cette classification est essentielle pour surveiller le portefeuille client
du point de vue de la conformité
Dans cette section, nous débuterons par la présentation du backlog du sprint. Ensuite, nous
détaillerons les diagrammes de conception pour illustrer l’architecture du système. Enfin, nous mettrons
en avant quelques interfaces développées durant ce sprint 2.3.
Le backlog du sprint présente les tâches et user stories nécessaires à l’implémentation du modèle
de machine learning pour le calcul du score de risque, chaque tâche étant estimée en heures et devant
être livrée au client à la fin du sprint. Notons qu’un utilisateur connecté désigne un agent, un agent
de conformité ou un administrateur.
Estim-
ID ID
Fonctionnalités User Story Tâche ation
US Tâche
(Heures)
26.1 Mise en place de l’API Flask et création d’un
Identification Le système calcule automatiquement endpoint RESTful pour récupérer les données
de score de US26 le score de risque KYC des clients à des clients 56
risque travers un modèle de machine learning Suite à la page suivante
65
Chapitre 4. Release 2
Dans cette partie, nous allons présenter, en premier lieu, le diagramme de cas d’utilisation
raffiné du Sprint 2.3. Nous allons exposer par la suite à expliquer en détail la fonctionnalité que nous
sommes demandées de réaliser tout au long de ce sprint.
66
Chapitre 4. Release 2
images/chap4/[Link]
À travers le tableau 4.9 nous présentons la description textuelle du cas d’utilisation "Identifier
la classe de risque de client".
Tableau 4.9 : Description textuelle du cas d’utilisation "identifier la classe de risque de client"
67
Chapitre 4. Release 2
Nous passons maintenant à la partie conception de ce sprint, en présentant une vue dynamique
à l’aide du diagramme de séquences.
Diagramme de séquences détaillé La figure 4.15 représente le diagramme de séquences
détaillé du cas d’utilisation "Identifier la classe de risque de client".
images/chap4/[Link]
Figure 4.15 : Diagramme de séquences détaillé du cas d’utilisation "classe de risque de client"
Cette section détaille l’analyse de clustering effectuée sur les données KYC (Know Your Customer)
pour identifier des groupes distincts de clients dans le cadre de la lutte contre le blanchiment d’argent
(AML) et le financement du terrorisme (FTF). L’analyse comporte plusieurs étapes :
— Choix du modèle
— Application de K-Means
68
Chapitre 4. Release 2
— Réduction de Dimensionnalité
— Visualisations
Nous avons utilisé les bibliothèques suivantes pour la partie Machine Learning : pandas, numpy, sklearn
(StandardScaler, LabelEncoder, KMeans, TSNE), matplotlib, seaborn.
Les données ont été chargées à partir d’un fichier CSV. Les lignes avec des valeurs manquantes
dans des colonnes cruciales comme ID_KYC, State, Product, Activity, Age, Canal, Gender, nation, et
nationality ont été supprimées pour assurer l’intégrité des analyses ultérieures. Une nouvelle variable
a été créée qui représente une copie de la colonne produit avec les valeurs épargne pour donner plus
de poids au produit épargne. L’étape de preprocessing est représentée dans la figure 4.16.
Les variables catégorielles telles que State, Product, Activity, Canal, Gender, nation, et nationality
ont été converties en valeurs numériques à l’aide de l’encodage des étiquettes (Label Encoding). Cette
étape est essentielle pour permettre l’utilisation de ces variables dans le clustering.
Les variables numériques, y compris une nouvelle variable pour donner plus d’importance
au produit "épargne", ont été normalisées pour avoir une moyenne de 0 et un écart type de 1. La
normalisation garantit que toutes les variables contribuent de manière équitable à l’analyse.
[Link]
69
Chapitre 4. Release 2
Choix du modèle
L’apprentissage supervisé et l’apprentissage non supervisé sont deux approches distinctes dans
le domaine de l’apprentissage automatique. L’apprentissage supervisé utilise des données labélisés pour
entraîner les modèles, ce qui signifie que à chaque ligne ou individu est associé à un label connu. Cela
permet au modèle d’apprendre à prédire le label correct pour de nouvelles données. En revanche,
l’apprentissage non supervisé n’utilise pas de labels de données. Il cherche plutôt à identifier des
structures ou des patterns dans les données en les regroupant sous forme de groupes similaires.
Dans ce travail, nous adoptons l’apprentissage non supervisé car nous n’avons pas de labels
connus. La formule existante à BH Assurance calcule le score de risque de manière statique, ce qui
signifie que la classe de risque calculée ne peut pas être utilisée comme un repère pour notre modèle.
Nous allons comparer trois modèles d’apprentissage non supérvisé qui sont K-Means, DBCAN et
Isolation Forest.
K-Means est un algorithme de clustering qui regroupe les données en un nombre prédéfini de
clusters, en minimisant la distance intra-cluster. Chaque cluster est défini par son centre (ou centroid),
qui est la moyenne des points appartenant à ce cluster. La complexité de cet algorithme est linéaire par
rapport au nombre de points, ce qui le rend très scalable pour les grands ensembles de données.[15].
DBSCAN (Density-Based Spatial Clustering of Applications with Noise) est un algorithme de
clustering basé sur la densité qui identifie les clusters selon la densité des points dans l’espace des
données. Il fonctionne en identifiant les régions denses et en les étendant en fonction de la densité
minimale requise. Contrairement à K-Means, DBSCAN n’a pas besoin de prédéfinir le nombre de
clusters et peut identifier des formes de clusters arbitraires. De plus, il peut détecter les points
considérés comme du bruit (outliers) [16].
Isolation Forest est un algorithme utilisé principalement pour la détection d’anomalies. Il
fonctionne en construisant des arbres de décision de manière aléatoire et en mesurant la facilité avec
laquelle les points de données peuvent être isolés. Les points qui sont facilement isolés sont considérés
comme des anomalies. Isolation Forest est efficace pour des jeux de données avec un grand nombre de
dimensions et est basé sur le concept de sous-échantillonnage, ce qui le rend très efficace en termes de
temps de calcul [17]
Nous avons préparé un dataset auquel le département conformité à affécté des labels et nous
avons évalué les trois modèles à l’aide des mesures precision, recall and f-score.
La précision est la proportion des prédictions positives qui sont réellement positives. En d’autres
termes, parmi tous les exemples que le modèle a prédits comme appartenant à une certaine classe,
combien sont effectivement de cette classe. La formule est :
70
Chapitre 4. Release 2
Vrais Positifs
Précision =
Vrais Positifs + Faux Positifs
Vrais Positifs
Recall =
Vrais Positifs + Faux Négatifs
Précision ∗ Recall
F1 = 2
Précision + Recall
Le F-score est particulièrement utile lorsque l’on cherche un équilibre entre la précision et le
recall, surtout lorsque les classes sont déséquilibrées [18].
La figure 4.17 présente les performances des trois algorithmes de clustering : K-Means, DBSCAN
et Isolation Forest, évalués à l’aide des métriques de précision, recall et F-score. K-Means affiche une
précision de 0.788, un recall de 0.824 et un F-score de 0.797, indiquant qu’il est capable de bien
identifier les clusters dans les données.
Le tableau montre que DBSCAN a une précision de 0.727, un recall de 0.241 et un F-score de
0.362. Cela suggère que bien qu’il soit capable de trouver des zones de haute densité, il peut ne pas
être aussi efficace que K-Means pour ce jeu de données particulier.
Les résultats montrent qu’Isolation Forest a une précision de 0.052, un recall de 0.133 et un
F-score de 0.075, ce qui indique qu’il est moins performant pour cette tâche de clustering spécifique
comparé aux deux autres algorithmes.
En conclusion, d’après les résultats du tableau, K-Means semble être le modèle le plus performant
pour ce jeu de données, avec des valeurs élevées de précision, de recall et de F-score.
[Link]
71
Chapitre 4. Release 2
Le clustering K-Means a été appliqué pour diviser les données en trois clusters distincts (relatifs
aux trois classes de risques).
K-means est une méthode de partitionnement qui divise un ensemble de données en k groupes
(ou clusters) en minimisant la somme des distances au carré entre les points de données et le centre
(centroïde) du cluster auquel ils appartiennent. L’algorithme de K-means [19] peut être décrit par les
étapes suivantes :
— 2- Assignation : Attribuer chaque point de données au cluster dont le centroïde est le plus proche.
— 3- Mise à jour : Calculer le nouveau centroïde de chaque cluster en prenant la moyenne des points
de données attribués à ce cluster.
— 4- Répéter les étapes d’assignation et de mise à jour jusqu’à ce que les centroïdes ne changent
plus significativement.
La formule de K-means pour minimiser la somme des distances au carré est la suivante :
k X
X
Fonction = ∥x − µi ∥2
i=1 x∈Ci
où :
72
Chapitre 4. Release 2
[Link]
La visualisation t-SNE montre la répartition des clusters en deux dimensions. Chaque point
représente un client et les couleurs différentes représentent les clusters.
[Link]
73
Chapitre 4. Release 2
Cette visualisation montre le nombre de clients dans chaque cluster, ce qui aide à comprendre
la taille relative de chaque groupe et ce qui donne une vision primaire sur la représentation des classes
de risques par les clusters comme le montre la figure 4.20. La répartition des données dans chaque
cluster montre que certains clusters sont plus grands, indiquant des profils de clients plus communs.
En général, la classe la plus large est la classe de risque faible et la classe la plus petite en nombre
d’individus est la classe de risque élevé. Mais nous allons visualiser plus de détails sur les clusters pour
décider des classes de risques représentées par chaque cluster.
[Link]
Cette figure 4.21 montre les relations entre différentes variables à travers les clusters. Chaque
point représente un client et les couleurs différentes représentent les clusters. Les axes représentent les
variables.
Dans le Cluster 0, les individus plus âgés ont une forte préférence pour les produits d’épargne,
ce qui renforce l’idée que ce cluster est constitué de clients retraités ou proches de la retraite tandis que
le Cluster 2 est composé d’individus plus jeunes qui sont plus diversifiés dans leurs choix de produits,
utilisant plus de produits transactionnels ou de crédit.
Dans le Cluster 0, on note une concentration notable des activités administratives ou gouvernementales,
corrélée avec une utilisation élevée des produits d’épargne. D’autre part, on note une diversité dans les
activités économiques et les produits utilisés, indiquant une clientèle variée avec des besoins financiers
sophistiqués. Le Cluster 0 présente aussi des individus plus âgés utilisent principalement les agences
74
Chapitre 4. Release 2
[Link]
physiques pour leurs transactions et le Cluster 2 présente des individus plus jeunes préfèrent les canaux
numériques pour leurs transactions, ce qui est typique des jeunes professionnels et des étudiants.
Ces histogrammes dans la figure 4.22 montrent comment les variables individuelles sont réparties
au sein de chaque cluster. Les couleurs différentes représentent les clusters.
L’analyse des distributions montre des différences significatives dans des variables telles que
l’âge, le produit, et le canal, ce qui aide à identifier les profils de risque spécifiques. Par exemple, pour
la distribution de l’Âge par Cluster, le cluster 0 est composé principalement de personnes âgées, ce qui
pourrait représenter des clients retraités ou des individus ayant des comportements financiers stables
75
Chapitre 4. Release 2
[Link]
alors que le cluster 2 est représenté majoritairement par des individus plus jeunes, probablement des
jeunes professionnels ou des étudiants avec des habitudes financières émergentes.
— Cluster 0 : Ce groupe peut représenter un certain profil démographique, par exemple, des
individus plus âgés avec des produits d’épargne justifiés.
— Cluster 1 : Ce segment peut inclure des individus plus jeunes avec une variété d’activités et de
produits.
— Cluster 2 : Peut être caractérisé par un canal de transaction particulier ou une distribution
nationale spécifique avec la présence des produits d’épargne non justifiés.
— Cluster 0 : Si ce cluster accorde une grande importance aux produits d’épargne et contient
des individus plus âgés, ce qui justifie et rend logique l’utilisation du produit épargne, ce cluster
peut représenter la classe de risque faible.
— Cluster 1 : Avec une population diversifiée, ce cluster peut représenter la classe de risque moyen.
— Cluster 2 : Un cluster avec une prédominance d’un certain canal ou nationalité avec la présence
76
Chapitre 4. Release 2
du produit épargne et une population plus jeune peut conduire vers la classe de risque élevé.
[Link]
Pour prédire le cluster auquel appartient un nouvel individu, nous avons suivi les étapes
suivantes :
— 4- Mise à l’échelle des variables : Les variables du nouvel individu sont mises à l’échelle en
utilisant le même scaler que celui utilisé lors de l’entraînement du modèle.
Exemple de Prédiction
— State : Medenine
77
Chapitre 4. Release 2
— Product : épargne
— Age : 30
— Canal : agence
— Gender : M
— nation : TUN
— nationality : LYB
Après encodage, mise à l’échelle et application du modèle K-Means, ce nouvel individu est
prédit appartenant au Cluster 2.
Cette approche permet de classer efficacement de nouveaux clients en fonction de leurs attributs
et d’adapter les stratégies de lutte contre le blanchiment d’argent et le financement du terrorisme en
conséquence.
Cette section montre comment une analyse de clustering peut aider à identifier et comprendre
les profils de risque dans le cadre de la lutte contre le blanchiment d’argent et le financement du
terrorisme. Les visualisations fournissent des insights clairs sur les caractéristiques des différents
clusters, permettant ainsi d’améliorer les stratégies de conformité et de surveillance du portefeuille
clients.
Conclusion
Dans ce chapitre, nous avons présenté la Release 2 avec une analyse détaillée et la conception
de chacun de ses sprints. Nous avons ensuite procédé à l’implémentation et à la réalisation des tâches
associées. De plus, nous avons décrit l’identification de la classe de risque. Dans le chapitre suivant,
nous aborderons la fusion client automatisée et le dashboarding
78
Chapitre 5
Release 3
Introduction
Comme pour la Release précédente, nous commencerons par présenter le Backlog de la Release
pour définir les tâches à réaliser suite à notre réunion avec le Product Owner. Ensuite, nous expliquerons
l’analyse et la conception détaillées de chaque sprint, suivies des interfaces de réalisation à la fin de
chaque sprint.
Nous allons présenter le diagramme de cas d’utilisation global de la Release 3, illustré par la
figure 5.1.
79
Chapitre 5. Release 3
images/chap5/casd’[Link]
Nous allons illustrer le diagramme de classes global de la Release 3 dans la figure 5.2.
80
Chapitre 5. Release 3
images/chap5/[Link]
81
Chapitre 5. Release 3
.
Le tableau suivant 5.2 décrit les différents attributs de chaque classe de cette release :
Nous allons commencer par présenter le backlog du sprint, puis exposer les diagrammes de
conception, et enfin présenter quelques interfaces réalisées lors du sprint 3.1.
Estim-
ID ID
Fonctionnalités User Story Tâche ation
US Tâche
(Heures)
28.1 Création de l’interface fusion client avec un
En tant qu’agent de conformité, je
bouton pour lancer le robot de fusion des fiches
Fusion Client souhaite lancer un robot pour
US28 clients 40
Automatisée effectuer la fusion des fiches clients en
28.2 Mise en place de l’API Flask pour déclencher
doublons.
le robot UiPath
28.3 Configuration et développement du robot
UiPath pour la détection et la fusion des
doublons
28.4 Stockage des résultats de la fusion dans la base
de données
28.5 Journalisation des actions du robot de fusion
(log des opérations de fusion, horodatage, etc.)
82
Chapitre 5. Release 3
Dans cette partie, nous allons présenter le diagramme de cas d’utilisation raffiné du Sprint 3.1,
puis expliquer en détail les différentes fonctionnalités à réaliser durant ce sprint.
images/chap5/[Link]
Dans le tableau 5.4 , nous avons présenté une description textuelle de notre cas d’utilisation.
83
Chapitre 5. Release 3
Fichier Excel contenant les fiches doublons des clients est accessible.
Post-conditions Les fiches clients doublons sont fusionnées avec succès dans le système GIAS.
Scénario alternatif 1- Si aucune fiche complète n’est trouvée dans le fichier Excel : - Le robot
alerte l’agent de conformité de l’absence de fiches complètes.
2- Si la fusion des fiches échoue dans GIAS : - Le robot alerte l’agent de
conformité de l’échec de la fusion.
Tableau 5.4 : Description textuelle du cas d’utilisation "Fusion fiche client automatisée"
84
Chapitre 5. Release 3
images/chap5/[Link]
Figure 5.4 : Diagramme de séquences détaillé du cas d’utilisation "fusion client automatisée"
Dans cette partie, nous allons présenter quelques interfaces réalisées du Sprint 3.1.
85
Chapitre 5. Release 3
images/captures/fusion client/[Link]
images/captures/fusion client/[Link]
86
Chapitre 5. Release 3
87
Chapitre 5. Release 3
images/captures/fusion client/[Link]
88
Chapitre 5. Release 3
89
Chapitre 5. Release 3
Estim-
ID ID
Fonctionnalités User Story Tâche ation
US Tâche
(Heures)
En tant qu’utilisateur connecté, je 29.1 Création de l’interface utilisateur pour
souhaite visualiser le nombre de visualiser le dashboard
Dashboarding US29 clients, le nombre de personnes 29.2 Développement des requêtes pour extraire les 5
sanctionnées, le nombre de données nécessaires à partir de la base de
correspondances trouvées, etc. données
29.3 Développement des widgets pour visualiser
les statistiques (nombre de clients, personnes
sanctionnées, etc.)
29.4 Intégration de graphiques et de tableaux pour
une visualisation claire et interactive des
statistiques
29.5 Mise en place des mécanismes de mise à jour
en temps réel des données affichées sur le
dashboard
90
Chapitre 5. Release 3
Nous allons d’abord présenter le diagramme de cas d’utilisation raffiné du Sprint 3.2, puis
expliquer en détail la fonctionnalité à réaliser pendant ce sprint..
images/chap5/[Link]
Nous passons maintenant à la conception de ce sprint, en présentant une vue dynamique avec
le diagramme de séquences. La figure 5.16 illustre en détail le diagramme de séquences pour le cas
d’utilisation ’Dashboarding’
91
Chapitre 5. Release 3
images/chap5/[Link]
Dans cette partie, nous allons présenter quelques interfaces réalisées du Sprint 3.2.
images/captures/dash/[Link]
92
Chapitre 5. Release 3
images/captures/dash/[Link]
images/captures/dash/[Link]
Cette release a été testée et validée avant livraison. La validation a été confirmée lors de réunions
mensuelles avec le product owner et le scrum master.
Conclusion
Dans ce chapitre, nous avons présenté la Release 3 avec une analyse détaillée et la conception
de chacun de ses sprints, suivies de l’implémentation et de la réalisation de toutes les fonctionnalités
demandées.
93
Conclusion Générale et Perspectives
Ce rapport synthétise les efforts et les réalisations de mon projet de fin d’études, dédié à la
conception et à la mise en œuvre d’une application KYC avancée pour le secteur de l’assurance
chez BH Assurance Tunisie. Ce projet a été construit autour de l’utilisation de technologies de
pointe telles qu’Angular pour le frontend, Flask pour le backend, et SQL Server pour la gestion des
données. L’application intègre des fonctionnalités complexes, notamment la vérification des clients,
l’automatisation des processus de fusion des fiches clients à l’aide de la Robotic Process Automation
(RPA) avec UiPath Studio, et le calcul du score de risque à l’aide de techniques de machine learning.
La réalisation de ce projet a été une expérience profondément enrichissante, offrant l’opportunité
d’appliquer concrètement des compétences techniques avancées dans un contexte réel. Grâce à une
approche basée sur la méthodologie Agile Scrum, nous avons pu développer l’application de manière
itérative, permettant une flexibilité et une adaptabilité aux besoins évolutifs du projet.
Parmi les fonctionnalités clés développées, l’application permet la vérification et l’identification
des clients grâce à l’algorithme de similarité de Levenshtein pour rechercher des personnes blacklistées,
l’automatisation des processus de fusion des fiches clients, et un tableau de bord pour suivre les
recherches KYC, les vérifications clients, et la segmentation des risques des clients. Ces éléments
constituent le cœur de l’application .
Sur le plan technique, ce projet a représenté une occasion inestimable d’approfondir ma maîtrise
de frameworks et de technologies modernes. La combinaison d’Angular et de Flask a offert une base
solide pour le développement, tandis que l’utilisation de SQL Server a assuré une gestion des données
fiable et efficace. Ce projet a également été l’occasion de développer des compétences en matière de
collaboration professionnelle, de gestion de projet, et de résolution de problèmes complexes.
L’implémentation du machine learning pour l’identification de la classe de risque a été une
composante clé de ce projet. Cette section a inclus l’analyse de clustering effectuée sur les données
KYC pour identifier des groupes distincts de clients dans le cadre de la lutte contre le blanchiment
d’argent (AML) et le financement du terrorisme (FTF). Les étapes comprenaient le prétraitement des
données, l’encodage des variables catégorielles, la normalisation des variables numériques, l’attribution
94
Conclusion générale et perspectives
95
Netographie
[3] Pratiques DevOps : Etre Agile sans DevOps ne sert à rien ([Link]). consulté le 30/03/2024.
url : [Link] big- data/etre- agile- sans- devops- ne-
sert-a-rien/.
[5] Memoire Online - Mise en place d’une architecture 3 tiers avec base de données centralisée
sous SQL SERVER : Cas d’une Gestion immobilière - Abdou Khadre Diop Kane. consulté le
25/03/2024. url : [Link]
architecture- 3- tiers- avec- base- de- donnees- centralisee- sous- SQL- SERVER- Cas-
[Link].
[6] Système de gestion de bases de données (SGBD) : cours de Tle ([Link]). consulté le
22/03/2024. url : [Link]
donnees-sgbd-/fiche-de-cours.
[8] Memoire Online - Site web de gestion de location et colocation dans le domaine de l’immobilier.
- Chafik Ahmadi. consulté le 20/05/2024. url : [Link]
12799/Site - web- de - gestion - de - location - et - colocation - dans - le - domaine - de - l -
[Link].
96
Netographie
[15] David Arthur et Sergei Vassilvitskii. “k-means++ : The advantages of careful seeding”. In :
Proceedings of the Eighteenth Annual ACM-SIAM Symposium on Discrete Algorithms. 2007.
[16] Martin Ester et al. “A Density-Based Algorithm for Discovering Clusters in Large Spatial
Databases with Noise”. In : Proceedings of the 2nd International Conference on Knowledge
Discovery and Data Mining (KDD-96). 1996.
[17] Fei Tony Liu, Kai Ming Ting et Zhi-Hua Zhou. “Isolation Forest”. In : 2008 Eighth IEEE
International Conference on Data Mining. 2008.
[18] Christopher M. Bishop. Pattern Recognition and Machine Learning. New York, NY, USA :
Springer, 2006. isbn : 978-0-387-31073-2.
[19] Hans-Hermann Bock. “Origins and extensions of the k-means algorithm in cluster analysis”.
In : Electronic journal for history of probability and statistics 4.2 (2008), p. 1-18.
[20] Laurens Van Der Maaten. “t-SNE”. In : Recuperado de https ://lvdmaaten. github. io/tsne
(2019).
[21] Pentalog. Être agile sans DevOps ne sert à rien. Accessed : 2024-05-18. 2020. url : https:
//[Link]/blog/cloud-big-data/etre-agile-sans-devops-ne-sert-a-rien/.
[22] BH Assurance. [Consulté le 29 Mars 2024]. url : https : / / bh - assurance . com / notre -
compagnie/.
[26] Introduction aux méthodes agiles et Scrum. [Consulté le 01 Mars 2024]. url : https : / /
[Link]/introduction-methodes-agiles/.
97
Netographie
[28] Guide de la méthode Agile scrum : avantages, défis, etc. - Agily. consulté le 30/03/2024. url :
[Link]
business/methode-agile-scrum/.
[29] What is Deployment Diagram ? [Consulté le 01 mars 2024]. url : https : / / www . visual -
[Link]/guide/uml-unified-modeling-language/what-is-deployment-diagram/.
98