Vous êtes sur la page 1sur 26

Tunisian republic

Ministry of Higher Education


and Scientific Research
ESPRIT
Private Higher School of Engineering and
Technology

Engineer Integrated Development


Project report

PI-DEV Integrated Development Project -


Women Empowerment

Realized within Private Higher School of Engineering and Technology (ESPRIT)

By
Mohamed Amine Ben Taieb
Wafa Ben Yahia
Hanine Zayani
Taysir Khelifi
Yosser Snoussi

Specialty : Software Architecture Engineering

University Year : 2021-2022


Remerciements
J’exprime ses sincères reconnaissances à l’égard de tous ceux qui ont contribué à
ma formation.

Je tiens à remercier tout particulièrement Madame Narjiss Aissaoui ma tutrice de


stage qui a dirigé mon projet de fin d’études, pour son engagement permanent, son sou-
tien constant et la confiance totale qu’elle m’a accordée.

J’adresse aussi mes profonds remerciements à Madame Noura Abdaoui, mon enca-
drante au sein d’ESPRIT, pour son encadrement, son soutien, sa disponibilité et ses
conseils qui m’ont guidé tout au long de mon stage. Je voudrais témoigner par la suite
ma reconnaissance à Malik Ghernaout, qui malgré ses responsabilités et ses occupations,
a toujours eu le temps pour m’écouter et me faire bénéficier de ses conseils et de son
expérience.

Je remercie chaleureusement toute l’équipe APPS chez EXPERTIME pour


leur accueil et suggestions.

J’espère que le présent projet soit à la hauteur de vos attentes.

i
Table des matières

1 Contexte général 1
1.1 Cadre général du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Organisme d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2.1 Présentation de EXPERTIME . . . . . . . . . . . . . . . . . . . . . 1
1.3 Les valeurs d’Expertime . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Engagement RSE d’Expertime . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Effectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.6 Présentation du sujet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.6.1 Étude de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.6.2 Critique de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6.3 Solution proposée . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.7 Choix méthodologique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.7.1 Formalisme de modélisation . . . . . . . . . . . . . . . . . . . . . . 6
1.7.2 Méthodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 Analyse et spécification des besoins 9


2.1 Pilotage du projet avec Scrum . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Backlog du produit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Besoins fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Besoins fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.2 Besoins non fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4 Modélisations des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4.1 Identification des acteurs . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4.2 Diagramme de cas d’utilisation global . . . . . . . . . . . . . . . . . 13
2.4.3 Diagramme de classes global . . . . . . . . . . . . . . . . . . . . . . 13
2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 Sprint 0 15
3.1 Environnement du travail . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.1 Environnement matériel . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.2 Environnement logiciel . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Architecture logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.1 MVVM en Front-end . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4 Sprint 1 21

Bibliographie 22

ii
Table des figures

1.1 Schéma des activités d’Expertime . . . . . . . . . . . . . . . . . . . . . . . 2


1.2 Badge ECOVADIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Organigramme de l’équipe de Narjiss . . . . . . . . . . . . . . . . . . . . . 5
1.4 Cycle de vie SCRUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1 Backlog du produit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10


2.2 Diagramme de cas d’utilisation global . . . . . . . . . . . . . . . . . . . . . 13
2.3 Diagramme de classes global . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.1 Visual Studio 2022 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15


3.2 Visual Studio Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3 Microsoft Azure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.4 GitHub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.5 Swagger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.6 Diagrams.net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.7 Microsoft SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.8 CSharp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.9 TypeScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.10 Vuejs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.11 .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.12 Architecture MVVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

iii
Chapitre 1

Contexte général

Introduction
Ce chapitre comprend tout d’abord une présentation sur la société accueillante au sein
de laquelle j’ai réalisé ce stage. Ensuite, je discute des systèmes de gestion de l’accueil
existants, car je m’intéresse à les critiquer afin d’identifier ma problématique et proposer
une solution. Enfin, j’introduis le choix méthodologique que j’ai adopté dans la réalisation
du projet.

1.1 Cadre général du projet


Le travail présenté dans ce rapport a été effectué au sein de la société EXPERTIME
dans le cadre d’un projet de fin d’études en vue de l’obtention du diplôme national d’in-
génieur en Informatique à l’Ecole supérieur privé d’ingénierie et de technologie(ESPRIT).

1.2 Organisme d’accueil


L’organisme d’accueil de ce stage est la société EXPERTIME. Nous allons, dans cette
partie, le présenter et énumérer ses solutions.

1.2.1 Présentation de EXPERTIME


