Simulateur Daffectation Des Ressources H
Simulateur Daffectation Des Ressources H
Simulateur Daffectation Des Ressources H
UNIVERSITE DE SOUSSE
Réalisé au sein de
Année Universitaire
2016 – 2017
Dédicaces
Dédicaces
Je remercie avant tout ALLAH, le tout puissant qui m’a donné les capacités physiques
et intellectuelles nécessaires à la réalisation de ce projet.
A mon cher papa et ma chère maman
Pour tous les sacrifices que vous avez consentis, pour toutes les prières que vous
m’aviez
faites pour tout l’amour, l’affection, le soutien et l’encouragement que vous m’aviez
toujours apportés tout au long de mes études pour faire de moi ce que je suis
aujourd’hui.
Je vous dédie ce travail en signe de mon éternel attachement et de mon amour.
A mon frère
A mes chères petites sœurs
Vous étiez toujours la source de ma motivation. Tous mes remerciements ne
suffissent
pas pour toute l’aide, le soutien et la sympathie.
A toute la famille TAKALI
A tous mes amis du quartier, mes binômes à Tunis
A tous ceux qui ont su m’apporter aide et soutien aux moments propices
A toute la promotion ISITCom’ 2017
A tous mes Amis, pour les agréables moments passés ensemble, pour le soutien moral
et
pour la noblesse de vos actes.
Page | i
Remerciements
Remerciements
Le résultat de mon travail est grâce aux gens qui m’entourent, à leur amour intarissable
et à leur soutien.
Je remercie toute personne ayant contribué, de loin ou de près, le long de mon cursus
académique et spécialement durant ma classe terminale.
Merci infiniment à ma famille, mon pilier du succès, qui m’a tenue tant à cœur.
Un grand merci à Mme Hedia Jegham, mon tuteur de stage, pour l’encadrement et le
suivi dans la rédaction de ce rapport.
Je remercie Mr Aymen Amairia, mon encadrant, qui m’a guidée avec toute sa patience
et sa sagesse à croire en soie pour réaliser ce projet.
Page | ii
Table des matières
Dédicaces ......................................................................................................................... i
Remerciements ................................................................................................................ ii
Table des matières ......................................................................................................... iii
Liste des figures ............................................................................................................. vi
Liste des tableaux ........................................................................................................ viii
Introduction générale ......................................................................................................1
Présentation du cadre du projet ..................................................................................... 3
Introduction ................................................................................................................ 3
1. Présentation de l’organisme d’accueil .................................................................. 3
1.1 Présentation générale et services .................................................................. 3
1.2 Secteurs d’activité .......................................................................................... 4
2. Contexte du projet ................................................................................................ 5
2.1 Problématique................................................................................................ 5
2.2 Description du projet ..................................................................................... 6
3. Choix de la Méthodologie de Travail .................................................................... 6
3.1 Les Méthodes Agiles ...................................................................................... 6
3.2 Etude comparative des méthodes agiles ....................................................... 7
3.3 Méthodologie Agile Scrum ............................................................................ 8
3.4 Caractéristiques ............................................................................................. 8
3.5 Planification ................................................................................................... 9
3.6 Processus........................................................................................................ 9
3.7 Équipe et rôle ............................................................................................... 10
Conclusion :................................................................................................................ 11
Analyse et spécification des besoins ..............................................................................12
Introduction ...............................................................................................................12
1. Etude de l’existant ...............................................................................................12
2. Critique de l’existant............................................................................................12
3. Solution ................................................................................................................14
4. Capture des besoins .........................................................................................14
4.1 Besoins fonctionnels .....................................................................................14
4.2 Besoins non fonctionnels..............................................................................19
Page | iii
Table des matières
Page | iv
Table des matières
Page | v
Liste des figures
Page | vi
Liste des figures
Page | vii
Liste des tableaux
Page | viii
Introduction générale
Introduction générale
Bien que les problèmes de planification de personnel soient étudiés depuis plus de
60ans, l’intérêt de la communauté scientifique à leur égard reste très vif encore
aujourd’hui. Cela s’explique tout d’abord par la richesse et la grande diversité des
problèmes théoriques sous-jacents, mais également par les innombrables applications
pratiques. En effet, les problématiques de planification de personnel apparaissent dans
des secteurs variés et touchent un grand nombre d’organisations. De plus, l’activité de
chacune de ces organisations est assujettie à un contexte socio-économique bien
spécifique et en perpétuelle mutation. Cela induit le besoin de développer des outils
d’aide à la décision permettant aux décideurs d’appréhender plus rapidement et plus
efficacement des données de plus en plus complexes pour dégager de nouvelles marges
de productivité.
Avec l’accroissement des capacités de calcul des outils informatiques actuels, il devient
possible d’envisager la résolution de problèmes plus difficiles et plus vastes
qu’auparavant. Par conséquent, de plus en plus d’études abordent simultanément
plusieurs aspects du problème, tels que l’attribution des jours de repos, la construction
des horaires de travail et l’affectation des activités de travail aux employés. En raison
de leur complexité théorique, ces problèmes requièrent des méthodes d’optimisation
dédiées. [1]
A cet égard, les dirigeants de la société WEVIOO ont décidé de mettre l’accent sur leur
processus de sélection et d’affectation des ressources aux projets. Ils se sont vus obligés
d’améliorer leur processus actuel qui réside dans l’utilisation des méthodes
heuristiques ou intuitives pour faire leurs choix, et d’adopter une solution plus efficace
et plus performante permettant l’automatisation du processus.
C’est dans ce contexte que se situe notre projet. Il consiste à développer un module
incluant un outil d’aide à la décision, qui, en intégrant le concept de l'intelligence
artificielle, permettra de faire d’une façon rationnelle et transparente le bon choix en
tenant compte de l'adéquation des compétences des collaborateurs à ceux des missions
et de leur disponibilité par rapport au plan de charge.
Page | 1
Introduction générale
Pour finir, dans le cinquième chapitre, nous présentons les différentes fonctionnalités
de notre application à travers des captures d’écrans.
Nous clôturons le rapport par une conclusion générale dans laquelle nous présentons
une synthèse du travail réalisé ainsi que les éventuelles perspectives du projet.
Page | 2
Présentation du cadre du projet
Introduction
Nous entamons ce premier chapitre par une présentation générale qui va nous
permettre de fonder des connaissances sur l’organisme d’accueil « WEVIOO » et ses
secteurs d’activité. Nous procédons, également, à la présentation générale de notre
sujet ainsi nous apportons quelques indications nécessaires sur la méthodologie
adoptée lors de la réalisation de ce projet.
Page | 3
Présentation du cadre du projet
Page | 4
Présentation du cadre du projet
✓ Industrie : WEVIOO accompagne ses clients sur l’ensemble du cycle de vie d’un
projet, du conseil à la réalisation complète de la solution y compris le transfert de
compétences
2. Contexte du projet
2.1 Problématique
L’affectation des bonnes ressources aux projets, la mise en place d’un plan d’action
solide et, surtout, la constitution d’une équipe possédant les compétences requises,
toutes ces variables sont maîtrisées avec une bonne planification assurant le succès des
projets.
Mais la plupart des entreprises ont tendance à suivre des méthodes heuristiques ou
intuitives pour faire leurs choix, ce faisant, ils négligent la tâche d’affectation et
tombent dans la mauvaise gestion des ressources par rapport aux projets.
Dans ce contexte, Wevioo propose de mettre en place pour ce projet un système d’aide
à la décision, qui, en s’aidant des apports de l'intelligence artificielle et en intégrant un
système expert, permettra de réaliser l’affectation d’une façon rationnelle et
transparente le bon choix en tenant compte de l'adéquation des compétences des
Page | 5
Présentation du cadre du projet
Page | 6
Présentation du cadre du projet
La méthode agile est une approche réactive et itérative d’organisation de travail, qui
est menée dans un esprit collaboratif avec le formalisme qu'il faut. Elle englobe un
ensemble de pratiques pouvant s’appliquer à divers types de projets, mais se
limitant plutôt actuellement aux projets de développement en informatique.
Elle s’intéresse aux individus et aux interactions plutôt qu’au processus et outils.
Elle implique au maximum le client et permet une grande réactivité à ses demandes
et une adaptation au changement plutôt qu’au suivi d’un plan.
Elle génère un produit de haute qualité tout en prenant en compte l'évolution des
besoins des clients et non les termes d’un contrat de développement.
3.2 Etude comparative des méthodes agiles
La meilleure façon d'aborder un problème est de l'attaquer par phase. C'est l'intérêt de
l'utilisation d'une méthodologie agile. Elle regroupe les activités à mener pour
transformer les besoins d'un utilisateur en système logiciel.
Page | 7
Présentation du cadre du projet
Notre choix s'est focalisé sur la méthodologie Scrum qui assure un gain considérable
de temps et l'amélioration de la qualité des développements vu qu'elle permet de
s’adapter aux changements et aux évolutions des besoins, des priorités, ou des équipes.
Elle permet de réduire les risques de problèmes de conception et de collaborer avec le
client à travers les produits livrables à chaque fin de sprint.
Par la suite, nous allons détailler le principe de la méthode Scrum.
3.4 Caractéristiques
Scrum se différencie des autres méthodes de développement par ses avantages qui font
d’elle une réponse pragmatique aux contraintes actuelles des chefs de produits :
Propriété et Autonomie :
Pendant l’exécution du sprint, tout le monde peut prendre une tache quelconque. Cela
offre une excellente opportunité d'apprentissage pour les membres de l'équipe
lorsqu'ils choisissent des tâches au-delà de leur zone de confort.
L’attitude de l’équipe :
Avec Scrum, les équipes s'efforcent d'atteindre un but commun : elles gagnent ou
perdent ensemble comme un sport d'équipe. La victoire n'est pas possible sans
collaboration et confiance.
Amélioration continue :
Les réunions rétrospectives permettent d’identifier et de résoudre les problèmes les
plus critiques auxquels l’équipe est confrontée. Cela oblige également les équipes à
réfléchir plus fort et à découvrir des problèmes moins évidents avant de devenir des
monstres.
Page | 8
Présentation du cadre du projet
3.5 Planification
Scrum propose une planification opérationnelle à trois niveaux : release/projet, sprint
et quotidien.
3.6 Processus
Scrum est un processus, résumé dans le schéma suivant :
Page | 9
Présentation du cadre du projet
Scénario principal :
Le contenu d’un Sprint est défini par l’équipe avec le propriétaire de produit, en tenant
compte des priorités et de la capacité de l’équipe. L’équipe définit les tâches nécessaires
pour réaliser les fonctionnalités sélectionnées pour le Sprint.
Pendant un sprint, des points de contrôle sur l’avancement sont effectués lors des
mêlées quotidiennes. Cela permet au Scrum Master de déterminer l’avancement par
rapport aux engagements du Sprint et de conseiller des ajustements pour assurer le
succès du Sprint.
A la fin de chaque Sprint, l’équipe produit un incrément potentiellement utilisable,
dont l’évaluation permet d’ajuster le Backlog pour le Sprint suivant.
Page | 10
Présentation du cadre du projet
✓ Le Scrum Team : ou bien l’équipe de Scrum, elle est composée par des
professionnels de différents profils tel que les développeurs, les testeurs, les
infographistes, leur rôle c’est de préparer pour chaque sprint un incrément de
produit qui doit être une sorte de livrable.
L’équipe est formée par moi-même concernant le module affectation et le
reste de l’équipe pour les autres parties de l’application.
Conclusion :
Ce chapitre a donné l’occasion de présenter dans un premier temps la société
“WEVIOO” au sein de laquelle nous avons réalisé ce projet, puis le cadre du sujet, les
objectifs que notre travail vise à atteindre ainsi que la méthodologie utilisée.
En vue de suivre un avancement logique dans ce rapport, nous allons établir une étude
des solutions existantes au niveau de la société, puis nous présenterons les besoins
fonctionnels et non-fonctionnels de notre solution.
Page | 11
Analyse et spécification des besoins
Introduction
L’étude de l’existant permet d’évaluer la situation actuelle de l’organisme à prendre en
charge.
D’où, il s’agit d’analyser, évaluer et critiquer les procédures de travail courantes et
proposer des solutions, les discuter et choisir la plus adéquate et la plus optimisée.
Cette analyse va nous aider à cerner les détails fonctionnels, présenter les détails de
système que doit couvrir l’application à développer.
Nous rappelons que notre application intitulée « Affectation des ressources » est une
application qui consiste à réaliser le processus de l’affectation des ressources humaines
depuis la création du projet jusqu’à la remise en place du plan des charges.
1. Etude de l’existant
Pour cela, des réunions de négociation se fait pour étudier les compétences et les
charges des effectifs de leurs équipes.
Plusieurs facteurs sur lesquels ils tiennent compte, mais ils ne sont pas vraiment
calculés pour une meilleure adéquation.
2. Critique de l’existant
L’analyse de la solution adoptée par la société pour la gestion de l’affectation des
ressources nous a permis de constater quelques insuffisances. En effet, la solution
existante ne satisfait pas les besoins de la société.
Page | 12
Analyse et spécification des besoins
La notion de charge qui représente un facteur très important dans une application
avancée de gestion ressource humaine tel que TalentVioo n’est pas mentionné.
L’absence de terme charge ressource par projet peut générer plusieurs problèmes tel
que :
✓ La possibilité de surcharge une ressource par rapport à d’autres.
✓ La possibilité de décharger une ressource par rapport à d’autres.
✓ Un faux calcul d’adéquation
Afin d’exécuter l’enchainement des actions d’affectation plusieurs filtrage sont mise en
valeurs :
1er filtrage :
Lors de la création d’un nouveau projet, les chefs techniques doivent consulter les
compétences de chaque ressource une par une, les étudier et rapprocher le maximum
possible les ressources les plus adéquats.
2ème filtrage :
Dans un deuxième lieu, ils consultent leurs charges en termes de projet, calculer leurs
charges totales et estimer leurs disponibilités.
Le calcul manuel des charges ressource par ressource pour les différents projets peut
facilement générer des erreurs de calcul.
La possibilité d’affecter la fausse ressource au projet.
Un déséquilibre en termes de taux de travail entre les ressources.
3ème filtrage :
Ensuite, nous avons constaté qu’il existe une certaine priorité des projets mise aussi en
considération par les décideurs afin de pouvoir choisir lequel il faut lui ajouter des
ressources et lequel il faut lui enlever.
Pour finir nous avons noté que ces filtres sont calculés manuellement mais plutôt
mentalement pour faire une affectation finale.
Page | 13
Analyse et spécification des besoins
3. Solution
Pour remédier aux inconvénients du système actuel, WEVIOO a décidé de créer un
produit propre à elle, qui répond à ses besoins et que nous pouvons faire évoluer et
modifier selon l’évolution de ses besoins.
C’est pour cela rappelons un principe absolu : qui dit stratégie, donc objectifs, dit en
même temps mesure de la réalisation des objectifs.
De ce fait notre projet consiste à développer une application sous forme d’un « ADD
ON 7» permettant l’affectation des ressources aux missions selon l’adéquation de leurs
compétences à la mission et leur disponibilité par rapport au plan de charge.
Page | 14
Analyse et spécification des besoins
Novembre Décembre
Ressource Projet
S1 S2 S3 S4 S5 S1 S2 S3 S4 S5
Charge 0% 0% 0% 0% 0% 0% 0% 0% 0% 0%
Totale
Projet 1
Abderraouf Chaouch Projet 2
Projet 3
Projet n
Charge 0% 0% 0% 0% 0% 0% 0% 0% 0% 0%
Totale
Projet 1
Projet n
Possibilité de saisir la charge de chaque ressource sur un projet donné à une semaine
donnée.
Charge totale = somme des charges sur chaque projet
La charge totale est coloriée selon sa valeur :
Couleur codes
ressources
<= 50%
Entre 51% et 85%
Entre 86% et 105%
>105%
Page | 15
Analyse et spécification des besoins
A n lignes :
✓ Ligne 1 : poste (hérité de la fiche collaborateur)
✓ Ligne 2 : nombre d’années d’expériences (numérique)
✓ Ligne 3 : Besoin de visa [Oui ; Non]
Page | 16
Analyse et spécification des besoins
✓ +1 si critère atteint
✓ +2 si compétence dépassée de 1
✓ +3 si compétence dépassée de 2
✓ +4 si compétence dépassée de 3
4.1.4 Choix de la ressource
Page | 17
Analyse et spécification des besoins
Page | 18
Analyse et spécification des besoins
Page | 19
Analyse et spécification des besoins
L’administrateur :
C’est l’acteur qui a l’accès total sur le module affectation, il peut affecter un ou plusieurs
profils pour chaque ressource, en plus il hérite les fonctionnalités de simulateur et de
superviseur.
Le simulateur :
C’est un acteur ayant les fonctionnalités de simuler les pré-projets, supprimer,
consulter les détails de simulation, accéder aux actions d’affectation, et il hérite les
taches de superviseur.
Le superviseur :
C’est l’acteur qui a pour rôle de consulter :
✓ Le plan des charges
✓ Les simulations et leurs détails
✓ Les grilles des compétences
✓ Les radars comparatifs
Par la suite nous allons présenter une brève description des différents cas d’utilisation
à travers le tableau ci-dessous :
Page | 21
Analyse et spécification des besoins
Sommaire
Résumé Le superviseur doit consulter une liste des projets pour assurer
qu’une simulation validée est devenue un projet consistant
Acteur • Superviseur
• Simulateur
• Administrateur
Page | 22
Analyse et spécification des besoins
• Authentification
• Autorisation d’accès.
Scénario nominal
1. L’utilisateur accède à la liste des simulations.
2. Le système retourne une liste des simulations qui sont stockées
3. L’utilisateur clique sur l’icône « détail » qui correspond à la simulation voulue.
4. Le système affiche les détails du projet sélectionné.
5. L’utilisateur retourne vers la page initial en cliquant sur le bouton « retour ».
6. Le system effectue l’opération et renvoie la page liste de nouveau.
Enchainement alternatif
Enchainement 1 : démarre au point 2 et retourne au point 3
2.1 L’utilisateur choisit d’affecter une recherche sur la liste des projets en saisissant un
nom ou un type de projet
2.2 Le système affiche une liste de projet selon le filtre saisi
Page | 23
Analyse et spécification des besoins
Sommaire
Page | 24
Analyse et spécification des besoins
Sommaire
Sommaire
Page | 26
Analyse et spécification des besoins
4. L’utilisateur choisit de consulter la table des choix pour une ressource voulue de la
table d’adéquation en cliquant sur le bouton « plus ».
5. Le system affiche un tableau comparatif des compétences et au-dessous un radar
représentant ces comparaisons en termes de niveau.
6. L’utilisateur choisit d’affecter cette ressource au simulation courante.
7. Le système retourne au page de consultation de la simulation avec un message
flash de la réussite d’affectation et ajout de la ressource dans la table des
collaborateurs affectés.
Enchainement alternatif
Enchainement A1 : démarre au point 3 et reprend au point1 de SN
3.1 L’utilisateur choisit de retourner en arrière en cliquant sur le bouton « retour ».
3.2 Le système affiche la liste des simulations de nouveau.
Enchainement A2 : démarre au point 3 et reprend au point 7 de SN
3.1 L’utilisateur choisit d’affecter 1, 2 … n ressource à la simulation en cliquant sur
l’icône « plus ».
3.2 Le système affiche l’écran des choix.
3.3 L’utilisateur affecte la ressource correspondante
Enchainement A3 : démarre au point 5 et reprend au point 3
5.1 L’utilisateur choisit de retourner vers la page précédente en cliquant sur le bouton
« retour »
5.2 Le système renvoie l’écran initial de la simulation
Sommaire
Page | 27
Analyse et spécification des besoins
Autorisation d’accès.
Le nombre des ressources demandés est égal à celle des ressources affectées.
Post condition
La simulation est devenue un projet consistant.
La liste des projets sera mise à jour après l’opération de validation.
Scénario nominal
1. L’utilisateur accède à la liste des simulations.
2. L’utilisateur clique sur l’icône de consultation de la simulation spécifiée.
3. Le système affiche les détails qui correspond à la simulation.
4. L’utilisateur choisit de valider la simulation.
5. Le system affiche un popup de confirmation sur l’opération de validation.
6. L’utilisateur choisit de confirmer la validation.
7. Le système redirige vers la page de liste des projets avec un message flash de
succès de validation.
Enchainement alternatif
Enchainement A1 : démarre au point 5 et reprend au point3 de SN
3.1 L’utilisateur choisit d’annuler la validation.
3.2 Le système affiche la page de consultation de nouveau.
Enchainement A2 : démarre au point 4 et reprend au point 3
4.1 L’un des ressources affectées n’est plus dans la base de l’application.
4.2 Un popup affichant un message d’erreur s’affiche.
4.3 L’utilisateur confirme le message.
Tableau 10 description scénariste de la validation d'une simulation
Page | 28
Analyse et spécification des besoins
Sommaire
Acteur Administrateur
Pré condition
Authentification
Autorisation d’accès.
Post condition
Toute ressource de TalentVioo doit avoir un profil pour accéder à l’application après
affectation par l’administrateur.
Page | 29
Analyse et spécification des besoins
Scénario nominal
Sommaire
Acteur Administrateur
Pré condition
Authentification
Autorisation d’accès.
Post condition
Page | 30
Analyse et spécification des besoins
Scénario nominal
Enchainement alternatif
Page | 31
Analyse et spécification des besoins
Page | 32
Analyse et spécification des besoins
Dans les figures ci-dessus nous avons présenté notre Product Backlog de l’application
avec un planning de chaque sprint.Chaque sprint dure environ de 3 semaine, avec une
livraison à la fin de chaque sprint, sachant que le sprint 0 a duré presque un mois.
La complexité de chaque tâche est évaluée selon la suite Fibonacci : 1,2,3,5,8,13,20 ….
1 2 3 5 8 13 20 40 100
Facile ->simple->normal->difficile->très dur->délirant
L’état de la tâche est présenté selon 3 valeurs :
✓ TO DO : En état d’attente pour la réalisation
✓ DOING : Entrain de réalisation
✓ TEST : Déjà réalisée et encours de test
Remarque : le premier sprint a duré plus que de 3 semaine car j’ai passé par une phase
d’apprentissage et je n’ai pas encore commencé la réalisation.
Page | 33
Analyse et spécification des besoins
Au niveau de ce menu, l’application doit offrir une vision globale sur certaines
fonctionnalités globale, présenté quelque raccourci et afficher un radar des
compétences globales.
Dans cet écran, l’utilisateur doit pouvoir visualiser les différentes simulations, affecter
une analyse, et la valider dans une dernière étape pour devenir un projet consistant.
Page | 35
Analyse et spécification des besoins
L’utilisateur doit avoir l’accès de consulter une grille des plan des charges de toutes les
ressources présentées dans un calendrier.
L’administrateur doit pouvoir donner l’accès à toutes les ressources en leurs affectant
des profils spécifiques
Conclusion
Dans ce chapitre, nous nous sommes intéressés à l’analyse des besoins fonctionnels et
non fonctionnels de notre application. Nous avons identifié les acteurs intervenant
dans le système et décortiqué les différents cas d’utilisation. Nous n’avons pas manqué
aussi de détailler notre méthodologie de travail. Dans le chapitre qui suit, nous allons
entamer la partie conception.
Page | 36
Etude conceptuelle
Etude conceptuelle
Introduction
Le but de ce chapitre est de présenter une architecture comportementale et structurelle
orienté objet qui permet de décrire le futur système à partir de différents diagrammes
tel que le diagramme de classe, le diagramme d’activité …
En effet elle définit la phase intermédiaire entre la partie spécification des besoins et la
partie réalisation.
Mais avant ça il faut mettre en valeur et parler de notre système expert proposé, en fait
c’est celui qui va jouer le rôle d’un calculateur intérieur sur le taux d’adéquation entre
les requis de la simulation et les acquis des collaborateurs.
1. Système expert
Afin d’optimiser notre application nous avons proposé un système expert pour donner
une valeur plus exacte au niveau du taux d’adéquation dans l’écran de la simulation.
Au niveau de chapitre nous aurons l’occasion aussi de mettre en valeur notre
composant système expert. Ce composant est proposé en fait, pour jouer le rôle d’un
calculateur interne prédictif du taux d’adéquation entre les requis de la simulation et
les acquis des collaborateurs
1.1 Définition
Avant de commencer plusieurs concepts sont dégagés dans ce domaine, il faut les
mettre en valeur et connaitre ses définitions tel que :
Système expert :
Un système expert est un outil ou logiciel informatique capable d’apporter une réponse
sur des questions qui nécessitent un traitement mental humain, basé sur un
raisonnement à partir des faits et des règles définis au départ.
Il peut servir comme un moyen d’aide à la décision.
Page | 37
Etude conceptuelle
Intelligence artificielle :
L’IA ou l’intelligence artificielle est le fait de créer un programme informatique
permettant de résoudre des problèmes qui sont pour le moment accomplies de façon
plus satisfaisante par les êtres humains parce que ‘ils demandent certaines
compétences mentales avec un niveau de réfléchi bien spécifique tel que :
✓ Raisonnement critiquée
✓ Apprentissage automatique
✓ Organisation de l’information.
1.2 Etapes
Le fonctionnement de notre système expert suit quelques étapes principales pour être
bien exploiter, on commence par la création des données de formation sur laquelle les
algorithmes de prédiction vont commencer, et puis une boucle se produit pour chaque
prédiction qui génère un son tour des données supplémentaire au modèle.
Page | 38
Etude conceptuelle
✓ Basé sur la construction d’une fonction H qui a un vecteur d’entré X et une sortie
Y : Y=H(X)
Page | 39
Etude conceptuelle
k-Nearest Neighbors
Exemple de test :
$ groupe = [[1, 3], [1, 4], [2, 4], [3, 1], [4, 1], [4, 2]];
$ groupeAssocié = ['a', 'a', 'a', 'b', 'b', 'b'];
$classifier = new KNearestNeighbors();
$classifier->train($groupe, $ groupeAssocié);
$classifier->predict([3, 2]);
// return 'b'
C’est un algorithme qui consiste à prendre en compte les échantillons d’apprentissage,
et selon leurs distances appliquer une méthode de plus proche voisin pour estimer une
sortie associée à une nouvelle entrée.
NaiveBayes Classifier
Exemple de test :
$groupe= [[5, 1, 1], [1, 5, 1], [1, 1, 5]];
$groupeAssocié = ['a', 'b', 'c'];
$classifier = new NaiveBayes();
$classifier->train($groupe, $ groupeAssocié);
$classifier->predict([3, 1, 1]);
// return 'a'
C’est une méthode de classification Bayésienne probabiliste fondé sur le théorème de
Bayes.
Elle appartient au type des classifieurs linéaires.
Page | 40
Etude conceptuelle
Base de connaissance
Moteur d’inférence
Conclusion
Logique
Base de connaissance :
Une base de connaissances, est composée des données relatives aux faits des ordres
constitutifs du domaine.
Base de règles :
C’est l’ensemble des relations entre les données de base des faits, à partir desquelles on
peut établir des nouvelles informations par déduction.
(Si on a prouvé A1 etA1⇒A2 alors on a prouvé A2)
Dans notre cas c’est l’ensemble des caractéristiques affectées aux ressources, car notre
système va rapprocher les exigences de Préprojet aux caractéristiques de chaque
ressource et puis il génère un taux d’adéquation.
Base de faits :
C’est l’endroit où on stocke les données élémentaires qui sont considérés comme des
états vrais.
Ils sont une sorte des hypothèses de travail.
En fait, le système expert est constitué d’un ou plusieurs faits, à partir d’eux il peut
répondre aux requêtes de l’utilisateur.
Page | 41
Etude conceptuelle
Dans notre cas la base de faits est spécifié à l’ensemble des caractéristiques et les
exigences d’un Pré-projet tel que : les compétences affectés et leurs niveau, le besoin
de visa, nombre d’année d’expérience …
Moteur d’inférence :
Le moteur d’inférence est un interpréteur, sous système, permet à partir de la base de
connaissance d’appliquer les règles et déduire un résultat à la requête demandé par
l’utilisateur.
Dans notre cas : c’est service offert par Google qui s’appelle « google API Prediction »
1.4.2 Type de chainage
Chainage avant :
C’est un raisonnement dirigé par les données
✓ Si X et Y sont des faits déjà déduits
✓ {X, Y} est le déclencheur chaînage avant.
Chainage arrière :
C’est un raisonnement dirigé par des buts :
✓ Si le système cherche à démontrer soit le but X, soit le but Y
✓ {X} et {Y} sont deux déclencheurs chaînage arrière.
2. Architecture globale
2.1 Architecture physique
Page | 42
Etude conceptuelle
Page | 43
Etude conceptuelle
Par la suite ces données sont exposées pour le contrôleur qui va les traiter selon le
besoin.
✓ La vue : manipule les interfaces que nous voyons dans notre navigateur web, elle
correspond à la partie homme machine (IHM). Elle aide l’utilisateur à interagir avec
le système et de lui présenter les rendus demandés.
3. Modélisation UML
UML (Unified Modeling Language) est définit comme le langage de modélisation pour
notre application.
L’UML est un langage qui peut être associé à toute démarche de conception avec
différents environnements de programmation. Il permet de limiter les ambiguïtés et
faciliter l’analyse des développeurs.
L’étude de conception offre une manière élégante pour représenter le système selon
différentes vues complémentaires grâce à plusieurs diagrammes. On peut distinguer
deux types de vues :
✓ Des vues statiques qui permettent de représenter la partie physique du système tels
que :
• Diagramme de classe
• Diagramme d’état transition
Page | 44
Etude conceptuelle
Bloc à optimisé
Bloc à optimisé
Page | 45
Etude conceptuelle
Page | 46
Etude conceptuelle
ProjectClient : c’est la classe qui contient les informations relatives au client d’un
projet tel que son nom, adresse, téléphone, email ...
ProjectHasCollaborator : C’est une classe associative entre les deux classes Project
et Collaborateur, elle contient des attributs supplémentaires tel que charge, date
début… , elle fait correspondre chaque projet à la ressource.
Charge : Cette classe donne des informations concernant la charge de chaque
ressource dans le projet ou elle est affectée.
Compétence : cette classe permet de définir les compétences à la fois requises dans
les projets et acquises par les ressources.
ProjectHasCompetence : c’est une classe d’association entre les classes « Projet »
et « Compétences ». Elle fait donc correspondre chaque projet aux multiples
compétences qu’il nécessite.
CollaboratorHasCompetence : c’est une classe d’association entre les classes «
Collaborateur » et « Compétence ». Elle fait correspondre chaque collaborateur aux
multiples compétences qu’il possède.
Rôle : cette classe définit les rôles affectés aux utilisateurs de l’application.
CollaboratorDetailCompetence : c’est une classe qui contient toute les
informations détaillées reliés aux compétences des collaborateurs.
Page | 47
Etude conceptuelle
Poste : cette classe représente les caractéristiques d’un poste qu’il peut occuper un
certain collaborateur.
Page | 48
Etude conceptuelle
Page | 49
Etude conceptuelle
Page | 50
Etude conceptuelle
Créer Simulation :
Lors de besoin le simulateur et l’admin ont l’accès de créer une simulation qui peut être
traduit à la fin de l’enchainement en un projet consistant.
Pour cela ce diagramme de séquence décrit une interaction entre ces acteurs et le
système :
✓ L’utilisateur demande en premier lieu d’ajouter une simulation, puis il saisit les
données nécessaires.
✓ Lors d’ajout des compétences, l’acteur a le choix de supprimer une ligne affectée
ou pas, d’où la présence d’un fragment alternatif.
✓ Dans l’action de l’enregistrement le système vérifie si les valeurs saisies sont
correctes ou pas, pour traiter l’opération en arrière-plan.
Affecter profil :
Page | 52
Etude conceptuelle
Soit après l’affectation final de simulation ou après le choix de menu gestion des
projets, une liste de tous des projets de TalentVioo est affiché, dans lequel l’utilisateur
peut choisir une ligne et appuyer sur l’icône détail.
Ensuite le système le redirige vers la page désirée qui est la page de consultation.
Page | 53
Etude conceptuelle
Simulation Pré-projet :
Le cas d’utilisation simuler Pré-projet représente une parmi les cas les plus important
dans notre application, car au cours duquel le système va traiter son analyse en
Page | 54
Etude conceptuelle
background pour faire afficher à l’utilisateur le résultat de l’adéquation avec les chartes
correspondant.
Plusieurs contraintes sont mises en considération lors de l’action de simulation.
On prend par exemple le cas où il existe certaine ressource sont déjà affecté, l’analyse
se fait donc sur les autres ressources qui sont indépendants de cette simulation.
Valider Simulation :
Page | 55
Etude conceptuelle
L’action de validation est la dernière étape dans le cycle des processus de la simulation,
elle ne peut pas se déclencher sauf si :
✓ Le nombre des ressources affectées est égal à celle de nombre des ressources
demandées
✓ Les ressources affectées existent encore dans la liste des ressources de
TalentVioo.
3.2.2 Diagramme d’activité
Page | 56
Etude conceptuelle
La tache de création d’une simulation est une tache incrémentale, dans un premier lieu
l’utilisateur remplie les champs nécessaires, puis il choisit d’affecter les compétences
désirées, sachant qu’il peut à tout moment supprimer une ligne de compétences tant
qu’il n’a pas encore enregistrer.
Simuler Pré-projet :
Le diagramme ci-dessus a mis en évidence les différentes actions que l’utilisateur peut
l’affecter au niveau de cas d’utilisation « simuler Pré-projet », cependant il présente les
enchainements possibles pour chaque action.
Page | 57
Etude conceptuelle
Au niveau de ce cas, l’utilisateur possède l’accès de visualiser une grille présentant les
caractéristiques de chaque collaborateur dans l’application en termes des compétences
(avec leurs niveau), de post, de nombre d’années d’expériences et de la possibilité
d’avoir un visa, sachant qu’il a le choix d’affecter un filtre de ressource ou de
compétence.
Page | 58
Etude conceptuelle
Conclusion
Dans ce chapitre nous avons défini une idée générale sur le concept de l’intelligence
artificielle qui était proposé dans notre application, les architectures de l’application,
nous avons aussi conçu notre système en utilisant les différents diagrammes tel que, le
diagramme de classe, le diagramme d’activité, le diagramme de séquence, le
diagramme d’état transition de la modélisation UML.
Dans le chapitre suivant nous allons attaquer la partie réalisation de notre système.
Page | 59
Réalisation
Réalisation
Introduction
Le chapitre réalisation représente le dernier volet de notre rapport.
Il a pour but d’exposer le travail réalisé tout au long de ce projet. Il sera dédié à
présenter les principales interfaces de l’application à travers des captures d’écrans
organisé suivant des sprints.
Donc nous allons présenter le déroulement du processus affectation ressources
humains à l’aide d’un enchainement de capture écran.
1. Environnement de travail
1.1 Environnement matériel
Un pc portable pour le développement ayant les caractéristiques suivantes :
Un PC dell Inspiron 15
✓ Processeur Intel core i3, 1.8 GHz
✓ 4 Go de mémoire vive
✓ Disque dur de capacité 500 Go
✓ Système d’exploitation Microsoft Windows 10
Page | 60
Réalisation
MySQL Workbench :
MySQL Workbech est un système complexe utilisé essentillement pour manipuler
l’architecture de la base de données, ses services est devisé sur 3 axes :
✓ Conception : il permet de modeliser la base de donnée en generant un diagramme
EER , aussi il permet à affecter le « reverse engineering » …
✓ Administrer : il offre un outil visuel pour la configuration , la modification, le
sauveagrde de serveur
✓ Performance visuel : offre à l’utilisateur la possibilité de génerer un rapport visuel
de performance pour tester leur requetes
Page | 61
Réalisation
Figure 34 logo
Star UML [12]
CMDER :
C’est un émulateur de console crée spécialement pour Windows, utilisé dans le projet
afin de faciliter la compilation des commande Symfony.
Figure 35 logo
cmder [13]
Page | 62
Réalisation
Pencil :
Outil utilisé dans les premières phases de la période de stage afin de donner une vision
globale sur les interface de l’application, il permet de créer des maquettes sur le
prototype de projet.
Pourquoi Symfony !
Symfony a reconnu une bonne réputation dans le monde des développeurs, grâce à des
divers raisons, et c’est mis en évidence par les chiffres d’utilisation qu’il attend jour
après jour :
✓ Plus performant : Dès le début, Symfony est conçu pour offrir au développeur une
certaine rapidité en termes de performance, à titre comparatif, il est 3 fois plus
rapide que Zend Framework avec deux fois moins de mémoire.
Page | 63
Réalisation
✓ Très flexible : Symfony est caractérisé par une flexibilité illimité, quel que soit les
besoins de développeur, il sera toujours adaptable, grâce à son injecteur de
dépendance et les évents dispatchers qui le rendent totalement configurable.
✓ Reference : des centaines des sites web très populaire dans le monde entier de toute
tailles et de toute type sont developpé en Symfony.
Les bundles :
Un projet Symfony est composé à un ensemble des bundles, il contient tout ce qui
concerne une fonctionnalité donnée, aide les développeurs à bien organiser les
différentes parties de l’application.
Parmi les bundles utilisés dans notre application :
FOSUser Bundle : pour la gestion des utilisateurs
SonataAdmin Bundle : pour les interfaces admin
JMSSerializer Bundle : pour la sérialisation et la désérialisation des données.
DoctrineFixture bundle : pour la gestion de charge des données lors de livraison
Twig :
C’est un moteur de templating spécifique au Symfony, définit un type de fichier
d’extension « TWIG », et englobant le type « HTML », il donne une grande puissance
de manipulation des vues, et des interfaces html qui sont rendues.
Doctrine 2 :
Doctrine représente un ORM par rapport au Framework Symfony, en fait c’est un outil
libre utilisé pour faire un lien entre le monde relationnel de la base de données et le
monde objet, en plus il offre au développeur un ensemble des commandes pour faciliter
sa manipulation.
Page | 64
Réalisation
Figure 39 logo de
doctrine [17]
PHP :
C’est un langage de programmation, orienté objet à partie de sa version 5, dédié pour
les applications web dynamique à travers un serveur HTTP, parmi les fameux site web
avec lequel ils sont développés : Facebook, Wikipédia …
2. Gestion du projet
Concernant la partie gestion du projet, comme on a mentionné dans le Product
Backlog, on a consacré la 1ère phase de stage à l’autoformation, et l’installation de
l’environnement logiciel, par la suite une semaine au moins pour la conception,
sachant qu’à chaque fois on fait un retour en arrière dans les diagrammes pour faire
des modifications.
Ensuite j’ai démarré la partie développement avec la rédaction du rapport en parallèle,
qui ont duré jusqu’au le dernier jour de projet.
Page | 65
Réalisation
Page | 66
Réalisation
3.1 Sprint 1
Les taches de ce Sprint se focalisent sur le scenario de l’affectation des profils pour
chaque utilisateur de la palteforme « TalentVioo ».
C’est la page initiale qui permet d’accéder à l’application suivant le rôle de l’utilisateur
qui va connecter (superviseur, administrateur ou simulateur), et par la suite les meus
qui correspond à son rôle vont être affiché.
Page | 67
Réalisation
Dans la figure ci-dessus, une liste des ressources avec leurs profils, situé en haut un
filtre qui affecte un raffinement sur la liste par rapport au nom, prénom au bien au rôle.
Ce menu ne peut être accédé que par l’administrateur pour donner à chaque utilisateur
le rôle correspondant.
Comme le montre cette écran, le champs rôle est le seul champ saisissable pour
modifier ou affecter un profil, le reste ce n’est pas le cas de ce menu.
Page | 68
Réalisation
140
120
Reste à Faire (heures)
100
80
20
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Temps (jours)
Au début de sprint 1, la réalisation des taches demandés est avancée de manière idéale,
jusqu’au tache de la gestion d’accès dans laquelle j’ai trouvé quelque difficulté ce qui
est traduit par cette courbe.
3.2 Sprint 2
Le Sprint 2 a mis l’accent sur l’etude de la simulation :
Page | 69
Réalisation
On remaque que la figure ci-dessus represente la liste des simulations avec des actions
devant chaque ligne :
✓ Consulter : pour afficher les details de la simulation selectionnée
✓ Simuler : pour lancer une simulation des ressources les plus adéquats
✓ Supprimer : pour supprimer une simulation selectionnée
✓ Valider : Si la simulation attient la condition8 d’etre un preprojet ,elle devient
dans ce cas prêt a etre validée et devenir un projet consistant
Remarque : on peut trouvé des simulation prêt à etre validée et d’autre pas encore à
cause de nombre des ressources affectées.
Page | 70
Réalisation
La phase de création d’une simulation se fait sur deux étapes, le saisi des champs
nécessaires dans un premier lieu et l’affectation des compétences demandés avec leurs
niveaux dans un deuxieme lieu.
Sachant que chaque ligne de compétence affectée peut être supprimée par l’icône
« trash » qui est traduit par l’écran ci-dessous.
Page | 71
Réalisation
Page | 72
Réalisation
Page | 73
Réalisation
La 2em proposition :
API Google Prédiction :
Google Cloud Prédiction API fournit une API RESTful exploitable pour créer des
modèles d’apprentissage par machine, (Machine Learning).
Pour bénéficier de ce produit, on a besoin de travailler avec le concept de web service
(REST) c’est pour cela on a cité quelques portions de code sur 3 phase différentes :
Phase d’apprentissage : C’est la faite de remplir la base de faits et règles de notre
Système.
$user = $this->getDoctrine()-
>getRepository('ApplicationSonataUserBundle:User')->findAll();
$userJson=json_encode($user,true);
POST
https://www.googleapis.com/prediction/v1.6/projects/MLTestJamel/trainedmode
ls
{
"id": "ressource-identifier",
"storageDataLocation": $userJson
}
Phase de test : c’est d’envoyer une requête pour tester la machine Learning :
$object = $this->admin->getObject($id);
$var1 = $object->getParams();
$sim = json_decode($var1, true);
POST https://www.googleapis.com/prediction/v1.6/projects/prediction-
docs/trainedmodels/ressource-identifier/predict
{
"input": {
"csvInstance": $sim
}
}
Page | 74
Réalisation
"label": "Gharsallah",
"score": "43.069350"
},
{
"label": "Chebeane",
"score": "26.086200"
},
{
"label": "Ben Mbarek",
"score": "9.15200"
}
]
}
L’affichage finale :
Le système Expert proposé par Google et exploité par notre application a proposé les
valeurs d’adéquation ci-dessus, ils sont plus exacts, car plusieurs valeurs interagissent
sur cette valeur donnée.
Page | 75
Réalisation
140
120
Reste à Faire (heures)
100
80
20
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Temps (jours)
3.3 Sprint 3
Après la génération de la tableau de simulation l’utilisateur doit pouvoir accéder aux
plus de details, il doit donc consulter un rapport comparatif entre les competences
acquis par la ressource selectionnée et celle demandées par le simulation.
D’où on a pensé à l’ecran ci-dessous des choix des ressources accompagné par la
remarque correspondante.
Sachant que l’utilisateur peut consulter le plan des charges de la ressource selectionné
par un lien situé en haut et à droite, pour l’aider à prendre la decision de l’affectation.
Page | 76
Réalisation
Page | 77
Réalisation
Par la suite il est demandé de générer le radar dynamique en dessous pour mettre en
évidence la différence entre les niveaux des compétences des deux bouts.
Page | 78
Réalisation
La grille des compétences ci-dessus présente une liste des ressources et leurs
compétences affectées accompagné par d’autre informations tel que son poste , le
nombres d’années d’expérience, besoin visa …
140
120
Reste à Faire (heures)
100
80
20
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Temps (jours)
Concernant le Sprint 3 la tâche la plus difficile au niveau de laquelle j’ai passé beaucoup
du temps c’est la génération de Radar des compétences, c’est pour cela on remarque le
pique qui se situe au milieu de la courbe.
Page | 79
Réalisation
3.4 Sprint 4
Le plan des charges est une sorte de tableau organisé selon une calendrier présente la
charge de chaque ressource par date et par projet.
Comme la figure nous montre , j’ai fait un exemple de filtrage sur le plan des charges
par la ressource Myriam Bourguiba.
Page | 80
Réalisation
140
120
Reste à Faire (heures)
100
80
20
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Temps (jours)
3.5 Sprint 5
Page | 81
Réalisation
Page | 82
Réalisation
Il peut aussi consulter son détail et affecter une recherche avancée sur la liste par type
ou par titre de projet.
Page | 83
Réalisation
140
120
Reste à Faire (heures)
100
80
20
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Temps (jours)
Conclusion
En guise de conclusion, nous avons achevé les différentes phases d’analyse, de
conception et de réalisation pour clôturer par une harmonie d’implémentation
graphique permettant de répondre aux besoins de notre cahier des charges proposé
par la société WEVIOO.
Page | 84
Conclusion générale et perspective
Notre projet présente plusieurs objectifs majeurs, tant sur le plan fonctionnel que sur
le plan technique, d’un point de vue fonctionnel, la tâche d’affectation des ressources
au projet, au sein d’une société qui possèdent un nombre d’effectif important présente
un processus décisif et une phase incontournable dans la politique de toute entreprise
qui accepte des grands projets.
Dans ce contexte, notre projet fin d’étude s’est déroulé au sein de la société Wevioo afin
de réaliser un module basé sur un Simulateur d’affectation des ressources humaines
avec proposition d’un système prédictif.
Cette application offre comme service la possibilité de calculer l’affectation des
ressources aux missions selon l’adéquation de leurs compétences à la mission et leurs
disponibilités par rapport au plan des charges.
Afin d’atteindre cet objectif, nous allons tout d’abord faire une étude de faisabilité, une
phase de réflexion a été évoqué pour permettre aux différents acteurs du système de
tracer les lignes directrices du projet et définir la méthodologie du travail.
Suite à ces phases, on est arrivé à établir une analyse approfondie des besoins
fonctionnels et non fonctionnels.
Pour la dernière phase de la partie théorique, on a pu ajuster la conception nécessaire
pour définir les architectures et les modèles nécessaires à l’exécution de la partie
technique.
Par la suite on a attaqué la phase réalisation de ce projet qui a été bénéfique sur deux
plans : professionnel et personnel.
En effet cette expérience nous a donné la possibilité de découvrir le monde de
Symfony2 et ses différents bundles utilisés, en plus il nous a permis d’améliorer nos
connaissances dans le développement web PHP.
Finalement on peut dire que l’application a pu répondre aux différents besoins
demandés, mais hormis ces avantages, une éventuelle évolution consiste à se
concentrer plus dans le système expert, et intégrer le plan des charges dans la base des
faits pour arriver à une estimation d’adéquation plus précise.
Page | 85
Résumé
Résumé
Ce travail s’est inscrit dans le cadre du projet de fin d’études en vue de l’obtention du
diplôme national d’ingénieur en téléinformatique au sein de l’institut Supérieur
d’Informatique et des techniques de communication de Hammam Sousse (ISITCom).
Il consiste à mettre en place une application basée sur simulateur d’affectation des
ressources humaines avec proposition d’un système prédictif.
La solution est développée sous le Framework Symfony 2 avec une base de données
MySQL accompagné de son outil ORM Doctrine 2, sans oublier les langages HTML5,
CSS3 et JavaScript.
Page | 86
Références
Références
Page | 87
Epigraphe
Epigraphe
« Tu peux tout accomplir dans la vie si tu as le courage de le rêver, l'intelligence
d'en faire un projet réaliste, et la volonté de voir ce projet mené à bien. »
Vauvenargues
Page | 88