Rapport Pfe 2018
Rapport Pfe 2018
Technologiques de Kélibia
Réalisé par
Technologiques de Kélibia
Réalisé par
Signature et cachet
Encadrant ISET
Signature
Dédicaces
Nizar
i
Remerciements
ii
Table des matières
Introduction générale 1
3 Initialisation du projet 16
3.1 Architecture de la solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1.1 Architecture physique de l’application . . . . . . . . . . . . . . . . . . . . 16
3.1.2 Architecture logicielle de l’application . . . . . . . . . . . . . . . . . . . . 17
3.2 Conception détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.1 Diagramme de paquetages . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.2 Le diagramme de déploiement . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.3 Diagramme de composants . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3 Environnements de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3.1 Environnement logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
iii
3.3.2 Activiti Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4 Outil de gestion de version : SVN . . . . . . . . . . . . . . . . . . . . . . . . . . 23
iv
6 Mise en œuvre du sprint 3 : Gestion des candidatures 54
6.1 Backlog du sprint 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.2 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.2.1 Raffinement de cas d’utilisation « Postuler Spontanément » . . . . . . . 56
6.3 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.3.1 Modélisation du processus « Postuler spontanément » . . . . . . . . . . . 58
6.3.2 Diagrammes de séquence du processus « Postuler pour une annonce » . . 59
6.4 Conception graphique des maquettes . . . . . . . . . . . . . . . . . . . . . . . . 61
6.5 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.6 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.6.1 L’envoi d’une candidature spontanée . . . . . . . . . . . . . . . . . . . . 64
6.6.2 L’envoi d’une candidature sur annonce . . . . . . . . . . . . . . . . . . . 66
6.6.3 Consulter mes candidatures . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.6.4 Test et validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Bibliographie 71
v
Table des figures
vi
5.6 Maquette « Création Annonce » . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.7 Maquette « Statuer les annonces » . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.8 Maquette « Consulter et filtrer Annonce » . . . . . . . . . . . . . . . . . . . . . 49
5.9 Diagramme de classes du sprint 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.10 Interface « Créer annonce » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.11 Notification gestionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.12 Consulter / refuser annonce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.13 Mail et notification du manager . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.14 Interface « Consulter et filtrer annonces » . . . . . . . . . . . . . . . . . . . . . 53
vii
Liste des tableaux
viii
Introduction générale
Plébiscitée par de plus en plus d’entreprises, la gestion de mobilité interne s’impose dans des
structures de toutes tailles comme un mode d’organisation particulièrement efficace. L’utilité
d’une solution logicielle en gestion de mobilité interne est indéniable pour une entreprise qui
désire augmenter sa productivité.
L’objectif de ce projet est de fournir à Sopra HR Software un outil lui permettant d’assurer
le processus de gestion de recrutement interne. Cet outil consiste aussi à définir les processus
de travail de chacun des individus concernés par cette fonction. Aussi optimiser l’utilisation des
ressources humaines allouées au processus de mobilité.
Pour mener à termes ce projet nous avons dû effectuer des choix techniques et méthodolo-
giques, identifier les différents besoins du projet, réaliser une conception détaillée du projet et
enfin implémenter la solution. D’où le présent rapport qui se résume en six chapitres.
Le premier chapitre consistera en une présentation générale qui présentera la société d’ac-
cueil et les différents besoins liés au projet et énoncera le choix de la méthodologie, à savoir la
méthode SCRUM, que nous avons appliquée tout au long de la création de l’application.
1
Introduction générale
Dans le deuxième chapitre, nous commencerons par la présentation du sprint 0. Nous présen-
terons l’étude fonctionnelle du système à travers l’identification des acteurs principaux ainsi que
les besoins fonctionnels et non fonctionnels du projet, puis présenter le diagramme de contexte et
de cas d’utilisation global. Nous clôturons le chapitre par la présentation du backlog du produit.
Dans le quatrième chapitre nous passerons au deuxième sprint, nous commencerons donc par
la présentation du backlog du sprint. Ensuite, nous présenterons les études fonctionnelle, sta-
tique et dynamique, et nous terminerons par les tests et la présentation des interfaces BOOTS-
TARP réalisées.
En partant sur le même principe que le chapitre précédent, nous réaliserons un sprint par
chapitre, le cinquième et le sixième chapitre représenteront donc les deux derniers sprints du
projet.
Finalement, nous clôturerons notre rapport par une conclusion qui offre une synthèse du
travail réalisé ainsi que les perspectives envisagées.
2
Chapitre 1
Introduction
Avant de traiter le sujet de notre projet, nous commençons tout d’abord par présenter
l’organisme d’accueil « Sopra HR Software » et son domaine d’activité. Nous donnons ensuite,
une vue globale sur le sujet, son thème ainsi qu’une description de la solution proposée. La
dernière partie sera consacrée pour décrire la méthodologie de travail adoptée.
Sopra HR Software, filiale de Sopra Steria, est une SSII spécialisée dans le domaine de
création des progiciels de gestion des ressources humaines dans le secteur privé et publique.
La figure 1.1 montre les solutions offertes par Sopra Steria dans ce domaine ainsi qu’une vue
globale sur son historique [1].
3
Chapitre 1. Présentation du cadre du projet
En effet, Sopra HR Software est issue de la fusion de plusieurs entités qui sont :
Les solutions offertes par Sopra HR Software couvrent les sujets de gestion administrative
et paie, gestion des temps et des activités, espaces Collaboratifs et finalement la gestion des
talents [2].
L’équipe OSD a pour mission d’accompagner ses clients tout au long du cycle de vie de
leurs projets. Elle permet de :
La phase de recrutement représente une tâche primordiale que chaque entreprise doit passer
par dans le but de trouver un candidat qui correspond mieux aux besoins d’un poste donné.
Avant de passer au recrutement en externe, plusieurs entreprises optent pour le recrutement en
interne qui présente plusieurs avantages pour l’entreprise et pour le salarié :
• pour l’entreprise : avec la mobilité interne, elle offre à ses collaborateurs des opportu-
nités d’évolution et s’assure de la fidélité de ses salariés. Avec ce genre de recrutement, le
cursus d’intégration et le risque de la non-adéquation avec le poste est réduit vu que le
salarié appartient déjà à l’entreprise. Elle peut avoir rapidement un collaborateur opéra-
tionnel ;
4
Chapitre 1. Présentation du cadre du projet
• pour le salarié : la mobilité interne représente une source de motivation pour le salarié.
En effet, ce dernier aura la possibilité d’évoluer sans changer d’employeur et de continuer
sa carrière professionnelle dans un contexte connu.
1.2.2 Problématique
• calcul de score : c’est un algorithme qui repose sur l’évaluation des compétences métier
adaptées aux besoins du poste. Un score sera affecté à chaque candidat et qui présente
sa correspondance avec l’annonce publiée. Les candidatures seront alors classées selon la
performance des candidats au poste. Grâce à cet algorithme, le candidat n’est pas jugé
dans l’absolu, mais bien sur la validation des compétences et sur son adéquation au poste.
Pour remédier à ce genre de problème, nous proposons une solution avec des fonctionnalités
qui permettent non seulement de faciliter la tâche de recrutement mais aussi de la rendre
5
Chapitre 1. Présentation du cadre du projet
automatisée grâce à l’utilisation des Worfklows. Parmi les tâches à automatiser, nous citons
le processus de postulation et de gestion des candidatures, la publication des annonces et la
planification des entretiens. Notre solution se base aussi sur la création des profils pour éviter
le problème d’extraction des informations à partir des CVs et aussi pour accroître le taux de
fiabilité de notre algorithme de matching qui sera basé sur l’algorithme de calcul de score comme
décrit dans la partie précédente.
• scrum Master : : s’assure que les principes et les valeurs de Scrum sont respectés. Il est
responsable de la bonne compréhension et la mise en œuvre de cette méthode et il facilite
aussi la communication au sein de l’équipe ;
La première étape consiste à découper le projet en fonctionnalités qui sont listées dans un
backlog sous forme de tableau. Chaque jour, l’équipe se réunit pour la « mêlée quotidienne
» d’une durée de quinze minutes et dans le but de synchroniser l’équipe, de mettre au point
les tâches en cours et d’identifier les points de blocage. A la fin de chaque sprint, l’équipe
de développement se réunit pour effectuer « la revue du sprint » pour rappeler les objectifs
et indiquer les fonctionnalités du sprint. Après, l’équipe révise le rendu du sprint pour des
petites rectifications et améliorations pour classer la tâche comme « valide ». En suivant le
même enchaînement pour tous les sprints, on aura finalement la version « release » du travail
6
Chapitre 1. Présentation du cadre du projet
Conclusion
Au cours de ce chapitre, nous avons présenté le cadre général de notre projet. Dans un
premier temps, nous avons décrit l’organisme d’accueil « Sopra HR Software » et le thème de
notre sujet. Ensuite, nous avons décrit d’une manière générale les objectifs de notre solution
ainsi que la méthode de développement Scrum. Le chapitre suivant sera consacré pour l’étude
et l’analyse des besoins de notre projet.
7
Chapitre 2
Introduction
Afin de garantir la réussite et l’efficacité de notre projet, nous définissons avec précision les
besoins de notre future solution. Ce chapitre liste, dans un premier lieu, les différents acteurs de
notre application suivi d’une description de l’équipe Scrum. Ensuite, nous identifions les besoins
fonctionnels en se basant sur un Backlog produit. Et finalement, ce chapitre sera clôturé par la
modélisation des différents diagrammes de cas d’utilisation.
8
Chapitre 2. Analyse et spécification des besoins
Le backlog produit contient la liste de toutes les fonctionnalités attendues d’un produit. Il
est élaboré et mis à jour par le Product Owner. Notre backlog a été élaboré avant le lancement
des sprints, dans la phase de préparation et contient les éléments suivants :
• Feature : notre projet est divisé en quatre features qui contiennent un ensemble d’his-
toires utilisateurs à savoir Gestion des candidatures GC, Gestion des profils GP ou Gestion
des annonces GA ;
• ID User sotry : c’est un nombre unique et auto-incrémenté pour chaque user story ;
• Story point : il est estimé par l’équipe lors d’une séance de planning pocker et qui
représente l’effort nécessaire pour la réalisation d’une histoire utilisateur ;
• Priorité : priorité par rapport aux attentes du client. Nous nous sommes basés sur la
méthode de « MoSCoW ». En effet, MoSCoW signifie :
W (won’t) : ne sera pas fait cette fois mais sera fait plus tard.
9
Chapitre 2. Analyse et spécification des besoins
Dans le tableau 2.1, nous présentons la liste des histoires utilisateurs ainsi que leurs estima-
tions.
10
Chapitre 2. Analyse et spécification des besoins
Un besoin non fonctionnel est considéré comme une contrainte qui dépend d’un service
du système telle que les contraintes de l’environnement et de l’implémentation, la facilité de
maintenance, la rapidité et la fiabilité. Ce type de besoin dépend généralement de critères de
performances [5].
11
Chapitre 2. Analyse et spécification des besoins
Pour des raisons de performance et de fiabilité, notre application doit assurer les besoins non
fonctionnels suivants :
• ergonomie : étant donné que notre application sera destinée aux collaborateurs de Sopra
HR Software, nous avons choisi de développer des pages Web qui respectent la même
architecture que celle d’un projet populaire dans l’entreprise « 4you ». Du coup, les
utilisateurs ne trouvent pas une difficulté à naviguer entre les différentes pages ;
• sécurité : l’accès à l’application et la consommation des Web services doivent être sécu-
risés et contrôlés en tenant compte des droits d’accès et des permissions. C’est pour cette
raison que nous nous sommes basés sur Spring Security et JWT ;
• responsive : notre application doit être responsive pour qu’elle fonctionne sur tout type
de dispositif . Ce besoin sera assuré grâce à l’utilisation de Bootstrap ;
12
Chapitre 2. Analyse et spécification des besoins
13
Chapitre 2. Analyse et spécification des besoins
14
Chapitre 2. Analyse et spécification des besoins
Conclusion
Tout au long de chapitre, nous avons identifié l’équipe Scrum, les acteurs de notre système,
les besoins fonctionnels et non fonctionnels ainsi que le Backlog produit. Ensuite, nous avons
analysé les différents besoins à travers des diagrammes de cas d’utilisation d’UML. Le chapitre
suivant sera consacré à l’initialisation de notre projet dans lequel nous illustrons l’architecture
de notre solution.
15
Chapitre 3
Initialisation du projet
Introduction
La phase de conception consiste à modéliser une solution qui résout les problèmes rencontrés
pendant la phase d’analyse des besoins. Ce chapitre est consacré à l’étude de l’architecture
proposée par notre solution, le diagramme de paquetage ainsi que le diagramme de composants.
Et finalement, nous présentons la structure de l’application via le diagramme de classes .
Pour la réalisation de notre solution on a opté pour l’architecture de type « trois tiers » qui
est partagé entre :
• le client : qui représente le navigateur web utilisé par l’utilisateur de notre application ;
• le serveur : qui reçoit toutes les requêtes de la part des clients, les traite en faisant appel
à la couche de base des données ;
• le serveur de base des données : qui permet de partager les données stockées avec la
couche métier.
16
Chapitre 3. Initialisation du projet
17
Chapitre 3. Initialisation du projet
• La vue d’une application basée sur Angular est créée avec des fragments HTML dont
chaque composant est caractérisé par son propre bout de code HTML.
• Le modèle : Il s’agit des classes .ts responsable du maintien des données qui vont être
traité par le contrôleur.
• Couche Web : elle est basée sur des Web services de type REST sur le protocole HTTP,
tout en utilisant le format d’échange de données JSON. Elle permet la communication
entre la partie client et la couche métier ;
• Couche métier : cette couche contient la partie fonctionnelle qui est présentée par
l’ensemble d’opérations et de services offerts par notre application. On trouve aussi dans
cette partie le moteur de workflow Activiti qui a pour objectif de gérer les différents
processus dans notre application ;
• Couche DAO : elle permet la persistance et la récupération des données grâce à l’utili-
sation de Jpa et Hibernate qui ont pour but de faire la correspondance ente nos Objets
Java et les tables correspondantes dans la base de données ;
18
Chapitre 3. Initialisation du projet
Le diagramme de paquetages illustré dans la figure 3.3 est un diagramme structurel d’UML
qui représente les paquetages ou encore les espaces de noms qui composent un système, ainsi
que les relations qui lient ces différents paquetages.
Les diagrammes de déploiement modélisent l’architecture physique d’un système. Ils af-
fichent aussi les relations entre les composants matériels et logiciels du système, ainsi que la
distribution physique du traitement.
Le diagramme de la figure 3.4 montre la manière avec laquelle nous avons déployé notre
application en fonction des différents composants.
19
Chapitre 3. Initialisation du projet
Nous avons utilisé deux types de lien de communication qui sont les suivants :
• JDBC : c’est une API qui permet l’accès, à partir des programmes Java, à des données
sous formes de tableau.
20
Chapitre 3. Initialisation du projet
• Spring Boot : représente un projet qui a été mis en œuvre dans le but de faciliter le
développement et la configuration d’un projet Spring ;
• Spring Security : utilisé pour assurer l’authentification et la gestion des rôles de l’ap-
plication ;
• Json Web Token (jwt) : c’est un standard qui définit dans la RFC 7519. Il permet
l’échange sécurisé de jetons, appelés tokens, entre plusieurs parties. Cette sécurité se
traduit par la vérification de l’intégrité des données à l’aide d’une signature numérique.
Elle s’effectue par l’algorithme HMAC ou RSA ;
• JEE : c’est une édition dédiée à la réalisation d’applications pour entreprises et qui
contient les APIs de base de Java ;
• Java Persistence API (JPA) : c’est le standard utilisé pour faire la correspondance
entre les objets et les tables ;
• Angular : c’est un Framework JavaScript qui respecte l’architecture MVC (Model View
Controller)/MVVM (Model View ViewModel) côté client et qui étend le HTML pour le
rendre dynamique. Il permet de développer ses propres balises et attributs HTML ;
• Html : représente le langage de balisage utilisé pour la création des pages Web.
21
Chapitre 3. Initialisation du projet
• Css : c’est le langage qui permet d’insérer des règles dans les pages Web afin de gérer leurs
présentations. Ces règles portent essentiellement sur le positionnement, l’alignement des
éléments, les polices de caractères, les couleurs, les marges et espacements, les bordures
ainsi que les images de fond .
• Bootstrap : il a été créé en 2011 par Twitter comme une solution à usage interne pour
répondre aux besoins de l’équipe de développement. C’est un Framework Css et JavaScript
qui permet la création des applications Web.
• BPMN 2.0 (Business Process Model notation) : c’est une norme de notation pour
la modélisation des processus.
• UML (Unified Modeling Language) : pour concevoir notre système, nous avons
choisi UML comme langage de modélisation. Ce choix est basé sur les points forts de ce
dernier et sur les divers diagrammes qu’il propse.
Activiti présente un projet open source de gestion des processus métiers. Lancé en 2010
sous licence Apache, Activiti est un moteur de Workflow qui permet d’implémenter le nouveau
standard BMPN 2.0 crée par l’OMG (Object Management Group).
• Activiti Engine : c’est le moteur de cette API. Il est composé d’un ensemble de biblio-
thèques permettant la gestion des processus BPM. La définition des modèles se fait grâce
à un fichier crée en XML. Cette API permet de créer facilement les classes Java et les
Unit tests ;
• Activiti Designer : il est représenté par un module d’extension Eclipse qui permet de
développer les Workflows.
22
Chapitre 3. Initialisation du projet
Cette API se base sur plusieurs services parmi lesquelles on cite les plus importantes :
• RepositoryService : c’est le premier service nécessaire pour travailler avec cette API.
Il offre des opérations de gestion des définitions et de déploiement des processus.
• FormService : ce module soumet les propriétés des formulaires associés aux étapes
initiales.
• garder un historique des modifications avec leur nature, leur date ainsi que leur auteur ;
• permettre à des utilisateurs distincts et souvent distants de travailler ensemble sur les
mêmes fichiers
Conclusion
A travers ce chapitre, nous avons décrit l’architecture ainsi que les différents diagrammes
de notre application. Ensuite, nous avons détaillé les différents outils utilisés. En arrivant à ce
stade, nous pouvons dire que nous avons pu présenter la future application. Les deux premières
phases d’analyse et de conception constituent une préparation pour la phase de réalisation, qui
va être le sujet de notre prochain chapitre.
23
Chapitre 4
Introduction
Le présent chapitre consiste à présenter les différentes étapes de la réalisation de notre
premier Sprint : Gestion des profils. Dans un premier lieu, nous allons présenter le backlog
produit de ce sprint. Ensuite, nous détaillons la conception de ce dernier, tout en se basant sur
les maquettes ainsi que les diagrammes de séquence. Et finalement, nous clôturons par la partie
réalisation, dans laquelle nous décrivons quelques interfaces de notre solution.
ID Tâches Estimation
(h/h)
GP1 Analyse : préparation de la maquette d’authentification. 1
GP2
GP3
24
Chapitre 4. Mise en œuvre du sprint 1 : Gestion des profils
25
Chapitre 4. Mise en œuvre du sprint 1 : Gestion des profils
4.2 Analyse
4.2.1 Description textuelle « S’authentifier »
26
Chapitre 4. Mise en œuvre du sprint 1 : Gestion des profils
La figure 4.1 illustre le diagramme de cas d’utilisation « Gérer Profil Candidat» d’une
manière détaillée.
27
Chapitre 4. Mise en œuvre du sprint 1 : Gestion des profils
28
Chapitre 4. Mise en œuvre du sprint 1 : Gestion des profils
29
Chapitre 4. Mise en œuvre du sprint 1 : Gestion des profils
4.3 Conception
Dans cette partie, nous illustrons les différents diagrammes de notre sprint. Et finalement,
nous décrivons les différentes maquettes dans le but d’avoir une vision claire sur les futures
interfaces.
30
Chapitre 4. Mise en œuvre du sprint 1 : Gestion des profils
Chaque utilisateur peut mettre à jour sa photo de profil. Alors que le Candidat, en plus
de la photo, il peut mettre à jour son CV ainsi que sa lettre de motivation. Nous décrivons,
comme illustré par la figure 4.3, le diagramme de séquence d’injection de CV ou d’une LM par le
Candidat. Ce dernier commence par choisir un fichier à partir de son dispositif et le télécharge.
Si tout se passe bien, son profil est mis à jour. Sinon un message d’erreur est affiché.
31
Chapitre 4. Mise en œuvre du sprint 1 : Gestion des profils
Afin d’avoir une idée sur les futures pages de notre solution, nous avons modélisé des ma-
quettes avec l’outil Balsamiq. Ces maquettes ont aussi pour but de se mettre d’accord, dès le
début, avec le client sur les futures interfaces et de bien comprendre les besoins souhaités. En
effet, nous avons préparé trois interfaces graphiques pour bien comprendre le premier Sprint.
La première maquette, commune pour tout type d’utilisateur, contient les informations de base
d’un utilisateur. La figure 4.4 illustre la maquette de profil utilisateur.
32
Chapitre 4. Mise en œuvre du sprint 1 : Gestion des profils
Nous passons maintenant au profil Candidat, celui qui contient encore trois interfaces au
plus de celle déjà décrite dans la partie précédente. En effet, ces interfaces ne sont affichées
qu’aux utilisateurs possédant le rôle « Candidat ».
La figure 4.5 décrit la maquette des « Formations Candidat» et à partir de laquelle il peut gérer
ses formations.
La figure 4.6 illustre la future interface des « Compétences Candidat» et à partir de laquelle
il peut gérer ses compétences tout en indiquant le niveau de chacune.
33
Chapitre 4. Mise en œuvre du sprint 1 : Gestion des profils
avec lequel il pourra postuler aux annonces et avoir un score pour chaque candidature. Ce score
est calculé à partir des informations déjà fournies dans les formations, les compétences et les
expériences.
4.5 Réalisation
Dans cette section nous allons présenter à travers un enchaînement de captures d’écran
prises à partir des interfaces de notre solution, des scénarios d’exécution donnant un aperçu
général sur les fonctionnalités de notre système.
4.5.1 Authentification
Au lancement de l’application, l’utilisateur est invité à s’authentifier tout en saisissant ses co-
ordonnées afin d’accéder à sa session. La page d’accueil de l’application n’est accessible qu’après
une saisie correcte du nom d’utilisateur et de son mot de passe. La page d’authentification est
illustrée par la figure 4.8.
34
Chapitre 4. Mise en œuvre du sprint 1 : Gestion des profils
Après l’authentification avec succès, un test s’effectue sur le rôle de l’utilisateur pour bien
afficher la page d’accueil qui lui correspond. Vu que notre application contient trois rôles dif-
férents, donc il y’aura trois pages différentes à afficher. La figure 4.9 présente la page d’accueil
destinée au rôle Manager. En fait, chaque utilisateur de ce type a le droit de :
• gérer la liste des candidatures spontanées destinées pour son unité organisationnelle ;
• visualiser en détails la liste des candidatures sélectionnées qui concernent les annonces
qu’il a publiées.
35
Chapitre 4. Mise en œuvre du sprint 1 : Gestion des profils
Et finalement, nous exposons par la figure 4.11 la page d’accueil de profil Candidat qui peut
soit accéder à la liste des annonces, postuler spontanément ou voir ses notifications.
36
Chapitre 4. Mise en œuvre du sprint 1 : Gestion des profils
Comme illustré par la figure 4.12, le candidat peut accéder à son profil dans le but de mettre
à jour ses informations personnelles, son CV et sa lettre de motivation. Il peut aussi gérer ses
formations, ses compétences, ses expériences ainsi que ses certificats.
Si le candidat choisit de mettre à jour son CV, il accède à l’interface de modification qui
est illustrée par la figure 4.13. Après avoir téléchargé un CV, il peut le visualiser et il finit soit
par valider l’ajout, soit par l’annuler.
37
Chapitre 4. Mise en œuvre du sprint 1 : Gestion des profils
• l’utilisation du « local storage » dans la partie frontale pour y stocker des informations
qui concernent l’utilisateur connecté et éviter du coup de refaire une requête http lorsque
nous avons besoin de ces informations encore une fois.
Conclusion
Tout au long de ce chapitre, nous avons décrit les différentes phases par lesquelles notre
sprint a passé par, afin de le réaliser. Nous avons décrit son backlog produit au début, suivi de
la modélisation des diagrammes et des maquettes. Et finalement, nous avons décrit les interfaces
obtenues ainsi que les remarques dégagées lors de la revue de sprint. Le chapitre suivant a pour
objectif de décrire le sprint « Gestion des annonces ».
38
Chapitre 5
Introduction
Tout au long de ce chapitre, nous décrivons les différentes étapes par lesquelles nous nous
sommes passés pour réaliser ce sprint. Nous entamons ce chapitre par une présentation du
Backlog produit. Ensuite, nous détaillons la partie conception par la présentation de quelques
diagrammes. Finalement, nous clôturons par décrire quelques interfaces de notre application et
la partie test et validation.
ID Tâches Estimation
(h/h)
GA1 Analyse : préparation de la maquette d’authentification. 2
Développement de la partie Backend : modélisation du 8
processus « Validation des annonces » à l’aide du plugin «
Activiti Designer ». Création du Web service de création d’an-
nonce et de lancement du processus.
39
Chapitre 5. Mise en œuvre du sprint 2 : Gestion des annonces
40
Chapitre 5. Mise en œuvre du sprint 2 : Gestion des annonces
41
Chapitre 5. Mise en œuvre du sprint 2 : Gestion des annonces
5.2 Analyse
5.2.1 Raffinement de cas d’utilisation « Gérer Annonce »
La figure 5.1 illustre le diagramme de cas d’utilisation « Gérer Annonce » d’une manière
détaillée :
42
Chapitre 5. Mise en œuvre du sprint 2 : Gestion des annonces
43
Chapitre 5. Mise en œuvre du sprint 2 : Gestion des annonces
La figure 5.2 illustre le diagramme de cas d’utilisation « Consulter Annonce » d’une manière
détaillée :
44
Chapitre 5. Mise en œuvre du sprint 2 : Gestion des annonces
5.3 Conception
Nous décrivons, dans cette section du chapitre, la modélisation des différents diagrammes
sur lesquels nous nous sommes basés pour bien comprendre le fonctionnement du processus «
Validation des annonces » qui présente la tâche primordiale de ce sprint.
Le processus de « Validation des annonces », modélisé en BMPN 2.0 avec le plugin « Designer
» d’eclipse, est décrit par la figure 5.3. En effet, ce processus contient deux tâches utilisateurs
et une tâche service qui sont :
• créer annonce : c’est la première tâche de notre processus, effectuée par le Manager,
elle présente le point d’entrée de notre processus. A partir de laquelle, le Manager remplit
un formulaire de création d’annonce et une notification sera envoyée automatiquement au
Gestionnaire, en temps réel, pour lui informer qu’une nouvelle annonce est en attente ;
45
Chapitre 5. Mise en œuvre du sprint 2 : Gestion des annonces
• traiter annonce : cette tâche sera faite par le Gestionnaire. Il peut soit valider l’annonce
du Manager, qui sera publiée automatiquement, soit la refuser. Une notification sera
envoyée automatiquement au Manager en question pour lui informer de l’état de son
annonce ;
• envoyer mail d’acceptation ou de refus : sont présentés par deux tâches services qui
nous permettent d’envoyer automatiquement, selon la décision du Gestionnaire, un mail
lui indiquant l’acceptation ou le refus ainsi que les raisons pour lesquelles son annonce a
été refusée.
Comme décrit dans la partie précédente, le manager crée une demande de publication d’an-
nonce et c’est au gestionnaire de la valider ou non. Pour statuer les annonces, le gestionnaire
accède à la page de validation pour consulter la liste des annonces dont l’état est « en attente
». La figure 5.4 schématise l’enchaînement de la consultation.
Après avoir consulté toutes les annonces en attente, le gestionnaire peut valider ou refuser
les annonces. S’il accepte la demande, l’annonce sera enregistrée la base avec l’état « Validé ».
S’il refuse, il doit mentionner les raisons de refus et l’annonce sera enregistrée dans la base avec
l’état « Refusé ». Une notification et un mail seront envoyés automatiquement au manager en
question pour lui informer de l’état de son annonce.
La figure 5.5 illustre le diagramme de séquence « Statuer annonce ».
46
Chapitre 5. Mise en œuvre du sprint 2 : Gestion des annonces
47
Chapitre 5. Mise en œuvre du sprint 2 : Gestion des annonces
Après avoir effectué des recherches concernant les champs nécessaires d’une annonce, nous
avons établi la maquette de création d’annonce qui est la même pour les deux rôles : Manager
et Gestionnaire.
La figure 5.6 montre la maquette « Création annonce ».
48
Chapitre 5. Mise en œuvre du sprint 2 : Gestion des annonces
La maquette décrite par la figure 5.8 présente l’interface de consultation des annonces qui
est commune pour tout type d’utilisateur sauf le bouton radio en haut, il est seulement destiné
aux Candidats. Ce bouton permet, selon le choix du Candidat, de trier les annonces selon la
correspondance avec son profil. Comme décrit dans la figure, l’Utilisateur de l’application peut
effectuer un filtre sur les annonces tout en choisissant des critères qui concernent les expériences,
les formations ou encore les compétences. Il peut aussi effectuer des recherches en saisissant des
mots clés.
49
Chapitre 5. Mise en œuvre du sprint 2 : Gestion des annonces
5.5 Réalisation
Nous allons présenter, dans cette partie, à travers un enchaînement de captures d’écran des
scénarios d’exécution sur des fonctionnalités choisies de notre sprint.
La figure 5.10 présente l’interface « Créer Annonce » qui est commune pour les deux rôles
Gestionnaire et Manager. La seule différence entre les deux, du point de vue fonctionnel, est le
fait que l’annonce du Gestionnaire sera publiée automatiquement, alors que celle du Manager
doit être validée avant sa publication. A partir de cette interface, l’utilisateur remplit le formu-
laire et il est demandé, pour certains champs, de fournir les priorités qui nous seront utiles lors
du calcul de score des candidatures.
50
Chapitre 5. Mise en œuvre du sprint 2 : Gestion des annonces
Lors de la création d’une nouvelle annonce par un Manager, le Gestionnaire reçoit, en temps
réel, une notification, comme décrite par la figure 5.11, lui indiquant qu’une nouvelle annonce
est en attente.
Après avoir lu les notifications, le Gestionnaire accède à la page de gestion des annonces
pour les statuer. A partir de cette interface, il peut voir en détails chacune à part. Pour valider
l’annonce, le Gestionnaire n’a qu’à choisir le bouton Accepter, alors que pour la refuser, il lui
faut la saisie des raisons pour lesquelles cette annonce a été refusée.
La figure 5.12 illustre l’interface de « Voir Annonce en Détail » et celle qui permet le refus
d’annonce.
51
Chapitre 5. Mise en œuvre du sprint 2 : Gestion des annonces
Après avoir décidé la validation ou non de l’annonce par le Gestionnaire, un mail et une
notification, comme décrits dans la figure 5.13, seront communiqués automatiquement au Ma-
nager en question pour lui informer de l’état de sa demande de publication d’annonce et des
raisons de refus en cas de rejet.
Tout type d’utilisateur peut consulter et effectuer des filtres sur la liste des annonces pu-
bliées.
La figure 5.14 présente la page de consultation des annonces pour le rôle Candidat. Ce qui
la différencie par rapport aux deux autres, c’est le fait que le Candidat peut enregistrer des
annonces, celles qui sont marquées par des étoiles sur la figure.
52
Chapitre 5. Mise en œuvre du sprint 2 : Gestion des annonces
• l’ajout des priorités qui concernent les champs de l’annonce afin de calculer les scores des
candidatures ;
Conclusion
Dans ce chapitre, nous nous sommes intéressés à la réalisation des fonctionnalités de notre
sprint. Nous avons décrit les différentes étapes de cette réalisation ainsi que les interfaces de
notre solution. Le chapitre suivant sera consacré pour expliquer en détails le sprint trois qui est
destiné pour la « Gestion des candidatures et postulation ».
53
Chapitre 6
Introduction
Dans ce chapitre, nous présentons la réalisation de notre troisième sprint : Gestion des
candidatures.
Dans un premier lieu, nous décrivons les tâches de chaque histoire utilisateur.
Dans un deuxième lieu, nous schématisons l’enchaînement de ce sprint grâce aux diagrammes
de conception.
Finalement, nous décrivons cet enchaînement avec la présentation des interfaces de la solution.
ID Tâches Estimation
(h/h)
GC1 Analyse : modification de la maquette de consultation d’une 1
annonce en détails.
54
Chapitre 6. Mise en œuvre du sprint 3 : Gestion des candidatures
55
Chapitre 6. Mise en œuvre du sprint 3 : Gestion des candidatures
6.2 Analyse
6.2.1 Raffinement de cas d’utilisation « Postuler Spontanément »
56
Chapitre 6. Mise en œuvre du sprint 3 : Gestion des candidatures
57
Chapitre 6. Mise en œuvre du sprint 3 : Gestion des candidatures
6.3 Conception
Cette section du chapitre est consacrée à présenter les différents diagrammes du sprint
« Gestion des candidature ». Nous l’entamons par la présentation du processus « Postuler
Spontanément ».
La figure 6.2 schématise les étapes d’envoi d’une candidature spontanée. En effet, le can-
didat commence par remplir un formulaire qui sera testé pour vérifier s’il a déjà effectué une
candidature avec les mêmes critères ou non. Si la candidature existe déjà, un message d’erreur
sera affiché et le processus est terminé. Dans le cas inverse, un score sera calculé, grâce au ser-
vice de matching, et affecté à la candidature. Ensuite, une notification sera envoyée au manager
de l’unité organisationnelle que le candidat a choisie pour valider ou non sa demande. Enfin,
un mail et une notification seront envoyés au candidat en question.
58
Chapitre 6. Mise en œuvre du sprint 3 : Gestion des candidatures
Après avoir consulté la liste des annonces, le candidat choisit une pour effectuer sa candida-
ture. Tout le processus « Postuler pour une annonce », dès l’envoi d’une candidature jusqu’à sa
validation ou son refus, est implémenté aussi avec Activiti Workflow. Alors, pour commencer,
le candidat choisit le bouton « Postuler » à partir de l’interface « Consulter annonce en détail
». Les données sont récupérées grâce à une requête http de type Post et qui seront testées pour
bien vérifier que le candidat n’a pas effectué une candidature pour cette annonce. S’il a déjà
effectué une candidature, un message d’erreur est affiché. Dans le cas inverse, un score sera cal-
culé avec le service de matching. Chaque candidature possède son propre score qui est calculé à
partir des priorités fournies dans l’annonce. En effet, ce score se compose de trois autres à savoir
le score des compétences, des expériences et celui des formations. Une fois le score est affecté,
la candidature sera stockée dans la base avec l’état « en cours » et nous appelons la méthode «
startProcessInstanceByKey ». Cette dernière fait appel au « RuntimeService » d’Activiti pour
commencer le processus « candidatureProcess ».
Le processus reste bloqué jusqu’à la prise de décision du gestionnaire.
La figure 6.3 illustre le diagramme de séquence « Postuler pour une annonce ».
59
Chapitre 6. Mise en œuvre du sprint 3 : Gestion des candidatures
Après la phase d’envoi des candidatures, le gestionnaire accède à la page de consultation des
candidatures pour les visualiser en détails. En effet, dès qu’il accède à cette page une requête http
de type Get est exécutée pour extraire les données. Cette dernière fait appel au TaskService
d’Activiti pour récupérer toutes les tâches dont la catégorie est « enAttenteCandidature »
où toutes les candidatures sont stockées. Enfin, un simple parcours de la liste retournée afin
d’extraire toutes les candidatures. La figure 6.4 présente pour récupérer toutes les candidatures.
60
Chapitre 6. Mise en œuvre du sprint 3 : Gestion des candidatures
Une fois la liste est retournée, elle sera triée selon les scores des candidatures tout en calculant
le rang de chacune. Cela est assuré grâce à l’utilisation d’un service créé dans la partie frontale.
61
Chapitre 6. Mise en œuvre du sprint 3 : Gestion des candidatures
Lorsqu’un candidat postule spontanément ou pour répondre à une offre publiée, un score sera
automatiquement affecté à sa candidature. Ce score nous sera utile pour trier les candidatures.
Lorsque le gestionnaire accède à la page de validation des annonces, il peut visualiser une liste
triée selon les scores des candidatures. A partir de cette interface, il peut valider ou refuser les
candidatures.
La figure 6.6 décrit la future interface, destinée au gestionnaire pour gérer les candidatures sur
les annonces.
62
Chapitre 6. Mise en œuvre du sprint 3 : Gestion des candidatures
63
Chapitre 6. Mise en œuvre du sprint 3 : Gestion des candidatures
6.6 Réalisation
Cette section est consacrée à présenter, grâce à un enchaînement de captures d’écran, les
deux scénarios de base de notre sprint qui sont :
Et finalement, nous donnons une brève description sur la page de consultation des candidatures
effectuées destinées aux candidats.
Le candidat accède à la page d’envoi de candidature spontanée, comme illustrée par la figure
6.8. Pour postuler, il doit choisir la localisation, le secteur d’activité, l’unité organisationnelle
et le poste souhaité. Pour chaque candidature spontanée, il doit joindre son CV ainsi que sa
LM. Et finalement, il peut confirmer ou non sa disponibilité à la mobilité.
Si la candidature est bien passée, le candidat reçoit une notification, comme décrit dans la
figure 6.9.
64
Chapitre 6. Mise en œuvre du sprint 3 : Gestion des candidatures
Après avoir reçu la notification, le manger accède à la page de gestion des candidatures
spontanées. Dans laquelle la liste des candidatures est triée selon le score. Alors, il choisit une
pour visualiser toutes les informations du candidat ainsi que son rang.
La figure 6.10 présente l’interface de consultation d’une candidature spontanée en détail.
65
Chapitre 6. Mise en œuvre du sprint 3 : Gestion des candidatures
Pour postuler sur une annonce, le candidat consulte la liste des annonces publiées. Il choi-
sit une pour visualiser toutes ses informations à savoir son titre, son unité organisationnelle,
l’expérience et les compétences requises, etc. La figure 6.12 présente l’interface de consultation
d’une annonce en détail.
66
Chapitre 6. Mise en œuvre du sprint 3 : Gestion des candidatures
Si le candidat a déjà postulé pour une annonce précise un message d’erreur lui sera envoyé.
La figure 6.13 montre le message d’erreur qui sera affiché.
Les candidatures sur les annonces seront gérées par le gestionnaire des ressources humaines.
Il accède à la page de gestion des candidatures, où une liste contenant toutes les candidatures
sur annonce est triée selon un score, qui est calculé tout en se basant sur les priorités choisies
dans l’annonce. Il a la possibilité de filtrer les candidatures par annonce comme illustré par la
figure 6.14.
Alors, pour statuer une candidature le gestionnaire consulte en détails les informations du
candidat comme décrit dans la section de gestion des candidatures spontanées. Après avoir
parcouru tous les détails des candidats, il peut soit valider leurs candidatures, soit les refuser.
67
Chapitre 6. Mise en œuvre du sprint 3 : Gestion des candidatures
La figure 6.15 présente les deux messages affichés après avoir décidé l’état des candidatures.
Après avoir effectué des candidatures, quel que soit leurs types, le candidat peut consulter
l’historique de ses candidatures effectuées.
La figure 6.16 présente la page contenant cet historique.
Comme décrit par la figure, le candidat peut effectuer des filtres sur ses candidatures tout en
se basant soit sur la date, soit sur les formations, les expériences ou encore sur les technologies.
Il peut aussi voir la date de postulation et l’état de la candidature. Les candidatures, dont l’état
est « En-Cours » ne sont pas encore traitées.
68
Chapitre 6. Mise en œuvre du sprint 3 : Gestion des candidatures
Après avoir développé les interfaces nécessaires ainsi que leurs implémentations, nous avons
eu comme d’habitude une réunion de revue de sprint. Comme prévu, le Scrum master a rappelé
l’objectif de ce sprint et le Product Owner a évalué les résultats du sprint. Les remarques que
nous avons dégagées après cette réunion sont les suivantes :
• l’ajout des priorités qui concernent les champs de l’annonce afin de calculer les scores des
candidatures ;
Conclusion
Dans ce chapitre, nous nous sommes intéressés à la réalisation des fonctionnalités de notre
sprint. Nous avons décrit les différentes étapes de cette réalisation ainsi que les interfaces de
notre solution.
69
Conclusion générale et perspectives
Tout au long de notre projet, nous avons passé par différentes étapes pour sa création. Dans
un premier lieu, nous avons commencé par une présentation du cadre du projet. Ensuite, nous
avons décrit les besoins fonctionnels et non fonctionnels de notre système. Après, nous avons
établi les différents diagrammes qui expliquent d’une manière raffinée le fonctionnement du
projet. Et finalement, nous avons procédé aux choix techniques du langage de développement
ainsi que les outils utilisés.
Malgré sa courte durée, ce stage, nous a donnée l’occasion d’avoir une idée sur la vie
professionnelle en intégrant l’équipe de One Square. Nous avons aussi appris de nouveaux
concepts et de nouvelles technologies. Ce stage a été une bonne opportunité pour développer
nos compétences en développement Web et d’apprendre à créer et intégrer les workflows.
Certes, notre projet peut supporter plusieurs perspectives afin de faciliter d’autres tâches
pour le logiciel en ligne « SquareSchools ». L’une des perspectives prévue est le fait de créer un
worfklow qui permet d’envoyer non seulement des emails mais aussi des SMS aux parents, aux
enseignants ou encore aux étudiants. Une autre proposition est de créer un workflow qui envoi
automatiquement des emails contenant le support du cours aux étudiants.
70
Bibliographie
[1] Sopra Steria. Les solutions ressources humaines de SOPRA STERIA. Disponible sur :
<https ://[Link]/>. Consulté le 21 Avril 2018.
[3] Thierry PIGOT. Scrum en moins de 10 minutes. Disponible sur : <https ://[Link]-
[Link]/scrum-en-moins-de-10-minutes/>. Consulté le 22 Avril 2018.
[4] Florent LOTHON. Guide de démarrage de Scrum – l’Agiliste. Disponible sur : <
https ://[Link]/guide-de-demarrage-scrum/>. Consulté le 22 Avril 2018.
[7] IBM. Définition des cas d’utilisation. Disponible sur :<https ://[Link]/support
/knowledgecenter/fr/SSWMEQ_2.0.0/[Link]/topics/t_define_ucs.html>.
Page consultée le 31 octobre 2017.
[8] Edrwa Soft. UML cas d’utilisation. Disponible sur :<https ://[Link]/fr/uml-
[Link]>. Page consultée le 31 octobre 2017.
[9] DocWiki. Définition des diagrammes d’activités UML 2.0. Disponible sur :<http ://doc-
[Link]/RADStudio/Tokyo/fr>, 14 Novembre 2013. Page consultée le 01
novembre 2017.
[10] DocWiki. Définition des diagrammes de séquence UML 1.5 . Disponible sur :<http ://doc-
[Link]/RADStudio/Tokyo/fr>, 14 Novembre 2013. Page consultée le 02
novembre 2017.
71
Bibliographie
[15] Cyrille Chausson. Avec Activiti, Alfresco glisse progressivement vers la licence Apache »,
LeMAgIT, 18 mai [Link] consultée le 06 ovembre 2017.
[17] [Link]. Cours n10 : Diagramme de paquetages. Disponible sur :< http ://remy-
[Link]/UML/Cours/[Link]>. Page consultée le 05 novembre 2017.
<Ref : http ://[Link]/UML/Cours/[Link] consulté le 20/05>
72
PÌl
mt§ .One Square T·JAn TrKA £dyfn ©@ ¤ ¨fyO Prt CAV ¨ r§rqt @¡ t
Ð |r ¤ . SquareSchools Ar ¨ Workflow ¤ l¤ ymO ¨ ¤rKm @¡ d¡
¤ Eclipse IDE dtFA Spring CAV m` @¡ r§wW .Ty¶Aql Ahl`¤ Ahm {` yhs w¡
Designer dAsm Arb Sf Workflow ymO d¤ .AAyb d w C A\n PostgreSQL
.Eclipse b
Designer ,PostgreSQL ,Eclipse ,Spring ,Workflow : y Af Aml
Résumé
Ce travail a été réalisé dans le cadre du projet de fin d’études afin d’obtenir le
diplôme de licence appliquée en informatique, il a été réalisé au sein de l’entreprise
Sopra HR Software, nous avons essayé d’être fidèle aux exigences citées dans le
cahier des charges. L’objectif de ce travail est de trouver une solution qui permet
d’améliorer les façons d’exécution teste automatiques, pour se faire nous avons mis
en place une solution d’orchestration et d’industrialisation d’exécution des tests
automatiques.
Mots clés : Workflow, Spring, Eclipse, PostgreSQL, Designer.
Abstract
The present report was drafted in the context of the summer internship. This
project was made within the start-up One Square. The objective of our work con-
sists in conceiving, creating and integrating workflows into an on-line software «
SquareSchools » in order to facilitate certain tasks and make them automatic.
Our work was developed with the Spring framework by using Eclipse as IDE and
PostgreSQL as DBMS. Workflows were modelled by using to the plugin designer
installed under Eclipse.
Keywords : Workflow, Spring, Eclipse, PostgreSQL, Designer.
[Link]/
: w 72 277 091 : Ah 8090 :W ¤ §rV Áibi´M
Route Oued Khatf, Kélibia 8090, Nabeul Tél: 72 277 090 Site:[Link]/