Expertime est une Entreprise de Services du Numérique (ESN) fondée en 2003, recon-
nue pour sa diversité d’activités et son expertise dans différents domaines. Ses principales
activités incluent :
Applications métier sur-mesure : Expertime développe des solutions logicielles personna-
lisées afin d’optimiser les processus métier des entreprises. Ces applications sur-mesure
sont conçues pour améliorer l’efficacité opérationnelle et répondre aux besoins spécifiques
de chaque client.
Digital Workplace : Expertime propose des solutions qui permettent aux entreprises de
fournir à leurs collaborateurs un accès sécurisé à leurs informations de travail individuelles
et collectives. Ces solutions favorisent la collaboration et offrent des espaces de travail col-
laboratifs, facilitant ainsi la productivité et la communication au sein des équipes.
Data intelligence : Expertime accompagne ses clients dans la gestion et l’exploitation de
leurs données. L’entreprise met en place des solutions pour accéder, analyser et interpréter

1
Chapitre 1. Contexte général 1.3. Les valeurs d’Expertime

les données, permettant ainsi une prise de décision éclairée et une meilleure compréhen-
sion des enjeux métier.
Web et e-commerce : Expertime apporte son expertise aux clients pour renforcer leur pré-
sence en ligne. L’entreprise développe des solutions web et e-commerce afin d’améliorer
la visibilité, la performance et l’expérience utilisateur des entreprises sur le web

Expertime se distingue par sa spécialisation dans les solutions Microsoft et les CMS
opensource. Elle détient 13 certifications Microsoft, dont le niveau de certification Gold
Microsoft sur les trois Clouds majeurs : Azure, Office 365 et Dynamics 365. Cette expertise
accréditée par Microsoft garantit aux clients un haut niveau de compétence et d’expérience
dans l’utilisation de ces technologies.
Avec plus de 200 collaborateurs, Expertime a réalisé un chiffre d’affaires de 23 millions
d’euros, témoignant de sa croissance et de sa réussite dans le domaine de la transformation
digitale.

Figure 1.1 – Schéma des activités d’Expertime

1.3 Les valeurs d’Expertime


Les valeurs qui animent Expertime sont les suivantes :

— Excellence : Expertime cultive une culture de l’excellence, visant le meilleur niveau


de qualité dans les solutions proposées ainsi que dans les interactions avec les
clients, les partenaires et les collègues. L’entreprise encourage la formation continue,
l’exploration de nouvelles opportunités et se challenge constamment pour repousser
les limites.
— Audace : Expertime n’a pas peur de prendre des risques et de remettre en cause
les certitudes. L’entreprise explore de nouvelles pistes, prend des initiatives et voit
l’audace comme une manière de progresser et d’évoluer.

— Passion : La passion pour le métier et les nouvelles technologies est le moteur de


l’engagement et de la motivation chez Expertime. Cette passion se reflète dans
l’implication de l’entreprise à repousser les limites et à offrir des solutions inno-
vantes.

— Confiance : Expertime met la confiance au cœur de ses interactions, que ce soit


avec les clients, les partenaires ou en interne avec les managers et les équipes.
L’entreprise aborde les nouveaux projets et les défis avec bienveillance.

2
Chapitre 1. Contexte général 1.4. Engagement RSE d’Expertime

1.4 Engagement RSE d’Expertime


Expertime, est fortement engagée dans sa responsabilité sociétale d’entreprise (RSE).
L’entreprise met en place plusieurs actions concrètes pour contribuer de manière positive
à la société et à l’environnement.

Expertime évalue régulièrement sa performance en matière de RSE en utilisant la mé-


thodologie Ecovadis, qui couvre 21 enjeux répartis en 4 thèmes : environnement, social et
droits de l’homme, éthique, et achats responsables. Grâce à ses efforts constants, Exper-
time a obtenu une note globale de 68 en août 2021, ce qui correspond à une performance
RSE avancée et le positionne parmi les 3 des entreprises les mieux évaluées par Ecovadis
dans son secteur d’activité.

L’engagement environnemental fait partie intégrante de la démarche RSE d’Exper-


time. L’entreprise sensibilise ses collaborateurs aux problématiques environnementales,
réduit ses émissions de gaz à effet de serre en encourageant l’utilisation des transports en
commun, le télétravail et la mise en place de bornes de recharge pour voitures électriques.
Elle veille également à optimiser ses achats de biens et de services en privilégiant les pro-
duits recyclés et en réduisant l’utilisation de papier.

En matière d’inclusion et de diversité, Expertime met en œuvre une politique de


