Académique Documents
Professionnel Documents
Culture Documents
Dédicace
Je dédie aussi ce modeste travail : , A mes frères Yassin et Islem: , qui n’ont
A tous les cousins, les voisins et les amis tout particulièrement Abir. , Merci pour
leurs amours et leurs encouragements..
Sans oublier mon binôme Tassnim : pour son soutien moral, sa patience et sa
compréhension tout au long de ce projet.
Remerciements
Je tiens tout d’abord à remercier Mon Dieu de m’avoir donné le courage, la force et
la volonté pour achever ce modeste travail.
Enfin, Nous tenons à remercier de Jury de nous avoir offert l’occasion de présenter
notre projet devant leur honorable assistance et d’avoir accepté d’évaluer ce travail. .
vii
Contents
Dedications ii
Introduction générale 1
Conclusion 73
Bibliography 75
xi
List of Figures
List of Tables
Introduction générale
Le monde connait une avance technologique considérable dans des différents secteurs
grâce à l’informatique qui est un domaine d’activité scientifique basé sur le traite-
ment automatique de l’information numérique, et ce dernier joue un rôle fonda-
mental dans le développement économique et social d’un pays.
A cet effet, notre projet de fin d’études consiste a développer une plateforme
décisionnelle de gestion des ressources informatique.
Le rapport sera composé de cinq chapitres.
- Le rapport se termine par une conclusion générale qui va récapituler tout ce qui
a été énoncé dans le rapport.
3
Chapter 1
• Perte de temps
• Manque de sécurité de l’information et des données.
• Simplification de travail.
Méthode SCRUM
Scrum signifie mêlée en français, son nom provient du rugby. Cette méthode est
un cadre méthodologique agile qui révolutionne la manière de l’administration du
projet.
La figure ci-dessous décrit le déroulement d’un projet Scrum.
Les acteurs d’un projet SCRUM • Product owner : Il porte la vision du produit
à réaliser, il travail en interaction avec l’équipe de développement qui doit suivre ces
interactions.
• Scrum master : Il est responsable de la compréhension, de l’adhésion et de la
mise en œuvre de la méthode scrum. Il est considéré comme le coach de l’équipe de
1.5. Méthodologie de travail 7
développement.
• Equipe de d’développement : Il est charger de transformer les besoins définit par
le Product owner en fonctionnalité utilisables. Cette équipe a pour rôle de dévelop-
per le meilleur produit possible.
Présentation des événements se scrum :
un évènement scrum est une réunion assurer à fréquence régulière qui rythme le
sprint agile. Il a comme objectif de synchroniser en équipe, et adapter le plan d’action
afin d’atteindre l’objectif fixé et de développer le meilleur produit possible.
a- Le sprint
un cycle de développent court d’un produit, d’une durée maximale de 4 semaines. Il
permet de maximiser la valeur de produit livré au client. Chaque sprint a un objectif
et une liste de fonctionnalité à réaliser.
b- Planification d’un sprint :
il a pour objectif de déterminer les éléments du Product backlog à intégrer au sprint
backlog qui seront réaliser en cours de sprint. Un sprint planning est timeboxé a 8h
maximum pour un sprint de 4 semaines, 6h pour un sprint de 3 semaines, 4h pour
un sprint de 2 semaines, et 2h pour un sprint de 1 semaines.
c- Revue de sprint :
il s’agit du bilan de sprint réaliser une fois le sprint terminer, l’équipe scrum et
les parties prenantes se réunissent pour valider ce qui a été accompli pendant le
sprint.[8]
Cette réunion dure 4h maximum.
e- Rétrospective de sprint :
cette réunion est interne à l’équipe scrum et dure 3h pour un sprint d’un mois. Le
but est l’adaptation aux changements qui peuvent survenir et l’amélioration con-
tinue du processus de réalisation.
• n’est pas un langage de programmation, mais il existe des outils qui peu-
vent être utilisés pour générer du code en plusieurs langages à partir de di-
agrammes UML. L’UML a une relation directe avec l’analyse et la conception
orientées objet, Dans l’ensemble, les diagrammes UML décrivent la limite, la
structure et le comportement du système et des objets qui s’y trouvent.
• Diagramme de séquence,
• Diagramme de classe,
• Diagramme d’activité,
• Diagramme de collaboration,
• Diagramme de déploiement,
• Diagramme d’état.
1.7 Conclusion
Dans le premier chapitre introductif, nous avons présenté le cadre de notre projet,
puis nous avons proposé une solution qui peut répondre à nos besoins. Dans le
prochain chapitre, nous allons commencer la planification de notre projet.
11
Chapter 2
Introduction
L’analyse est une étape très importante au cours du cycle de vie d’un projet infor-
matique. Dans ce chapitre nous allons définir les acteurs, préciser les besoins fonc-
tionnels et non fonctionnels de notre futur application.
Les besoins fonctionnels (selon Tab 2.1) sont l’exigence de projet donc l’application
doit être répondre aux besoins fonctionnels suivants
Fonctionnalités Description
Authentification l’application permet aux utilisateurs de
s’authentifier afin de profiter certaines fonc-
tionnalités de l’application.
Gestion de logement l’employé peut accepter ou refuser les deman-
des de logement
Gestion des étudiants l’employé peut ajouter, supprimer, modifier,
consulter les étudiant
Gestion des chambres l’employé peut ajouter, supprimer, modifier,
consulter les chambres
Gestion du club l’employé accepter ou refuser les demandes de
création de club
Gestion de reclamation l’employé peut accepter les demandes de recla-
mation
Demande de logement les étudiants peut accepter, refuser, envoyer les
demandes de binome
Declaration de sortie de les étudiant fait une declaration de sortie de
foyer foyer
4 Gestion de elevé
chambres En tant que employé: consulter, ajouter, supprimer, modi-
fier chambres
5 Gestion de elevé
reclamation En tant que employé: accepter les demandes de reclama-
tion
6 Envoyer une trés elevé
demande de En tant que étudiant: consulter la listes de cham-
logement bres disponibles, envoyer un demande a une chambre
disponible
7 Declaration de moyen
sortie de foyer En tant que étudiant: declaration de sortie
N.B:
Dans notre projet l’administrateur et un personne qui interagit avec mongoDB
2.5. Organigramme des tâches 15
composant Cractéristiques
Marque Acer
Processus intel(R) Core(TM)i7-10510U CPU 1.80GHZ
2.30GHZ
Ram 16.0 GO
Type de system system d’exploitation 64 bits processeur X64
a- LATEX
LATEX(Fig 2.4)est un langage et un système de composition de documents. Il
s’agit d’une collection de macrocommandes destinées à faciliter l’utilisation du «
processeur de texte » TeX de Donald Knuth.
LaTeX permet de rédiger des documents dont la mise en page est réalisée au-
tomatiquement en se conformant du mieux possible à des normes typographiques.
Une fonctionnalité distinctive de LaTeX est son mode mathématique, qui permet de
composer des formules complexes.
c- React
react(Fig 2.6)est une bibliothèque JavaScript libre développée par Facebook (main-
tenant Meta) depuis 2013. Le but principal de cette bibliothèque est de faciliter
la création d’application web monopage, via la création de composants dépendant
d’un état et générant une page (ou portion) HTML à chaque changement d’état..
d- MongoDB
MongoDB (Fig 2.7)Apparue au milieu des années 2000, MongoDB est une base
de données NoSQL orientée document. Elle est utilisée pour le stockage de volumes
massifs de données.[12]
Démarrer avec MongoDB est très simple. Il suffit de lancer son serveur Mongo sur
son poste avec la commande mongod ou via une image Docker. Ensuite il suffit de
saisir la commande mongo pour accéder au Mongo Shell et effectuer ses premières
requêtes MongoDB.
e- Vite
Vite (Fig 2.8) est un serveur de développement, créé pour faire tourner localement
des applis web. Cet outil a pour fondateur Evan You, déjà connu pour avoir développé
le framework Vue. js.
18 Chapter 2. Analyse et spécification des besoins
f- NodeJS
NodeJS (Fig 2.9) est la Framework que nous avons choisi pour développer notre
partie backend en version 16.13.2 LTS. Node.js est un environnement bas niveau per-
mettant l’exécution de JavaScript côté serveur. L’un des points forts de NodeJS c’est
qu’il élimine l’attente et continue simplement avec la requête suivante. Node.js exé-
cute une programmation asynchrone à un seul thread, non bloquante, qui est très
économe en mémoire.
JSX ( Fig 2.10 ) JSX (JavaScript Syntax Extension et parfois appelé JavaScript
XML) est une extension React de la syntaxe du langage JavaScript 1 qui permet de
structurer le rendu des composants à l’aide d’une syntaxe familière à de nombreux
développeurs. Il est similaire en apparence au HTML.
Les composants React sont généralement écrits à l’aide de JSX, bien qu’ils ne soient
pas obligés de l’être, car les composants peuvent également être écrits en JavaScript
pur. JSX est similaire à une autre syntaxe d’extension créée par Facebook pour PHP
appelée XHP [3]
i- CSS
L’acronyme de CSS (Fig 2.11) est Cascading Style Sheets. Il s’agit d’un langage
permettant de gérer la présentation générale d’une page web en insérant des styles
2.8. Environnement de travail 19
sur le code HTML. Ces derniers permettent de préciser et de définir les comporte-
ments des éléments de la page.
h-Visual Paradigm
i-Materialize CSS
Materialize CSS (Fig 2.13)Materialize CSS est un framework CSS open source
baser sur le design de Google Material Design, qui fournit des composants prêts à
l’emploi pour la création d’interfaces utilisateur web modernes et responsives.
i-Express.js
20 Chapter 2. Analyse et spécification des besoins
Modèle : noyau de l’application qui gère les données, permet de récupérer les
informations de la base de données, de les organiser pour qu’elles puissent ensuite
être traitées par le contrôleur.
C’est pour cette raison que dans notre projet, nous avons opté pour une archi-
tecture trois tiers qui sert principalement à concevoir l’application en trois couches
2.10. Conclusion 21
logicielles :
• La couche de traitement qui assure à son tour la mise en œuvre des différentes
règles et la gestion de la logique applicative.
• La couche d’accès aux données correspond aux données qui sont destinées à
être conservées.
2.10 Conclusion
Dans ce chapitre nous avons identifié les besoins fonctionnels et non fonctionnels de
notre système ainsi que les acteurs. Ensuite, nous avons détaillé le backlog du pro-
duit Puis nous avons présenté l’environnement matériel et logiciel que nous utilis-
erons pour développer notre plateforme.
Dans le chapitre suivant nous entamons le développement du premier sprint.
23
Chapter 3
Introduction
Ce chapitre fait l’objet d’une présentation du premier sprint du projet.
L’étude de ce sprint couvre l’analyse, la conception, l’implémentation et les tests
fonctionnels.
2 S’authentifier
• En tant qu’employé, je veux s’authentifier
2 Gestion des
chambres
• En tant qu’employé, je dois consulter, ajouter, sup-
primer,modifier chambres
4 Vérifier des
étudiants
• En tant qu’employé: je veux consulter la listes des
étudiants et rendre valide ou non valide
Cas S’inscrire
d’utilisation
Acteur Utilisateur
Pré condition
• L’utilisateur doit accéder a la page d’accueil
Scénario alter-
natif
• L’utilisateur saisit des données manquantes
Cas S’authentifier
d’utilisation
Acteur Utilisateur
Pré condition
• L’utilisateur doit avoir un compte valide
Scénario alter-
natif
• L’utilisateur n’a pas saisit les bons identifiants :
Les scénarios d’exécutions du cas d‘utilisation «Gestion des chambres» sont décrits
par les tableaux suivants représentant la fiche descriptive du cas :
3.3. Phase d’analyse 27
Scénario alter-
natif
• L’employé saisit des données manquantes ou des don-
nées de chambre indisponible : Le systéme affiche un
message d’erreur
28 Chapter 3. Mise en oeuvre de Sprint 1
Scénario alter-
natif
• Chambre contient deux étudiant: systéme affiche mes-
sage d’erreur.
3.4 Conception
3.4.1 Conception statique
3.4.2 Diagramme de classe de sprint 1
Un diagramme de classe de conception statique est une représentation visuelle des
classes, des attributs, des méthodes et des relations statiques entre les objets dans un
système logiciel. Il est utilisé pour décrire la structure et les interactions des classes
lors de la conception d’un système.
NB :
- demandingStudent:( array)
La listes des étudiants qui ont fait une demande a une chambre.
- affectedStudents:( array)
la liste des étudiants qui ont été affecté par l’employé a une chambre.
3.7 Conclusion:
Dans de ce chapitre, nous avons décrit le backlog de sprint et nous avons fait son
analyse, sa conception suivie des étapes de la réalisation et de test.
43
Chapter 4
Introduction
Ce chapitre fait l’objet d’une présentation du deuxième sprint du projet.
L’étude de ce sprint couvre l’analyse, la conception, l’implémentation et les tests
fonctionnels.
2 Gestion de
logement
• En tant qu’employé, je peux consulter la liste de de-
mandes et j’accepte les demande des étudiants
3 Envoyer un
réclamation
• En tant qu’étudiant: je peux envoyer un reclamation
Scénario alter-
native
• 1. CIN d’étudiant existe déja dans la liste demand-
ingStudent ou affectedStudents dans un chambre: sys-
téme affiche un message erreur.
Scénario nom-
inale
• 1.L’émployer clique sur le bouton pour affecter.
Scénario nom-
inale
• 1.L’employé clique sur le bouton pour supprimer étudi-
ant de la liste affectedStudents.
Scénario alter-
natif
• L’employé saisit des données manquantes:
4.3 Conception
4.3.1 Conception statique :
4.3.2 Diagramme de classe de sprint 2
4.6 Conclusion:
Dans de ce chapitre, nous avons décrit le backlog de sprint et nous avons fait son
analyse, sa conception suivie des étapes de la réalisation et de test.
57
Chapter 5
Introduction
Ce chapitre fait l’objet d’une présentation du troisième sprint du projet.
L’étude de ce sprint couvre l’analyse, la conception, l’implémentation et les tests
fonctionnels.
2 Gestion du
club
• En tant qu’étudiant, je peux consulter la liste du clubs
et je peux ajouter un nouveau club ou rejoindre des
clubs.
3 déclaration
de sortie
• En tant qu’éttudiant: je peux accéder a l’interface sor-
tie et envoyer une déclaration de sortie.
Les scénarios d’exécutions du cas d‘utilisation «Gestion du club» sont décrits par les
tableaux suivants représentant la fiche descriptive du cas :
Scénario alter-
natif
• L’étudiant saisit des données manquantes ou un nom du
club déja exist: le systéme affiche un message d’erreur.
Scénario alter-
natif
• l’etudiant déja un membre: Le systéme affiche un mes-
sage d’erreur.
62 Chapter 5. Mise en oeuvre de Sprint 3
Post condition
• Instance ajouté dans la table sortie.
• Deconnexion de l’étudiant.
Scénario nom-
inale
• 1. L’étudiant accéde a l’interface sortie.
5.3 Conception
5.3.1 Conception statique
La figure ci-dessous présente le diagramme de classe du sprint 3
Dans les figures suivantes nous présentons le diagramme de séquence de " Mod-
ifier reclamation"
5.3. Conception 65
5.6 Conclusion
Dans de ce chapitre, nous avons décrit le backlog de sprint et nous avons fait son
analyse, sa conception suivie des étapes de la réalisation et de test.
73
Conclusion
Ce stage s’inscrit dans le cadre du projet de fin d’études effectué au sein de la boite
de développement "Al-IDHAFA" en vue de l’obtention du diplôme de licence fon-
damentale en informatique de gestion.
Dans ce cotexte, j’ai eu l’occasion de concevoir et développer une application web
intitulée "FOYER UNIVERSITAIRE"
Pour accomplir ce travail, nous avons adopté la méthode Scrum comme méth-
ode développement, l’UML comme langage de modélisation. Notre application est
développée en React en utilisant l’environnement de développement Visual studio
code. Ainsi, afin de créer la base de données, nous avons exploité le MongoDB
qui utilise des base de données NoSQL. Nous avons commencé par la présentation
du cadre du projet. Par la suite nous avons passé à la spécification des besoins et
l’identification des acteurs afin de garantir une conception fiable. Ceci a fait l’objet
de l’étape suivante afin de pouvoir enchainer avec l’implémentation et la réalisation
de chaque Sprint mentionné dans le Backlog du Produit. Pour ce faire, nous étions
amenés à étudier, développer et mettre en place cette application en respectant une
architecture claire et standardisée qui la MVC.
Malgré les contraintes de temps et les difficultés que nous avons rencontré nous
avons réussi à réaliser presque la totalité de notre application.
Pour conclure notre travail ne s’arrête pas à ce niveau, en effet ce projet peut améliorer
• Améliorer notre application on ajout d’autre fonctionnalités.
• Améliorer la qualité de désigne des interfaces de notre application.
75
Bibliography
[1] Johannes Schönböck Dietmar Winkler Manuel Wimmer. "UML Modeling and
Code Generation in Practice: Results from a Survey". URL: https://ieeexplore.
ieee.org/document/6336424.
[2] Nikita Jha. "An Evaluation of Software Development Life Cycle Models: A Systematic
Review". URL: https://www.ijecs.in/index.php/ijecs/article/view/3637.
[3] Schwaber et Sutherland. "Scrum: A Breathtakingly Brief and Agile Introduction".
[4] Dr. N. Mohan Kumar T.M. Rajkumar. "A Comparison between Five Models of
Software Engineering". URL: https : / / www . researchgate . net / publication /
264570269_A_Comparison_between_Five_Models_of_Software_Engineering.