recrutement favorisant la diversité des profils et des parcours. L’entreprise s’engage éga-
lement dans la lutte contre les discriminations et promeut l’égalité professionnelle entre
les femmes et les hommes, en obtenant un index EGAPRO de 92/100 en 2021.

Sur le plan éthique, Expertime respecte les dispositions légales et conventionnelles de


lutte contre la corruption, la protection des données personnelles et les achats respon-
sables. Elle organise des événements collaboratifs et créatifs visant à engager des actions
sur des sujets clés tels que l’innovation et la technologie.

Dans l’ensemble, l’engagement RSE d’Expertime se traduit par une démarche envi-
ronnementale, une promotion de l’inclusion et de la diversité, une éthique rigoureuse et
des actions sociétales concrètes. En tant qu’entreprise responsable, Expertime vise à avoir
un impact positif sur la société tout en offrant des services de stratégie digitale de haute
qualité à ses clients.

Figure 1.2 – Badge ECOVADIS

3
Chapitre 1. Contexte général 1.5. Effectifs

1.5 Effectifs
Expertime est une entreprise à taille humaine comptant environ 200 collaborateurs
répartis dans cinq agences stratégiquement situées. Je suis rattaché à l’agence principale
de Viroflay, qui abrite le siège social de l’entreprise. Au sein de cette agence, je fais partie
de l’équipe d’applications en tant qu’ingénieur en études et développement informatiques
en stage.

Les effectifs d’Expertime sont répartis comme suit :

Agence de Viroflay (agence principale) : C’est là que je suis basé, et où se trouve le


plus grand nombre de collaborateurs. C’est également le siège social de l’entreprise.

Agence de Nantes : Cette agence compte une équipe spécialisée dans la transformation
digitale, avec des experts en conseil, marketing, données, modern workplace, low/no code,
et autres domaines pertinents.

Agence d’Aix-en-Provence : Cette agence regroupe des spécialistes de la transforma-


tion digitale, proposant des services de conseil et de développement d’applications adaptés
aux besoins des clients.

Agence de Lyon : Cette agence est composée d’une équipe expérimentée dans les solu-
tions Microsoft et les CMS open-source, offrant des services de conseil, de développement
web et e-commerce, ainsi que des solutions de digital workplace.

Agence de Hong Kong : Cette agence permet à Expertime d’étendre son influence
internationale, en fournissant des services de conseil en transformation digitale et en dé-
veloppant des solutions web et e-commerce pour les clients asiatiques.

Au sein de l’équipe d’applications de l’agence de Viroflay, je travaille aux côtés de


collègues talentueux. Notre équipe est structurée en plusieurs sous-équipes, chacune com-
prenant entre 8 et 10 collaborateurs. Les différentes agences d’Expertime travaillent en
étroite collaboration pour proposer des solutions innovantes et accompagner nos clients
dans leur transformation digitale.

1.6 Présentation du sujet


Dans cette section du chapitre nous allons présenter le domaine d’étude de notre projet
afin de clarifier le déroulement du processus de formation au sein d’EXPERTIME. Ainsi,
nous entreprenons à une étude de l’existant et puis une mise à position de la problématique
afin d’introduire la solution proposée.

1.6.1 Étude de l’existant


Pour évaluer les compétences des employés, EXPERTIME s’appuie sur une ressource
dénommée ’CvTech’, une bibliothèque de CVs régulièrement mise à jour par les équipes
projet. Néanmoins, il est essentiel de noter que cette CvTech est construite sur un format

4
Chapitre 1. Contexte général 1.6. Présentation du sujet

Figure 1.3 – Organigramme de l’équipe de Narjiss

PowerPoint regroupant divers CVs distincts. Cette structure présente à la fois des avan-
tages et des défis.

D’un côté, l’utilisation d’un format PowerPoint offre une présentation visuelle efficace
des compétences et des expériences des employés. Cela permet une visualisation claire et
structurée des informations, facilitant ainsi l’évaluation des compétences par les parties
concernées.

Cependant, il est important de souligner que cette approche présente des limites.
La recherche d’informations spécifiques dans un diaporama peut s’avérer fastidieuse et
chronophage, constituant ainsi une contrainte de temps pour ceux qui cherchent à éva-
luer rapidement les compétences d’un collaborateur. De plus, la dépendance à un format
unique peut rendre difficile l’ajout et la mise à jour régulière des informations, ce qui peut
contribuer à l’obsolescence des CVs.

Afin d’optimiser l’utilisation de CvTech, il pourrait être bénéfique d’explorer des solu-
tions pour améliorer la facilité d’accès, la recherche et la mise à jour des informations, tout
en préservant les avantages visuels du format PowerPoint. Cela pourrait potentiellement
améliorer l’efficacité du processus d’évaluation des compétences au sein d’EXPERTIME.

1.6.2 Critique de l’existant


Les contraintes liées à la gestion des CVs au sein d’EXPERTIME comprennent divers
aspects. Tout d’abord, la recherche d’un CV spécifique représente une tâche chronophage
en raison du temps considérable nécessaire. De plus, la complexité de la recherche est
accentuée par la nature fastidieuse de la recherche manuelle dans le diaporama existant.

Une autre problématique réside dans l’obsolescence des CVs, car ils ne sont pas systé-
matiquement mis à jour. Les employés conservent souvent leurs CVs depuis leur arrivée

5
Chapitre 1. Contexte général 1.7. Choix méthodologique

chez EXPERTIME et ne les modifient que lorsque des missions spécifiques le requièrent.
Cette situation peut entraîner des informations obsolètes et non représentatives des com-
pétences actuelles des collaborateurs.

En outre, la limitation dans le partage du diaporama crée des défis supplémentaires.


L’accès au diaporama n’est pas universel pour tous les collaborateurs, ce qui nécessite
l’envoi manuel des CVs pour les mises à jour. Cette contrainte entrave la fluidité du
processus de gestion des CVs au sein de l’entreprise.

1.6.3 Solution proposée


Proposer le développement d’une application visant à optimiser la gestion des CVs
au sein d’EXPERTIME est une approche prometteuse. Cette application pourrait être
conçue pour offrir plusieurs fonctionnalités clés afin de résoudre les défis actuels liés à la
CvTech.

Premièrement, l’application pourrait intégrer un moteur de recherche avancé, per-


mettant aux utilisateurs de retrouver des profils en fonction de compétences spécifiques.
Cette fonctionnalité faciliterait la création d’équipes projet en identifiant rapidement les
collaborateurs possédant les compétences requises pour une mission donnée. Une interface
conviviale et intuitive contribuerait à rendre cette recherche efficace et accessible.

De plus, l’application pourrait inclure des outils de gestion de CVs permettant aux
employés de mettre à jour leurs informations de manière autonome. Cette approche auto-
nomise les collaborateurs, réduisant ainsi la dépendance à des mises à jour manuelles et
minimisant le risque d’obsolescence des CVs.

Pour garantir une utilisation optimale, l’application devrait être accessible à l’ensemble
des collaborateurs, favorisant ainsi un partage facile et une collaboration transparente. En
développant une plateforme robuste et sécurisée, EXPERTIME pourrait surmonter les dé-
fis liés au partage limité du diaporama actuel.

Enfin, il serait crucial d’assurer l’intégration de l’application avec les systèmes exis-
tants d’EXPERTIME pour garantir une transition fluide et une compatibilité optimale.

1.7 Choix méthodologique


Afin de garantir le bon déroulement du projet, il est essentiel de choisir à l’avance une
méthodologie de gestion de projet. Cela permet d’organiser le temps de développement et
contribue à minimiser les risques.

1.7.1 Formalisme de modélisation


Pour la spécification des besoins, nous avons opté pour le langage de modélisation
UML qui permet la description et la visualisation des besoins, ainsi que la définition de
l’architecture logicielle. Nous présentons les diagrammes utiles pour la conception du pro-

6
Chapitre 1. Contexte général 1.7. Choix méthodologique

jet :

— Diagramme de cas d’utilisation pour visualiser le comportement global de l’appli-


cation.
— Diagramme de classe pour définir la structure de l’application.
— Diagramme de séquence pour décrire les différentes interactions entre les éléments
du système et les acteurs.

1.7.2 Méthodologie
La méthodologie est une analyse systématique et technique suivant une démarche or-
ganisationnelle pour aboutir à un résultat.
Pour bien conduire notre projet et assurer le bon déroulement des différentes phases, nous
avons opté pour la méthodologie Agile SCRUM comme méthodologie de gestion de pro-
jet. La méthode Scrum soutient la livraison rapide et régulière de fonctionnalités à haute
valeur ajoutée. Scrum présente plusieurs avantages :

— L’équipe obtient une visibilité claire de l’avancement du projet.


— Le client prend part dans la définition et l’évolution des fonctionnalités.
— Les exigences sont priorisées selon les besoins et les changements confrontés.
— Les grands projets sont divisés en des sprints facilement gérables.

Figure 1.4 – Cycle de vie SCRUM

Répartition des rôles de la méthode Scrum


La méthodologie SCRUM fait intervenir trois rôles principaux qui sont :
Le Product Owner : c’est le représentant officiel du client au sein d’un projet SCRUM
Son rôle est de :

— Définir la liste des fonctionnalités du produit dont les fonctionnalités en fonction


de leur importance et leur valeur ajoutée pour l’entreprise qu’il présente.
— La date de livraison des versions ainsi que leurs contenus.
— Valider les lots livrés avec l’équipe de développement.
— Les besoins à l’équipe de développement si nécessaire.
Le Scrum Master : il assure les tâches suivantes :
— S’assurer que Scrum est bien appliquée et respectée.

7
Chapitre 1. Contexte général 1.7. Choix méthodologique

— Encourager l’équipe à apprendre et à progresser pour qu’elle soit fonctionnelle,


productive et créative durant le projet.
— Eliminer les obstacles pouvant perturber la progression du travail.
L’équipe de développement Son rôle principal est :
— Transformer les besoins exprimés dans le Sprint Backlog en fonctionnalités utili-
sables.
— Transformer les besoins exprimés dans le Sprint Backlog en fonctionnalités utili-
sables.

Conclusion
Dans ce chapitre, nous avons fixé les repères de notre projet en décrivant l’organisme
d’accueil, EXPERTIME, et le contexte du projet, nous avons effectué aussi une étude
critique de l’existant en présentant notre solution qui va remédier aux insuffisances. Nous
avons terminé le chapitre par introduire la méthodologie ainsi que le formalisme de mo-
délisation que nous avons adopté pour la conception du projet que nous allons spécifier
dans le chapitre suivant.

8
Chapitre 2

Analyse et spécification des besoins

Introduction
Ce chapitre présente une initiative dans la réalisation de ce projet. Nous commençons
par définir les différents rôles des membres de l’équipe Scrum, pour passer à la création
du backlog produit et l’identification des besoins fonctionnels du système. Nous clôturons
ce chapitre par la planification des sprints.

2.1 Pilotage du projet avec Scrum


Ayant choisi Scrum comme étant une méthodologie, nous présentons les différents ac-
teurs participant au déroulement du projet et à l’élaboration du rapport :

— Le Product Owner : EXPERTIME


— Le Scrum Master : Narjiss Aissaoui
— L’équipe de développement : Yosr Snoussi, Eléve ingénieur en informatique au sein
d’ESPRIT.

2.2 Backlog du produit


Le backlog du produit est un artefact fondamental de Scrum dont le Product Owner
est responsable. Il présente une liste qui comprend les exigences initiales des clients et
qui est susceptible d’évoluer au fil du projet. La figure 2.1 présente le backlog du produit
initial de notre projet. Les besoins sont décrits par un ensemble de User stories.

2.3 Besoins fonctionnels


Pour mener à bien le projet, il est essentiel d’élaborer les exigences fonctionnelles et
non fonctionnelles. Cela permettra d’assurer la cohérence entre les besoins du client, et
l’architecture à mettre en place.

9
Chapitre 2. Analyse et spécification des besoins 2.3. Besoins fonctionnels

Figure 2.1 – Backlog du produit

2.3.1 Besoins fonctionnels


Authentification avec Azure AD :
Permettre aux utilisateurs de s’authentifier sur l’application en utilisant leurs identifiants
Azure AD.
Intégrer le protocole OAuth 2.0 pour l’authentification unique (SSO) afin de permettre
aux utilisateurs de se connecter à l’application sans avoir à saisir à chaque fois leurs in-
formations d’identification.
Utiliser le framework MSAL (Microsoft Authentication Library) pour intégrer l’authenti-
fication avec Azure AD de manière sécurisée.
Garantir que seuls les utilisateurs autorisés ayant des identifiants Azure AD valides
puissent accéder à l’application.

Enregistrement des compétences des utilisateurs :


Les utilisateurs doivent avoir la possibilité de créer un profil sur l’application.
Le profil doit inclure une section dédiée à l’enregistrement des compétences, où les uti-
lisateurs peuvent spécifier leurs compétences professionnelles, leurs domaines d’expertise
et leurs niveaux de compétence.

10
Chapitre 2. Analyse et spécification des besoins 2.3. Besoins fonctionnels

Recherche avancée pour chercher des employés en fonction de leurs com-


pétences :
Mettre en place une fonction de recherche avancée qui permet aux responsables de projet
ou aux recruteurs de spécifier des critères de compétences spécifiques.
Intégrer des filtres de recherche tels que les compétences, les niveaux de compétence.
Les résultats de la recherche doivent afficher les profils correspondant aux critères de com-
pétences définis.

Affichage des utilisateurs en fonction de leurs compétences et les niveaux


des compétences :
Sur la page des résultats de la recherche, afficher clairement les compétences et les niveaux
de compétence de chaque utilisateur.
Utiliser une interface utilisateur conviviale pour permettre aux responsables de projet de
comparer facilement les compétences des différents utilisateurs.
Intégrer des indicateurs visuels pour représenter le niveau de compétence, tels que des
barres de progression ou des étoiles.

Création des équipes :


Permettre aux responsables de projet de créer des équipes directement depuis l’applica-
tion.
Intégrer une fonctionnalité de glisser-déposer pour ajouter des membres à une équipe spé-
cifique.
Afficher les compétences de chaque membre de l’équipe pendant le processus de création
d’équipe pour garantir un équilibre des compétences au sein de l’équipe.

2.3.2 Besoins non fonctionnels


Performance :
Temps de réponse : S’assurer que l’application offre des temps de réponse rapides lors de
la recherche de profils, même avec une grande quantité de données.
Évolutivité : Garantir que l’application peut évoluer pour gérer une augmentation du
nombre d’utilisateurs et de données sans compromettre ses performances.

Convivialité : Interface utilisateur intuitive : Concevoir une interface utilisateur


conviviale qui facilite la navigation et l’utilisation de l’application, même pour les uti-
lisateurs novices.
Compatibilité multi-appareils : L’application est accessible sur une variété d’appareils (or-
dinateurs, tablettes, smartphones) avec une expérience utilisateur cohérente.

Sécurité :
Protection des données : Les données des utilisateurs, en particulier les informations sen-
sibles telles que les compétences et les profils, sont stockées et transmises de manière
sécurisée.
Gestion des droits d’accès : Mettre en place des mécanismes de contrôle d’accès pour
garantir que seuls les utilisateurs autorisés peuvent accéder aux informations sensibles.

11
Chapitre 2. Analyse et spécification des besoins 2.4. Modélisations des besoins

Évolutivité : Architecture extensible : Concevoir une architecture logicielle qui per-


met une évolutivité facile pour intégrer de nouvelles fonctionnalités ou gérer une augmen-
tation du nombre d’utilisateurs.

Maintenabilité :
Facilité de maintenance : Concevoir le code de l’application de manière à ce qu’il soit
facile à comprendre, à modifier et à maintenir au fil du temps.

2.4 Modélisations des besoins


Les diagrammes de cas d’utilisation, généralement appelés diagrammes comportemen-
taux, sont utilisés pour décrire un ensemble d’actions qu’un système peut effectuer en
collaboration avec un ou plusieurs utilisateurs externes (acteurs). Chaque cas d’utilisa-
tion doit fournir des résultats observables et utiles aux acteurs ou autres parties prenantes
du système.

2.4.1 Identification des acteurs


Un acteur représente un rôle joué par une entité externe, pouvant être une personne,
un système ou tout élément extérieur qui interagit avec l’application. Les acteurs sont des
classificateurs qui représentent des rôles à travers un certain cas d’utilisation et non pas
des personnes physique.
Les acteurs de notre projet sont :

Administrateur : Il a tous les droits d’accès dont l’activation, l’ajout, la modification


et la suppression des données relatives à la configuration de base. Il est responsable de
toutes les taches administratives de notre application à savoir la gestion de contrôle d’accès
et de privilèges, la gestion et la configuration de l’application et contrôle des inscriptions.
Cet acteur a la responsabilité de gérer la sécurité ainsi que les paramètres de l’application.

Manager : Les managers utilisent l’application pour rechercher des membres d’équipe
potentiels en fonction de leurs compétences. Ils peuvent créer des équipes, évaluer les com-
pétences des membres actuels, et initier des demandes d’ajout de compétences spécifiques
au sein de l’équipe.

Ressources humaines : L’acteur RH est responsable de la gestion globale des uti-


lisateurs au sein de l’application. Cela inclut la création et la mise à jour des profils des
employés, la validation des compétences, et éventuellement la gestion des autorisations et
des rôles.

Chef de Projet : Les chefs de projet utilisent l’application pour constituer des équipes
projet en fonction des compétences nécessaires. Ils peuvent également utiliser les fonction-
nalités avancées de recherche pour identifier les membres d’équipe ayant des compétences
spécifiques, définir des priorités en fonction des besoins du projet, et créer des équipes
équilibrées en termes de compétences.

12
Chapitre 2. Analyse et spécification des besoins 2.5. Conclusion

2.4.2 Diagramme de cas d’utilisation global


Pour mieux comprendre le comportement de notre solution, nous proposons le dia-
gramme de cas d’utilisation global. Ce diagramme comprend les fonctionnalités principales
que doit fournir le système. La figure ci-dessous présente le diagramme de cas d’utilisation
global de notre application.

Figure 2.2 – Diagramme de cas d’utilisation global

2.4.3 Diagramme de classes global


Le diagramme de classes permet de clarifier les différentes relations entre les classes
de l’application en assurant ainsi de déterminer tout les cas d’utilisation. Après l’analyse
de notre projet nous avons obtenu le diagramme de classe suivant :

2.5 Conclusion
Durant ce chapitre, nous avons spécifié la première étape de la méthodologie Scrum,
soient l’identification des acteurs participant à la réalisation de ce projet, la rédaction du
Backlog du produit . Nous entamons le sprint 0 dans le chapitre suivant.

13
Chapitre 2. Analyse et spécification des besoins 2.5. Conclusion

Figure 2.3 – Diagramme de classes global

14
Chapitre 3

Sprint 0

Introduction
Dans ce chapitre, nous présentons le sprint zéro, au cours duquel nous introduisons
la conception architecturale de la solution ainsi que les technologies et les langages de
programmation adoptés pour la mise en place de notre solution.

3.1 Environnement du travail


Cette section présentera l’environnement matériel ainsi que l’environnement logiciel et
les technologies utilisées lors du développement de l’application de notre projet.

3.1.1 Environnement matériel


Le projet est réalisé localement chez EXPERTIME et développé sur une machine pos-
sédant les caractéristiques décrites ci-dessous :

— Modéle : HP
— Processeur : Intel Core i7 CPU
— Mémoire : 16 Gb«RAM»/500 Gb «SSD»
— Système d’exploitation : Windows 11

3.1.2 Environnement logiciel


Les différents outils logiciels que nous avons exploité pour réaliser notre application.

Visual Studio 2022

Figure 3.1 – Visual Studio 2022

15
Chapitre 3. Sprint 0 3.1. Environnement du travail

Version : 17.1.0
Utilisaton : Visual Studio est un environnement de développement intégré (IDE) de
Microsoft. Il est utilisé pour développer des programmes informatiques, notamment des
sites web, des applications web, des services web et des applications mobiles. Visual Stu-
dio utilise les plateformes de développement logiciel de Microsoft telles que Windows
API, Windows Forms, Windows Presentation Foundation, Windows Store et Microsoft
Silverlight. Il peut produire à la fois du code natif et du code géré.

Visual Studio Code

Figure 3.2 – Visual Studio Code

Version : 1.67
Utilisaton : Visual Studio Code, également appelé VS Code, est un éditeur de code source
développé par Microsoft pour Windows, Linux et macOS. Les fonctionnalités comprennent
la prise en charge du débogage, la coloration syntaxique, la complétion intelligente du code,
les snippets, le remaniement du code et l’intégration de Git. Les utilisateurs peuvent
modifier le thème, les raccourcis clavier, les préférences et installer des extensions qui
ajoutent des fonctionnalités.

Microsoft Azure

Figure 3.3 – Microsoft Azure

Microsoft Azure, souvent appelé Azure, est une plateforme d’informatique en nuage
gérée par Microsoft. Elle offre l’accès, la gestion et le développement d’applications et de
services par l’intermédiaire de centres de données mondiaux. Elle fournit également une
gamme de capacités, y compris le logiciel en tant que service (SaaS), la plateforme en tant
que service (PaaS) et l’infrastructure en tant que service (IaaS). Microsoft Azure prend en
charge de nombreux langages de programmation, outils et cadres, y compris des logiciels
et systèmes propres à Microsoft et de tiers.

GitHub
Microsoft Azure
Version : 2.230.2
Utilisation : GitHub est une plateforme et un service en nuage pour le développement

16
Chapitre 3. Sprint 0 3.1. Environnement du travail

Figure 3.4 – GitHub

de logiciels et le contrôle des versions, qui permet aux développeurs de stocker et de gérer
leur code. Il utilise le logiciel Git, fournissant le contrôle de version distribué de Git plus le
contrôle d’accès, le suivi des bogues, les demandes de fonctionnalités logicielles, la gestion
des tâches, l’intégration continue et les wikis pour chaque projet. Basée en Californie, elle
est une filiale de Microsoft depuis 2018.

Swagger

Figure 3.5 – Swagger

Version : 2.2.1
Utilisation : Swagger est une suite d’outils pour les développeurs d’API de SmartBear
Software et une ancienne spécification sur laquelle est basée la spécification OpenAPI.

Diagrams.net

Figure 3.6 – Diagrams.net

Diagrams.net (anciennement draw.io) est un logiciel de dessin graphique multiplate-


forme développé en HTML5 et JavaScript. Son interface permet de créer des diagrammes
tels que des organigrammes, des wireframes, des diagrammes UML, des organigrammes
et des diagrammes de réseau.

Microsoft SQL Server


Version : 2019.14.0
Utilisation : Microsoft SQL Server est un système propriétaire de gestion de bases de
données relationnelles développé par Microsoft. En tant que serveur de base de données,
il s’agit d’un logiciel dont la fonction principale est de stocker et d’extraire des données

17
Chapitre 3. Sprint 0 3.1. Environnement du travail

Figure 3.7 – Microsoft SQL Server

à la demande d’autres applications logicielles, qui peuvent être exécutées sur le même
ordinateur ou sur un autre ordinateur à travers un réseau (y compris l’Internet).

CSharp

Figure 3.8 – CSharp

Version : 7.0
Utilisation :
CSharp est un langage de programmation de haut niveau à usage général qui prend
en charge plusieurs paradigmes. C englobe les disciplines de programmation statique,
forte, lexicale, impérative, déclarative, fonctionnelle, générique, orientée objet (basée sur
les classes) et orientée composant.

TypeScript

Figure 3.9 – TypeScript

Version : 5.3.2
Utilisation : TypeScript est un langage de programmation de haut niveau, libre et gra-
tuit, développé par Microsoft, qui ajoute à JavaScript un typage statique avec des anno-
tations de type optionnelles. Il est conçu pour le développement de grandes applications
et se transpose à JavaScript.

Dans cette partie nous allons citer les frameworks que nous avons utilisés durant la
réalisation de notre projet.

Choix du framework FrontEnd :


Cette partie est consacrée à la présentation de notre choix pour faire le développement
de la partie Front-End. Parmi ses points forts on peut citer :

18
Chapitre 3. Sprint 0 3.1. Environnement du travail

Figure 3.10 – Vuejs

Vue.js
Version : 3.3
Utilisation : Vue.js présente une architecture adaptable de manière incrémentale qui se
concentre sur le rendu déclaratif et la composition de composants. La bibliothèque de
base se concentre uniquement sur la couche de visualisation. Les fonctionnalités avancées
requises pour les applications complexes, telles que le routage, la gestion des états et les
outils de construction, sont proposées par l’intermédiaire de bibliothèques et de paquets
officiellement maintenus.

Choix du framework Back-end :


En vu des avantages qu’il présente, nous avons décidé que .NET ferait un excellent
choix pour la partie back-end de notre application. Parmi ses plus grands avantages on
site :

Figure 3.11 – .NET

Version : 7
Utilisation :
.NET de Microsoft, permet aux développeurs de créer des applications pour le système
d’exploitation Windows.

Il apporte des améliorations au CLR (Common Language Runtime), introduit le com-


pilateur Roslyn et améliore ASP.NET, WCF (Windows Communication Foundation) et
WPF (Windows Presentation Foundation).

NET7 dévoile l’innovant Windows Runtime, facilitant le développement d’applications


multiplateformes pour une utilisation sur divers appareils.

19
Chapitre 3. Sprint 0 3.2. Architecture logique

3.2 Architecture logique


Afin d’assurer une bonne synchronisation avec l’architecture physique choisie, nous
avons opté pour le patron de conception MVVM au niveau Front-end et l’architecture
n-tires pour la partie Back-end.

3.2.1 MVVM en Front-end


Le patron de conception Model-View-ViewModel a pour but d’améliorer la séparation
entre les données et la vue, et ce par ses trois parties ainsi définies :

— Model : il représente les données et les informations à traiter.

— View : il s’agit de la partie avec laquelle l’utilisateur interagit. C’est la présenta-


tion des données.

— ViewModel : il s’agit de l’élément principal de la triade puisqu’il introduit le


concept de la séparation des nuances de la vue par rapport au modèle. Il présente
la liaison entre la vue et le modèle. Son rôle est de gérer les commandes reçues à
partir de la vue et les rediriger vers le modèle ou d’interagir avec le service pour
extraire le modèle, traduire les propriétés et les placer sur la vue.

La figure Ci-dessous présente l’architecture MVVM au niveau front-end

Figure 3.12 – Architecture MVVM

20
Chapitre 4

Sprint 1

21
Bibliographie

22

Vous aimerez peut-être aussi